1(()=>{"use strict";var e,t={89853:(e,t,n)=>{n.d(t,{A:()=>R});var a=n(16193),r=n.n(a),i=n(26396),l=n.n(i),o=n(82274),s=n.n(o),c=n(65044),u=n.n(c),h=n(41972),p=n.n(h),d=n(56994),m=n.n(d),f=n(65611),g=n.n(f),v=n(18337),y=n.n(v),b=n(96540),E=n(1482),C=n.n(E),k=n(5556),S=n.n(k);function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){l()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function P(e){var t=x();return function(){var n,a=y()(e);if(t){var r=y()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return g()(this,n)}}function x(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(x=function(){return!!e})()}var R=function(e){m()(n,e);var t=P(n);function n(e){var a;return s()(this,n),(a=t.call(this,e)).handleFocus=a.handleFocus.bind(p()(a)),a.handleKeyPress=a.handleKeyPress.bind(p()(a)),a.handleSelect=a.handleSelect.bind(p()(a)),a.onMenuVisibilityChange=a.onMenuVisibilityChange.bind(p()(a)),a.assignInputElem=a.assignInputElem.bind(p()(a)),a.renderItem=a.renderItem.bind(p()(a)),a.renderMenu=a.renderMenu.bind(p()(a)),a.inputElem=null,a.renderInput=a.renderInput.bind(p()(a)),a}return u()(n,[{key:"handleFocus",value:function(){this.props.updateItemsOnFocus&&this.props.updateItems(this.props.value)}},{key:"handleKeyPress",value:function(e){this.props.onSubmit&&"Enter"===e.key&&(e.preventDefault(),this.props.onSubmit())}},{key:"handleSelect",value:function(e,t){this.props.onSelect&&this.props.onSelect(e,t)}},{key:"onMenuVisibilityChange",value:function(e){var t=this;this.inputElem&&e&&this.props.suggestionsAbsolutePositioned&&window.setTimeout((function(){212+t.inputElem.getBoundingClientRect().top+t.inputElem.offsetHeight>window.innerHeight&&t.scrollIntoView(t.inputElem)}),500)}},{key:"scrollIntoView",value:function(e){var t=e.getBoundingClientRect(),n=document.body,a=document.documentElement,r=window.pageYOffset||a.scrollTop||n.scrollTop,i=window.pageXOffset||a.scrollLeft||n.scrollLeft,l=a.clientTop||n.clientTop||0,o=a.clientLeft||n.clientLeft||0,s=t.top+r-l;t.left;window.scrollTo(0,s)}},{key:"assignInputElem",value:function(e){e?(this.inputElem=e.refs.input,this.innerComponent=e):(this.inputElem=null,this.innerComponent=null)}},{key:"renderMenu",value:function(e,t,n){if(0==e.length)return b.createElement("ul",null);var a=this.innerComponent.props.menuStyle;if(!a.position||"fixed"!=a.position){var r=(this.inputElem.offsetParent||this.inputElem).getBoundingClientRect(),i={top:r.top,left:r.left},l=this.inputElem.getBoundingClientRect().top-i.top+this.inputElem.offsetHeight,o=this.inputElem.getBoundingClientRect().left-i.left;n.top=l,n.left=o}return b.createElement("ul",{className:"ui-autocomplete ui-front ui-menu ui-widget ui-widget-content",style:N(N({},n),a),children:e})}},{key:"renderItem",value:function(e,t){var n="ui-menu-item autocomplete-item "+(e.index%2==1?"":"ac_odd ")+(t?"ac_over":"");this.props.isPastSales&&e.index>0&&(this.props.items[e.index-1].item.category!==e.item.category&&(n+=" ac_split"));return b.createElement("li",{key:e.item.key,className:n},b.createElement("div",{className:"ui-corner-all autocomplete-item-content",style:{zIndex:900}},e.item.displayText))}},{key:"renderInput",value:function(e){var t;return t="location-result-page"===this.props.inputName?b.createElement("button",{key:"searchButton",type:"button",className:"submitButton",onClick:this.props.onSubmit},b.createElement("i",{className:"fas fa-arrow-circle-right"})):null,e.autoComplete="off",[b.createElement("input",r()({key:"inputKey"},e)),t]}},{key:"render",value:function(){var e,t;"location-result-page"===this.props.inputName?(e="searchInput",t="inputWrap"):(e=null,t="flex-field");var n={type:"search",placeholder:this.props.inputPlaceholder,name:this.props.inputName,autoCapitalize:"off",autoCorrect:"off",onFocus:this.handleFocus,onKeyPress:this.handleKeyPress,className:e};return b.createElement(C(),{inputProps:n,renderInput:this.renderInput,wrapperStyle:{display:"block",zIndex:2},wrapperProps:{className:t+" "+(this.props.wrapperClassName||"")},value:this.props.value,onChange:this.props.onChange,onSelect:this.handleSelect,items:this.props.items,getItemV
1alue:function(e){return e.item.displayText},renderItem:this.renderItem,renderMenu:this.renderMenu,onMenuVisibilityChange:this.onMenuVisibilityChange,ref:this.assignInputElem,menuStyle:{position:this.props.suggestionsAbsolutePositioned?"absolute":"fixed",overflow:"auto",maxHeight:"50vh",maxWidth:"none",minWidth:"none",WebkitTransform:"translateZ(0)",transform:"translateZ(0)"},autoHighlight:!0===this.props.autoHighlight})}}]),n}(b.Component);R.defaultProps={size:5,onSelect:function(){},updateItemsOnFocus:!0},R.propTypes={updateItems:S().func.isRequired,value:S().oneOfType([S().string,S().number]).isRequired,onChange:S().func.isRequired,onSelect:S().func.isRequired,items:S().array.isRequired,inputName:S().string,inputPlaceholder:S().string,updateItemsOnFocus:S().bool,size:S().number}},75968:(e,t,n)=>{n.d(t,{A:()=>w});var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(41972),s=n.n(o),c=n(56994),u=n.n(c),h=n(65611),p=n.n(h),d=n(18337),m=n.n(d),f=n(96540),g=n(5556),v=n.n(g),y=n(89853),b=n(54548),E=n(72505),C=n.n(E);function k(e){var t=S();return function(){var n,a=m()(e);if(t){var r=m()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return p()(this,n)}}function S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(S=function(){return!!e})()}var w=function(e){u()(n,e);var t=k(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).state={locations:[]},a.handleChange=a.handleChange.bind(s()(a)),a.handleSelect=a.handleSelect.bind(s()(a)),"undefined"==typeof window?a.updateSuggestions=a.updateSuggestions.bind(s()(a)):a.updateSuggestions=(0,b.sg)(a.updateSuggestions,200).bind(s()(a)),a}return l()(n,[{key:"componentWillReceiveProps",value:function(e){this.props.value!==e.value&&this.updateSuggestions(e.value)}},{key:"updateSuggestions",value:function(e){var t=this;e?C().post("/locations/autocomplete",{query:e,size:this.props.size,pastsales:this.props.pastsales}).then((function(e){if(e.data){var n=e.data.map((function(e,t,n){return{index:t,item:e}}));t.setState({locations:n})}else t.setState({locations:[]})})):this.setState({locations:[]})}},{key:"handleChange",value:function(e,t){void 0!==this.props.onChange&&this.props.onChange(e,t)}},{key:"handleSelect",value:function(e,t){void 0!==this.props.onSelect&&this.props.onSelect(e,t.item)}},{key:"render",value:function(){return f.createElement(y.A,{updateItems:this.updateSuggestions,value:this.props.value,items:this.state.locations,onChange:this.handleChange,onSelect:this.handleSelect,onSubmit:this.props.onSubmit,inputName:this.props.inputName,inputPlaceholder:this.props.inputPlaceholder,wrapperClassName:this.props.wrapperClassName,updateItemsOnFocus:this.props.updateItemsOnFocus,size:this.props.size,suggestionsAbsolutePositioned:this.props.suggestionsAbsolutePositioned,autoHighlight:this.props.autoHighlight,isPastSales:!0===this.props.pastsales})}}]),n}(f.Component);w.defaultProps={size:5,updateItemsOnFocus:!0,inputName:"",inputPlaceholder:"",pastsales:!1},w.propTypes={value:v().oneOfType([v().string,v().number]).isRequired,onChange:v().func.isRequired,onSelect:v().func.isRequired,updateItemsOnFocus:v().bool,size:v().number,inputName:v().string,inputPlaceholder:v().string,pastsales:v().bool}},9547:(e,t,n)=>{n.d(t,{A:()=>g});var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(56994),s=n.n(o),c=n(65611),u=n.n(c),h=n(18337),p=n.n(h),d=n(96540);function m(e){var t=f();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(f=function(){return!!e})()}var g=function(e){s()(n,e);var t=m(n);function n(e){return r()(this,n),t.call(this,e)}return l()(n,[{key:"render",value:function(){return d.createElement("a",{className:"icon-angle-down advanced-link standard-type",href:this.props.url},"Advanced search")}}]),n}(d.Component)},67511:(e,t,n)=>{n.d(t,{A:()=>L});var a=n(26396),r=n.n(a),i=n(82274),l=n.n(i),o=n(65044),s=n.n(o),c=n(41972),u=n.n(c),h=n(
156994),p=n.n(h),d=n(65611),m=n.n(d),f=n(18337),g=n.n(f),v=n(96540),y=n(26703),b=n(7039),E=n(57304),C=n(90920),k=n(42525),S=n(71372),w=n(55814),N=n(9547),P=n(53311),x=n(58917);function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?R(Object(n),!0).forEach((function(t){r()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function I(e){var t=O();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function O(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(O=function(){return!!e})()}var L=function(e){p()(n,e);var t=I(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).handleInputValueChange=a.handleInputValueChange.bind(u()(a)),a.handleLocationChange=a.handleLocationChange.bind(u()(a)),a.handleSubmit=a.handleSubmit.bind(u()(a)),a.handleFormChange=a.handleFormChange.bind(u()(a)),a.handlePriceChange=x.A.bind(u()(a)),a.state=e.getSearchFilters("buy"),a.state.selectedLocation=null,a.state.locationInputValue="",a.state.placeholder="Enter location",a}return s()(n,[{key:"handleInputValueChange",value:function(e,t){var n=this;this.setState((function(e,a){return n.state.selectedLocation&&n.state.selectedLocation.displayText!=t?{locationInputValue:t,selectedLocation:null}:{locationInputValue:t}}))}},{key:"handleLocationChange",value:function(e,t){this.setState((function(n,a){return{selectedLocation:t,locationInputValue:e}}))}},{key:"handleMinPriceChange",value:function(e){var t=parseInt(this.state.maxPrice),n={minPrice:e,page:null};!isNaN(t)&&t<parseInt(e)&&(n.maxPrice=e,this.saveSearchFilter(e,"maxPrice",this.state.rental)),this.props.saveSearchFilter(e,"minPrice",this.state.rental),this.setState(n,this.updateCurrentUrl)}},{key:"handleMaxPriceChange",value:function(e){var t=parseInt(this.state.minPrice),n={maxPrice:e,page:null};!isNaN(t)&&t>parseInt(e)&&(n.minPrice=e,this.saveSearchFilter(e,"minPrice",this.state.rental)),this.props.saveSearchFilter(e,"maxPrice",this.state.rental),this.setState(n,this.updateCurrentUrl)}},{key:"handleSubmit",value:function(e){if(""==this.state.locationInputValue||this.state.locationInputValue.length>2)GA.track("ToBuy");else{/^[a-zA-Z]{1}[1-9]{1}$/.test(this.state.locationInputValue)?GA.track("ToBuy"):(alert("Please continue typing or select an option from the drop down menu"),e.preventDefault())}}},{key:"handleFormChange",value:function(e,t){var n={};n[t]=e,this.props.saveSearchFilter(e,t,!1),this.setState(n)}},{key:"render",value:function(){var e=this.props.createUrl(T(T({},this.state),{},{locations:this.state.selectedLocation?[this.state.selectedLocation]:void 0}),"advanced-search"),t=this.props.createUrl(this.state,"map-radius-search");return v.createElement("form",{className:"search-form",method:"get",action:"/search",onSubmit:this.handleSubmit},v.createElement("input",{type:"hidden",name:"locations",value:this.state.selectedLocation?this.state.selectedLocation.key:""}),v.createElement(y.A,{value:this.state.locationInputValue,onChange:this.handleInputValueChange,onSelect:this.handleLocationChange,inputName:"locationtext",inputPlaceholder:this.state.placeholder,url:t,wrapperClassName:"home-search-input-wrapper",suggestionsAbsolutePositioned:!0}),v.createElement("div",{className:"filterOptions home buy"},v.createElement(b.A,{outerDivClass:"refine-min-price",htmlFor:"minprice",label:"Min price"},v.createElement(C.A,{inputId:"minprice",inputName:"minPrice",handleChange:this.handlePriceChange,value:this.state.minPrice})),v.createElement(b.A,{outerDivClass:"refine-max-price",htmlFor:"maxprice",label:"Max price"},v.createElement(C.A,{inputId:"maxprice",inputName:"maxPrice",handleChange:this.handlePriceChange,value:this.state.maxPrice})),v.createElement(b.A,{outerDivClass:"refine-min-beds",htmlFor:"minbeds",label:"Bedrooms"},v.createElement(E.A,{inputId:"minbeds",inputName:"minBeds",handleChange:this.handleFormChange,value:this.state.minBeds})),v.createElement(k.A,{inputName:"ptype",handleChange:this.handleFormChange,value:this.state.ptype})),v.createElement("div",{className:"filter buy-tab"},v.createElement(S.A,{handleChange:this.handleFormChange,checked:this.state.new,tab:"buyTab",id:"new-sale"}),v.createElement(w.A,{handleChange:this.handleFormChange,checked:this.state.underOffer,id:"underoffer-buy"}),v.createElement(N.A,{url:e})),v.createElement(P.A,null))}}]),n}(v.Component)}
1,7039:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(96540);function r(e){var t="refine-item "+e.outerDivClass,n=e.htmlFor,r=e.label;return a.createElement("div",{className:t},a.createElement("label",{className:"select",htmlFor:n},a.createElement("span",{className:"brand-type"},r),a.createElement("div",{className:"select__wrapper"},e.children)))}},55814:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(96540);function r(e){return a.createElement("div",{className:"filterCheckboxCol"},a.createElement("input",{type:"checkbox",name:"underoffer",id:e.id,checked:!!e.checked,onChange:function(t){e.handleChange&&e.handleChange(t.target.checked,"underOffer")},value:"true"}),a.createElement("label",{htmlFor:e.id},"Include under offer"))}},26703:(e,t,n)=>{n.d(t,{A:()=>E});var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(56994),s=n.n(o),c=n(65611),u=n.n(c),h=n(18337),p=n.n(h),d=n(96540),m=n(75968);function f(e){var t=g();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function g(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(g=function(){return!!e})()}var v=function(e){s()(n,e);var t=f(n);function n(e){return r()(this,n),t.call(this,e)}return l()(n,[{key:"render",value:function(){return d.createElement("div",{className:"pick-from-map-home"},d.createElement("a",{className:"pick-from-map icon-location low changetolink",href:this.props.url},"Pick from map"))}}]),n}(d.Component);n(53311);function y(e){var t=b();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function b(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(b=function(){return!!e})()}var E=function(e){s()(n,e);var t=y(n);function n(e){return r()(this,n),t.call(this,e)}return l()(n,[{key:"render",value:function(){var e="search-form__location flex-search home searchInput",t=d.createElement(v,{url:this.props.url});return this.props.pastsales&&(t=null,e+=" past-sales"),d.createElement("div",{className:e},d.createElement("label",{className:"away",htmlFor:"search-box"},"Search"),d.createElement(m.A,this.props),t)}}]),n}(d.Component)},57304:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(96540);function r(e){return a.createElement("select",{id:e.inputId,name:e.inputName,onChange:function(t){e.handleChange&&e.handleChange(t.target.value,e.inputName)},value:e.value},a.createElement("option",{value:""},"Any"),a.createElement("option",{value:"1plus"},"1+"),a.createElement("option",{value:"2plus"},"2+"),a.createElement("option",{value:"3plus"},"3+"),a.createElement("option",{value:"4plus"},"4+"),a.createElement("option",{value:"5plus"},"5+"),a.createElement("option",{value:"6plus"},"6+"),a.createElement("option",{value:"1"},"1"),a.createElement("option",{value:"2"},"2"),a.createElement("option",{value:"3"},"3"),a.createElement("option",{value:"4"},"4"),a.createElement("option",{value:"5"},"5"),a.createElement("option",{value:"6"},"6"))}},71372:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(96540);function r(e){return a.createElement("div",{className:"filterCheckboxCol"},a.createElement("input",{type:"checkbox",name:"new",id:e.id,checked:!!e.checked,onChange:function(t){e.handleChange&&e.handleChange(t.target.checked?t.target.value:"","new")},value:"7"}),a.createElement("label",{htmlFor:e.id},"Added last 7 days"))}},58917:(e,t,n)=>{function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a="minPrice"===t?"maxPrice":"minPrice",r=parseInt(this.state[a]),i={};i[t]=e,this.props.saveSearchFilter(e,t,n),!isNaN(r)&&("minPrice"===t&&r<parseInt(e)||"maxPrice"===t&&r>parseInt(e))&&(i[a]=e,this.props.saveSearchFilter(e,a,n)),this.setState(i)}n.d(t,{A:()=>a})},90920:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(96540),r=n(5556),i=n.n(r);function l(e){function t(t){e.handleChange&&e.handleChange(t.target.value,e.inputName,e.rental)}return e.rental?a.createElement("select",{id:e.inputId,name:e.inputName,onChange:t,value:e.value},a.createElement("option",{value:""},"Any"),a.createElement("option",{value:"250"},"£250"),a.createElement("option",{value:"400"},"£400"),a.createElement("option",{value:"600"},"£600"),a.createElement("option",{value:"800"},"£800"),a.createElement("option",{value:"1000"},"£1,000"),a.createElement("option",{value:"1250"},"£1,250"),a.createElement("option",{value:"1500"},"£1,500"),a.createElement("option",{value:"1750"},"£1,750"),a.createElement("option",{value:"2000"},"£2,000"),a.createElement("option",{value:"2500"},"£2,500")):a.createElement("select",{id:e.inputId,name:e.inputName,onChange:t,value:e.value},a.createElement("option",{value:""},"Any"),a.createElement("option",{value:"50000"},"£50k"),a.createElement("option",{value:"60000"},"£60k"),a.createElement("option",{value:"70000"},"£70k"),a.createElement("option",{value:"80000"},"£80k"),a.createElement("option",{value:"90000"},"£90k"),a.createElement("option",{value:"100000"},"£100k"),a.createElement("option",{value:"110000"},"£110k"),a.createElement("option",{value:"120000"},"£120k"),a.createElement("option",{value:"125000"},"£125k"),a.createElement("option",{value:"130000"},"£130k"),a.createElement("option",{value:"140000"},"£140k"),a.createElement("option",{value:"150000"},"£150k"),a.createElement("option",{value:"175000"},"£175k"),a.createElement("option",{value:"200000"},"£200k"),a.createElement("option",{value:"225000"},"£225k"),a.createElement("option",{value:"250000"},"£250k"),a.createElement("option",{value:"275000"},"£275k"),a.createElement("option",{value:"300000"},"£300k"),a.createElement("option",{value:"325000"},"£325k"),a.createElement("option",{value:"350000"},"£350k"),a.createElement("option",{value:"375000"},"£375k"),a.createElement("option",{value:"400000"},"£400k"),a.createElement("option",{value:"425000"},"£425k"),a.createElement("option",{value:"450000"},"£450k"),a.createElement("option",{value:"475000"},"£475k"),a.createElement("option",{value:"500000"},"£500k"),a.createElement("option",{value:"550000"},"£550k"),a.createElement("option",{value:"600000"},"£600k"),a.createElement("option",{value:"650000"},"£650k"),a.createElement("option",{value:"700000"},"£700k"),a.createElement("option",{value:"750000"},"£750k"),a.createElement("option",{value:"800000"},"£800k"),a.createElement("option",{value:"850000"},"£850k"),a.createElement("option",{value:"900000"},"£900k"),a.createElement("option",{value:"950000"},"£950k"),a.createElement("option",{value:"1000000"},"£1m"),a.createElement("option",{value:"1500000"},"£1.5m"),a.createElement("option",{value:"2000000"},"£2m"),a.createElement("option",{value:"2500000"},"£2.5m"),a.createElement("option",{value:"3000000"},"£3m"))}
1l.propTypes={inputId:i().string.isRequired,inputName:i().string.isRequired,rental:i().bool}},42525:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(96540);function r(e){return a.createElement("div",{className:"refine-item refine-property-type"},a.createElement("label",{className:"select",htmlFor:"propertytype"},a.createElement("span",{className:"brand-type"},"Property type"),a.createElement("div",{className:"select__wrapper"},a.createElement("select",{id:"propertytype",name:"ptype",onChange:function(t){e.handleChange&&e.handleChange(t.target.value,e.inputName)},value:e.value},a.createElement("option",{value:""},"Any"),a.createElement("option",{value:"flat"},"Flat"),a.createElement("option",{value:"house"},"House"),a.createElement("option",{value:"other_43"},"Commercial"),a.createElement("option",{value:"other_26"},"Retirement"),a.createElement("option",{value:"other"},"Other")))))}},92242:(e,t,n)=>{var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(56994),s=n.n(o),c=n(65611),u=n.n(c),h=n(18337),p=n.n(h),d=n(96540),m=n(5338);function f(e){var t=g();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function g(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(g=function(){return!!e})()}var v=function(e){s()(n,e);var t=f(n);function n(e){return r()(this,n),t.call(this,e)}return l()(n,[{key:"render",value:function(){return d.createElement("dd",{className:(this.props.className?this.props.className:"")+(this.props.active?"active":"")},d.createElement("a",{href:this.props.href,className:"tab__link"}," ",this.props.text||this.props.children," "),d.createElement("div",{className:"arrow"}))}}]),n}(d.Component);function y(e){var t=b();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function b(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(b=function(){return!!e})()}var E=function(e){s()(n,e);var t=y(n);function n(e){return r()(this,n),t.call(this,e)}return l()(n,[{key:"activateTab",value:function(e){var t=e.closest("dl").find("dd.active"),n=e.children("a").attr("href")+"Tab";n=n.replace(/^.+#/,"#"),t.removeClass("active"),e.addClass("active"),e.children("a").focus(),$(n).closest(".tabs-content").children("li").removeClass("active").hide(),$(n).css("display","block").addClass("active"),$(n).trigger("tab-activated")}},{key:"clickHandler",value:function(e){this.activateTab($(e.currentTarget).parent("dd"))}},{key:"componentDidMount",value:function(){var e=this;this.handlerRaw=function(t){e.clickHandler(t)},$("dl.tabs dd a").on("click.fndtn",this.handlerRaw),window.location.hash&&this.activateTab($('a[href="'+window.location.hash+'"]').parent("dd"))}},{key:"componentWillUnmount",value:function(){$("dl.tabs dd a").off("
1click.fndtn",this.handlerRaw)}},{key:"render",value:function(){return d.createElement("div",{className:"main-search flex-area__fluid"},this.props.children)}}]),n}(d.Component),C=n(67511),k=n(41972),S=n.n(k),w=n(26703),N=n(71372),P=n(9547),x=n(53311),R=n(7039),T=n(57304),I=n(90920),O=n(42525),L=n(58917);function F(e){var t=M();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function M(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(M=function(){return!!e})()}var A=function(e){s()(n,e);var t=F(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).handleInputValueChange=a.handleInputValueChange.bind(S()(a)),a.handleLocationChange=a.handleLocationChange.bind(S()(a)),a.handleSubmit=a.handleSubmit.bind(S()(a)),a.handleFormChange=a.handleFormChange.bind(S()(a)),a.handlePriceChange=L.A.bind(S()(a)),a.state=e.getSearchFilters("rent"),a.state.selectedLocation=null,a.state.locationInputValue="",a.state.placeholder="Enter location",a.state.rental=!0,a}return l()(n,[{key:"handleInputValueChange",value:function(e,t){this.setState((function(e,n){return{selectedLocation:"",locationInputValue:t}}))}},{key:"handleLocationChange",value:function(e,t){this.setState((function(n,a){return{selectedLocation:t,locationInputValue:e}}))}},{key:"handleSubmit",value:function(e){if(""==this.state.locationInputValue||this.state.locationInputValue.length>2)GA.track("ToRent");else{/^[a-zA-Z]{1}[1-9]{1}$/.test(this.state.locationInputValue)?GA.track("ToRent"):(alert("Please continue typing or select an option from the drop down menu"),e.preventDefault())}}},{key:"handleFormChange",value:function(e,t){var n={};n[t]=e,this.props.saveSearchFilter(e,t,!0),this.setState(n)}},{key:"render",value:function(){var e=this.props.createUrl(this.state,"advanced-search"),t=this.props.createUrl(this.state,"map-radius-search");return d.createElement("form",{className:"search-form",method:"get",action:"/search",onSubmit:this.handleSubmit},d.createElement("input",{type:"hidden",name:"locations",value:this.state.selectedLocation?this.state.selectedLocation.key:""}),d.createElement("input",{type:"hidden",name:"rental",value:"true"}),d.createElement(w.A,{value:this.state.locationInputValue,onChange:this.handleInputValueChange,onSelect:this.handleLocationChange,inputName:"locationtext",inputPlaceholder:this.state.placeholder,wrapperClassName:"home-search-input-wrapper",url:t,suggestionsAbsolutePositioned:!0}),d.createElement("div",{className:"filterOptions home"},d.createElement(R.A,{outerDivClass:"refine-min-price",htmlFor:"minprice",label:"Min price"},d.createElement(I.A,{inputId:"minprice",inputName:"minPrice",handleChange:this.handlePriceChange,value:this.state.minPrice,rental:!0})),d.createElement(R.A,{outerDivClass:"refine-max-price",htmlFor:"maxprice",label:"Max price"},d.createElement(I.A,{inputId:"maxprice",inputName:"maxPrice",handleChange:this.handlePriceChange,value:this.state.maxPrice,rental:!0})),d.createElement(R.A,{outerDivClass:"refine-min-beds",htmlFor:"minbeds",label:"Bedrooms"},d.createElement(T.A,{inputId:"minbeds",inputName:"minBeds",handleChange:this.handleFormChange,value:this.state.minBeds})),d.createElement(O.A,{inputName:"ptype",handleChange:this.handleFormChange,value:this.state.ptype})),d.createElement("div",{className:"filter rent-school"},d.createElement(N.A,{handleChange:this.handleFormChange,checked:!!this.state.new,tab:"rentTab",id:"new-rent"}),d.createElement(P.A,{url:e})),d.createElement(x.A,null))}}]),n}(d.Component),B=n(16193),D=n.n(B),U=n(26396),V=n.n(U),_=n(5556),z=n.n(_),j=n(89853),q=n(72505),H=n.n(q);function K(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function W(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?K(Object(n),!0).forEach((function(t){V()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K(Object(n)).forEac
1h((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function G(e){var t=Q();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function Q(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Q=function(){return!!e})()}var Z=function(e){s()(n,e);var t=G(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).handleChange=a.handleChange.bind(S()(a)),a.handleSelect=a.handleSelect.bind(S()(a)),a.updateSuggestions=a.updateSuggestions.bind(S()(a)),a.state={schools:[]},a}return l()(n,[{key:"componentWillReceiveProps",value:function(e){this.props.value!==e.value&&this.updateSuggestions(e.value)}},{key:"updateSuggestions",value:function(e){var t=this;e?H().post("/schools/autocomplete",{query:e,size:this.props.size}).then((function(e){if(e.data){var n=e.data.map((function(e,t,n){return{index:t,item:W(W({},e),{},{key:e.id})}}));t.setState({schools:n})}else t.setState({schools:[]})})):this.setState({schools:[]})}},{key:"handleChange",value:function(e,t){void 0!==this.props.onChange&&this.props.onChange(e,t)}},{key:"handleSelect",value:function(e,t){void 0!==this.props.onSelect&&this.props.onSelect(e,t.item)}},{key:"render",value:function(){return d.createElement(j.A,{updateItems:this.updateSuggestions,value:this.props.value,items:this.state.schools,onChange:this.handleChange,onSelect:this.handleSelect,onSubmit:this.props.onSubmit,inputName:this.props.inputName,inputPlaceholder:this.props.inputPlaceholder,wrapperClassName:this.props.wrapperClassName,updateItemsOnFocus:this.props.updateItemsOnFocus,size:this.props.size,autoHighlight:this.props.autoHighlight})}}]),n}(d.Component);function Y(e){var t=X();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function X(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(X=function(){return!!e})()}Z.defaultProps={size:5,updateItemsOnFocus:!0,inputName:"",inputPlaceholder:""},Z.propTypes={value:z().oneOfType([z().string,z().number]).isRequired,onChange:z().func.isRequired,onSelect:z().func.isRequired,updateItemsOnFocus:z().bool,size:z().number,inputName:z().string,inputPlaceholder:z().string};var J=function(e){s()(n,e);var t=Y(n);function n(e){return r()(this,n),t.call(this,e)}return l()(n,[{key:"render",value:function(){return d.createElement("div",{className:"search-form__location flex-search home school"},d.createElement("label",{className:"away",htmlFor:"search-box"},"Search"),d.createElement(Z,D()({inputPlaceholder:"type school name to search catchment"},this.props)))}}]),n}(d.Component),ee=n(55814);function te(e){var t=ne();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function ne(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ne=function(){return!!e})()}var ae=function(e){s()(n,e);var t=te(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).handleInputValueChange=a.handleInputValueChange.bind(S()(a)),a.handleSchoolChange=a.handleSchoolChange.bind(S()(a)),a.handleSubmit=a.handleSubmit.bind(S()(a)),a.handleFormChange=a.handleFormChange.bind(S()(a)),a.handlePriceChange=L.A.bind(S()(a)),a.state=e.getSearchFilters("buy"),a.state.selectedSchool=null,a.state.selectedSchoolText=null,a.state.schoolInputValue="",a}return l()(n,[{key:"handleInputValueChange",value:function(e,t){this.setState((function(e,n){return{schoolInputValue:t}}))}},{key:"handleSchoolChange",value:function(e,t){this.setState((function(n,a){return{selectedSchool:t,selectedSchoolText:e,schoolInputValue:e}}))}},{key:"handleSubmit",value:function(e){this.state.selectedSchool&&this.state.schoolInputValue.trim()==this.state.selectedSchoolText?GA.track("SchoolSearch"):(e.preventDefault(),alert("Please select a school"))}},{key:"handleFormChange",value:function(e,t){var n={};n[t]=e,this.props.saveSearchFilter(e,t,!1),this.setState(n)}},{key:"render",value:function(){return d.createElement("form",{className:"search-form clearfix",method:"get",action:"/search",onSubmit:this.handleSubmit},d.createElement("input",{type:"hidden",name:"school",value:this.state.selectedSchool?this.state.selectedSchool.id:""}),d.createElement(J,{value:this.state.schoolInputValue,onChange:this.handleInputValueChange,onSelect:this.handleSchoolChange,wrapperClassName:"home-search-input-wrapper",autoHighlight:!0,suggestionsAbsolutePositioned:!0}),d.createElement("div",{className:"filterOptions home"},d.createElement(R.A,{outerDivClass:"refine-min-price",htmlFor:"minprice",label:"Min price"},d.createElement(I.A,{inputId:"minprice",inputName:"minPrice",handleChange:this.handlePriceChange,value:this.state.minPrice})),d.createElement(R.A,{outerDivClass:"refine-max-price",htmlFor:"maxprice",label:"Max price"},d.createElement(I.A,{inputId:"maxprice",inputName:"maxPrice",handleChange:this.handlePriceChange,value:this.state.maxPrice})),d.createElement(R.A,{outerDivClass:"refine-min-beds",htmlFor:"minbeds",label:"Bedrooms"},d.createElement(T.A,{inputId:"minbeds",inputName:"minBeds",handleChange:this.handleFormChange,value:this.state.minBeds})),d.createElement(O.A,{inputName:"ptype",handleChange:this.handleFormChange,value:this.state.ptype})),d.createElement("div",{className:"filter rent-school"},d.createElement(N.A,{handleChange:this.handleFormChange,checked:this.state.new,tab:"schoolTab",id:"new-school"}),d.createElement(ee.A,{handleChange:this.handleFormChange,checked:this.state.underOffer,id:"underoffer-school"})),d.createElement(x.A,null))}}]),n}(d.Component);function re(e){var t=ie();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function ie(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ie=function(){return!!e})()}var le=function(e){s()(n,e);var t=re(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).handleInputValueChange=a.handleInputValueChange.bind(S()(a)),a.handleLocationChange=a.handleLocationChange.bind(S()(a)),a.handleSubmit=a.handleSubmit.bind(S()(a)),a.setPtypeRef=a.setPtypeRef.bind(S()(a)),a.state={selectedLocation:null,locationInputValue:""},a}return l()(n,[{key:"handleInputValueChange",value:function(e,t){this.setState((function(e,n){return{locationInputValue:t}}))}},{key:"handleLocationChange",value:function(e,t){this.setState((function(n,a){return{selectedLocation:t,locationInputValue:e}}))}},{key:"handleSubmit",value:function(e){null===this.state.selectedLocation?(alert("Please select a location"),e.preventDefault()):(GA.track("PastSalesSearch"),this.ptype
1Select.value||this.ptypeSelect.removeAttribute("name"))}},{key:"setPtypeRef",value:function(e){this.ptypeSelect=e}},{key:"render",value:function(){return d.createElement("form",{className:"search-form",method:"get",action:"/house-prices/"+(this.state.selectedLocation?this.state.selectedLocation.key:""),onSubmit:this.handleSubmit},d.createElement(w.A,{value:this.state.locationInputValue,onChange:this.handleInputValueChange,onSelect:this.handleLocationChange,pastsales:!0,size:8,wrapperClassName:"home-search-input-wrapper",inputPlaceholder:"enter street, area or district",autoHighlight:!0,suggestionsAbsolutePositioned:!0}),d.createElement("div",{className:"filterOptions home"},d.createElement("div",{className:"refine-item refine-property-type"},d.createElement("label",{className:"select",htmlFor:"propertytype"},d.createElement("span",{className:"brand-type"},"Property type"),d.createElement("div",{className:"select__wrapper"},d.createElement("select",{name:"ptype",ref:this.setPtypeRef},d.createElement("option",{value:""},"Any"),d.createElement("option",{value:"0"},"House"),d.createElement("option",{value:"3"},"Flat")))))),d.createElement(x.A,null))}}]),n}(d.Component),oe=n(93637);function se(e){var t=ce();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function ce(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ce=function(){return!!e})()}var ue=function(e){s()(n,e);var t=se(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).getSearchFilters=window.localStorageService.getSearchFilters,a.saveSearchFilter=window.localStorageService.saveSearchFilter,a}return l()(n,null,[{key:"init",value:function(e){(0,m.createRoot)(document.getElementById(e)).render(d.createElement(n,null))}}]),l()(n,[{key:"render",value:function(){return d.createElement("div",null,d.createElement(E,null,d.createElement("dl",{className:"tabs four-up col small_4 large_12 edges clearfix no-bottom"},d.createElement(v,{text:"Buy",active:"true",href:"#buy"}),d.createElement(v,{text:"Rent",href:"#rent"}),d.createElement(v,{text:"Schools",href:"#schools"}),d.createElement(v,{text:"Sold Prices",className:"past-sales-tab",href:"#house-prices"})),d.createElement("ul",{className:"tabs-content four-up"},d.createElement("li",{id:"buyTab",className:"active"},d.createElement(C.A,{getSearchFilters:this.getSearchFilters,saveSearchFilter:this.saveSearchFilter,createUrl:oe.mp,rental:!1})),d.createElement("li",{id:"rentTab"},d.createElement(A,{getSearchFilters:this.getSearchFilters,saveSearchFilter:this.saveSearchFilter,createUrl:oe.mp,rental:!0})),d.createElement("li",{id:"schoolsTab",className:"schoolsTab"},d.createElement(ae,{getSearchFilters:this.getSearchFilters,saveSearchFilter:this.saveSearchFilter})),d.createElement("li",{id:"house-pricesTab"},d.createElement(le,null)))))}}]),n}(d.Component);"undefined"!=typeof window&&(window.homepageInit=ue.init)},53311:(e,t,n)=>{n.d(t,{A:()=>g});var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(56994),s=n.n(o),c=n(65611),u=n.n(c),h=n(18337),p=n.n(h),d=n(96540);function m(e){var t=f();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(f=function(){return!!e})()}var g=function(e){s()(n,e);var t=m(n);function n(e){return r()(this,n),t.call(this,e)}return l()(n,[{key:"render",value:function(){return d.createElement("button",{className:"main-search-button button inverse"},"Search")}}]),n}(d.Component)},11683:(e,t,n)=>{n.d(t,{A:()=>k});var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(41972),s=n.n(o),c=n(56994),u=n.n(c),h=n(65611),p=n.n(h),d=n(18337),m=n.n(d),f=n(26396),g=n.n(f),v=n(96540),y=n(5556),b=n.n(y);n(6147),n(91086);function E(e){var t=C();return function(){var n,a=m()(e);if(t){var r=m()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return p()(this,n)}}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(C=function(){return!!e})()}var k=function(e){u()(n,e);var t=E(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).mapContainerRefCallback=a.mapContainerRefCallback.bind(s()(a)),a.state={mapLoading:!0},a.initialBoundsChange=!0,a.onMoveEnd=a.onMoveEnd.bind(s()(a)),a}return l()(n,[{key:"mapContainerRefCallback",value:function(e){this.props.mapContainerRefCallback&&this.props.mapContainerRefCallback(e),this.mapContainer=e}},{key:"renderChildren",value:function(){var e=this,t=this.props.children;if(t&&this.map)return v.Children.map(t,(function(t){if(t)return v.cloneElement(t,{map:e.map})}))}},{key:"componentDidMount",value:function(){var e=new L.Map("leaftlet-map",{trackResize:this.props.trackResize});
1e.invalidateSize();var t=this.props.mapTilesUrl,n=new L.TileLayer(t,{minZoom:6,maxZoom:20,attribution:'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'});e.fitBounds(L.latLngBounds(this.props.bounds),{maxZoom:this.props.maxZoomAfterFitBounds}),e.addLayer(n),this.map=e,this.setState({mapLoading:!1}),this.bindEventHandlers()}},{key:"bindEventHandlers",value:function(){this.props.onClick&&this.map.on("click",this.props.onClick),this.props.onMoveEnd&&this.map.on("moveend",this.onMoveEnd),this.props.onZoomStart&&this.map.on("zoomstart",this.props.onZoomStart),this.props.onZoomEnd&&this.map.on("zoomend",this.props.onZoomEnd)}},{key:"onMoveEnd",value:function(e){this.props.onMoveEnd(e,this.map.getBounds())}},{key:"componentDidUpdate",value:function(e){if(this.map){this.props.height!=e.height&&this.map.invalidateSize();var t=L.latLngBounds(e.bounds),n=L.latLngBounds(this.props.bounds),a=.001;(Math.abs(n.getNorth()-t.getNorth())>a||Math.abs(n.getSouth()-t.getSouth())>a||Math.abs(n.getWest()-t.getWest())>a||Math.abs(n.getEast()-t.getEast())>a)&&(this.initialBoundsChange?(this.initialBoundsChange=!1,this.map.fitBounds(n,{maxZoom:this.props.maxZoomAfterFitBounds})):this.map.fitBounds(n,{maxZoom:this.props.maxZoomAfterFitBounds,animate:!0,pan:{duration:.5}}))}}},{key:"render",value:function(){var e=this.state,t=this.props;return v.createElement("div",{id:"leaftlet-map",className:t.className,style:{height:t.height,zIndex:0},ref:this.mapContainerRefCallback},e.mapLoading&&"Loading map...",e.mapLoading||this.renderChildren())}}]),n}(v.Component);g()(k,"defaultProps",{trackResize:!0}),k.propTypes={height:b().string}},58407:(e,t,n)=>{n.d(t,{A:()=>f});var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(56994),s=n.n(o),c=n(65611),u=n.n(c),h=n(18337),p=n.n(h);function d(e){var t=m();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function m(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(m=function(){return!!e})()}var f=function(e){s()(n,e);var t=d(n);function n(e){var a;r()(this,n);var i=(a=t.call(this,e)).props,l=i.html,o=i.className,s=i.iconSize,c=i.iconAnchor,u=i.riseOnHover,h=i.iconUrl,p=i.zIndexOffset,d=a.props,m=d.onClick,f=d.onMarkerAddedToMap,g={html:l,className:o,iconSize:s,iconAnchor:c,iconUrl:h};for(var v in g)void 0===g[v]&&delete g[v];var y={icon:l?L.divIcon(g):L.icon(g),riseOnHover:u,zIndexOffset:p};return a.marker=L.marker(a.props.position,y),a.marker.addTo(a.props.map),m&&a.marker.on("click",m),f&&f(a.marker),a}return l()(n,[{key:"componentWillUnmount",value:function(){this.marker.off("click",this.props.onClick),this.props.map.removeLayer(this.marker)}},{key:"render",value:function(){return null}}]),n}(n(96540).Component)},26253:(e,t,n)=>{n.d(t,{A:()=>N});var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(41972),s=n.n(o),c=n(56994),u=n.n(c),h=n(65611),p=n.n(h),d=n(18337),m=n.n(d),f=n(96540),g=n(6844);function v(e){var t=y();return function(){var n,a=m()(e);if(t){var r=m()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return p()(this,n)}}function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(y=function(){return!!e})()}var b=function(e){u()(n,e);var t=v(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).state={watchlistUrl:"/property/viewing?propertyId="+a.props.property.key},a}return l()(n,[{key:"render",value:function(){return f.createElement("table",null,f.createElement("tbody",null,f.createElement("tr",null,f.createElement("td",{className:"watchlist-property-details"},f.createElement("div",{className:"watchlist-address"},this.props.property.displayAddress),f.createElement("div",null,this.props.property.summary),this.props.property.bedrooms>0&&f.createElement("div",{className:"watchlist-features list"},f.createElement("div",null,this.props.property.bedrooms),f.createElement("span",{className:"icon bed"})),this.props.property.bathrooms>0&&f.createElement("div",{className:"watchlist-features list"},f.createElement("div",null,this.props.property.bathrooms),f.createElement("span",{className:"icon bath"})),this.props.property.receptionRooms>0&&f.createElement("div",{className:"watchlist-features list"},f.createElement("div",null,this.props.property.receptionRooms),f.createElement("span",{className:"icon couch"}))),f.createElement("td",{className:"watchlist-price"},f.createElement("div",null,this.props.property.offerType," "),f.createElement("div",null,this.props.property.price))),f.createElement("tr",null,f.createElement("td",null,f.createElement("div",{className:"watchlist-control
1s"},this.props.property.isActive?f.createElement("a",{className:"controlBtn",href:this.state.watchlistUrl},"Book Viewing"):null,this.props.property.isActive?f.createElement("a",{className:"controlBtn control-share",id:"list-control-share",onClick:this.props.handleShareProperty},"Share Property"):null,f.createElement("a",{className:"controlBtn control-remove",id:"list-control-remove",onClick:this.props.handleRemoveProperty},"Remove from Watchlist"))))))}}]),n}(f.Component);function E(e){var t=C();return function(){var n,a=m()(e);if(t){var r=m()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return p()(this,n)}}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(C=function(){return!!e})()}var k=function(e){u()(n,e);var t=E(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).state={watchlistUrl:"/property/viewing?propertyId="+a.props.property.key},a}return l()(n,[{key:"render",value:function(){return f.createElement("div",null,f.createElement("div",{className:"property-details-grid"},this.props.property.isExclusive&&f.createElement("div",{className:"property_result__sol-logo"},f.createElement("img",{src:this.props.property.solicitorLogoUrl})),f.createElement("div",{className:"infoTopWrap"},f.createElement("span",{className:"offersOver"},this.props.property.offerType," ","Price on Application"!==this.props.property.offerType&&f.createElement("span",{className:"grid-view-price"},this.props.property.price)),f.createElement("div",{className:"watchlist-features grid-view"},this.props.property.bedrooms>0&&f.createElement("span",{className:"opt"},this.props.property.bedrooms,f.createElement("span",{className:"icon grid-view bed"})),this.props.property.bathrooms>0&&f.createElement("span",{className:"opt"},this.props.property.bathrooms,f.createElement("span",{className:"icon grid-view bath"})),this.props.property.receptionRooms>0&&f.createElement("span",{className:"opt"},this.props.property.receptionRooms,f.createElement("span",{className:"icon grid-view couch"})))),f.createElement("div",{className:"grid-view-address"},this.props.property.displayAddress),f.createElement("div",{className:"quick-desc"},this.props.property.summary)),f.createElement("div",{className:"watchlist-controls"},this.props.property.isActive?f.createElement("a",{className:"controlBtn grid-view",href:this.state.watchlistUrl},"Book Viewing"):null,this.props.property.isActive?f.createElement("a",{className:"controlBtn grid-view control-share",onClick:this.props.handleShareProperty},"Share"):null,f.createElement("a",{className:"controlBtn grid-view control-remove",onClick:this.props.handleRemoveProperty},"Remove")))}}]),n}(f.Component);function S(e){var t=w();return function(){var n,a=m()(e);if(t){var r=m()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return p()(this,n)}}function w(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(w=function(){return!!e})()}var N=function(e){u()(n,e);var t=S(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).handleShareProperty=a.handleShareProperty.bind(s()(a)),a.handleRemoveProperty=a.handleRemoveProperty.bind(s()(a)),a}return l()(n,[{key:"handleShareProperty",value:function(e){(0,g.TX)(e,this.props.property)}},{key:"handleRemoveProperty",value:function(){(0,g.j)(this.props.property.key).then(this.props.update)}},{key:"render",value:function(){var e={background:"url("+this.props.property.bigImageUrl+") center center no-repeat",backgroundSize:"cover"},t="";"grid"==this.props.view&&(t+="grid-view");var n="property-result__thumb";return"grid"==this.props.view&&(n+=" grid-view"),f.createElement(f.Fragment,null,f.createElement("div",{className:"list"==this.props.view||null==this.props.view?"watchlist-property-image list":"watchlist-property-image grid-view"},f.createElement("a",{href:this.props.property.propertyDetailsUrl,className:t},f.createElement("div",{className:n,style:e},this.props.property.isNew&&!this.props.property.isUnderOffer&&(null==this.props.property.closingDate||this.props.property.closingDate<(new Date).toLocaleStr
1ing())&&f.createElement("div",{className:"property-result__flag property-result__flag--new"},"New"),this.props.property.isUnderOffer&&f.createElement("div",{className:"property-result__flag property-result__flag--under-offer"},"Under Offer"),this.props.property.isExclusive&&f.createElement("div",{className:"property-result__flag property-result__flag--exclusive"},"Exclusive â
"),this.props.property.isUnderOffer&&null!==this.props.property.closingDate&&this.props.property.closingDate>(new Date).toLocaleString()&&f.createElement("div",{className:"property-result__flag property-result__flag--under-offer"},"Closing Date")))),"list"==this.props.view||null==this.props.view?f.createElement(b,{property:this.props.property,handleShareProperty:this.handleShareProperty,handleRemoveProperty:this.handleRemoveProperty}):f.createElement(k,{property:this.props.property,handleShareProperty:this.handleShareProperty,handleRemoveProperty:this.handleRemoveProperty}))}}]),n}(f.Component)},20385:(e,t,n)=>{var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(41972),s=n.n(o),c=n(56994),u=n.n(c),h=n(65611),p=n.n(h),d=n(18337),m=n.n(d),f=n(96540),g=n(72505),v=n.n(g),y=n(26253);function b(e){var t=e.sortOptions,n=e.sortBy,a=e.onSortChanged,r=t.map((function(e){var t=e.sortBy+"_"+e.sortAscending;return f.createElement("option",{label:e.label,value:t,key:e.label},e.label)}));return f.createElement("div",{className:"metaLeft"},f.createElement("div",{className:"customSelect light"},f.createElement("select",{id:"sort",value:n.sortBy+"_"+n.sortAscending,onChange:a},r)))}function E(e){var t=C();return function(){var n,a=m()(e);if(t){var r=m()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return p()(this,n)}}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(C=function(){return!!e})()}var k=function(e){u()(n,e);var t=E(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).handleViewChange=a.handleViewChange.bind(s()(a)),a}return l()(n,[{key:"handleViewChange",value:function(e){this.props.onViewChange(e)}},{key:"render",value:function(){var e=this,t="resultsMode list",n="resultsMode grid-view";return"grid"==this.props.viewSelected&&(n+=" active"),"list"==this.props.viewSelected&&(t+=" active"),f.createElement("div",{className:"metaRight"},f.createElement("a",{className:t,onClick:function(){return e.handleViewChange("list")}},f.createElement("span",{className:"title"},"LIST VIEW"),f.createElement("span",{className:"icon"})),f.createElement("a",{className:n,onClick:function(){return e.handleViewChange("grid")}},f.createElement("span",{className:"title"},"GRID VIEW"),f.createElement("span",{className:"icon"})))}}]),n}(f.Component);function S(e){var t=Math.ceil(e.totalResults/e.pageSize),n="page prev";1==e.page&&(n="disable");var a="page next";function r(t){t.preventDefault(),e.handlePage(t.currentTarget.value)}return e.page==t&&(a="disable"),f.createElement("section",null,f.createElement("div",{className:"paginationWrap"},f.createElement("ul",{className:"paginationList"},e.page>1?[f.createElement("li",{key:"previous"},f.createElement("a",{href:e.getUrlFunc({page:e.page-1}),className:n,onClick:function(t){t.preventDefault(),e.handlePage(e.page-1)}},"<")),f.createElement("li",{key:"page1"},f.createElement("a",{href:e.getUrlFunc({page:1}),className:"page",onClick:function(t){t.preventDefault(),e.handlePage(1)}},"1"))]:f.createElement("li",{key:"previousDisabled"},f.createElement("a",{className:n},"<")),t>1&&3==e.page?f.createElement("li",{key:"page2",value:e.page-1,onClick:r},f.createElement("a",{href:e.getUrlFunc({page:2}),className:"page"},"2")):null,t>1&&e.page>4?f.createElement("li",{key:"dots"},f.createElement("span",{className:"dots"},"...")):null,e.page>3?[f.createElement("li",{key:"previous2",value:e.page-2,onClick:r},f.createElement("a",{href:e.getUrlFunc({page:e.page-2}),className:"page"},e.page-2)),f.createElement("li",{key:"previous1",value:e.page-1,onClick:r},f.createElement("a",{href:e.getUrlFunc({page:e.page-1}),className:"page"},e.page-1))]:null,f.createElement("li",{key:"activePage"},f.createElement("a",{href:e.getUrlFunc({page:e.page}),className:"page active"},e.page)),t>e.page+1?f.createElement("li",{key:"next1",value:e.page+1,onClick:r},f.createElement("a",{href:e.getUrlFunc({page:e.page+1}),className:"page"},e.page+1)):null,t>e.page+2?f.createElement("li",{key:"next2",value:e.page+2,onClick:r},f.createElement("a",{href:e.getUrlFunc({page:e.page+2}),className:"page"},e.page+2)):null,e.page<t-3?f.createElement("li",{key:"nextDots"},f.createElement("span",{className:"dots"},"...")):null,e.page<t?[f.createElement("li",{key:"lastPage"},f.createElement("a",{href:e.getUrlFunc({page:t}),className:"page",onClick:function(t){t.preventDefault(),e.handlePage(Math.ceil(e.totalResults/e.pageSize))}},t)),f.createElement("li",{key:"next"},f.createElement("a",{href:e.getUrlFunc({page:e.page+1}),className:a,onClick:function(t){t.preventDefault(),e.handlePage(e.page+1)}},">"))]:f.createElement("li",{key:"nextDisabled"},f.createElement("a",{className:a},">"))),f.createElement("div",{className:"results-per-page"},e.pageSize*(e.page-1)+1," - ",Math.min(e.page*e.pageSize,e.totalResults)," of ",e.totalResults," properties at ",f.createElement("select",{value:e.pageSize,onChange:function(t){t.preventDefault(),e.handlePageSize(t.target.value)}},f.createElement("option",{value:"10"},"10"),f.createElement("option",{value:"20"},"20"),f.createElement("option",{value:"50"},"50"))," per page")))}var w=n(6844),N=n(5338);function P(e){var t=x();return function(){var n,a=m()(e);if(t){var r=m()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return p()(this,n)}}function x(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(x=function(){return!!e})()}var R=function(e){u()(n,e);var t=P(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).state={sortOptions:e.sortOptions,sortByItem:e.sortBy,viewOptions:["list","grid"],viewSelected:"grid"==e.watchlistData.view?"grid":"list",watchlistItems:e.watchlistItems,page:e.watchlistData.page,pageSize:10,totalResults:e.watchlistData.totalResults},a.handleSortOrderChanged=a.sortOrderChanged.bind(s()(a)),a.handleViewChange=a.handleViewChange.bind(s()(a)),a.handlePageChange=a.handlePageChange.bind(s()(a)),a.handlePageSizeChange=a.handlePageSizeChange.bind(s()(a)),a.update=a.update.bind(s()(a)),a.updateCurrentUrl=a.updateCurrentUrl.bind(s()(a)),a.handleUpdateTabs=a.handleUpdateTabs.bind(s()(a)),a.getUrl=a.getUrl.bind(s()(a)),a.listRef=f.createRef(),a}return l()(n,[{key:"sortOrderChanged",value:function(e){var t=e.target.value.split("_");this.setState({sortByItem:this.props.sortOptions.filter((function(e){return e.sortBy===t[0]&&String(e.sortAscending)===t[1]}))[0],page:1},this.update)}},{key:"handleViewChange",value:function(e){this.setState({viewSelected:e},this.update)}},{key:"handlePageChange",value:function(e){this.setState({page:e},this.update),this.listRef.current&&this.listRef.current.scrollIntoView(!0)}},{key:"handlePageSizeChange",value:function(e){this.setState({pageSize:e,page:1},this.update)}},{key:"update",value:function(){var e=this;v().get("/watchlist",{params:{sortby:this.state.sortByItem.sortBy,sortascending:this.state.sortByItem.sortAscending,page:this.state.page,pageSize:this.state.pageSize,view:this.state.viewSelected}}).then((function(t){e.setState({watchlistItems:t.data.properties,sortByItem:t.data.sort,totalResults:t.data.totalResults,page:t.data.page,pageSize:t.data.pageSize,viewSelected:t.data.view})})).then(this.handleUpdateTabs).then(this.updateCurrentUrl)}},{key:"updateCurrentUrl",value:function(){var e=window.location.pathname,t=new URLSearchParams,n=this.state.page>1?this.state.page:"",a="list"==this.state.viewSelected?"":"grid",r="added"==this.state.sortByItem.sortby?"":"date"==this.state.sortByItem.sortBy?"new":"price"==this.state.sortByItem.sortBy&&1==this.state.sortByItem.sortAscending?"priceasc":"price"==this.state.sortByItem.sortBy&&0==this.state.sortByItem.sortAscending?"pricedesc":"";n&&t.append("p",n),a&&t.append("view",a),r&&t.append("sortby",r),""!==(null==t?void 0:t.toString())&&
1(e=e+"?"+t.toString()),window.history.pushState({},null,e)}},{key:"handleUpdateTabs",value:function(){(0,w.Ul)(this.state.totalResults)}},{key:"getUrl",value:function(){return null}},{key:"render",value:function(){var e=this;if(this.state.watchlistItems.length>0){var t=f.createElement(b,{sortOptions:this.state.sortOptions,sortBy:this.state.sortByItem,onSortChanged:this.handleSortOrderChanged}),n=f.createElement(k,{viewOptions:this.state.viewOptions,viewSelected:this.state.viewSelected,onViewChange:this.handleViewChange}),a=this.state.watchlistItems.map((function(t){var n="property-result watchlist-property";"grid"==e.state.viewSelected&&(n+=" grid-view");var a=n+" expired",r=n+" limelight";return t.isActive?t.isFeatured?f.createElement("article",{className:r,data:t.Key,key:t.key},f.createElement("div",{className:"title"},"Featured property"),f.createElement(y.A,{property:t,view:e.state.viewSelected,update:e.update})):f.createElement("article",{className:n,data:t.key,key:t.key},f.createElement(y.A,{property:t,view:e.state.viewSelected,update:e.update})):f.createElement("article",{className:a,data:t.key,key:t.key},f.createElement(y.A,{property:t,view:e.state.viewSelected,update:e.update}))}));return f.createElement(f.Fragment,null,f.createElement("div",{className:"watchlist-meta",ref:this.listRef},t),f.createElement("div",{className:"watchlist-view"},n),f.createElement("div",{className:"watchlist-results"},a),f.createElement("div",null," ",f.createElement(S,{page:this.state.page,pageSize:this.state.pageSize,totalResults:this.state.totalResults,handlePage:this.handlePageChange,handlePageSize:this.handlePageSizeChange,getUrlFunc:this.getUrl})))}return f.createElement(f.Fragment,null,(null===this.props.watchlistItems||0===this.props.watchlistItems.length)&&f.createElement("div",{className:"clearfix"},f.createElement("p",null,'You\'ve not watchlisted any properties yet. You can do so by clicking "Watchlist" on either the property list or the property details page.')))}}],[{key:"init",value:function(e,t){(0,N.createRoot)(document.getElementById(e)).render(f.createElement(n,{watchlistItems:t.properties,watchlistData:t,sortOptions:t.sortOptions,sortBy:t.sort,viewSelected:"grid"==t.view?"grid":"list"}))}}]),n}(f.Component);"undefined"!=typeof window&&(window.watchlistInit=R.init)},57976:(e,t,n)=>{var a=n(26396),r=n.n(a),i=n(82274),l=n.n(i),o=n(41972),s=n.n(o),c=n(65044),u=n.n(c),h=n(56994),p=n.n(h),d=n(65611),m=n.n(d),f=n(18337),g=n.n(f),v=n(96540),y=n(55373),b=n.n(y),E=n(40961),C=n(75968);function k(e){var t=S();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(S=function(){return!!e})()}var w=function(e){p()(n,e);var t=k(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).prepare=a.prepare.bind(s()(a)),a.state={googleTagLoaded:!1,loaded:!1},a}return u()(n,[{key:"componentDidMount",value:function(){var e=this;googletag.cmd.push((function(){e.setState({googleTagLoaded:!0})})),window.adsRenderCalled?void 0!==window["slot"+this.props.adSlotId]?googletag.pubads().refresh([window["slot"+this.props.adSlotId]]):(this.prepare(),window.renderAd(this.props.containerId)):(window.prepareGoogleAdFunctions=window.prepareGoogleAdFunctions||[],prepareGoogleAdFunctions.push(this.prepare)),this.props.reserveSpace&&googletag.cmd.push((function(){googletag.pubads().addEventListener("slotOnload",(function(t){t.slot.getSlotElementId()===e.props.containerId&&e.setState({loaded:!0})}))}))}},{key:"prepare",value:function(){"undefined"!=typeof window&&window.adTargeting.prepareGoogleAd(JSON.parse(this.props.mapping),this.props.publisherId,this.props.adSlotId,this.props.containerId,this.props.adTargeting)}},{key:"render",value:function(){return this.state.googleTagLoaded?v.createElement("div",{id:this.props.containerId,key:this.props.containerId,className:this.props.className+(this.props.reserveSpace&&!this.state.loaded?" loading":"")}):null}}]),n}(v.Component);function N(e){var t=P();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function P(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(P=function(){return!!e})()}var x=function(e){p()(n,e);var t=N(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).state={value:a.props.initialLocation},a.onLocationInputChange=a.onLocationInputChange.bind(s()(a)),a.onLocationSelect=a.onLocationSelect.bind(s()(a)),a.onSoldChange=a.onSoldChange.bind(s()(a)),a.onPropertyTypeFilterChange=a.onPropertyTypeFilterChange.bind(s()(a)),a}
1return u()(n,[{key:"componentDidUpdate",value:function(e){if(e.mobileFiltersVisible!==this.props.mobileFiltersVisible){var t,n,a=this.props.mobileFiltersVisible;a?(t="0%",n="-110%"):(t="-110%",n="0%"),$(".filters").velocity("stop"),$(".filters").velocity({right:t},{begin:function(){a?($("footer").hide(),$(".filters").show(),setTimeout((function(){$(".filters").parent().height($(".filters").height())}),0)):$(".filters").parent().height("")},complete:function(){a||($("footer").show(),$(".filters").hide(),$(".filters").css("top",0))}}),$(".results-list").velocity("stop"),$(".results-list").velocity({left:n})}}},{key:"onLocationInputChange",value:function(e,t){this.setState({value:t})}},{key:"onLocationSelect",value:function(e,t){this.setState({value:e}),this.props.onLocationChange(t)}},{key:"onSoldChange",value:function(e){this.props.onSoldChange(e.target.value?window.parseInt(e.target.value):null)}},{key:"onPropertyTypeFilterChange",value:function(e){this.props.onPropertyTypeFilterChange(window.parseInt(e.target.value),e.target.checked)}},{key:"render",value:function(){return v.createElement("div",{className:"filters col small_4 medium_3 large_3"},v.createElement("section",{className:"filter-section"},v.createElement("h2",{className:"filter-section__header"},"Refine your search"),v.createElement("div",{className:"filter-section__item filter-section__item--beds-price"},v.createElement("label",null,"Location"),v.createElement(C.A,{value:this.state.value,onChange:this.onLocationInputChange,onSelect:this.onLocationSelect,pastsales:!0,suggestionsAbsolutePositioned:!0}),v.createElement("label",null,"Sold "),v.createElement("select",{name:"sold",value:this.props.sold||"",onChange:this.onSoldChange},v.createElement("option",{label:"Anytime",value:""},"Anytime"),v.createElement("option",{label:"Last 3 months",value:"3"},"Last 3 months"),v.createElement("option",{label:"Last 6 months",value:"6"},"Last 6 months"),v.createElement("option",{label:"Last 12 months",value:"12"},"Last 12 months"),v.createElement("option",{label:"Last 2 years",value:"24"},"Last 2 years"),v.createElement("option",{label:"Last 3 years",value:"36"},"Last 3 years"),v.createElement("option",{label:"Last 5 years",value:"60"},"Last 5 years"))),v.createElement("div",{className:"filter-section__item filter-section__item--beds-price"},v.createElement("label",null,"Property type"),v.createElement("ul",{className:"filter-section__lister filter-listacitem"},v.createElement("li",{className:"filter-section__item clearfix"},v.createElement("label",{className:"filter-checkbox"},v.createElement("input",{type:"checkbox",value:"0",onChange:this.onPropertyTypeFilterChange,checked:this.props.ptype.indexOf(0)>=0})," House")),v.createElement("li",{className:"filter-section__item clearfix"},v.createElement("label",{className:"filter-checkbox"},v.createElement("input",{type:"checkbox",value:"3",onChange:this.onPropertyTypeFilterChange,checked:this.props.ptype.indexOf(3)>=0})," Flat"))))),v.createElement(w,{key:this.props.ad.adSlotId,mapping:this.props.ad.mapping,publisherId:this.props.ad.publisherId,adSlotId:this.props.ad.adSlotId,containerId:this.props.ad.container,className:this.props.ad.style,adTargeting:this.props.adTargeting}),v.createElement("div",{className:"mobile-view-section",style:{display:this.props.mobileFiltersVisible?"block":"none"}},v.createElement("p",{className:"message "+(this.props.total?"info":"error")},this.props.total," total properties matching your criteria"),v.createElement("button",{className:"button",onClick:this.props.onMobileFiltersVisibilityChange},"Back to results")))}}]),n}(v.Component);const R=new(function(){function e(){l()(this,e)}return u()(e,[{key:"getAll",value:function(){return[{name:"sortby",defaultValue:"datedesc",validValues:["datedesc","priceasc","pricedesc"],optionLabels:{"Recently sold":"datedesc","Price (low to high)":"priceasc","Price (high to low)":"pricedesc"}},{name:"ps",longName:"pageSize",type:"integer",defaultValue:10,validValues:[10,25,50]},{name:"p",longName:"page",type:"integer",defaultValue:1,isValid:function(e){return e>0}},{name:"sold",type:"integer",defaultValue:null,validValues:[null,3,6,12,24,36,60],optionLabels:{Anytime:null,"
1Last 3 months":3,"Last 6 months":6,"Last 12 months":12,"Last 2 years":24,"Last 3 years":36,"Last 5 years":60}},{name:"ptype",type:"integer",isArray:!0,defaultValue:[],validValues:[0,3],optionLabels:{House:0,Flat:3},customHandler:function(e){return e.split(",",2).map((function(e){return parseInt(e)}))}},{name:"key"}]}},{key:"getByName",value:function(e){for(var t=this.getAll(),n=0;n<t.length;n++){var a=t[n];if(a.name===e||a.longName===e)return a}return null}}]),e}());const T=new(function(){function e(){l()(this,e)}return u()(e,[{key:"getQueryObjectFromUrl",value:function(){for(var e={},t=b().parse(window.location.search,{ignoreQueryPrefix:!0}),n=R.getAll(),a=0;a<n.length;a++){var r=n[a],i=t[r.name];if(i){r.customHandler?i=e[r.longName?r.longName:r.name]=r.customHandler(i):"integer"===r.type&&(i=window.parseInt(i));var l=!1;if(r.isValid)l=r.isValid(i);else if(r.validValues)if(i instanceof Array&&i.length>0){l=!0;for(var o=0;o<i.length;o++){for(var s=i[o],c=!1,u=0;u<r.validValues.length;u++)if(s==r.validValues[u]){c=!0;break}l=l&&c}}else for(var h=0;h<r.validValues.length;h++)i==r.validValues[h]&&(l=!0);else l=!0;e[r.longName?r.longName:r.name]=l?i:r.defaultValue}else void 0!==r.defaultValue&&(e[r.longName?r.longName:r.name]=r.defaultValue)}return e}},{key:"createUrl",value:function(e,t){var n,a={};for(var r in e){var i=R.getByName(r);null!==i&&(void 0!==i.defaultValue?i.isArray&&i.defaultValue instanceof Array?i.defaultValue.sort().join()!==e[r].sort().join()&&(a[i.name]=e[r].sort().join()):i.defaultValue!==e[r]&&(a[i.name]=e[r]):i.isArray?e[r]&&e[r].length>0&&(a[i.name]=e[r].join()):"key"===r?n=e.key:a[i.name]=e[r])}t||(a.view="map");var l=b().stringify(a,{encode:!1});return n+(l?"?"+l:"")}},{key:"createQueryString",value:function(e){var t=this.createUrl(e,!0),n=t.indexOf("?"),a=null;return a=n>-1?t.substring(n):"?",a+=("?"===a?"":"&")+"key="+t.substring(0,-1===n?void 0:n)}}]),e}());function I(e){var t=O();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function O(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(O=function(){return!!e})()}var F=function(e){p()(n,e);var t=I(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).onFirstPageClick=a.onFirstPageClick.bind(s()(a)),a.onPreviousPageClick=a.onPreviousPageClick.bind(s()(a)),a.onNextPageClick=a.onNextPageClick.bind(s()(a)),a.onLastPageClick=a.onLastPageClick.bind(s()(a)),a.onPageSizeChange=a.onPageSizeChange.bind(s()(a)),a}return u()(n,[{key:"onFirstPageClick",value:function(e){e.preventDefault(),window.scrollTo(0,0),this.props.onPageChange(1)}},{key:"onPreviousPageClick",value:function(e){e.preventDefault(),window.scrollTo(0,0),this.props.onPageChange(this.props.page-1)}},{key:"onNextPageClick",value:function(e){e.preventDefault(),window.scrollTo(0,0),this.props.onPageChange(this.props.page+1)}},{key:"onLastPageClick",value:function(e){e.preventDefault(),window.scrollTo(0,0);var t=this.props.total,n=this.props.pageSize;this.props.onPageChange(Math.floor(t/n)+(t%n?1:0))}},{key:"onPageSizeChange",value:function(e){window.scrollTo(0,0);var t=parseInt(e.target.value);this.props.onPageSizeChange(t)}},{key:"render",value:function(){var e=this.props,t=e.page,n=e.pageSize,a=e.total,r=e.createUrlForPage;return v.createElement("section",{className:"pagination"},v.createElement("div",{className:"clearfix"},t<=1&&v.createElement("span",{className:"first icon-to-start"},"First"),t<=1&&v.createElement("span",{className:"previous icon-left-dir"},"Prev"),t>1&&v.createElement("a",{href:r(1),className:"first icon-to-start",onClick:this.onFirstPageClick},"First"),t>1&&v.createElement("a",{href:r(t-1),className:"previous icon-left-dir",onClick:this.onPreviousPageClick},"Previous"),n*t>=a&&v.createElement("span",{className:"next icon-right-dir right"},"Next"),n*t>=a&&v.createElement("span",{className:"last icon-to-end right"},"Last"),n*t<a&&v.createElement("a",{href:r(t+1),className:"next icon-right-dir right",onClick:this.onNextPageClick},"Next"),n*t<a&&v.createElement("a",{href:r(Math.floor(a/n)+(a%n?1:0)),className:"last icon-to-end right",onClick:this.onLastPageClick},"Last")),v.createElement("div",{className:"results-per-page"},(t-1)*n+1,"-",a>t*n?t*n:a," of ",a," properties at "," ",v.createElement("select",{onChange:this.onPageSizeChange},v.createElement("option",{value:"10"},"10"),v.createElement("option",{value:"25"},"25"),v.createElement("option",{value:"50"},"50"))," ","per page"))}}]),n}(v.Component);function M(e){var t=e.property,n=new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",minimumFractionDigits:0}),a=t.address.displayAddress.split(","),r=a.map((function(e,t){return t===a.length-1?v.createElement("span",{key:e,style:{whiteSpace:"nowrap"}},e.trim()):[v.createElement("span",{key:e,style:{whiteSpace:"nowrap"}},e.trim()+","),v.createElement("span",{key:e+"space"}," ")]})),i=t.saleHistory.filter((function(e){return"espc"===e.source})).length>0,l=[v.createElement("h2",{key:"header",className:"property-result__address"},r),i&&v.createElement("p",{className:"quick-desc"},!!t.bedrooms&&v.createElement("span",null,t.bedrooms," Bed "),v.createElement("span",null,t.type.n
1ame),!!t.receptionRooms&&v.createElement("span",null," with "),!!t.receptionRooms&&(1===t.receptionRooms?v.createElement("span",null,t.receptionRooms," public room"):v.createElement("span",null,t.receptionRooms," public rooms"))),t.saleHistory.map((function(e,t){return v.createElement("p",{className:"price",key:e.sellingPrice+e.date},0===t&&v.createElement("strong",null,n.format(e.sellingPrice)),0!==t&&v.createElement("span",{style:{fontSize:"1em"}},n.format(e.sellingPrice))," "," on ",new Date(e.date).toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"}))}))];return v.createElement("article",{className:"property-result clearfix"},i?v.createElement("a",{href:t.url,target:"_self",className:"clearfix"}," ",l," "):v.createElement("div",{className:"ros-record clearfix"},l))}var A=n(32017),B=n.n(A),D=n(72505),U=n.n(D);function V(e){var t=_();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function _(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_=function(){return!!e})()}var z=function(e){p()(n,e);var t=V(n);function n(e){return l()(this,n),t.call(this,e)}return u()(n,[{key:"componentDidMount",value:function(){this.props.properties||this.getProperties()}},{key:"componentDidUpdate",value:function(e){B()(this.props.query,e.query)||this.getProperties()}},{key:"getProperties",value:function(){var e=this,t="/soldproperties/listdata"+T.createQueryString(this.props.query);return this.props.onLoadingChange(!0),U().get(t).then((function(t){e.props.onDataReceived(t.data)}))}},{key:"render",value:function(){var e=null;if(this.props.properties&&this.props.properties.length>0){if((e=this.props.properties.map((function(e){return v.createElement(M,{property:e,key:e.url})}))).length>2){var t=this.props.leaderboardAd;e.splice(2,0,v.createElement(w,{key:t.adSlotId,mapping:t.mapping,publisherId:t.publisherId,adSlotId:t.adSlotId,containerId:t.container,className:t.style,adTargeting:this.props.adTargeting,reserveSpace:!0}))}e.length>4&&e.splice(4,0,v.createElement("div",{key:-1,className:"results-ad"},v.createElement("a",{href:"/valuations",className:"icon-pound button"},"Get a Free Property Valuation")))}return[v.createElement("section",{key:"property-list",className:"search-results__lister",id:"propertiesList"},e),v.createElement(F,{key:"pagination",total:this.props.total,page:this.props.query.page,pageSize:this.props.query.pageSize,onPageChange:this.props.onPageChange,onPageSizeChange:this.props.onPageSizeChange,createUrlForPage:this.props.createUrlForPage})]}}]),n}(v.Component);function j(e){var t=e.total,n=e.locationText,a=e.onMobileFiltersVisibilityChange;return v.createElement("div",{className:"search-results__header"},v.createElement("h1",null,t?v.createElement("span",null,t," properties"):v.createElement("span",null,"No properties"),v.createElement("span",null," sold in "),v.createElement("span",null,n)),v.createElement("a",{className:"refine icon-right-open right",href:"#",onClick:function(e){e.preventDefault(),a()}},"Refine"))}function q(e){var t=e.sortby,n=e.onSortChange;return v.createElement("div",{className:"search-results__sort clearfix"},v.createElement("label",{htmlFor:"sort"},"Order by")," ",v.createElement("select",{id:"sort",value:t,onChange:n},v.createElement("option",{label:"Recently sold",value:"datedesc"},"Recently sold"),v.createElement("option",{label:"Price (low to high)",value:"priceasc"},"Price (low to high)"),v.createElement("option",{label:"Price (high to low)",value:"pricedesc"},"Price (high to low)")))}function H(e){var t=e.isList,n=e.onViewChange;return v.createElement("div",{className:"search-results__toggle-view",id:"searchOptions"},v.createElement("button",{className:"choose-list icon-th-list "+(t?"active":""),onClick:function(){return n(!0)}},"List"),v.createElement("button",{className:"choose-map icon-map "+(t?"":"active"),onClick:function(){return n(!1)}},"Map"))}var K=n(11683),W=n(16193),G=n.n(W),Q=n(58407);function Z(e){var t=Y();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function Y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Y=function(){return!!e})()}var X=function(e){p()(n,e);var t=Z(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).handleMarkerAddedToMap=a.handleMarkerAddedToMap.bind(s()(a)),a.handleClick=a.handleClick.bind(s()(a)),a}return u()(n,[{key:"handleMarkerAddedToMap",value:function(e){this.marker=e}},{key:"handleClick",value:function(e){0===this.props.properties.length?this.props.map.setVie
1w(e.latlng,this.props.map.getZoom()+2):this.props.onClick(this.props.position,this.props.properties)}},{key:"render",value:function(){var e=this.props,t=e.count,n=(e.properties,'<div class="'+(t>1?"cluster":"single")+' c-white">'+(t>1?t:'<span class="map-pin__icon icon-home"></span>')+'</div><span class="triangle"></span>');return v.createElement(Q.A,G()({html:n,className:"map-pin",iconSize:["auto","auto"],iconAnchor:[14,34],onMarkerAddedToMap:this.handleMarkerAddedToMap},this.props,{onClick:this.props.onClick?this.handleClick:null}))}}]),n}(v.Component);function J(e){var t=ee();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function ee(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ee=function(){return!!e})()}var te=function(e){p()(n,e);var t=J(n);function n(e){return l()(this,n),t.call(this,e)}return u()(n,[{key:"componentDidMount",value:function(){var e=this;"undefined"!=typeof window&&(this.reactPortal=document.createElement("div"),this.popup=L.popup({minWidth:250,maxWidth:250,maxHeight:200,closeButton:!1}).setLatLng(this.props.position).setContent(this.reactPortal).openOn(this.props.map),this.props.map.on("popupclose",this.props.onClose),this.props.map.on("autopanstart",(function(){console.log("autopanstart"),e.props.onAutoPanTriggered()})),this.forceUpdate())}},{key:"componentDidUpdate",value:function(){this.popup.update()}},{key:"componentWillUnmount",value:function(){this.props.map.off("popupclose",this.props.onClose),this.props.map.off("autopanstart",this.props.onAutoPanTriggered),this.wrapperElement=null,this.reactPortal=null,this.popup=null,this.props.map.closePopup()}},{key:"render",value:function(){var e=new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",minimumFractionDigits:0});if(!this.reactPortal||!this.props.properties)return null;var t=this.props.properties.map((function(t,n){var a=t.sales.filter((function(e){return"espc"===e.source})).length>0;return v.createElement("div",{key:t.id,className:"properties-popup "+(n%2?"odd":"even")},a?v.createElement("a",{href:t.url,target:"_blank",className:"address"},t.displayAddress):v.createElement("p",{className:"address"},t.displayAddress," "),a&&v.createElement("p",{className:"quick-desc"},t.summary),t.sales.map((function(t){return v.createElement("p",{className:"price",key:t.reference},v.createElement("strong",null,e.format(t.sellingPrice))," on ",new Date(t.date).toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"}))})))}));return E.createPortal(t,this.reactPortal)}}]),n}(v.Component),ne=n(54548);function ae(e){var t=re();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function re(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(re=function(){return!!e})()}var ie=function(e){p()(n,e);var t=ae(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).state={properties:null,bounds:null,width:null,height:"500px",popupPosition:null,popupProperties:null,popupOpen:!1},a.saveMapContainerDomNodeRef=a.saveMapContainerDomNodeRef.bind(s()(a)),a.updateMapDimensions=a.updateMapDimensions.bind(s()(a)),a.getInitialBounds=a.getInitialBounds.bind(s()(a)),a.getProperties=a.getProperties.bind(s()(a)),a.handleMoveEnd=a.handleMoveEnd.bind(s()(a)),a.handleMarkerClick=a.handleMarkerClick.bind(s()(a)),a.handlePopupClose=a.handlePopupClose.bind(s()(a)),a.handleAutoPanOnPopupOpen=a.handleAutoPanOnPopupOpen.bind(s()(a)),a}return u()(n,[{key:"componentDidMount",value:function(){var e=this;this.getInitialBounds().then((function(t){e.setState({bounds:[t.data.topLeft,t.data.botRight]})})),this.resizeHandler=(0,ne.sg)(this.updateMapDimensions,150).bind(this),window.addEventListener("resize",this.resizeHandler),this.previousHeight=window.document.documentElement.clientHeight}},{key:"componentDidUpdate",value:function(e){B()(this.props.query,e.query)||(this.supressNextMoveEnd=!0,this.getProperties())}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.resizeHandler)}},{key:"updateMapDimensions",value:function(){if(this.mapContainer&&this.previousHeight!==window.document.documentElement.clientHeight){this.previousHeight=window.document.documentElement.clientHeight;var e=E.findDOMNode(this.mapContainer);this.supressNextMoveEnd=!0,this.setState({height:Math.round(window.innerHeight-e.getBoundingClientRect().top-window.pageYOffset)+"px",width:e.offsetWidth})}}},{key:"getInitialBounds",value:function(){var e=this,t="/soldproperties/boundingbox"+T.createQueryString(this.props.query);return U().get(t).then((function(t){return e.props.onLoadingChange(!1),t}))}},{key:"getProperties",value:function(e){var t=this,n=T.createQueryString(this.props.query),a={mapWidth:this.state.width};e&&(a.left=e[0].lon,a.top=e[0].lat,a.right=e[1].lon,a.bottom=e[1].lat);
1var r="/soldproperties/mapdata"+n;return this.props.onLoadingChange(!0),U().get(r,{params:a}).then((function(n){t.props.onDataReceived(n.data);var a={properties:n.data.properties};if(!e){var r=t.calculateBounds(n.data.properties);a.bounds=r}return t.setState(a),t.props.onLoadingChange(!1),n}))}},{key:"calculateBounds",value:function(e){return e&&0!==e.length?e.reduce((function(e,t){return e[0].lat=e[0].lat<t.latitude?t.latitude:e[0].lat,e[0].lon=e[0].lon<t.longitude?t.longitude:e[0].lon,e[1].lat=e[1].lat>t.latitude?t.latitude:e[1].lat,e[1].lon=e[1].lon>t.longitude?t.longitude:e[1].lon,e}),[{lat:e[0].latitude,lon:e[0].longitude},{lat:e[0].latitude,lon:e[0].longitude}]):null}},{key:"saveMapContainerDomNodeRef",value:function(e){if(this.mapContainer=e,e){var t=E.findDOMNode(this.mapContainer);this.setState({width:t.offsetWidth,height:Math.round(window.innerHeight-t.getBoundingClientRect().top-window.pageYOffset)+"px"})}}},{key:"handleMoveEnd",value:function(e,t){this.supressNextMoveEnd?this.supressNextMoveEnd=!1:t&&this.getProperties([{lat:t.getNorthWest().lat,lon:t.getNorthWest().lng},{lat:t.getSouthEast().lat,lon:t.getSouthEast().lng}])}},{key:"handleMarkerClick",value:function(e,t){this.setState({popupPosition:e,popupProperties:t,popupOpen:!0})}},{key:"handlePopupClose",value:function(){this.setState({popupOpen:!1})}},{key:"handleAutoPanOnPopupOpen",value:function(){this.supressNextMoveEnd=!0}},{key:"render",value:function(){var e=this;return this.state.bounds?v.createElement(K.A,{height:this.state.height,bounds:this.state.bounds,mapContainerRefCallback:this.saveMapContainerDomNodeRef,mapTilesUrl:this.props.mapTilesUrl,onMoveEnd:this.handleMoveEnd,trackResize:!1},this.state.properties&&this.state.properties.map((function(t){return v.createElement(X,{key:t.latitude+t.longitude+t.count,count:t.count,properties:t.dataItems,position:{lat:t.latitude,lng:t.longitude},onClick:e.handleMarkerClick})})),this.state.properties&&this.state.popupPosition&&this.state.popupProperties&&this.state.popupOpen&&v.createElement(te,{key:this.state.popupPosition.lat+this.state.popupPosition.lng+this.state.popupProperties.length,position:this.state.popupPosition,properties:this.state.popupProperties,onClose:this.handlePopupClose,onAutoPanTriggered:this.handleAutoPanOnPopupOpen})):null}}]),n}(v.Component),le=n(5338);function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function se(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){r()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ce(e){var t=ue();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function ue(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ue=function(){return!!e})()}var he=function(e){p()(n,e);var t=ce(n);function n(e){var a;l()(this,n),a=t.call(this,e);var r=b().parse(window.location.search,{ignoreQueryPrefix:!0});return a.state={isLoading:!1,query:T.getQueryObjectFromUrl(),properties:null,total:e.total,useInlinedData:!0,isList:!(r.view&&"map"===r.view),metadata:e.metadata,adTargeting:e.adTargeting,mobileFiltersVisible:!1},a.state.query.key=a.state.metadata.key,window.history.replaceState({query:a.state.query,isList:a.state.isList},null,null),window.onpopstate=function(e){a.setState({query:e.state.query,isList:e.state.isList})},a.onPropertyTypeFilterChange=a.onPropertyTypeFilterChange.bind(s()(a)),a.onSoldInThatManyMonthsFilterChange=a.onSoldInThatManyMonthsFilterChange.bind(s()(a)),a.handleListDataUpdate=a.handleListDataUpdate.bind(s()(a)),a.handleMapDataUpdate=a.handleMapDataUpdate.bind(s()(a)),a.onLocationChange=a.onLocationChange.bind(s()(a)),a.onSortOrderChange=a.onSortOrderChange.bind(s()(a)),a.createUrlForPage=a.createUrlForPage.bind(s()(a)),a.handlePageChange=a.handlePageChange.bind(s()(a)),a.handlePageSizeChange=a.handlePageSizeChange.bind(s()(a)),a.onMobileFiltersVisibilityChange=a.onMobileFiltersVisibilityChange.bind(s()(a)),a.onViewChange=a.onViewChange.bind(s()(a)),a.handleLoadingChange=a.handleLoadingChange.bind(s()(a)),a}return u()(n,null,[{key:"init",value:function(e,t){(0,le.createRoot)(document.getElementById(e)).render(v.createElement(n,t))}}]),u()(n,[{key:"handleListDataUpdate",value:function(e){this.setState({isLoading:!1,properties:e.properties,total:e.total,metadata:e.metadata,adTargeting:e.adTargeting,useInlinedData:!1}),this.setTitle(this.state.query,e.metadata)}},{key:"handleMapDataUpdate",value:function(e){this.setState({isLoading:!1,total:e.total,useInlinedData:!1,metadata:e.metadata}),this.setTitle(this.state.query,e.metadata)}},{key:"setTitle",value:function(e,t){window.document.title="House prices | ".concat(t.displayValue," | ESPC",e.page>1?" | Page "+e.page:"")}},{key:"handleLoadingChange",value:function(e){this.setState({isLoading:e})}},{key:"onPropertyTypeFilterChange",value:function(e,t){var n=this.state.query.ptype.indexOf(e),a=this.state.query.ptype.slice();n>=0&&!t?a.splice(n,1):n<0&&t&&a.push(e),this.setState((function(e){return{query:se(se({},e.query),{},{ptype:a,page:1})}}),this.updateUrl)}},{key:"onSoldInThatManyMonthsFilterChange",value:function(e){this.setState((function(t){return{query:se(se({},t.query),{},{sold:e||null,page:1})}}),this.updateUrl)}},{key:"onLocationChange",value:function(e){this.setState((function(t){return{query:se(se({},t.query),{},{key:e.key,page:1})}}),this.updateUrl)}},{key:"onSortOrderChange",value:function(e){var t=e.target.value;this.setState((function(e){return{query:se(se({},e.query),{},{sortby:t,page:1})}}),this.updateUrl)}},{key:"handlePageChange",value:function(e){this.setState((function(t){return{query:se(se({},t.query),{},{page:e})}}),this.updateUrl)}},{key:"handlePageSizeChange",value:function(e){this.setState((function(t){return{query:se(se({},t.query),{},{pageSize:e,page:Math.floor(((t.query.page-1)*t.query.pageSize+1)/e+1)})}}),this.updateUrl)}},{key:"updateUrl",value:function(){var e=T.createUrl(this.state.query,this.state.isList);window.history.pushState({query:this.state.query,isList:this.state.isList},null,"/house-prices/"+e)}},{key:"createUrlForPage",value:function(e){return"/house-prices/"+T.createUrl(Object.assign({},this.state.query,{page:e}))}},{key:"onMobileFiltersVisibilityChange",value:function(){this.setState((function(e){return{mobileFiltersVisible:!e.mobileFiltersVisible}}))}},{key:"onViewChange",value:function(e){if(this.state.isList!==e){var t={isList:e,isLoading:!0,properties:null};this.setState(t,this.updateUrl)}}},{key:"render",value:function(){return v.createElement("div",{className:"wrapper"},v.createElement("div",{className:"clearfix"},v.createElement("div",{className:"results-list col small_4 medium_9 medium_switch large_9 large_switch"},this.state.isLoading&&v.createElement("div",{className:"loading-overlay"},v.createElement("div",{className:"loading-alert"},v.createElement("div",{className:"rect1"}),v.createElement("div",{className:"rect2"}),v.createElement("div",{className:"rect3"}),v.createElement("div",{className:"rect4"}),v.createElement("div",{className:"rect5"}))),v.createElement(j,{total:this.state.total,locationText:this.state.metadata.displayValue,onMobileFiltersVisibilityChange:this.onMobileFiltersVisibilityChange}),(this.state.total||this.state.isLoading)&&v.createElement("div",{className:"clearfix"},this.state.isList&&v.createElement(q,{sortby:this.state.query.sortby,onSortChange:this.onSortOrderChange}),v.createElement(H,{isList:this.state.isList,onViewChange:this.onViewChange})),this.state.isList&&v.createElement(z,{query:this.state.query,properties:this.state.useInlinedData?this.props.properties:this.state.properties,total:this.state.total,onDataReceived:this.handleListDataUpdate,onLoadingChange:this.handleLoadingChange,leaderboardAd:this.props.ads.resultsLeaderboard,adTargeting:this.state.adTargeting,onPageChange:this.handlePageChange,onPageSizeChange:this.handlePageSizeChange,createUrlForPage:this.createUrlForPage}),!this.state.isList&&v.createElement(ie,{query:this.state.query,mapTilesUrl:this.props.mapTilesUrl,onDataReceived:this.handleMapDataUpdate,onLoadingChange:this.handleLoadingChange})),v.createElement(x,{onPropertyTypeFilterChange:this.onPropertyTypeFilterChange,onSoldChange:this.onSoldInThatManyMonthsFilterChange,onLocationChange:this.onLocationChange,initialLocation:this.state.metadata.displayValue,sold:this.state.query.sold,ptype:this.state.query.ptype,adTargeting:this.state.adTargeting,ad:this.props.ads.resultsSidebar,mobileFiltersVisible:this.state.mobileFiltersVisible,onMobileFiltersVisibilityChange:this.onMobileFiltersVisibilityChange,total:this.state.total})))}}]),n}(v.Component);"undefined"!=typeof window&&(window.pastSalesInit=he.init)}
1,81098:(e,t,n)=>{var a=n(16193),r=n.n(a),i=n(82274),l=n.n(i),o=n(41972),s=n.n(o),c=n(65044),u=n.n(c),h=n(56994),p=n.n(h),d=n(65611),m=n.n(d),f=n(18337),g=n.n(f),v=n(96540),y=n(5338),b=n(26396),E=n.n(b),C=n(5556),k=n.n(C),S=function(e){var t,n=e.customThumb,a=e.disableThumb,r=e.position,i=e.thumbSize,l=e.sliderSize,o=e.color,s=e.vertical,c=.5*(l-i),u={position:"absolute",get left(){return s?void 0:"".concat(r,"%")},get top(){return s?void 0:"0px"},get bottom(){return s?"".concat(r,"%"):void 0},get marginTop(){return s?void 0:"".concat(c,"px")},get marginLeft(){return s?"".concat(c,"px"):"-".concat(.5*i,"px")},get marginBottom(){return s?"-".concat(.5*i,"px"):void 0}};if(!n){var h={backgroundColor:"".concat(o),opacity:a?"0":"1",borderRadius:"100%",height:"".concat(i,"px"),width:"".concat(i,"px")};t=v.createElement("div",{style:h})}return v.createElement("div",{style:u},n,t&&t)};S.propTypes={position:k().number,offsetTop:k().number,offsetLeft:k().number,sliderSize:k().number,thumbSize:k().number,color:k().string,vertical:k().bool,disableThumb:k().bool,customThumb:k().node};const w=S;var N=function(e){var t=e.position,n=e.color,a=e.vertical,r=e.value,i=e.thumbSize,l=.5*e.sliderSize-10,o=6+.6*i,s={position:"absolute",backgroundColor:n,color:"#fff",fontSize:"12px",textAlign:"center",margin:"0",zIndex:"5",width:"20px",height:"20px",borderRadius:"2px",get bottom(){return a?"".concat(t,"%"):void 0},get left(){return a?void 0:"".concat(t,"%")},get top(){return a?void 0:"-35px"},get marginLeft(){return a?"".concat(l,"px"):"-10px"},get marginBottom(){return a?"".concat(o,"px"):void 0}},c={position:"absolute",left:"50%",marginLeft:"-4px",bottom:"-4px",borderColor:"transparent",borderStyle:"solid",width:"0",height:"0",borderWidth:"4px 4px 0 4px",borderTopColor:n,zIndex:"4"};return v.createElement("div",{style:s},v.createElement("span",null,r),v.createElement("div",{style:c}
1))};N.propTypes={position:k().number,color:k().string,vertical:k().bool,value:k().number,thumbSize:k().number,sliderSize:k().number};const P=N;var x=function(e){var t=e.trackLength,n=e.color,a=e.vertical,r={backgroundColor:n,get width(){return a?"100%":"".concat(t,"%")},get height(){return a?"".concat(t,"%"):"100%"},get position(){return a?"absolute":void 0},get bottom(){return a?"0":void 0}};return v.createElement("div",{style:r})};x.propTypes={trackLength:k().number,color:k().string,vertical:k().bool};const R=x;function T(e){var t=I();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function I(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(I=function(){return!!e})()}function O(){}var F=function(e){p()(n,e);var t=T(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).state={drag:!1},a.onInteractionStart=a.onInteractionStart.bind(s()(a)),a.onMouseOrTouchMove=a.onMouseOrTouchMove.bind(s()(a)),a.onInteractionEnd=a.onInteractionEnd.bind(s()(a)),a}return u()(n,[{key:"componentWillMount",value:function(){this.updateStateFromProps(this.props)}},{key:"componentDidMount",value:function(){"noOp"===this.props.onChange.name&&console.warn("A react-simple-range component was not provided an onChange prop.\n \nRecommend passing down a function as onChange else this component is purely cosmetic")}},{key:"componentWillReceiveProps",value:function(e){this.updateStateFromProps(e)}},{key:"onInteractionStart",value:function(e){var t=void 0!==e.touches?"touch":"mouse";"mouse"===t&&0!==e.button||(this.updateSliderValue(e,t),this.setState({drag:!0,displayLabel:!0}),this.addEvents(t),e.preventDefault())}},{key:"onInteractionEnd",value:function(){this.setState({drag:!1,displayLabel:!1}),this.props.onChangeComplete(this.state),this.removeEvents()}},{key:"onMouseOrTouchMove",value:function(e){var t=void 0!==e.touches?"touch":"mouse";this.state.drag&&(this.updateSliderValue(e,t),e.stopPropagation())}},{key:"getSliderInfo",value:function(){var e=this.refs.slider;return{bounds:e.getBoundingClientRect(),length:e.clientWidth,height:e.clientHeight}}},{key:"addEvents",value:function(e){switch(e){case"mouse":document.addEventListener("mousemove",this.onMouseOrTouchMove),document.addEventListener("mouseup",this.onInteractionEnd);break;case"touch":document.addEventListener("touchmove",this.onMouseOrTouchMove),document.addEventListener("touchend",this.onInteractionEnd)}}},{key:"removeEvents",value:function(){document.removeEventListener("mousemove",this.onMouseOrTouchMove),document.removeEventListener("mouseup",this.onInteractionEnd),document.removeEventListener("touchmove",this.onMouseOrTouchMove),document.removeEventListener("touchend",this.onInteractionEnd)}},{key:"updateSliderValue",value:function(e,t){var n,a,r=this.state,i=r.max,l=r.min,o=this.props.vertical,s=this.state.value,c=("touch"!==t?e.pageX:e.touches[0].pageX)-window.pageXOffset,u=("touch"!==t?e.pageY:e.touches[0].pageY)-window.pageYOffset;o?n=(a=this.getSliderInfo().height)-(u-this.getSliderInfo().bounds.top):(n=c-this.getSliderInfo().bounds.left,a=this.getSliderInfo().length);var h=this.clampValue(+(n/a).toFixed(2),0,1),p=this.valueFromPercent(h);if((s=this.calculateMatchingNotch(p))!==this.state.value){var d=100*(s-l)/(i-l);this.setState({percent:h,value:s,ratio:d},this.handleChange)}}},{key:"handleChange",value:function(){this.props.onChange(this.state)}},{key:"valueFromPercent",value:function(e){var t=this.state;return t.range*e+t.min}},{key:"calculateMatchingNotch",value:function(e){for(var t=this.state,n=t.step,a=t.max,r=[],i=t.min;Math.round(100*i)/100<=a;i+=n)r.push(Math.round(100*i)/100);return r.reduce((function(t,n){return Math.abs(n-e)<Math.abs(t-e)?n:t}))}},{key:"clampValue",value:function(e,t,n){return Math.max(t,Math.min(e,n))}},{key:"updateStateFromProps",value:function(e){var t=e.value,n=e.thumbSize;void 0===t&&(t=void 0!==e.defaultValue?e.defaultValue:0),void 0===e.thumbSize&&(n=this.props.disableThumb?0:2*e.sliderSize);var a=e.min,r=e.max,i=e.step,l=e.id,o=r-a,s=100*Math.max(t-a,0)/(r-a);this.setState({value:t,min:a,max:r,range:o,step:i,ratio:s,thumbSize:n,id:l})}},{key:"render",value:function(){var e=this.props,t=e.vertical,n=e.sliderSize,a=e.disableThumb,r=e.disableTrack,i=e.children,l=e.label,o=e.trackColor,s=e.thumbColor,c=e.verticalSliderHeight,u=e.eventWrapperPadding,h={height:"100%",position:"relative",curs
1or:"pointer",margin:"0 auto",get padding(){return t?"0 ".concat(u,"px"):"".concat(u,"px 0")},get width(){return t?"".concat(n,"px"):"auto"}},p={backgroundColor:this.props.sliderColor,position:"relative",overflow:"visible",get height(){return t?c:"".concat(n,"px")},get width(){return t?"".concat(n,"px"):"100%"}};return v.createElement("div",{className:this.props.className,style:h,onMouseDown:this.onInteractionStart,onTouchStart:this.onInteractionStart},v.createElement("div",{ref:"slider",style:p},r?null:v.createElement(R,{trackLength:this.state.ratio,color:o,vertical:t}),l&&this.state.displayLabel?v.createElement(P,{position:this.state.ratio,vertical:t,color:o,value:this.state.value,sliderSize:n,thumbSize:this.state.thumbSize}):null,v.createElement(w,{position:this.state.ratio,vertical:t,customThumb:i,thumbSize:this.state.thumbSize,sliderSize:n,color:s,disableThumb:a,value:this.state.value})))}}]),n}(v.Component);E()(F,"propTypes",{children:k().element,min:k().number,max:k().number,step:k().number,value:k().number,defaultValue:k().number,onChange:k().func,onChangeComplete:k().func,vertical:k().bool,verticalSliderHeight:k().string,eventWrapperPadding:k().number,label:k().bool,disableTrack:k().bool,disableThumb:k().bool,sliderColor:k().string,trackColor:k().string,thumbColor:k().string,sliderSize:k().number,thumbSize:k().number,id:k().string,className:k().string}),E()(F,"defaultProps",{min:0,max:100,step:1,onChange:O,onChangeComplete:O,vertical:!1,verticalSliderHeight:"100px",eventWrapperPadding:8,label:!1,disableTrack:!1,disableThumb:!1,sliderColor:"#B9B9B9",trackColor:"#009688",thumbColor:"#009688",sliderSize:4,id:null});var M=n(52594),A=n(15360),B=n(11683);function D(e){var t=U();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function U(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(U=function(){return!!e})()}var V=function(e){p()(n,e);var t=D(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).handleRadiusDrag=a.handleRadiusDrag.bind(s()(a)),a.handleDragHandlerMarkerDrag=a.handleDragHandlerMarkerDrag.bind(s()(a)),a.handleDragHandlerMarkerDragEnd=a.handleDragHandlerMarkerDragEnd.bind(s()(a)),a.handleMarkerDragEnd=a.handleMarkerDragEnd.bind(s()(a)),a}return u()(n,[{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.milesToKm,a=t.radius;a.lat==e.radius.lat&&a.lon==e.radius.lon||(this.circle.setLatLng([a.lat,a.lon]),this.marker.setLatLng([a.lat,a.lon])),a.radius!=e.radius.radius&&this.circle.setRadius(1e3*n(a.radius,3)),this.dragHandlerMarker.setLatLng(this.calculateDragHandlerMarkerPosition())}},{key:"componentDidMount",value:function(){if("undefined"!=typeof window){var e=this.props,t=e.radius,n=e.milesToKm,a=e.map;this.circle=L.circle([t.lat,t.lon],{radius:1e3*n(t.radius,2),fillColor:t.colour,color:t.colour,weight:1,opacity:.4,interactive:!1}).addTo(a),this.marker=L.marker([t.lat,t.lon],{draggable:!0,icon:L.divIcon({iconSize:[22,32],iconAnchor:[11,32],className:" ",html:'<svg viewBox="0 0 186 277" xmlns="http://www.w3.org/2000/svg"><path fill='+t.colour+' d="m138.000002,93.000001q0,-19.046875 -13.476563,-32.523438t-32.523438,-13.476563t-32.523438,13.476563t-13.476563,32.523438t13.476563,32.523438t32.523438,13.476563t32.523438,-13.476563t13.476563,-32.523438zm46.000001,0q0,19.585938 -5.929688,32.164063l-65.406251,139.078127q-2.875,5.929688 -8.535156,9.34375t-12.128906,3.414063t-12.128906,-3.414063t-8.355469,-9.34375l-65.585938,-139.078127q-5.929688,-12.578125 -5.929688,-32.164063q0,-38.093751 26.953125,-65.046876t65.046876,-26.953125t65.046876,26.953125t26.953125,65.046876z" /></svg>'})}).addTo(a),this.marker.on("drag",this.handleRadiusDrag),this.marker.on("click",(function(){})),this.marker.on("dragend",this.handleMarkerDragEnd),this.dragHandlerMarker=L.marker(this.calculateDragHandlerMarkerPosition(),{draggable:!0,icon:L.divIcon({iconSize:[36,17],iconAnchor:[18,8.5],className:" ",html:'<svg viewBox="0 0 180 75" xmlns="http://www.w3.org/2000/svg"><path fill='+t.colour+' fill-opacity=0.9 d="m0,38.0251l51.60525,-38.0001l0,19l74.78951,0l0,-19l51.60523,38.0001l-51.60523,37.99989l0,-18.99995l-74.78951,0l0,18.99995l-51.60525,-37.99989z" /></svg>'})}).addTo(a),this.dragHandlerMarker.on("drag",this.handleDragHandlerMarkerDrag),this.dragHandlerMarker.on("click",(function(){})),this.dragHandlerMarker.on("dragend",this.handleDragHandlerMarkerDragEnd)}}},{key:"componentWillUnmount",value:function(){var e=this.props.map;e.removeLayer(this.circle),e.removeLayer(this.marker),e.removeLayer(this.dragHandlerMarker),this.dragHandlerMarker.off("drag"),this.dragHandlerMarker.off("dragend"),this.dragHandlerMarker.off("click"),this.marker.off("drag"),this.marker.off("click"),this.marker.off("dragend")}},{key:"handleRadiusDrag",value:function(e){this.props.handleDrag&&this.props.handleDrag(this.props.radius.tmpKey,e.latlng.lat,e.latlng.lng)}},{key:"handleMarkerDragEnd",value:function(){this.props.updatePlaceName&&this.props.updatePlaceName(this.props.radius),this.handleDragHandlerMarkerDragEnd()}},{key:"handleDragHandlerMarkerDragEnd",value:function(){this.props.handleMarkerDragEnd&&this.props.handleMarkerDragEnd()}},{key:"calculateDragHandlerMarkerPosition",value:function(){var e=this.circle.getBounds().getNorthEast().lng;return{lat:this.circle.getLatLng().lat,lng:e}}},{key:"handleDragHandlerMarkerDrag",value:function(e){if("undefined"!=typeof window){var t=this.props,n=(t.google,t.kmToMiles),a=this.circle.getLatLng().lat,r=e.latlng.lng;r<this.circle.getLatLng().lng&&(r=this.circle.getLatLng().lng);var i=L.latLng([a,r]);if(this.dragHandlerMarker.setLatLng(i),this.props.handleRadiusChange){var l=n(i.distanceTo(this.marker.getLatLng())/1e3,2);this.props.handleRadiusChange(l)}}}},{key:"render",value:function(){return null}}]),n}(v.Component);function _(e){return v.createElement("a",{className:"near-me button low icon-direction flex-button",onClick:function(){if("geolocation"in navigator){var t=!1;navigator.geolocation.getCurrentPosition((function(t){e.handleAddNewRadius(t.coords.latitude,t.coords.longitude,null,!0)}),(function(e){e.code==e.PERMISSION_DENIED?(t=!0,alert("Unable to determine location due to denied permissions")):t||alert("Unable to determine location.")}),{timeout:8e3})}else alert("Unable to determine location. Device not supported.")}},"Near me")}var z=n(72505),j=n.n(z);function q(){var e="localStorage";function t(e){if("undefined"==typeof window)return!1;var t;try{t=window[e];var n="__storage_test__";return t.setItem(n,n),t.removeItem(n),!0}catch(e){return e instanceof DOMException&&(22===e.code||1014===e.code||"QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name)&&t&&0!==t.length}}return{trySetItem:function(n,a){return!!t(e)&&(window[e].setItem(n,JSON.stringify(a)),!0)},getItem:function(n){if(t(e)){var a=window[e].getItem(n);return a&&JSON.parse(a)}return null},removeItem:function(n){t(e)&&window[e].removeItem(n)}}}function H(e){var t=K();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function K(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(K=function(){return!!e})()}var W=function(e){p()(n,e);var t=H(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).localStorageKey="radius_search_map_bounds",a.radiusLimit=5,a.radiusMaxLength=5,a.radiusMinLength=.1,a.handleDrag=a.handleDrag.bind(s()(a)),a.handleMarkerDragEnd=a.handleMarkerDragEnd.bind(s()(a)),a.calculateBounds=a.calculateBounds.bind(s()(a)),a.handleAddRadius=a.handleAddRadius.bind(s()(a)),a.handleAddNewRadius=a.handleAddNewRadius.bind(s()(a)),a.handleRadiusDelete=a.handleRadiusDelete.bind(s()(a)),a.calculateDestinationPoint=a.calculateDestinationPoint.bind(s()(a)),a.search=a.search.bind(s()(a)),a.updatePlaceName=a.updatePlaceName.bind(s()(a)),a.handleMapMoved=a.handleMapMoved.bind(s()(a)),a.validReturnUrls=["/properties","/refine-search","/advanced-search"],a.colours=["blue","red","orange","green","navy"],a.localStorage=new q,Number.prototype.toRad=function(){return this*Math.PI/180},Number.prototype.toDeg=function(){return 180*this/Math.PI},a.state={radiuses:e.searchState.radiuses.map((function(e,t){return Object.assign({},e,{radius:a.kmToMiles(e.radius,2),tmpKey:Math.random(),colour:a.colours[t]})}))},n.defaultBounds=a.localStorage.getItem(a.localStorageKey)||[{lat:56.284438,lng:-4.486142},{lat:55.427865,lng:-2.593203}],a.state.bounds=0===a.state.radiuses.length?n.defaultBounds:a.calculateBounds(),a.dragged=!1,a}return u()(n,null,[{key:"init",value:function(e,t,a){(0,y.createRoot)(document.getElementById(e)).render(v.createElement(M.Kd,null,v.createElement(A.dO,null,v.createElement(A.qh,{path:"/map-radius-search",render:function(e){return v.createElement(n,r()({searchState:t,mapTilesUrl:a.mapTilesUrl},e))}}))))}}]),u()(n,[{key:"milesToKm",value:function(e,t){void 0===t&&(t=1);var n=Math.pow(10,t);return Math.round(e/.62137*n)/n}},{key:"kmToMiles",value:function(e,t){void 0===t&&(t=1);var n=Math.pow(10,t);return Math.round(.62137*e*n)/n}},{key:"calculateDestinationPoint",value:function(e,t,n,a){a/=6371,n=n.toRad();var r=e.toRad(),i=t.toRad(),l=Math.asin(Math.sin(r)*Math.cos(a)+Math.cos(r)*Math.sin(a)*Math.cos(n)),o=i+Math.atan2(Math.sin(n)*Math.sin(a)*Math.cos(r),Math.cos(a)-Math.sin(r)*Math.sin(l));return isNaN(l)||isNaN(o)?null:L.latLng(l.toDeg(),o.toDeg())}},{key:"handleDrag",value:function(e,t,n){var a=this.state.radiuses.map((function(a){return a.tmpKey==e?Object.assign({},a,{lat:t,lon:n}):a}));this.setState({radiuses:a})}},{key:"handleMarkerDragEnd",value:function(){var e=this;this.dragged=!0,window.setTimeout((function(){e.dragged=!1}),100)}},{key:"handleRadiusChange",value:function(e,t){t>this.radiusMaxLength&&(t=this.radiusMaxLength),t<this.radiusMinLength&&(t=this.radiusMinLength);var n=this.state.radiuses.map((function(n){return n.tmpKey==e?Object.assign({},n,{radius:t}):n}));this.setState({radiuses:n})}},{key:"handleAddRadius",value:function(e){this.dragged?this.dragged=!1:this.handleAddNewRadius(e.latlng.lat,e.latlng.lng,e.target.getZoom(),!1)}},{key:"handleAddNewRadius",value:function(e,t,n,a){var r=this,i=this.state.radiuses.slice();i.length!=this.radiusLimit&&(i.push({displayText:"Obtaining place name...",lat:e,lon:t,tmpKey:Math.random(),colour:this.colours.filter((function(e){return 0==i.filter((function(t){return t.colour==e})).length}))[0],radius:n?Math.min(.1*Math.pow(2,Math.max(15-n,0)),this.radiusMaxLength):1}),this.updatePlaceName(i[i.length-1]),this.setState({radiuses:i}
1,(function(){a&&r.setState({bounds:r.calculateBounds()})})))}},{key:"handleRadiusDelete",value:function(e){var t=this.state.radiuses.filter((function(t){return t.tmpKey!=e}));this.setState({radiuses:t})}},{key:"updatePlaceName",value:function(e){var t=this,n=e.tmpKey,a="Area "+(this.state.radiuses.length+1);j().get("/geocoding/reverse",{params:{lat:e.lat,lon:e.lon,radius:e.radius}}).then((function(e){a=e.data.locationName?e.data.locationName:a})).catch((function(e){})).then((function(){var e=t.state.radiuses.map((function(e){return e.tmpKey==n?Object.assign({},e,{displayText:a}):e}));t.setState({radiuses:e})}))}},{key:"calculateBounds",value:function(){for(var e=null,t=0;t<this.state.radiuses.length;t++){var n=this.state.radiuses[t],a=L.latLng(n.lat,n.lon);e||(e=L.latLngBounds(a,a));var r=this.milesToKm(n.radius,3);e.extend(this.calculateDestinationPoint(a.lat,a.lng,0,r)),e.extend(this.calculateDestinationPoint(a.lat,a.lng,90,r)),e.extend(this.calculateDestinationPoint(a.lat,a.lng,180,r)),e.extend(this.calculateDestinationPoint(a.lat,a.lng,270,r))}return[{lat:e.getNorth(),lng:e.getEast()},{lat:e.getSouth(),lng:e.getWest()}]}},{key:"buildTargetUrl",value:function(){for(var e=window.location.href,t="radiuses=",n=0;n<this.state.radiuses.length;n++){var a=this.state.radiuses[n];n>0&&(t+=";"),t+=a.lat+","+a.lon+","+this.milesToKm(a.radius,3)+","+window.encodeURIComponent(a.displayText)}var r=getURLParameterByName("r");(!r||this.validReturnUrls.indexOf(r)<0)&&(r="/properties");var i=e.replace("/map-radius-search",r);i=this.removeUrlParam("r",i);var l=(i=this.removeUrlParam("locationtext",i)).indexOf("radiuses=");if(l>-1){var o=i.indexOf("&",l);-1==o&&(o=i.length);var s=i.substring(l,o);i=i.replace(s,t)}else{var c=i.indexOf("?")>-1?"&":"?";i+=c+t}return i}},{key:"removeUrlParam",value:function(e,t){var n=t.split("?")[0],a=[],r=-1!==t.indexOf("?")?t.split("?")[1]:"";if(""!==r){for(var i=(a=r.split("&")).length-1;i>=0;i-=1)a[i].split("=")[0]===e&&a.splice(i,1);n=n+"?"+a.join("&")}return n.indexOf("?")==n.length-1&&(n=n.substring(0,n.length-1)),n}},{key:"search",value:function(){this.state.radiuses.length&&(window.location.href=this.buildTargetUrl())}},{key:"handleMapMoved",value:function(e,t){this.localStorage.trySetItem(this.localStorageKey,[{lat:t._northEast.lat,lon:t._southWest.lng},{lat:t._southWest.lat,lon:t._northEast.lng}])}},{key:"render",value:function(){var e=this,t=null;return 0==this.state.radiuses.length?t="You can add up to "+this.radiusLimit+" locations":this.state.radiuses.length>0&&this.state.radiuses.length<this.radiusLimit&&(t="You can add "+(this.radiusLimit-this.state.radiuses.length)+" more location",this.state.radiuses.length<this.radiusLimit-1&&(t+="s")),v.createElement("div",null,v.createElement("div",{className:"col small_12",style:{marginBottom:0}},v.createElement("h1",{className:"mobile-title",style:this.state.radiuses.length?{display:"none"}:{}},"Click or tap where you want to search"),v.createElement("h1",{className:"desktop-title"}," Click or tap where you want to search ")),v.createElement("div",{className:"col small_12 medium_8 large_8 push_4",style:{position:"relative"}},v.createElement("div",{className:"radius-map-container"},v.createElement(B.A,{onClick:this.handleAddRadius,bounds:this.state.bounds,mapTilesUrl:this.props.mapTilesUrl,className:"radius-map",onMoveEnd:this.handleMapMoved},this.state.radiuses.map((function(t){return v.createElement(V,{key:t.tmpKey,radius:t,milesToKm:e.milesToKm,kmToMiles:e.kmToMiles,handleDrag:e.handleDrag,handleRadiusChange:function(n){return e.handleRadiusChange(t.tmpKey,n)},handleRadiusDelete:e.handleRadiusDelete,handleMarkerDragEnd:e.handleMarkerDragEnd,updatePlaceName:e.updatePlaceName})}))))),v.createElement("div",{className:"col small_12 medium_4 large_4 pull_8"},v.createElement("div",{className:"small_12 medium_11 large_11"},v.createElement("section",{className:"radiuses-section"},v.createElement("h2",{className:"radiuses-section__header"}," Location "),v.createElement("div",{className:"radiuses-section__content",style:{paddingTop:this.state.radiuses.length==this.radiusLimit?0:"0.5em"}},this.state.radiuses.length<5?v.createElement("span",null,t,this.state.radiuses.length>0?"":v.createElement(_,{handleAddNewRadius:this.handleAddNewRadius})):null,this.state.radiuses.map((function(t,n){return v.createElement("div",{key:t.tmpKey,style:{display:"flex",borderTop:0==n&&e.state.radiuses.length==e.radiusLimit?"0":null}},v.createElement("div",{style:{width:"30px",flex:"0 0 30px",textAlign:"center",fontSize:"2em",color:t.colour}},v.createElement("div",{className:"icon-location",style:{display:"inline-block",verticalAlign:"middle"}})),v.createElement("div",{style:{flex:"1 1 auto",overflow:"hidden",padding:"0 8px"}},v.createElement("div",{style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}}
1,t.displayText),v.createElement("div",null,"Distance: ",t.radius," miles"),v.createElement(F,{className:"radius-slider",min:e.radiusMinLength,max:e.radiusMaxLength,step:.01,value:t.radius,sliderColor:"#ddd",trackColor:"#00AEEF",thumbColor:"#00AEEF",thumbSize:12,onChange:function(n){return e.handleRadiusChange(t.tmpKey,n.value)}})),v.createElement("div",{style:{flex:"0 0 30px",textAlign:"center",fontSize:"2em"}},v.createElement("div",{title:"Remove area",className:"icon-cancel",style:{display:"inline-block",verticalAlign:"middle",cursor:"pointer"},onClick:function(){return e.handleRadiusDelete(t.tmpKey)}})))})),v.createElement("a",{className:"button",style:{margin:"1em",width:"auto",fontSize:"1.1em",display:this.state.radiuses.length?"block":"none"},onClick:this.search},"Search using these locations"))))))}}]),n}(v.Component);"undefined"!=typeof window&&(window.radiusSearchInit=W.init)},89040:(e,t,n)=>{var a=n(16193),r=n.n(a),i=n(82274),l=n.n(i),o=n(65044),s=n.n(o),c=n(41972),u=n.n(c),h=n(56994),p=n.n(h),d=n(65611),m=n.n(d),f=n(18337),g=n.n(f),v=n(96540),y=n(5556),b=n.n(y),E=n(75968);function C(e){var t=e.location,n="filter-section__item selected";return e.padLeft&&(n+=" pad-left"),v.createElement("li",{className:"selected-item"},v.createElement("div",{className:n},t.displayText),e.canRemove?v.createElement("a",{className:"area-action-remove icon-trash",onClick:function(){e.handleRemoveLocation(e.location)}}):v.createElement("span",null))}function k(e){var t=e.radius;return v.createElement("li",{className:"selected-item"},v.createElement("div",{className:"filter-section__item selected icon-location radius-item"},t.displayText),e.canRemove?v.createElement("a",{className:"area-action-remove icon-trash",onClick:function(){e.handleRemoveRadius(e.radius)}}):v.createElement("span",null))}function S(e){return React.createElement("li",{className:"selected-item"},React.createElement("a",{className:"filter-section__item selected"},e.freeText),React.createElement("a",{className:"area-action-remove icon-trash",onClick:function(){e.handleRemoveFreeText(!0)}}))}function w(e){e.locations.length,e.radiuses.length;var t=1!=e.locations.length||0!=e.radiuses.length||e.locations[0].key!=e.defaultLocationKey;return v.createElement("ul",{id:"area-selected",className:"filter-section__lister filter-section__areas"},e.locations&&e.locations.map((function(n,a,r){return n.key==e.defaultLocationKey&&e.hideDefaultLocation?null:v.createElement(C,{count:r.length,location:n,key:n.key,canRemove:t,handleRemoveLocation:e.handleRemoveLocation,padLeft:e.radiuses.length>0})})),e.radiuses&&e.radiuses.map((function(n){return v.createElement(k,{radius:n,canRemove:t,key:n.lat,handleRemoveRadius:e.handleRemoveRadius})})),e.freeText.length>0?v.createElement(S,{freeText:e.freeText,handleRemoveFreeText:e.handleRemoveFreeText}):null)}function N(e){var t=P();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function P(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(P=function(){return!!e})()}C.propTypes={location:b().object.isRequired,handleRemoveLocation:b().func.isRequired,padLeft:b().bool}
1,k.propTypes={radius:b().object.isRequired},w.propTypes={locations:b().array.isRequired,radiuses:b().array.isRequired,handleRemoveLocation:b().func.isRequired,handleRemoveRadius:b().func.isRequired,handleRemoveFreeText:b().func.isRequired};var x=function(e){p()(a,e);var t=N(a);function a(e){var n;return l()(this,a),(n=t.call(this,e)).handleSelect=n.handleSelect.bind(u()(n)),n.handleLocationsInputValueChange=n.handleLocationsInputValueChange.bind(u()(n)),n.handleChangeLocation=n.handleChangeLocation.bind(u()(n)),n.handleAddLocation=n.handleAddLocation.bind(u()(n)),n.isDefaultLocationOrFreeText=n.isDefaultLocationOrFreeText.bind(u()(n)),n.state={location:"",locationInputValue:""},n}return s()(a,[{key:"handleLocationsInputValueChange",value:function(e,t){this.setState({locationInputValue:t})}},{key:"handleSelect",value:function(e,t){this.setState({location:t,locationInputValue:e})}},{key:"handleAddLocation",value:function(){var e=Object.assign({},this.state);this.setState({location:"",locationInputValue:""}),""==e.location?alert("Please select a location"):this.props.handleAddLocation(e.location)}},{key:"handleChangeLocation",value:function(){var e=Object.assign({},this.state);this.setState({location:"",locationInputValue:""}),""==e.location?alert("Please select a location"):this.props.handleChangeLocation(e.location)}},{key:"isDefaultLocationOrFreeText",value:function(){return 1==this.props.locations.length&&0==this.props.radiuses.length&&this.props.locations[0].key==this.props.defaultLocationKey||this.props.freeText.length>0}},{key:"render",value:function(){if(0==this.props.locations.length&&0==this.props.radiuses.length&&0==this.props.freeText.length)return v.createElement("div",null);var e="Add a radius search";(1==this.props.locations.length&&0==this.props.radiuses.length&&this.props.locations[0].key==this.props.defaultLocationKey||this.props.freeText.length>0)&&(e="Radius search"),this.props.radiuses.length>0&&(e="Change radiuses");var t=this.props.getUrlFunc({},!1),a="";if(t.indexOf("?")>-1){var r=t.split("?");a="?"+r[r.length-1]}var i="/map-radius-search"+a;if("/properties"!=this.props.radiusSearchReturnUrl){var l=i.indexOf("?")>-1?"&":"?";i+=l+"r="+n.g.encodeURIComponent(this.props.radiusSearchReturnUrl)}return v.createElement("section",{className:"filter-section"},v.createElement("h2",{className:"filter-section__header"},"Locations"),v.createElement(w,{locations:this.props.locations,radiuses:this.props.radiuses,freeText:this.props.freeText,handleChangeLocation:this.props.handleChangeLocation,handleRemoveLocation:this.props.handleRemoveLocation,handleRemoveRadius:this.props.handleRemoveRadius,handleRemoveFreeText:this.props.handleRemoveFreeText,defaultLocationKey:this.props.defaultLocationKey,hideDefaultLocation:this.props.hideDefaultLocation}),v.createElement("div",{className:"add-facet-form flex-search clearfix"},v.createElement(E.A,{inputPlaceholder:"Enter location",inputName:"location",value:this.state.locationInputValue,onChange:this.handleLocationsInputValueChange,onSelect:this.handleSelect,onSubmit:this.isDefaultLocationOrFreeText()?this.handleChangeLocation:this.handleAddLocation,suggestionsAbsolutePositioned:this.props.suggestionsAbsolutePositioned}),this.isDefaultLocationOrFreeText()?v.createElement("button",{id:"locationInputGo",className:"submit flex-button button",onClick:this.handleChangeLocation},"Go"):v.createElement("button",{id:"locationInputAdd",className:"submit flex-button button",onClick:this.handleAddLocation},"Add")),v.createElement("div",{className:"more-locations"},v.createElement("div",null,v.createElement("a",{className:"icon-location pick-map-btn",href:i},e)),v.createElement("div",null,v.createElement("a",{className:"icon-school school-search-btn",href:"/#schools"},"Search by school catchment"))))}}]),a}(v.Component);x.propTypes={locations:b().array.isRequired,radiuses:b().array.isRequired,handleAddLocation:b().func.isRequired,handleChangeLocation:b().func.isRequired,handleRemoveLocation:b().func.isRequired,handleRemoveRadius:b().func.isRequired,handleRemoveFreeText:b().func.isRequired};var R=n(90920),T=n(57304);function I(e){return v.createElement("input",{checked:!!e.checked,className:e.className,name:e.inputName,onChange:e.handleChange,type:"checkbox",value:e.inputValue})}function O(e){return v.createElement("section",{className:"filter-section"},v.createElement("h2",{className:"filter-section__header"},"Refine your search"),v.createElement("form",{className:"filter-section__item"},v.createElement("div",{className:"filter-section__dropdowns"},v.createElement("div",null,v.createElement("label",{htmlFor:"minbeds"},"Bedrooms"),v.createElement(T.A,{inputId:"minbeds",name:"minbeds",handleChange:e.handleBedsChange,value:e.minBeds})),v.createElement("div",null,v.createElement("label",{htmlFor:"minprice"},"Min Price"),v.createElement(R.A,{inputId:"pricemin",inputName:"minprice",handleChange:e.handleMinPriceChange,value:e.minPrice,rental:e.rental})),v.createElement("div",null,v.createElement("label",{htmlFor:"maxprice"},"Max Price"),v.createElement(R.A,{inputId:"maxprice",inputName:"maxprice",handleChange:e.handleMaxPriceChange,value:e.maxPrice,rental:e.rental}))),v.createElement("div",{className:"filter-section__checkboxes"},v.createElement("div",null,e.rental?null:v.createElement("label",{className:"check"},v.createElement(I,{inputName:"fixedprice",inputValue:"true",checked:e.fixedPrice,handleChange:function(t){e.handleFixedPriceChange&&e.handleFixedPriceChange(t.target.checked)}})," Fixed price only"),v.createElement("label",{className:"check"},v.createElement(I,{inputName:"new",inputValue:"7",checked:e.new,handleChange:function(t){e.handleNewChange&&e.handleNewChange(t.target.checked?t.target.value:"")}})," Added last 7 days")),v.createElement("div",null,e.rental?null:v.createElement("label",{className:"check"},v.createElement(I,{inputName:"underoffer",inputValue:"true",checked:e.underOffer,handleChange:function(t){e.handleUnderOfferChange&&e.handleUnderOfferChange(t.target.checked)}})," Include under offer"),e.rental?null:v.createElement("label",{className:"check"},v.createElement(I,{inputName:"exclusive",inputValue:"true",checked:e.exclusive,handleChange:function(t){e.handleExclusiveChange&&e.handleExclusiveChange(t.target.checked)}})," Exclusive to ESPC only")),v.createElement("div",null,e.rental?null:v.createElement("label",{className:"check"},v.createElement(I,{inputName:"newbuilds",inputValue:"true",checked:e.newbuilds,handleChange:function(t){e.handleNewBuildsCh
1ange&&e.handleNewBuildsChange(t.target.checked)}})," New builds")))))}function L(e){var t=0===e.count?"All":e.count+" selected";return v.createElement("li",null,v.createElement("button",{name:"section",onClick:function(t){e.selectItem(e.label)}},e.label,v.createElement("span",{className:"icon-right-open"}),v.createElement("span",{className:"selected-count standard-type"},t)))}function F(e){return v.createElement("ul",{className:"list-nav"},v.createElement(L,{label:"Property types",key:"Property types",count:e.pTypes.length,selectItem:e.selectItem}),e.keywords.map((function(t){return v.createElement(L,{label:t.category,key:t.category,count:t.count,selectItem:e.selectItem})})))}function M(e){function t(t){e.handleChange(t.currentTarget.value,t.currentTarget.checked)}return v.createElement("div",{className:"facet"},v.createElement("h1",{onClick:e.goBack,className:"no-top"},v.createElement("a",{href:"#"},v.createElement("span",{className:"icon-left-open"}),e.keywords.category)),v.createElement("ul",{className:"list-nav"},e.keywords.keywords.map((function(n){return v.createElement("li",{key:n.value},v.createElement("label",{className:"control checkbox"},v.createElement("input",{data:"parent",name:"keywords",value:n.value,type:"checkbox",onChange:t,checked:e.selectedKeywords.filter((function(e){return e===n.value})).length>0}),v.createElement("span",{className:"control-indicator"}),n.label))}))))}function A(e){var t=B();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function B(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(B=function(){return!!e})()}var D=function(e){p()(n,e);var t=A(n);function n(e){var a;l()(this,n),(a=t.call(this,e)).mapParents=a.mapParents.bind(u()(a)),a.mapChildren=a.mapChildren.bind(u()(a)),a.handleChange=a.handleChange.bind(u()(a)),a.configureItems=a.configureItems.bind(u()(a)),a.shouldShowChildren=a.shouldShowChildren.bind(u()(a)),a.renderInput=a.renderInput.bind(u()(a)),a.expandSection=a.expandSection.bind(u()(a)),a.contractSection=a.contractSection.bind(u()(a));var r=a.configureItems(e);return a.state={parents:r,expanded:r.filter((function(e){return!e.selected&&e.children.filter((function(e){return e.selected})).length>0})).map((function(e){return e.value}))},a}return s()(n,[{key:"configureItems",value:function(e){var t=e.pTypesDef.map((function(t){return{label:t.label,value:t.value,selected:e.pTypes.includes(t.value),children:t.children?t.children.map((function(t){return{label:t.label,value:t.value,selected:e.pTypes.includes(t.value)}})):[]}}));return t.filter((function(e){return e.selected})).forEach((function(e){return e.children.forEach((function(e){return e.selected=!0}))})),t}},{key:"shouldShowChildren",value:function(e){return this.state.expanded.includes(e)}},{key:"expandSection",value:function(e){if(!this.state.expanded.includes(e)){var t=this.state.expanded.slice();t.push(e),this.setState({expanded:t})}}},{key:"contractSection",value:function(e){this.state.expanded.includes(e)&&this.setState({expanded:this.state.expanded.filter((function(t){return t!==e}))})}},{key:"handleChange",value:function(e){this.props.handleChange(e.currentTarget.value,e.currentTarget.checked)}},{key:"componentWillReceiveProps",value:function(e){this.setState({parents:this.configureItems(e)})}},{key:"renderInput",value:function(e){return v.createElement("li",{key:e.value},v.createElement("label",{className:"control checkbox"},v.createElement("input",{data:"parent",name:"ptype",value:e.value,type:"checkbox",checked:e.selected,onChange:this.handleChange}),v.createElement("span",{className:"control-indicator"}),e.label))}},{key:"mapChildren",value:function(e){return!e.children||e.children.length<1?null:this.shouldShowChildren(e.value)?v.createElement("div",null,v.createElement(U,{action:this.contractSection,value:e.value,label:"Contract"}),v.createElement("ul",null,e.children.map(this.renderInput))):v.createElement("div",null,v.createElement(U,{action:this.expandSection,value:e.value,label:"Expand"}))}},{key:"mapParents",value:function(){var e=this;return this.state.parents.map((function(t){return v.createElement("li",{key:t.value},v.createElement("label",{className:"control checkbox"},v.createElement("input",{data:"parent",name:"ptype",value:t.value,type:"checkbox",checked:t.selected,onChange:e.handleChange}),v.createElement("span",{className:"control-indicator"}),t.label),e.mapChildren(t))}))}},{key:"render",value:function(){return v.createElement("div",{className:"facet"},v.createElement("h1",{onClick:this.props.goBack,className:"no-top"},v.createElement("a",{href:"#"},v.createElement("span",{className:"icon-left-open"}),"Property Types")),v.createElement("ul",{className:"list-nav"},this.mapParents()))}}]),n}(v.Component);function U(e){return v.createElement("a",{onClick:function(t){return e.action(e.value)},className:"expand"},e.label)}var V=n(52594),_=n(15360),z=n(93637),j=n(96481);function q(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(q=function(){return!!e})()}function H(e){return function(t){p()(o,t);var n,a,i=(n=o,a=q(),function(){var e,t=g()(n);if(a){var r=g()(this).constructor;e=Reflect.construct(t,arguments,r)}else e=t.apply(this,arguments);return m()(this,e)});function o(e){var t;return l()(this,o),(t=i.call(this,e)).saveSearchFilter="undefined"!=typeof window&&window.localStorageService?window.localStorageService.saveSearchFilter:function(){},t.handleAddLocation=t.handleAddLocation.bind(u()(t)),t.handleChangeLocation=t.handleChangeLocation.bind(u()(t)),t.handleRemoveLocation=t.handleRemoveLocation.bind(u()(t)),t.handleRemoveFreeText=t.handleRemoveFreeText.bind(u()(t)),t.handleAddSingleRadius=t.handleAddSingleRadius.bind(u()(t)),t.handleRemoveRadius=t.handleRemoveRadius.bind(u()(t)),t.handlePageChange=t.handlePageChange.bind(u()(t)),t.handleSortBy=t.handleSortBy.bind(u()(t)),t.handlePageSize=t.handlePageSize.bind(u()(t)),t.handleChangeSchool=t.handleChangeSchool.bind(u()(t)),t.handleBedsChange=t.handleBedsChange.bind(u()(t)),t.handleMinPriceChange=t.handleMinPriceChange.bind(u()(t)),t.handleMaxPriceChange=t.handleMaxPriceChange.bind(u()(t)),t.handleUnderOfferChange=t.handleUnderOfferChange.bind(u()(t)),t.handleFixedPriceChange=t.handleFixedPriceChange.bind(u()(t)),t.handleVirtualTourChange=t.handleVirtualTourChange.bind(u()(t)),t.handleEpcRatingChange=t.handleEpcRatingChange.bind(u()(t)),t.handleNewChange=t.handleNewChange.bind(u()(t)),t.handleExclusiveChange=t.handleExclusiveChange.bind(u()(t)),t.handlePropertyTypeChange=t.handlePropertyTypeChange.bind(u()(t)),t.handleKeywordChange=t.handleKeywordChange.bind(u()(t)),t.handleNewBuildsCh
1ange=t.handleNewBuildsChange.bind(u()(t)),t.handleViewChange=t.handleViewChange.bind(u()(t)),t.setQueryState=t.setQueryState.bind(u()(t)),t.createUrl=t.createUrl.bind(u()(t)),t.updateUrl=t.updateUrl.bind(u()(t)),t.getPropertyQuery=t.getPropertyQuery.bind(u()(t)),t.getMergedState=t.getMergedState.bind(u()(t)),t.handleRemoveFilter=t.handleRemoveFilter.bind(u()(t)),t.clearNearMe=t.clearNearMe.bind(u()(t)),t.state={locations:e.searchState.locations,radiuses:e.searchState.radiuses,page:e.searchState.p,school:e.searchState.school,orgId:e.searchState.orgId,pageSize:e.searchState.ps,sortBy:e.searchState.sortBy,rental:e.searchState.rental,minBeds:e.searchState.minBeds||"",minPrice:e.searchState.minPrice||"",maxPrice:e.searchState.maxPrice||"",fixedPrice:e.searchState.fixedPrice,underOffer:e.searchState.underOffer,new:e.searchState.new||"",exclusive:e.searchState.exclusive,featured:e.searchState.featured,keywords:e.searchState.keywords,ptype:e.searchState.ptype,virtualTour:e.searchState.virtualTour,epc:e.searchState.epcRatings,freeText:e.searchState.locationText,view:e.searchState.view||j.A.find((function(e){return"view"===e.name})).defaultValue,propertyTypesDef:e.searchState.propertyTypesDef,inlinedListResults:e.searchState.listResults,inlinedMapResults:e.searchState.mapResults,solicitor:e.searchState.solicitor,searchId:e.searchId,isUserLoggedIn:e.searchState.isUserLoggedIn,nearme:e.searchState.nearme,newbuilds:e.searchState.newBuilds},t}return s()(o,[{key:"handleRemoveFilter",value:function(e){var t=j.A.filter((function(t){return t.name===e.name}))[0];this.setState((function(n){return t.handleTagRemove(n,e)}),this.updateCurrentUrl)}},{key:"handleAddLocation",value:function(e){var t=this.state.locations.slice();0===t.filter((function(t){return t.key===e.key})).length&&(t.push(e),this.setState({locations:t,page:null},this.updateCurrentUrl))}},{key:"handleChangeLocation",value:function(e){this.setState({locations:[e],radiuses:[],freeText:[],page:null},this.updateCurrentUrl)}},{key:"handleRemoveLocation",value:function(e){var t=this.state.locations.slice();0===(t=t.filter((function(t){return t.key!==e.key}))).length&&0===this.state.radiuses.length&&t.push({key:this.props.clientConfig.defaultLocationSearchKey,displayText:this.props.clientConfig.defaultLocationSearchLabel,category:0}),this.setState({locations:t,page:null},this.updateCurrentUrl)}},{key:"handleRemoveRadius",value:function(e){var t=this.state.radiuses.slice(),n=t.indexOf(e);n>-1&&t.splice(n,1);var a={radiuses:t,page:null};0===t.length&&0===this.state.locations.length&&(a.locations=[{key:this.props.clientConfig.defaultLocationSearchKey,displayText:this.props.clientConfig.defaultLocationSearchLabel,category:0}]),this.setState(a,this.updateCurrentUrl)}},{key:"handleAddSingleRadius",value:function(e){var t=this,n={radiuses:[e],locations:[],nearme:null,page:null};this.setState(n,(function(){return t.updateCurrentUrl(null,!0)}))}},{key:"clearNearMe",value:function(){var e=this;this.setState({nearme:null},(function(){return e.updateCurrentUrl(null,!0)}))}},{key:"handleRemoveFreeText",value:function(e){var t={freeText:[],page:null};!0===e&&0===this.state.radiuses.length&&0===this.state.locations.length&&(t.locations=[{key:this.props.clientConfig.defaultLocationSearchKey,displayText:this.props.clientConfig.defaultLocationSearchLabel,category:0}]),this.setState(t,this.updateCurrentUrl)}},{key:"handlePageChange",value:function(e){var t=this;this.setState({page:e},(function(){t.updateCurrentUrl(!0),window.scrollTo(0,0)}))}},{key:"handleSortBy",value:function(e){this.setState({sortBy:e,page:null},this.updateCurrentUrl)}},{key:"handlePageSize",value:function(e){var t=this;this.setState({page:null,pageSize:e},(function(){t.updateCurrentUrl(),window.scrollTo(0,0)}))}},{key:"handleChangeSchool",value:function(e){this.setState({school:e,page:null},this.updateCurrentUrl)}},{key:"handleBedsChange",value:function(e){this.saveSearchFilter(e,"minBeds",this.state.rental),this.setState({minBeds:e,page:null},this.updateCurrentUrl)}},{key:"handleMinPriceChange",value:function(e){var t=parseInt(this.state.maxPrice),n={minPrice:e,page:null};!isNaN(t)&&t<parseInt(e)&&(n.maxPrice=e,this.saveSearchFilter(e,"maxPrice",this.state.rental)),this.saveSearchFilter(e,"minPrice",this.state.rental),this.setState(n,this.updateCurrentUrl)}},{key:"handleMaxPriceChange",value:function(e){var t=parseInt(this.state.minPrice),n={maxPrice:e,page:null};!isNaN(t)&&t>parseInt(e)&&(n.minPrice=e,this.saveSearchFilter(e,"minPrice",this.state.rental)),this.saveSearchFilter(e,"maxPrice",this.state.rental),this.setState(n,this.updateCurrentUrl)}},{key:"handleUnderOfferChange",value:function(e){this.saveSearchFilter(e,"underOffer",this.state.rental),this.setState({underOffer:e,page:null},this.updateCurrentUrl)}},{key:"handleFixedPriceChange",value:function(e){this.setState({fixedPrice:e,page:null},this.updateCurrentUrl)}},{key:"handleVirtualTourChange",value:function(e){this.setState({virtualTour:e,page:null},this.updateCurrentUrl)}},{key:"handleNewChange",value:function(e){this.setState({new:e,page:null},this.updateCurrentUrl)}},{key:"handleExclusiveChange",value:function(e){this.setState({exclusive:e,page:null},this.updateCurrentUrl)}}
1,{key:"handleNewBuildsChange",value:function(e){this.setState({newbuilds:e,page:null},this.updateCurrentUrl)}},{key:"handleKeywordChange",value:function(e,t){var n=this.state.keywords.slice();t!==n.filter((function(t){return t===e})).length>0&&(t?n.push(e):n.splice(n.indexOf(e),1),this.setState({keywords:n,page:null},this.updateCurrentUrl))}},{key:"handleEpcRatingChange",value:function(e,t){var n=this.state.epc.slice();t!==n.filter((function(t){return t===e})).length>0&&(t?n.push(e):n.splice(n.indexOf(e),1),this.setState({epc:n,page:null},this.updateCurrentUrl))}},{key:"handlePropertyTypeChange",value:function(e,t,n){var a=this.state.ptype.slice(),r=e.indexOf("_")<0,i=a.filter((function(t){return t===e})).length>0;if(t!==i){if(t){if(a.push(e),r)for(var l=e,o=a.filter((function(e){return e.indexOf(l+"_")>-1&&"other_26"!==e&&"other_43"!==e})),s=0;s<o.length;s++)a.splice(a.indexOf(o[s]),1);else if("other_26"!==e&&"other_43"!==e){var c=e.substring(0,e.indexOf("_")),u=a.indexOf(c);u>-1&&a.splice(u,1)}}else{var h=a.indexOf(e);a.splice(h,1)}this.setState({ptype:a,page:null},this.updateCurrentUrl)}if(!i&&!t&&n){var p=this.state.propertyTypesDef.find((function(t){return t.children.filter((function(t){return t.value===e})).length>0}));if(p&&a.includes(p.value)){var d=a.indexOf(e);a.splice(d,1),p.children.forEach((function(t){-1===a.indexOf(t.value)&&t.value!==e&&a.push(t.value)})),this.setState({ptype:a,page:null},this.updateCurrentUrl)}}}},{key:"handleViewChange",value:function(e){var t=this,n={view:e,page:this.state.page};"map"===e&&(n.page=null,n.sortBy=null),this.state.view===e&&this.state.page===n.page||this.setState(n,(function(){t.updateCurrentUrl()}))}},{key:"setQueryState",value:function(e,t,n){this.setState(e,n||(t?this.updateCurrentUrl:null))}},{key:"updateCurrentUrl",value:function(e,t){void 0===t&&(t=!this.props.searchState.isResultsPage);var n=this.props.searchState.isResultsPage?null:window.location.pathname.substring(1);e&&(n=window.location.pathname.substring(1)),this.updateUrl(null,t,n)}},{key:"updateUrl",value:function(e,t,n){var a=this.createUrl(e,n),r=this.props.history;t?r.replace(a,this.state):r.push(a,this.state)}},{key:"createUrl",value:function(e,t){var n=this.getMergedState(e);return(0,z.mp)(n,t)}},{key:"getMergedState",value:function(e){var t={};return e?Object.assign(t,this.state,e):t=this.state,t}},{key:"getPropertyQuery",value:function(){return new z.Ay(this.state)}},{key:"render",value:function(){return v.createElement(e,r()({handleAddLocation:this.handleAddLocation,handleChangeLocation:this.handleChangeLocation,handleRemoveLocation:this.handleRemoveLocation,locations:this.state.locations,handleAddSingleRadius:this.handleAddSingleRadius,clearNearMe:this.clearNearMe,handleRemoveRadius:this.handleRemoveRadius,handleRemoveFreeText:this.handleRemoveFreeText,radiuses:this.state.radiuses,handlePageChange:this.handlePageChange,page:this.state.page,setQueryState:this.setQueryState,updateUrl:this.updateUrl,createUrl:this.createUrl,getMergedState:this.getMergedState,getPropertyQuery:this.getPropertyQuery,handleSortBy:this.handleSortBy,handlePageSize:this.handlePageSize,handleChangeSchool:this.handleChangeSchool,handleBedsChange:this.handleBedsChange,handleMinPriceChange:this.handleMinPriceChange,handleMaxPriceChange:this.handleMaxPriceChange,handleUnderOfferChange:this.handleUnderOfferChange,handleFixedPriceChange:this.handleFixedPriceChange,handleVirtualTourChange:this.handleVirtualTourChange,handleNewChange:this.handleNewChange,handleExclusiveChange:this.handleExclusiveChange,handleKeywordChange:this.handleKeywordChange,handleEpcRatingChange:this.handleEpcRatingChange,handlePropertyTypeChange:this.handlePropertyTypeChange,handleViewChange:this.handleViewChange,handleRemoveFilter:this.handleRemoveFilter,keywordsDef:this.props.searchState.keywordsDef,epcRatingsDef:this.props.searchState.epcRatingsDef,handleNewBuildsChange:this.handleNewBuildsChange},this.props,this.state))}}]),o}(v.Component)}var K=n(5338);function W(e){var t=$();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function $(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return($=function(){return!!e})()}var G=function(e){p()(n,e);var t=W(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).handlePropertyTypeChange=a.handlePropertyTypeChange.bind(u()(a)),a.updateUrl=a.updateUrl.bind(u()(a)),a.getUrl=a.getUrl.bind(u()(a)),a.selectItem=a.selectItem.bind(u()(a)),a.goBack=a.goBack.bind(u()(a)),a}return s()(n,[{key:"handlePropertyTypeChange",value:function(e,t){this.props.handlePropertyTypeChange(e,t,!0)}},{key:"categoryCounts",value:function(e,t){return e.map((function(e){for(var n=0,a=0;a<e.keywords.length;
1a++)t.includes(e.keywords[a].value)&&n++;return{category:e.category,count:n}}))}},{key:"selectItem",value:function(e){var t={selectView:e};this.props.setQueryState(t),this.props.updateUrl(t,!1,window.location.pathname.replace("/",""))}},{key:"goBack",value:function(e){e.preventDefault(),window.history.back()}},{key:"componentDidMount",value:function(){var e=this,t=this.props.history;t.listen((function(t,n){"POP"==n&&e.props.setQueryState({selectView:t.state?t.state.selectView:null},!0)})),t.location.state||this.props.updateUrl(null,!0,window.location.pathname.replace("/",""))}},{key:"updateUrl",value:function(){this.props.updateUrl(null,!0,window.location.pathname.replace("/",""))}},{key:"getUrl",value:function(){var e=this.props.getMergedState(),t=this.props.location.pathname;return this.props.createUrl(e,t)}},{key:"componentDidUpdate",value:function(e,t){this.props.selectView&&!e.selectView&&window.scrollTo(0,0)}},{key:"render",value:function(){var e=this;if(this.props.selectView){var t=null;if("Property types"===this.props.selectView)t=v.createElement(D,{goBack:this.goBack,pTypesDef:this.props.searchState.propertyTypesDef,pTypes:this.props.ptype,handleChange:this.handlePropertyTypeChange});else if("EPC rating"===this.props.selectView)t=v.createElement(M,{goBack:this.goBack,keywords:{keywords:this.props.searchState.epcRatingsDef.map((function(e){return{label:"EPC rating - "+e.label,value:e.value}}))},selectedKeywords:this.props.epc,handleChange:this.props.handleEpcRatingChange});else{var n=this.props.searchState.keywordsDef.find((function(t){return t.category===e.props.selectView}));t=v.createElement(M,{goBack:this.goBack,keywords:n,selectedKeywords:this.props.keywords,handleChange:this.props.handleKeywordChange})}return v.createElement("div",{className:"col full_width"},t)}var a=this.categoryCounts(this.props.searchState.keywordsDef,this.props.keywords);return a.splice(2,0,{category:"EPC rating",count:this.props.epc.length}),v.createElement("div",{className:"filters col full_width"},v.createElement(x,{searchType:this.props.searchType,locations:this.props.locations,radiuses:this.props.radiuses,freeText:this.props.freeText,handleRemoveFreeText:this.props.handleRemoveFreeText,handleAddLocation:this.props.handleAddLocation,handleRemoveLocation:this.props.handleRemoveLocation,handleChangeLocation:this.props.handleChangeLocation,handleRemoveRadius:this.props.handleRemoveRadius,suggestionsAbsolutePositioned:!0,defaultLocationKey:this.props.clientConfig.defaultLocationSearchKey,hideDefaultLocation:!0,radiusSearchReturnUrl:window.location.pathname,getUrlFunc:this.getUrl}),v.createElement(O,{minBeds:this.props.minBeds,handleBedsChange:this.props.handleBedsChange,minPrice:this.props.minPrice,handleMinPriceChange:this.props.handleMinPriceChange,maxPrice:this.props.maxPrice,handleMaxPriceChange:this.props.handleMaxPriceChange,new:this.props.new,newbuilds:this.props.newbuilds,handleNewBuildsChange:this.props.handleNewBuildsChange,handleNewChange:this.props.handleNewChange,fixedPrice:this.props.fixedPrice,handleFixedPriceChange:this.props.handleFixedPriceChange,underOffer:this.props.underOffer,handleUnderOfferChange:this.props.handleUnderOfferChange,exclusive:this.props.exclusive,handleExclusiveChange:this.props.handleExclusiveChange,rental:this.props.rental}),v.createElement(F,{keywords:a,pTypes:this.props.ptype||[],epcRatings:this.props.searchState.epcRatingsDef,selectItem:this.selectItem}),v.createElement("div",{className:"buttons"},v.createElement("div",{className:"wrapper"},v.createElement("div",{className:"clearfix"},v.createElement("div",{className:"col small_4 large_8 no-bottom"},v.createElement("a",{href:this.props.cancelPath||this.props.createUrl(this.props.searchState),className:"icon-left-open button low"},"Cancel"),v.createElement("a",{href:this.props.createUrl(),className:"icon-ok button"},"Apply"))))))}}],[{key:"init",value:function(e,t,a){var i=H(n);(0,K.createRoot)(document.getElementById(e)).render(v.createElement(V.Kd,null,v.createElement(_.dO,null,v.createElement(_.qh,{path:"/refine-search",render:function(e){return v.createElement(i,r()({searchState:t,clientConfig:a},e))}}),v.createElement(_.qh,{path:"/advanced-search",render:function(e){return v.createElement(i,r()({cancelPath:"/",searchState:t,clientConfig:a},e))}}))))}}]),n}(v.Component);"undefined"!=typeof window&&(window.refineSearchInit=G.init)}
1,72064:(e,t,n)=>{var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(56994),s=n.n(o),c=n(65611),u=n.n(c),h=n(18337),p=n.n(h),d=n(96540),m=n(67511),f=n(93637),g=n(5338);function v(e){var t=y();return function(){var n,a=p()(e);if(t){var r=p()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return u()(this,n)}}function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(y=function(){return!!e})()}var b=function(e){s()(n,e);var t=v(n);function n(e){var a;return r()(this,n),(a=t.call(this,e)).getSearchFilters=window.localStorageService.getSearchFilters,a.saveSearchFilter=window.localStorageService.saveSearchFilter,a}return l()(n,null,[{key:"init",value:function(e){(0,g.createRoot)(document.getElementById(e)).render(d.createElement(n,null))}}]),l()(n,[{key:"render",value:function(){return d.createElement("div",null,d.createElement("div",{className:"search-box gap-4"},d.createElement("h1",{className:"text-h4 md:text-h3 !font-medium tracking-normal"},"Property for Sale"),d.createElement(m.A,{getSearchFilters:this.getSearchFilters,saveSearchFilter:this.saveSearchFilter,createUrl:f.mp,rental:!1})))}}]),n}(d.Component);"undefined"!=typeof window&&(window.propertyForSaleInit=b.init)},96481:(e,t,n)=>{n.d(t,{A:()=>g});var a=n(85735),r=n.n(a),i=n(26396),l=n.n(i);function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,l=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){o=!0,i=e},f:function(){try{l||null==n.return||n.return()}finally{if(o)throw i}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function c(e){if(0===e.locations.length&&0===e.radiuses.length&&!e.school)return!0}function u(e,t){if(!t.locations){var n=e.locations;t.locations=n}return t.locations.push({key:"scotland",displayText:"",category:0}),t}function h(e){return e[this.name]?[{name:this.name,displayText:this.tagName}]:[]}function p(){return l()({},this.name,null)}function d(e,t,n){var a=this,r=[],i=function(e){return{displayText:e.label,value:e.value,name:a.name}},l=e[this.name];if(l&&l.length>0){var s,c=o(l);try{for(c.s();!(s=c.n()).done;){var u,h=s.value,p=o(t);try{for(p.s();!(u=p.n()).done;){var d=u.value;if(d.value===h&&r.push(i(d)),d[n]){var m,f=o(d[n]);try{for(f.s();!(m=f.n()).done;){var g=m.value;g.value===h&&r.push(i(g))}}catch(e){f.e(e)}finally{f.f()}}}}catch(e){p.e(e)}finally{p.f()}}}catch(e){c.e(e)}finally{c.f()}}return r}function m(e,t){var n=e[this.name].slice();n=n.filter((function(e){return e!==t.value}));var a={};return a[this.name]=n,a}function f(e){return"object"===("undefined"==typeof Intl?"undefined":r()(Intl))&&Intl&&"function"==typeof Intl.NumberFormat?new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",minimumFractionDigits:0,maximumFractionDigits:0}).format(e):"£"+e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}const g=[{name:"page",urlName:"p",type:"integer",defaultValue:1,isValid:function(e){return e>0},invisibleAsTag:!0},{name:"pageSize",urlName:"ps",type:"integer",defaultValue:10,isValid:function(e){return 10==e||25==e||50==e},invisibleAsTag:!0},{name:"sortBy",urlName:"sortby",type:"string",defaultValue:"datedesc",invisibleAsTag:!0},{name:"locations",urlName:"locations",urlValue:function(e){return!e instanceof Array?null:e.map((function(e){return e.key.replace(/\//g,"_")})).join()},defaultValue:"scotland",getTags:function(e,t){var n=this,a=e[this.name];return!a||1===a.length&&a[0].key===t.defaultLocationKey?[]:a.map((function(e){return{name:n.name,displayText:e.displayText,value:e.key,defaultLocationKey:t.defaultLocationKey}}))},handleTagRemove:function(e,t){var n=e[this.name].slice();n=n.filter((function(e){return e.key!==t.value}));var a={};return a[this.name]=n,c(Object.assign({},e,a))?u(e,a):a}},{name:"radiuses",urlName:"radiuses",urlValue:function(e){return!e instanceof Array?null:e.map((function(e){return e.lat+","+e.lon+","+e.radiu
1s+","+encodeURIComponent(e.displayText)})).join(";")},getTags:function(e){var t=this,n=e[this.name];return n&&0!==n.length?n.map((function(e){return{name:t.name,displayText:e.displayText,value:{lat:e.lat,lon:e.lon}}})):[]},handleTagRemove:function(e,t){var n=e[this.name].slice();n=n.filter((function(e){return e.lat!==t.value.lat&&e.lon!==t.value.lon}));var a={};return a[this.name]=n,c(Object.assign({},e,a))?u(e,a):a}},{name:"school",urlName:"school",urlValue:function(e){return e.schoolId},tagName:"School catchment",getTags:function(e){var t=e[this.name];return t?[{name:this.name,displayText:"School: "+t.displayText}]:[]},handleTagRemove:function(e){var t=l()({},this.name,null);return t=u(e,t)}},{name:"rental",urlName:"rental",type:"bool",invisibleAsTag:!0},{name:"minBeds",urlName:"minbeds",tagName:"Bedrooms",tagValue:function(e){return e.replace("plus","+")},nullValue:"",type:"string",getTags:function(e){var t,n=e[this.name];return n?(t="1"!==n?"bedrooms":"bedroom",[{name:this.name,displayText:this.tagValue(n)+" "+t}]):[]},handleTagRemove:function(){return l()({},this.name,"")}},{name:"minPrice",urlName:"minprice",tagName:"Min. price",type:"integer",nullValue:"",getTags:function(e){var t=e.maxPrice,n=e[this.name],a=null,r=null,i=null;if(t&&(a=f(t)),n&&(r=f(n)),a&&r)i=r+" - "+a;else if(a)i=a+" max";else{if(!r)return[];i="min "+r}return[{name:this.name,displayText:i}]},handleTagRemove:function(){var e;return e={},l()(e,this.name,""),l()(e,"maxPrice",""),e}},{name:"maxPrice",urlName:"maxprice",tagName:"Max. price",type:"integer",nullValue:"",invisibleAsTag:!0},{name:"new",urlName:"new",tagName:"Added",tagValue:function(e){return"last "+e+" days"},type:"integer",nullValue:"",getTags:function(e){var t=e[this.name];return t?[{name:this.name,displayText:this.tagName+" "+this.tagValue(t)}]:[]},handleTagRemove:function(){return l()({},this.name,"")}},{name:"nearme",urlName:"nearme",type:"bool",invisibleAsTag:!0},{name:"fixedPrice",urlName:"fixedprice",tagName:"Fixed price",type:"bool",getTags:h,handleTagRemove:p},{name:"virtualTour",urlName:"vtour",tagName:"Virtual tour",type:"bool",getTags:h,handleTagRemove:p},{name:"underOffer",urlName:"underoffer",tagName:"Including under offer",type:"bool",getTags:h,handleTagRemove:p},{name:"featured",urlName:"featured",tagName:"Featured",type:"bool",getTags:h,handleTagRemove:p},{name:"exclusive",urlName:"exclusive",tagName:"Exclusive",type:"bool",getTags:h,handleTagRemove:p},{name:"solicitor",urlName:"orgid",queryName:"orgId",queryValue:function(e){return this.urlValue(e)},urlValue:function(e){return e?e.id:null},getTags:function(e,t){var n=t.solicitor;return n?[{name:this.name,displayText:"Agent: "+n.firm.name,value:n.id}]:[]},handleTagRemove:p},{name:"ptype",urlName:"ptype",urlValue:function(e){return e instanceof Array?e.join():"string"==typeof e?e:null},getTags:function(e,t){return d.call(this,e,t.propertyTypesDef,"children")},handleTagRemove:m},{name:"freeText",urlName:"locationtext",urlValue:function(e){return!e instanceof Array?null:encodeURIComponent(e.join())},getTags:function(e){var t=this,n=e[this.name];return n&&0!==n.length?n.map((function(e){return{name:t.name,displayText:e,value:e}})):[]},handleTagRemove:function(e,t){var n=e[this.name].slice();n=n.filter((function(e){return e!==t.value}));var a={};return a[this.name]=n,c(Object.assign({},e,a))?u(e,a):a}},{name:"view",urlName:"view",defaultValue:"list",type:"string",invisibleAsTag:!0},{name:"keywords",urlName:"keywords",urlValue:function(e){return!e instanceof Array?null:e.join()},getTags:function(e,t){return d.call(this,e,t.keywordsDef,"keywords")},handleTagRemove:m},{name:"epc",urlName:"epc",tagName:"EPC rating",urlValue:function(e){return!e instanceof Array?null:e.join()},getTags:function(e){var t=e[this.name];return t&&0!==t.length?[{name:this.name,displayText:this.tagName+": "+t.join()}]:[]},handleTagRemove:function(){return l()({},this.name,[])}},{name:"newbuilds",urlName:"newbuilds",tagName:"New builds",type:"bool",getTags:h,handleTagRemove:p}]},93637:(e,t,n)=>{n.d(t,{Ay:()=>s,mp:()=>c});var a=n(82274),r=n.n(a),i=n(65044),l=n.n(i),o=n(96481),s=function(){function e(t){r()(this,e);for(var n=0;n<o.A.length;n++){var a=o.A[n];void 0!==t[a.name]&&(this[a.queryName||a.name]=a.queryValue?a.queryValue(t[a.name]):t[a.name])}}return l()(e,[{key:"isEqual",value:function(e){for(var t=0;t<o.A.length;t++){var n=o.A[t];if(e[n.queryName||n.name]!==this[n.queryName||n.name])return!1}return!0}}]),e}();function c(e,t){return u(e,t)}function u(e,t,a){for(var r=t||"properties",i=a||!1,l=function(){var e={};if("undefined"==typeof window)return e;var t=n.g.location.search.substring(1),a=t.split("&");if(0==t.length)return e;for(var r=0;r<a.length;r++){for(var i=a[r].split("="),l=!1,s=0;s<o.A.length;s++){o.A[s].urlName!=i[0]||(l=!0)}l||(1==i.length?e[i[0]]=null:e[i[0]]=i[1])}return e}(),s=0;s<o.A.length;s++){var c=o.A[s];if(c.type&&"integer"==c.type){if(e[c.name]){var u=e[c.name];if(void 0!==c.defaultValue&&c.defaultValue==u)continue;l[c.urlName]=u.toString()}}else if(c.type&&"string"==c.type){if(e[c.name]){var p=e[c.name];if(void 0!==c.defaultValue&&c.defaultValue==p)continue;l[c.urlName]=p}}else if(c.type&&"bool"==c.type)1==e[c.name]&&(l[c.urlName]="true");else{var d=e[c.name];if(c.urlValue&&d){if(Array.isArray(d)&&d.length<1)continue;if("locations"===c.name&&Array.isArray(d)&&1===d.length&&void 0!==c.defaultValue&&c.defaultValue===d[0].key)continue;l[c.urlName]=c.urlValue(e[c.name])}}}t&&(t.includes("property-for-sale")||t.includes("property-for-rent"))&&delete l.locations;var m=Object.keys(l).map((function(e){return e+(null!=l[e]?"="+l[e]:"")})).join("&");return i?function(e,t){for(var n=["new","locations","rental","featured","p","ptype","minbeds"],a=Object.keys(e),r=0;r<a.length;r++)if(!n.includes(a[r]))return null;if(t.ptype.length>1||1===t.ptype.length&&"house"!==t.ptype[0]&&"flat"!==t.ptype[0])return null;var i,l=o.A.filter((function(e){return"locations"===e.name}))[0].defaultValue;a.includes("p")&&(i=e.p,a=a.filter((function(e){return"p"!==e})));if(0===a.length)return h("/property-for-sale/"+l,i);if(a.includes("locations")&&1===t.locations.length){var s,c=e.minbeds,u=e.locations.replace("_","/");e.ptype&&(s="house"===t.ptype[0]?"houses":"flats");var p=e.rental?"/property-for-rent":"/property-for-sale",d="".concat(p,"/").concat(u);return s&&(d+="/".concat(s)),c&&(d+="/".concat(c,"-bed")),h(d,i)}if("new"===a[0])return h("/new",i);if("featured"===a[0])return h("/featured-properties",i);if("rental"===a[0])return h("/property-for-rent/"+l,i);return null}(l,e):"/"+r+(0!=m.length?"?"+m:"")}function h(e,t){return t?e+"?p="+t:e}},43356:(e,t,n)=>{var a=n(26396),r=n.n(a),i=n(82274),l=n.n(i),o=n(65044),s=n.n(o),c=n(41972),u=n.n(c),h=n(
156994),p=n.n(h),d=n(65611),m=n.n(d),f=n(18337),g=n.n(f),v=n(96540),y=n(52594),b=n(15360),E=(n(1482),n(5556)),C=n.n(E),k=n(89853);function S(e){var t=w();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function w(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(w=function(){return!!e})()}var N=function(e){p()(n,e);var t=S(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).handleChange=a.handleChange.bind(u()(a)),a.handleSelect=a.handleSelect.bind(u()(a)),a.updateSuggestions=window.debounce(a.updateSuggestions,500).bind(u()(a)),a}return s()(n,[{key:"componentWillReceiveProps",value:function(e){this.props.value!==e.value&&this.updateSuggestions(e.value)}},{key:"updateSuggestions",value:function(e){e&&e.length&&$.ajax({url:"/solicitors/byname",method:"GET",data:{query:e,limit:5},success:function(e){if(e){var t=e.map((function(e,t,n){return{index:t,item:{key:e.firmId,displayText:e.name}}}));this.props.onSuggestionsUpdate(t)}else this.props.onSuggestionsUpdate([])},complete:function(){this.props.onLoadingComplete()},context:this})}},{key:"handleChange",value:function(e,t){void 0!==this.props.onChange&&this.props.onChange(e,t)}},{key:"handleSelect",value:function(e,t){void 0!==this.props.onSelect&&this.props.onSelect({firmId:t.item.key,name:t.item.displayText})}},{key:"render",value:function(){return v.createElement(k.A,{updateItems:this.updateSuggestions,value:this.props.value,items:this.props.solicitors,onChange:this.handleChange,onSelect:this.handleSelect,onSubmit:this.props.onSubmit,inputName:this.props.inputName,inputPlaceholder:this.props.inputPlaceholder,updateItemsOnFocus:this.props.updateItemsOnFocus,size:this.props.size,suggestionsAbsolutePositioned:!0,autoHighlight:this.props.autoHighlight})}}]),n}(v.Component);function P(e){var t=x();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function x(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(x=function(){return!!e})()}N.defaultProps={size:5,updateItemsOnFocus:!0,inputName:"",inputPlaceholder:"",pastsales:!1},N.propTypes={value:C().oneOfType([C().string,C().number]).isRequired,onChange:C().func.isRequired,onSelect:C().func.isRequired,updateItemsOnFocus:C().bool,size:C().number,inputName:C().string,inputPlaceholder:C().string,pastsales:C().bool};var R=function(e){p()(n,e);var t=P(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).state={solicitors:[],input:"",loading:!1},a.handleInputChange=a.handleInputChange.bind(u()(a)),a.handleSelect=a.handleSelect.bind(u()(a)),a.handleSuggestionsUpdate=a.handleSuggestionsUpdate.bind(u()(a)),a.handleLoadingComplete=a.handleLoadingComplete.bind(u()(a)),a}return s()(n,[{key:"handleInputChange",value:function(e,t){var n={input:e.target.value,solicitors:[],loading:!!e.target.value};this.setState(n)}},{key:"handleSelect",value:function(e){this.props.onSelectedSolicitorChange(e)}},{key:"handleSuggestionsUpdate",value:function(e){this.setState({solicitors:e})}},{key:"handleLoadingComplete",value:function(){this.setState({loading:!1})}},{key:"render",value:function(){return v.createElement("div",{className:"medium_7 large_7",style:{marginTop:"1em"}},v.createElement("div",null,v.createElement("p",null,this.props.solicitorNotSelectedError?v.createElement("span",{style:{color:"red"}},"*"):null,"Search for your existing solicitor by name."),v.createElement(N,{value:this.state.input,solicitors:this.state.solicitors,onSuggestionsUpdate:this.handleSuggestionsUpdate,onLoadingComplete:this.handleLoadingComplete,onChange:this.handleInputChange,onSelect:this.handleSelect,inputPlaceholder:"Solicitor name"}),v.createElement("div",{className:"select-solicitor-results"},this.state.loading?v.createElement("div",{className:"loading-overlay"},v.createElement("div",{className:"loading-alert"},v.createElement("div",{className:"rect1"}),v.createElement("div",{className:"rect2"}),v.createElement("div",{className:"rect3"}),v.createElement("div",{className:"rect4"}),v.createElement("div",{className:"rect5"}))):this.state.input.length&&0==this.state.solicitors.length?v.createElement("div",{className:"message error",style:{marginTop:"1em"}},"Sorry, no results found."):null)))}}]),n}(v.Component);function T(e){return v.createElement("div",{className:"medium_7 large_7",style:{marginTop:"1em"}},v.createElement("div",{style:{color:"#00aeef"}},e.selectedSolicitor.name,v.createElement("span",{className:"icon-cancel",onClick:function(){return e.onSelectedSolicitorChange(null)},style:{color:"#b94a48",cursor:"pointer"}})))}function I(e){var t=O();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function O(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(O=function(){return!!e})()}var L=function(e){p()(n,e);var t=I(n);function n(e){var a;l()(this,n),a=t.call(this,e);var r=e.userForm||{};e.solicitor;return a.state={firstName:r.firstName||e.user&&e.user.firstName||"",lastName:r.lastName||e.user&&e.user.lastName||"",propertyPostcode:r.propertyPostcode||"",propertyAddress:r.propertyAddress||"",propertyType:r.propertyType||"",bedrooms:r.bedrooms||"",phone:r.phone||e.user&&e.user.phone||"",email:r.email||e.user&&e.user.email||"",contactPreference:r.contactPreference||"none",hasSolicitor:r.hasExistingSolicitor,preSelectedsolicitor:null!==e.solicitor.firmId,selectedSolicitor:e.solicitor.firmId&&e.solicitor||null,errors:{},validateInputOnChange:!1,formIncomplete:!0,selling:r.selling||""},a.state.formIncomplete=!a.isFormComplete(a.state),a.handleFirstNameChange=a.handleFirstNameChange.bind(u()(a)),a.handleLastNameChange=a.handleLastNameChange.bind(u()(a)),a.handlePropertyPostcodeChange=a.handlePropertyPostcodeChange.bind(u()(a)),a.handlePropertyAddressChange=a.handlePropertyAddressChange.bind(u()(a)),a.handlePhoneChange=a.handlePhoneChange.bind(u()(a)),a.handleEmailChange=a.handleEmailChange.bind(u()(a)),a.handleContactPreferenceChange=a.handleContactPreferenceChange.bind(u()(a)),a.handlePropertyTypeChange=a.handlePropertyTypeChange.bind(u()(a)),a.handleBedroomsChange=a.handleBedroomsChange.bind(u()(a)),a.handleSelectedSolicitorChange=a.handleSelectedSolicitorChange.bind(u()(a)),a.handleHasSolicitorChange=a.handleHasSolicitorChange.bind(u()(a)),a.handleSubmit=a.handleSubmit.bind(u()(a)),a.validateInput=a.validateInput.bind(u()(a)),a.handleFocus=a.handleFocus.bind(u()(a)),a.handleBlur=a.handleBlur.bind(u()(a)),a.checkIfFormComplete=a.checkIfFormComplete.bind(u()(a)),a.handleSellingChange=a.handleSellingChange.bind(u()(a)),a}return s()(n,[{key:"checkIfFormComplete",value:function(){var e=!this.isFormComplete(this.state);e!==this.state.formIncomplete&&this.setState({formIncomplete:e})}},{key:"isFormComplete",value:function(e){return e.firstName&&e.lastName&&e.propertyPostcode&&e.propertyAddress&&(e.phone||this.state.email)&&e.propertyType&&e.bedrooms&&e.selling&&(void 0!==e.hasSolicitor&&(e.hasSolicitor&&e.selectedSolicitor||!e.hasSolicitor&&null===e.selectedSolicitor)||void 0===e.hasSolicitor&&!0===e.preSelectedsolicitor)}},{key:"handleFirstNameChange",value:function(e){var t=this;this.setState({firstName:e.target.value},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}
1))}},{key:"handleLastNameChange",value:function(e){var t=this;this.setState({lastName:e.target.value},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handlePropertyPostcodeChange",value:function(e){var t=this,n=e.target.value;e.target.value&&(n=n.toUpperCase()),this.setState({propertyPostcode:n},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handlePropertyAddressChange",value:function(e){var t=this;this.setState({propertyAddress:e.target.value},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handlePhoneChange",value:function(e){var t=this;this.setState({phone:e.target.value},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handleEmailChange",value:function(e){var t=this;this.setState({email:e.target.value.toLowerCase()},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handlePropertyTypeChange",value:function(e){var t=this;this.setState({propertyType:e.target.value},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handleBedroomsChange",value:function(e){var t=this;this.setState({bedrooms:e.target.value},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handleHasSolicitorChange",value:function(e){var t=this,n={hasSolicitor:"true"==e.target.value};!n.hasSolicitor&&this.state.selectedSolicitor&&(n.selectedSolicitor=null),this.setState(n,(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handleContactPreferenceChange",value:function(e){var t=this;this.setState({contactPreference:e.target.value},(function(){t.state.validateInputOnChange&&t.validateInput()}))}},{key:"handleSelectedSolicitorChange",value:function(e){var t=this;this.setState({selectedSolicitor:e},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handleSellingChange",value:function(e){var t=this;this.setState({selling:e.target.value},(function(){t.state.validateInputOnChange&&t.validateInput(),t.checkIfFormComplete()}))}},{key:"handleSubmit",value:function(){if(this.validateInput()){var e={firstName:this.state.firstName,lastName:this.state.lastName,email:this.state.email,phone:this.state.phone,propertyPostcode:this.state.propertyPostcode,propertyAddress:this.state.propertyAddress,propertyType:this.state.propertyType,bedrooms:this.state.bedrooms,selling:this.state.selling,hasExistingSolicitor:this.state.hasSolicitor,solicitors:this.state.selectedSolicitor?[{firmId:this.state.selectedSolicitor.firmId}]:[],contactPreference:this.state.contactPreference};this.props.onSubmit(e)}else this.setState({validateInputOnChange:!0})}},{key:"validateInput",value:function(){var e={};!this.state.firstName||this.state.firstName.trim().length<1?e.firstName="Please enter your first name":this.state.firstName.trim().length>50?e.firstName="First name must be between 1 to 50 characters":delete e.firstName,!this.state.lastName||this.state.lastName.trim().length<1?e.lastName="Please enter your last name":this.state.lastName.trim().length>50?e.lastName="Last name must be between 1 to 50 characters":delete e.lastName;var t=!this.state.email||this.state.email.trim().length<1;if(!t){/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.test(this.state.email)?this.state.email.trim().length>100&&(e.email="Email address cannot exceed 100 characters"):e.email="Please enter a valid email address"}var n=!this.state.phone||this.state.phone.trim().length<1;if(!n){/^[+0-9 \-\(\)]{11,}$/.test(this.state.phone)?(this.state.phone.trim().length<11||this.state.phone.trim().length>20)&&(e.phone="Phone number must be between 11 to 20 characters"):e.phone="Please enter a valid phone number"}t&&n&&(e.emailAndPhone="Please provide email or phone",delete e.phone,delete e.email);return/^[A-Z]{1,2}[0-9][0-9A-Z]? ?[0-9][A-BD-HJLNP-UW-Z]{2}$/.test(this.state.propertyPostcode)?delete e.propertyPostcode:e.propertyPostcode="Please enter a valid postcode",(!this.state.propertyAddress||this.state.propertyAddress.trim().length<1)&&(e.propertyAddress="Please enter property address"),(!this.state.propertyType||this.state.propertyType.trim().length<1)&&(e.propertyType="Please choose a property type"),(!this.state.bedrooms||this.state.bedrooms<1||this.state.bedrooms>5)&&(e.bedrooms="Please choose number or bedrooms"),(!this.state.selling||this.state.selling.length<1)&&(e.selling="Please select a selling time frame"),null==this.state.hasSolicitor&&!1===this.state.preSelectedsolicitor?e.hasSolicitor="Please choose an answer":delete e.hasSolicitor,!0!==this.state.hasSolicitor&&!0!==this.state.preSelectedsolicitor||this.state.selectedSolicitor||(e.selectedSolicitor="Please select your solicitor"),this.setState({errors:e,contactPreference:e.emailAndPhone||t||n?"none":this.state.contactPreference}),Object.keys(e).length<1}},{key:"handleFocus",value:function(e){e.target.parentElement.style.border="1px dotted #444"}},{key:"handleBlur",value:function(e){e.target.parentElement.style.border="1px dotted #FFF"}},{key:"render",value:function(){var e=this;return v.createElement("div",{className:"large_8 medium_8"},this.props.user?null:v.createElement("p",null,v.createElement("a",{href:"users/login?rp="+encodeURIComponent(window.location.pathname)},"Log in")," to get your details filled in automatically"),!0===this.state.preSelectedsolicitor&&v.createElement("h2",null,"Sending valuation request to ",this.state.selectedSolicitor.name),v.createElement("div",null,v.createElement("input",{placeholder:"First name",name:"firstName",value:this.state.firstName,onChange:this.handleFirstNameChange,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",className:this.state.errors.firstName?"input-validation-error error":""}),v.createElement("input",{placeholder:"Last name",name:"lastName",value:this.state.lastName,onChange:this.handleLastNameChange,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",className:this.state.errors.lastName?"input-validation-error error":""}),v.createElement("input",{placeholder:"Postcode",name:"postcode",value:this.state.propertyPostcode,onChange:this.handlePropertyPostcodeChange,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",className:this.state.errors.propertyPostcode?"input-validation-error error":""}),v.createElement("input",{placeholder:"Address",name:"address",value:this.state.propertyAddress,onChange:this.handlePropertyAddressChange,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",className:this.state.errors.propertyAddress?"input-validation-error error":""}),v.createElement("input",{placeholder:"Phone number",name:"phone",value:this.state.phone,onChange:this.handlePhoneChange,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",className:this.state.errors.phone||this.state.errors.emailAndPhone?"input-validation-error error":"",type:"tel"}),v.createElement("input",{placeholder:"Email address",name:"email",value:this.state.email,onChange:this.handleEmailChange,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",className:this.state.errors.email||this.state.errors.emailAndPhone?"input-validation-error error":"",type:"email"}),v.createElement("p",{style:{marginTop:"1em"}},this.state.errors.propertyType?v.createElement("span",{style:{color:"red"}}," * "):null,"What type of property is it?"),v.createElement("label",{style:{border:"1px dotted #FFF"}},v.createElement("input",{type:"radio",name:"propertyType",value:"house",checked:"house"===this.state.propertyType,onCh
1ange:this.handlePropertyTypeChange,onFocus:this.handleFocus,onBlur:this.handleBlur}),"House"),v.createElement("label",{style:{border:"1px dotted #FFF"}},v.createElement("input",{type:"radio",name:"propertyType",value:"flat",checked:"flat"===this.state.propertyType,onChange:this.handlePropertyTypeChange,onFocus:this.handleFocus,onBlur:this.handleBlur}),"Flat"),v.createElement("p",{style:{marginTop:"1em"}},"How many bedrooms?"),this.state.errors.bedrooms?v.createElement("span",{style:{color:"red"}}," * "):null,[[1,"1"],[2,"2"],[3,"3"],[4,"4"],[5,"5+"]].map((function(t){return v.createElement("label",{key:t[0],style:{border:"1px dotted #FFF"}},v.createElement("input",{type:"radio",name:"bedrooms",value:t[0],checked:e.state.bedrooms===t[0].toString(),onChange:e.handleBedroomsChange,onFocus:e.handleFocus,onBlur:e.handleBlur}),t[1])})),v.createElement("p",{style:{marginTop:"1em"}},"When are you thinking of selling? ",this.state.errors.selling?v.createElement("span",{style:{color:"red"}}," * "):null),v.createElement("select",{onChange:this.handleSellingChange,value:this.state.selling},v.createElement("option",{value:"",disabled:!0,hidden:!0},"Please select"),[["0-3 months"],["3-6 months"],["6-12 months"],["Not Sure"]].map((function(e){return v.createElement("option",{key:e,value:e},e)}))),this.state.email&&this.state.email.trim().length>0&&this.state.phone&&this.state.phone.trim().length>0&&v.createElement("div",null,v.createElement("p",null,"Do you have a preference for how the firm contacts you?"),v.createElement("p",null,v.createElement("label",{style:{border:"1px dotted #FFF"}},v.createElement("input",{type:"radio",name:"contactPreference",value:"phone",checked:"phone"===this.state.contactPreference,onChange:this.handleContactPreferenceChange,onFocus:this.handleFocus,onBlur:this.handleBlur}),"Phone"),v.createElement("label",{style:{border:"1px dotted #FFF"}},v.createElement("input",{type:"radio",name:"contactPreference",value:"email",checked:"email"===this.state.contactPreference,onChange:this.handleContactPreferenceChange,onFocus:this.handleFocus,onBlur:this.handleBlur}),"Email"),v.createElement("label",{style:{border:"1px dotted #FFF"}},v.createElement("input",{type:"radio",name:"contactPreference",value:"none",checked:"none"===this.state.contactPreference,onChange:this.handleContactPreferenceChange,onFocus:this.handleFocus,onBlur:this.handleBlur}),"No preference"))),!1===this.state.preSelectedsolicitor&&v.createElement("div",null,v.createElement("p",{style:{marginTop:"1em"}},"Do you already have a solicitor?"),this.state.errors.hasSolicitor?v.createElement("span",{style:{color:"red"}}," * "):null,v.createElement("label",{style:{border:"1px dotted #FFF"}},v.createElement("input",{type:"radio",name:"hasSolicitor",value:!0,checked:!0===this.state.hasSolicitor,onChange:this.handleHasSolicitorChange,onFocus:this.handleFocus,onBlur:this.handleBlur}),"Yes"),v.createElement("label",{style:{border:"1px dotted #FFF"}},v.createElement("input",{type:"radio",name:"hasSolicitor",value:!1,checked:!1===this.state.hasSolicitor,onChange:this.handleHasSolicitorChange,onFocus:this.handleFocus,onBlur:this.handleBlur}),"No"))),!0===this.state.hasSolicitor&&v.createElement("div",null,null==this.state.selectedSolicitor?v.createElement(R,{onSelectedSolicitorChange:this.handleSelectedSolicitorChange,solicitorNotSelectedError:this.state.errors.selectedSolicitor}):v.createElement(T,{selectedSolicitor:this.state.selectedSolicitor,onSelectedSolicitorChange:this.handleSelectedSolicitorChange})),v.createElement("div",{className:"large_7 medium_7"},Object.keys(this.state.errors).length>0?v.createElement("div",{className:"message error",style:{marginTop:"1em"}},v.createElement("p",null,"Sorry, there seems to be a problem."),v.createElement("div",{className:"validation-summary-errors"},v.createElement("ul",null,this.state.errors.firstName?v.createElement("li",null,this.state.errors.firstName):null,this.state.errors.lastName?v.createElement("li",null,this.state.errors.lastName):null,this.state.errors.propertyPostcode?v.createElement("li",null,this.state.errors.propertyPostcode):null,this.state.errors.propertyAddress?v.createElement("li",null,this.state.errors.propertyAddress):null,this.state.errors.email&&!this.state.errors.emailAndPhone?v.createElement("li",null,this.state.errors.email):null,this.state.errors.phone&&!this.state.errors.emailAndPhone?v.createElement("li",null,this.state.errors.phone):null,this.state.errors.emailAndPhone?v.createElement("li",null,this.state.errors.emailAndPhone):null,this.state.errors.propertyType?v.createElement("li",null,this.state.errors.propertyType):null,this.state.errors.bedrooms?v.createElement("li",null,this.state.errors.bedrooms):null,this.state.errors.selling?v.createElement("li",null,this.state.errors.selling):null,this.state.errors.hasSolicitor?v.createElement("li",null,this.state.errors.hasSolicitor):null,this.state.errors.selectedSolicitor?v.createElement("li",null,this.state.errors.selectedSolicitor):null))):null),v.createElement("div",{className:"large_3 medium_4 sticky"},v.createElement("button",{id:"btnValStepOne",className:"button",onClick:this.handleSubmit,disabled:this.props.submitInProgress||this.state.formIncomplete},this.state.hasSolicitor||this.state.preSelectedsolicitor?"REQUEST VALUATION":"FIND
1SOLICITOR")),"error"==this.props.submitResult?v.createElement("div",{className:"small_4 large_7"},v.createElement("div",{className:"message error"},v.createElement("p",null,"There seems to be an problem with your request. Try again or if the problem persists please contact us at ",v.createElement("a",{href:"mailto:[email protected]"},"[email protected]")))):null,v.createElement("div",{className:"large_11 medium_11"},v.createElement("p",null,"By providing this information, you consent to us providing it to the selected solicitors so that they can contact you directly about your property valuation. Please read our ",v.createElement("a",{href:"/espc-policies"},"terms & conditions"))))}}]),n}(v.Component),F=n(3107);function M(e){var t=e.solicitors.map((function(t){var n=e.selectedSolicitors.map((function(e){return e.organisationId||e.firmId})).indexOf(t.organisationId||t.firmId)>-1;return v.createElement("li",{key:t.organisationId||t.firmId,className:n?"selected":""},v.createElement("label",null,v.createElement("input",{type:"checkbox",value:t.organisationId||t.firmId,onChange:function(n){return function(t,n){var a=n.target.checked,r=e.selectedSolicitors.slice(),i=r.map((function(e){return e.organisationId||e.firmId})).indexOf(t.organisationId||t.firmId);i<0?a&&r.push({organisationId:t.organisationId,firmId:t.firmId}):a||r.splice(i,1),e.onSelectedSolicitorsChange(r)}(t,n)},checked:n})," ",v.createElement("span",null,t.name+(t.address?" - "+t.address:""))," "),t.isCharterMember&&v.createElement("div",{className:"charter-logo"},v.createElement("img",{src:"/resources/images/espc_chartered_firm.png"}),v.createElement(F.z,{trigger:function(e){return v.createElement("span",{className:"infolink"})},position:["right center","left center"],closeOnDocumentClick:!0,keepTooltipInside:!0,on:"hover"},v.createElement("span",{className:"charter-info-text"}," Chartered Firms are ESPC Solicitor Estate Agents who have agreed to guarantee clients and prospective clients a higher level of service. ",v.createElement("a",{href:"/advice/about-espc/espc-property-charter",target:"_blank"},"Learn more")," "))))}));return v.createElement("ul",{className:"solicitors-list"},t)}function A(e){var t=B();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function B(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(B=function(){return!!e})()}var D=function(e){p()(n,e);var t=A(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).methods=[{value:"activenearby",label:"Sold Nearby",blurb:"Solicitor estate agents who have previously sold properties in your area."},{value:"bestprice",label:"Highest Price",blurb:"These solicitor estate agents achieved the highest price compared with the propertyâs Home Report valuation."},{value:"fastestsale",label:"Quick Sale",blurb:"Properties marketed by these solicitor estate agents went under offer the quickest."},{value:"nearestoffice",label:"Nearest Office",blurb:"These solicitor estate agents have an office near your property."}],a.state={selectedSolicitors:[],method:null,methodLabel:null,solicitors:[],loading:!1,charteredOnly:!1},a.handleMethodChange=a.handleMethodChange.bind(u()(a)),a.handleSelectedSolicitorsChange=a.handleSelectedSolicitorsChange.bind(u()(a)),a.updateSolicitors=window.debounce(a.updateSolicitors,500).bind(u()(a)),a.handleSubmit=a.handleSubmit.bind(u()(a)),a.getClickHandler=a.getClickHandler.bind(u()(a)),a.handleCharterFilterChange=a.handleCharterFilterChange.bind(u()(a)),a}return s()(n,[{key:"handleCharterFilterChange",value:function(e){this.setState({charteredOnly:e.target.checked}),this.state.method&&(this.setState({loading:!0}),this.updateSolicitors(this.props.postcode,this.state.method.value,e.target.checked))}},{key:"handleMethodChange",value:function(e){var t=this;this.setState({method:e,loading:!0},(function(){return t.updateSolicitors(t.props.postcode,t.state.method.value,t.state.charteredOnly)}))}},{key:"updateSolicitors",value:function(e,t,n){this.setState({loading:!0}),$.ajax({url:"/solicitors/"+t,method:"GET",data:{postcode:e,charteredOnly:n},success:function(e){this.setState({solicitors:e,selectedSolicitors:[]})},complete:function(){this.setState({loading:!1})},context:this})}},{key:"handleSelectedSolicitorsChange",value:function(e){this.setState({selectedSolicitors:e})}},{key:"handleSubmit",value:function(){this.props.onSubmit(this.state.selectedSolicitors,this.state.method.value)}},{key:"getClickHandler",value:function(e){var t=this.methods[e],n=this;return function(e){e.preventDefault(),n.handleMethodChange(t)}
1}},{key:"render",value:function(){return v.createElement("div",null,v.createElement("div",{className:"flex gap-2 mb-3"},v.createElement("div",{className:"flex gap-1.5"},v.createElement("input",{type:"checkbox",onClick:this.handleCharterFilterChange}),"Only show Chartered Firms"),v.createElement(F.z,{trigger:function(e){return v.createElement("span",{className:"infolink infolink-react"})},position:["right center","left center"],closeOnDocumentClick:!0,keepTooltipInside:!0,on:"hover"},v.createElement("span",{className:"charter-info-text"}," Chartered Firms are ESPC Solicitor Estate Agents who have agreed to guarantee clients and prospective clients a higher level of service. ",v.createElement("a",{href:"/advice/about-espc/espc-property-charter",target:"_blank"},"Learn more")," "))),v.createElement("div",{className:"select-multiple-solicitors large_8 medium_8"},v.createElement("ul",{className:"nav nav-pills"},v.createElement("li",{className:null!=this.state.method&&this.state.method.value===this.methods[0].value?"active":"",role:"presentation"},v.createElement("a",{href:"#",onClick:this.getClickHandler(0)},"Sold ",v.createElement("br",null),"Nearby")),v.createElement("li",{className:null!=this.state.method&&this.state.method.value===this.methods[1].value?"active":"",role:"presentation"},v.createElement("a",{href:"#",onClick:this.getClickHandler(1)},"Highest ",v.createElement("br",null),"Price")),v.createElement("li",{className:null!=this.state.method&&this.state.method.value===this.methods[2].value?"active":"",role:"presentation"},v.createElement("a",{href:"#",onClick:this.getClickHandler(2)},"Quickest ",v.createElement("br",null),"Sale")),v.createElement("li",{className:null!=this.state.method&&this.state.method.value===this.methods[3].value?"active":"",role:"presentation"},v.createElement("a",{href:"#",onClick:this.getClickHandler(3)},"Offices ",v.createElement("br",null),"Nearby"))),this.state.loading?v.createElement("div",{style:{height:"3em",position:"relative"}},v.createElement("div",{className:"loading-overlay"},v.createElement("div",{className:"loading-alert"},v.createElement("div",{className:"rect1"}),v.createElement("div",{className:"rect2"}),v.createElement("div",{className:"rect3"}),v.createElement("div",{className:"rect4"}),v.createElement("div",{className:"rect5"})))):this.state.method&&this.state.solicitors.length>0&&v.createElement("div",{style:{marginTop:"1em"}},v.createElement("p",null,this.state.method.blurb),v.createElement(M,{solicitors:this.state.solicitors,selectedSolicitors:this.state.selectedSolicitors,onSelectedSolicitorsChange:this.handleSelectedSolicitorsChange})),!this.state.loading&&this.state.method&&0==this.state.solicitors.length&&v.createElement("div",{style:{marginTop:"1em"}},v.createElement("p",null,"Sorry, we couldn't find any solicitors providing valuation services close to your area. Try changing the options above or",v.createElement("a",{href:"",onClick:function(){return window.location.href=window.location.href}}," try again with different postcode"))),v.createElement("div",{className:"large_4 medium_4"},this.state.solicitors.length>0&&v.createElement("button",{className:"button",onClick:this.handleSubmit,disabled:this.props.submitInProgress||null==this.state.selectedSolicitors||0===this.state.selectedSolicitors.length},"SEND VALUATION REQUEST")),"error"==this.props.submitResult?v.createElement("div",{className:"small_4 large_7"},v.createElement("div",{className:"message error"},v.createElement("p",null,"There seems to be an problem with your request. Try again or if the problem persists please contact us at ",v.createElement("a",{href:"mailto:[email protected]"},"[email protected]")))):null))}}]),n}(v.Component);function U(e){return v.createElement("div",{className:"large_8 medium_8 valuations-header"},v.createElement("ol",{className:"breadcrumb clearfix"},v.createElement("li",{className:e.step<2?"current":""},e.step<2?v.createElement("span",null,"Your Details"):v.createElement("a",{onClick:function(e){e.preventDefault(),window.scrollTo(0,0),history.back()},href:"/valuations"},"Your Details")),v.createElement("li",{className:2===e.step?"current":""},v.createElement("span",null,"Choose Solicitors"))),v.createElement("h1",null,2===e.step?"Select your solicitor estate agent":"Request a Home V
1aluation"),1===e.step&&v.createElement(v.Fragment,null,v.createElement("p",null,"Finding out how much your property is worth is the first step in the selling process. To request a free, no-obligation valuation from one of our Solicitor Estate Agents, please fill in the form below."),v.createElement("p",null,"You can select which Solicitor Estate Agents youâd like to send your valuation request to, and they will be in touch to discuss the next steps in getting your home valued.")),2===e.step&&v.createElement(v.Fragment,null,v.createElement("p",null,"Select one of the options below to see a list of solicitor estate agents that will best meet your needs.")))}var V=n(5338);function _(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_(Object(n),!0).forEach((function(t){r()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function j(e){var t=q();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function q(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(q=function(){return!!e})()}var H=function(e){p()(n,e);var t=j(n);function n(e){var a;l()(this,n),(a=t.call(this,e)).state=history.state||{userForm:{suggestionPreference:null!==e.solicitor.firmId?"fromPropertyDetails":"existingSolicitor"},submitInProgress:!1,step:1},a.state.submitResult=null,a.handleSubmit=a.handleSubmit.bind(u()(a)),a.handleSolicitorsSubmit=a.handleSolicitorsSubmit.bind(u()(a)),a.handleExistingSolicitorSubmit=a.handleExistingSolicitorSubmit.bind(u()(a)),a.captchaValidated=a.captchaValidated.bind(u()(a)),a.resumeSubmittingForm=a.resumeSubmittingForm.bind(u()(a)),window.onpopstate=function(e){var t=z({},a.state);Object.keys(t).forEach((function(e){return t[e]=null}));var n=Object.assign(t,e.state);a.setState(n)};var r=window.sessionStorage.getItem("userForm");return r&&(a.state.userForm=JSON.parse(r)),a}return s()(n,[{key:"componentDidMount",value:function(){this.initialiseCaptcha(),this.reportView()}},{key:"initialiseCaptcha",value:function(){void 0===window.grecaptcha||void 0===window.grecaptcha.render?window.setTimeout(this.initialiseCaptcha.bind(this),100):window.grecaptcha.render("recaptcha-service",{callback:this.captchaValidated},!0)}},{key:"reportView",value:function(){$.post("/valuations/report/view")}},{key:"captchaValidated",value:function(e){this.resumeSubmittingForm()}},{key:"resumeSubmittingForm",value:function(){}},{key:"handleSubmit",value:function(e){var t=this,n=z(z({},this.state),{},{userForm:e});if(history.replaceState(n,null),e.solicitors&&e.solicitors.length>0){grecaptcha.execute();var a=grecaptcha.getResponse();a?(this.setState({submitInProgress:!0}),$.ajax({url:"/valuations",method:"POST",data:z(z({},e),{},{"g-recaptcha-response":a}),success:function(){var e=this;GA.track("ValuationRequested"),this.setState({submitResult:"success"},(function(){2==e.state.step?history.replaceState(z({},e.state),null):history.pushState(z({},e.state),null)}))},error:function(){this.setState({submitResult:"error"})},complete:function(){this.setState({submitInProgress:!1})},context:this})):this.resumeSubmittingForm=function(){t.handleSubmit(e)}}else history.pushState(z(z({},n),{},{step:2}),null),this.setState({userForm:e,step:2},(function(){$.post("/valuations/report/2ndStep")}))}},{key:"handleSolicitorsSubmit",value:function(e,t){var n=z({},this.state.userForm);n.solicitors=e,n.suggestionPreference=t,this.handleSubmit(n)}},{key:"handleExistingSolicitorSubmit",value:function(e){e.suggestionPreference=this.state.userForm.suggestionPreference,this.handleSubmit(e)}},{key:"render",value:function(){return"success"==this.state.submitResult?v.createElement("div",{className:"col small_4 large_8 clearfix"},v.createElement("h1",null,"Thank you! "),v.createElement("div",{className:"message success"},v.createElement("p",null,"Thank you! We have now passed on your valuation enquiry to your chosen solicitor estate agent firms. They will contact you directly via phone or email to fully discuss the next steps in getting your pre-sale home valuation."),v.createElement("p",null,"In the meantime, have a look at ",v.createElement("a",{href:"/advice"},"our free advice section")," or ",v.createElement("a",{href:"/"}," head back to our homepage")," to search for your dream home."),v.createElement("p",null,"You might also be interested in:"),v.createElement("ul",null,v.createElement("li",null,v.createElement("a",{href:"/advice/selling"},"How to sell a house in Scotland")),v.createElement("li",null,v.createElement("a",{href:"/services/mortgages"},"ESPC Mortgages")),v.createElement("li",null,v.createElement("a",{href:"/advice/tools/mortgage-calculator"},"Mortgage calculator")),v.createElement("li",null,v.createElement("a",{href:"/advice/tools/schools"},"Search by school catchment")),v.createElement("li",null,v.createElement("a",{href:"/services/experts"},"Ask the Expert drop-ins")),v.createElement("li",null,v.createElement("a",{href:"/advice/selling/unlock-for-sellers"},"Unlock for sellers")),v.createElement("li",null,v.createElement("a",{href:"/advice/moving"},"Moving house checklist")))),v.createElement("p",null,v.createElement("a",{href:"/",className:"button"},"Search for properties"))):v.createElement("div",null,v.createElement(U,{step:this.state.step}),2===this.state.step?v.createElement(D,{onSubmit:this.handleSolicitorsSubmit,postcode:this.state.userForm.propertyPostcode,submitResult:this.state.submitResult,submitInProgress:this.state.submitInProgress}):v.createElement(L,{user:this.props.user,solicitor:this.props.solicitor,onSubmit:this.handleExistingSolicitorSubmit,submitResult:this.state.submitResult,submitInProgress:this.state.submitInProgress,userForm:this.state.userForm}),v.createElement("p",{style:{fontSize:"0.8em",marginTop:"1em"},className:"valuationFormCaptcha"},"This site is protected by reCAPTCHA and the Google",v.createElement("a",{href:"https://policies.google.com/privacy"}," Privacy Policy ")," and",v.createElement("a",{href:"https://policies.google.com/terms"}," Terms of Service ")," apply."),v.createElement("div",{id:"recaptcha-service",className:"g
1-recaptcha","data-sitekey":this.props.captchaSiteKey,"data-size":"invisible"}))}}],[{key:"init",value:function(e,t){(0,V.createRoot)(document.getElementById(e)).render(v.createElement(y.Kd,null,v.createElement(b.dO,null,v.createElement(b.qh,{path:"/valuations",render:function(e){return v.createElement(n,t)}}))))}}]),n}(v.Component);"undefined"!=typeof window&&(window.valuationsInit=H.init)},86368:(e,t,n)=>{var a=n(21259),r=n.n(a),i=n(82274),l=n.n(i),o=n(41972),s=n.n(o),c=n(65044),u=n.n(c),h=n(56994),p=n.n(h),d=n(65611),m=n.n(d),f=n(18337),g=n.n(f),v=n(96540),y=n(40961),b=n(11683),E=n(16193),C=n.n(E),k=n(58407);function S(e){var t=w();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function w(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(w=function(){return!!e})()}var N=function(e){p()(n,e);var t=S(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).handleMarkerAddedToMap=a.handleMarkerAddedToMap.bind(s()(a)),a}return u()(n,[{key:"handleMarkerAddedToMap",value:function(e){this.markerHtmlElement=e._icon,this.marker=e;this.props.solicitors[0];var t=this.props.solicitors.map((function(e){return'<article class="map-result organisation clearfix" style="border:none;"><a href="'+e.webUrl+'"><div class="image organisation"><img src="'+e.logoUrl+'" /></div></a><div class="information"><a href="'+e.webUrl+'"><h2>'+e.name+'</h2></a><p class="address">'+e.address+"</p><p>t: "+e.phone+'</p><p class="email-address">e: <a href="mailto:'+e.email+'" title="'+e.email+'">'+e.email+"</a></p></div></article>"})).join("");this.marker.bindPopup('<div class="map-popup">'+t+"</div>",{closeButton:!1})}},{key:"render",value:function(){var e=this.props.solicitors.length,t='<div class="'+((e>1?"cluster":"single")+" c-white")+'">'+(e>1?e:'<span class="map-pin__icon icon-commerical-building"></span>')+'</div><span class="triangle"></span>';return v.createElement(k.A,C()({html:t,className:"map-pin",iconSize:["auto","auto"],iconAnchor:[14,34],onMarkerAddedToMap:this.handleMarkerAddedToMap},this.props))}}]),n}(v.Component),P=n(5338);function x(e){var t=R();return function(){var n,a=g()(e);if(t){var r=g()(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return m()(this,n)}}function R(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(R=function(){return!!e})()}var T=function(e){p()(n,e);var t=x(n);function n(e){var a;return l()(this,n),(a=t.call(this,e)).updateMapDimensions=a.updateMapDimensions.bind(s()(a)),a.saveMapContainerDomNodeRef=a.saveMapContainerDomNodeRef.bind(s()(a)),a.state={height:"1000px",bounds:a.calculateBoundsFromResults(a.props.mapResults.results)},a}return u()(n,null,[{key:"init",value:function(e,t){(0,P.createRoot)(document.getElementById(e)).render(v.createElement(n,t))}}]),u()(n,[{key:"componentDidMount",value:function(){this.updateMapDimensions(),this.resizeHandler=window.debounce(this.updateMapDimensions,200).bind(this),window.addEventListener("resize",this.resizeHandler)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.resizeHandler)}},{key:"calculateBoundsFromResults",value:function(e){if(e&&e.length>0){var t=Math.max.apply(Math,r()(e.filter((function(e){return e.lat})).map((function(e){return e.lat})))),n=Math.min.apply(Math,r()(e.filter((function(e){return e.lat})).map((function(e){return e.lat})))),a=Math.max.apply(Math,r()(e.filter((function(e){return e.lon})).map((function(e){return e.lon}))));return[{lat:t,lng:Math.min.apply(Math,r()(e.filter((function(e){return e.lon})).map((function(e){return e.lon}))))},{lat:n,lng:a}]}return[{lat:56.0691185,lng:-3.716936},{lat:55.7737437,lng:-2.8042111}]}},{key:"renderOfficeMarker",value:function(e){return v.createElement(N,{key:e.solicitors.map((function(e){return e.id})).join(),position:{lat:e.lat,lng:e.lon},solicitors:e.solicitors})}},{key:"updateMapDimensions",value:function(){if(this.mapContainer){var e=y.findDOMNode(this.mapContainer);this.setState({height:window.innerHeight-e.parentElement.offsetTop+"px"})}}},{key:"saveMapContainerDomNodeRef",value:function(e){this.mapContainer=e}},{key:"render",value:function(){var e=this,t={totalResults:this.props.mapResults.totalResults,mapContainerRefCallback:this.saveMapContainerDomNodeRef,height:this.state.height,maxZoomAfterFitBounds:16,bounds:this.state.bounds,mapTilesUrl:this.props.mapTilesUrl};return v.createElement(b.A,t,this.props.mapResults.results.map((function(t){return e.renderOfficeMarker(t)})))}}]),n}(v.Component);"undefined"!=typeof window&&(window.solSearchInit=T.init)}
1,54548:(e,t,n)=>{n.d(t,{sg:()=>a});var a=function(e,t,n){var a;return function(){var r=this,i=arguments,l=n&&!a;clearTimeout(a),a=setTimeout((function(){a=null,n||e.apply(r,i)}),t),l&&e.apply(r,i)}}},12716:(e,t,n)=>{var a=n(96540),r=n(5338),i=n(40961);n.g.ReactDOMClient=r,n.g.React=a,n.g.ReactDOM=i},60848:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(40121);function r(e){var t=document.createElement("button"),n=document.createElement("img");return n.src=e,t.appendChild(n),t}const i={openAt:function(e,t){if(e&&e instanceof HTMLElement)if(window.navigator.share)window.navigator.share({title:t.title,text:t.body,url:t.url});else{var n=function(e){var t=document.createElement("div");t.classList.add("social-share");var n=r("/resources/icons/fb_share.svg");n.addEventListener("click",(function(){(0,a.py)({url:e.url})}));var i=r("/resources/icons/twitter_share.svg");i.addEventListener("click",(function(){(0,a.tw)({url:e.url,title:e.title})}));var l=r("/resources/icons/pinterest_share.svg");l.addEventListener("click",(function(){(0,a.hY)({url:e.url,title:e.title,media:e.media})}));var o=r("/resources/icons/email_share.svg");return o.addEventListener("click",(function(){(0,a.Rp)({url:e.url,subject:e.title,title:e.body})})),t.appendChild(n),t.appendChild(i),t.appendChild(l),t.appendChild(o),t}(t);n.style.visibility="hidden",document.body.appendChild(n);var i,l,o,s,c,u,h,p,d,m=n.offsetWidth,f=n.offsetHeight,g=e.offsetWidth,v=e.offsetHeight,y=(i=e.getBoundingClientRect(),l=document.body,o=document.documentElement,s=window.pageYOffset||o.scrollTop||l.scrollTop,c=window.pageXOffset||o.scrollLeft||l.scrollLeft,u=o.clientTop||l.clientTop||0,h=o.clientLeft||l.clientLeft||0,p=i.top+s-u,d=i.left+c-h,{top:Math.round(p),left:Math.round(d)}),b=Math.round(y.top+v/2),E=Math.round(y.left+g/2);n.style.left=Math.floor(E-m/2)+"px",n.style.top=Math.floor(b-f/2)+"px",n.style.visibility="visible";var C=function e(t){n.contains(t.target)||(document.body.removeChild(n),document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e))};document.addEventListener("mousedown",C),document.addEventListener("touchstart",C)}}}},6844:(e,t,n)=>{n.d(t,{TX:()=>o,Ul:()=>s,j:()=>l});var a=n(72505),r=n.n(a),i=n(60848),l=function(e){return r().post("/users/watchlistedpropertydelete",{key:e})},o=function(e,t){i.A.openAt(e.target,{url:window.location.origin+t.propertyDetailsUrl,title:"I found this property on espc.com",body:t.displayAddress,media:t.bigImageUrl})};function s(e){var t=document.getElementById("watchlisttab");null!=t&&(t.innerText="Watchlist ("+e+")")}}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={exports:{}};return t[e].call(i.exports,i,i.exports,a),i.exports}a.m=t,e=[],a.O=(t,n,r,i)=>{if(!n){var l=1/0;for(u=0;u<e.length;u++){for(var[n,r,i]=e[u],o=!0,s=0;s<n.length;s++)(!1&i||l>=i)&&Object.keys(a.O).every((e=>a.O[e](n[s])))?n.splice(s--,1):(o=!1,i<l&&(l=i));if(o){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}i=i||0;for(var u=e.length;u>0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,r,i]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={210:0};a.O.j=t=>0===e[t];var t=(t,n)=>{var r,i,[l,o,s]=n,c=0;if(l.some((t=>0!==e[t]))){for(r in o)a.o(o,r)&&(a.m[r]=o[r]);if(s)var u=s(a)}for(t&&t(n);c<l.length;c++)i=l[c],a.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return a.O(u)},n=this.webpackChunkmagnum=this.webpackChunkmagnum||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),a.O(void 0,[555],(()=>a(12716))),a.O(void 0,[555],(()=>a(92242))),a.O(void 0,[555],(()=>a(89040))),a.O(void 0,[555],(()=>a(43356))),a.O(void 0,[555],(()=>a(81098))),a.O(void 0,[555],(()=>a(86368))),a.O(void 0,[555],(()=>a(57976))),a.O(void 0,[555],(()=>a(20385))),a.O(void 0,[555],(()=>a(26253)));var r=a.O(void 0,[555],(()=>
1a(72064)));r=a.O(r)})(); 2//# sourceMappingURL=react-app.js.map
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.