{"version":3,"sources":["store/api.js","reducers/session.js","reducers/listings.js","reducers/feed.js","reducers/activity.js","reducers/manage.js","reducers/ads.js","reducers/index.js","reducers/search.js","reducers/clients.js","reducers/settings.js","reducers/profile.js","reducers/invitations.js","store/index.js","store/store.js","actions/ads.js","img/default-photo.png","components/util.js","actions/search.js","actions/invitations.js","scss/_login.scss","components/navbarbuildersubsite.js","components/quickbar.js","components/navbarbuilder.js","components/clienteulatext.js","components/navbar.js","containers/CampaignPage.js","containers/CreateAccount.js","containers/ResetPasswordPage.js","containers/SetPasswordPage.js","containers/PendingAuthentication.js","containers/App.js","registerServiceWorker.js","setupLoginState.js","setupGlobalVariables.js","index.js","components/feedbackform.js","containers/FeedbackPage.js","img/profile_photo.jpg","components/selectclient.js","actions/listings.js","components/footerstandard.js","components/footerstylelist.js","components/footerstylecompact.js","components/footer.js","actions/manage.js","actions/session.js","actions/settings.js","components/privacypolicy.js","components/logonavbar.js","containers/SignUpPage.js","actions/agents.js","actions/profile.js","actions/clients.js","components/select-box.js","actions/activity.js","components/termsconditions.js","actions/feed.js","img/login_logo.png","components/commonadcomponent.js","scss/_navbar.scss","containers/LoginPage.js","containers/SSOPage.js","containers/ForgotPasswordPage.js","containers/RegisterPage.js","components/loader.js","img/facebook.png","img/instagram.png","img/blog.png","img/twitter.png","img/tlcenginelogo.png","img/linkedin.png","img/youtube.png","img/svg/facebook.svg","img/svg/linkedin.svg","img/svg/twitter.svg","img/InstagramC.png","img/youtubeC.png","containers/AgentOfficePage.js","img/svg/truebytlc-logo.svg","scss/App.scss","components/AsyncComponent.js"],"names":["clientSchema","schema","Entity","idAttribute","client","Id","listingSchema","listing","activitySchema","activity","concat","feedItemSchema","feedItem","ClientId","ListingId","listingArraySchema","Listings","Array","clientArraySchema","Clients","invitationSchema","invitation","Schemas","CLIENT","CLIENT_ARRAY","LISTING","LISTING_ARRAY","FEED_ITEM","FEED_ITEM_ARRAY","ACTIVITY_ITEM","ACTIVITY_ITEM_ARRAY","INVITATION_ITEM","INVITATION_ITEM_ARRAY","CALL_API","__webpack_exports__","store","next","action","callAPI","endpoint","types","method","body","Error","isArray","length","every","type","options","headers","Accept","Content-Type","Authorization","window","sessionStorage","getItem","JSON","stringify","actionWith","data","finalAction","Object","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__","_types","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","requestType","successType","failureType","API_ROOT","fetch","then","response","json","ok","normalize","Promise","reject","callApi","error","ExceptionMessage","ErrorMessage","cookies","setSessionItems","resp","setItem","AccessToken","Date","AudienceType","Audience","MLSKey","listings","state","arguments","undefined","LISTING_REQUEST","LISTING_SUCCESS","LISTING_FAILURE","FLISTING_REQUEST","FLISTING_SUCCESS","FLISTING_FAILURE","HOMESTATS_REQUEST","HOMESTATS_SUCCESS","HOMESTATS_FAILURE","LISTING_ADD","LISTING_REMOVE","LISTING_CLEAR","LIBERTYM_REQUEST","LIBERTYM_SUCCESS","LIBERTYM_FAILURE","key","objectSpread","defineProperty","isFetching","ids","stats","isSuccess","union","result","toConsumableArray","listingId","filter","n","updatePagination","feed","FEED_REQUEST","FEED_SUCCESS","FEED_FAILURE","pageCount","moreItems","newIds","SINGLE_FEED_REQUEST","isSingleFetching","notificationMessage","SINGLE_FEED_SUCCESS","SINGLE_FEED_FAILURE","ACTIVITY_REQUEST","ACTIVITY_SUCCESS","ACTIVITY_FAILURE","ACTIVITY_FILTER","unreadIds","updateDashboardIds","difference","moreItms","urid","parseInt","lastReadId","manage","MANAGE_FETCH_REQUEST","MANAGE_FETCH_SUCCESS","MANAGE_FETCH_FAILURE","MANAGE_LOOKUP_REQUEST","MANAGE_LOOKUP_SUCCESS","MANAGE_LOOKUP_FAILURE","MANAGE_ADD_REQUEST","MANAGE_ADD_SUCCESS","MANAGE_ADD_FAILURE","MANAGE_UPDATE_REQUEST","MANAGE_UPDATE_SUCCESS","MANAGE_UPDATE_FAILURE","MANAGE_DELETE_REQUEST","MANAGE_DELETE_SUCCESS","MANAGE_DELETE_FAILURE","MANAGE_PP_REQUEST","MANAGE_PP_SUCCESS","MANAGE_PP_FAILURE","EVENT_REQUEST","EVENT_SUCCESS","EVENT_FAILURE","UPDATE_SUCCESS","isAdding","isAdded","isUpdating","isUpdated","isDeleting","isDeleted","isLookingUp","isLookedUp","suggestions","lookupProp","sharelink","rVal","parse","listToUpdate","uLst","map","currAd","u","push","updateState","ads","MO_FETCH_REQUEST","MO_FETCH_SUCCESS","MO_FETCH_FAILURE","currentAdd","defaultState","session","clients","feedItems","activities","invitations","appReducer","combineReducers","entities","feedItemKey","keys","mergeWith","src","dest","search","parameters","getDefaultSearchParams","SEARCH_REQUEST","SEARCH_SUCCESS","SEARCH_FAILURE","UPDATE_PARAMS_REQUEST","params","skipFlag","lastParameters","assign","RESET_PARAMS_REQUEST","isAuthenticating","isAuthenticated","user","audience","sendingEmail","emailError","featuredagents","teamagents","ssoLogoutRedirectUrl","isAnonymous","AUTH_REQUEST","AUTH_MANUAL_LOGIN_SUCCESS","AUTH_LOGIN_SUCCESS","Cookies","set","path","removeItem","AUTH_REFRESH_SUCCESS","get","skip","ExpiresOnUTC","expires","AUTH_LOGOUT","remove","process","REACT_APP_PortalKey","AUTH_FAILURE","SEND_AGENT_EMAIL_REQUEST","SEND_AGENT_EMAIL_SUCCESS","ResponseMessage","Message","SEND_AGENT_EMAIL_FAILURE","PURL_PREFIX_SAVE","purlPrefix","AGENT_REQUEST","AGENT_SUCCESS","AGENT_FAILURE","FAGENT_REQUEST","FAGENT_SUCCESS","Agents","FAGENT_FAILURE","TAGENT_REQUEST","TAGENT_SUCCESS","TAGENT_FAILURE","ACCESSTOKEN_LOGOUT_REQUEST","ACCESSTOKEN_LOGOUT_SUCCESS","rUrl","RedirectUrl","UId","toLowerCase","PreventRedirect","ACCESSTOKEN_LOGOUT_FAILURE","SYNCADS_REQUEST","SYNCADS_SUCCESS","SYNCADS_FAILURE","selectedClient","allClients","CLIENTS_REQUEST","CLIENTS_SUCCESS","CLIENT_UPDATE_SUCCESS","CLIENT_IGNORE_SUCCESS","CLIENTS_FETCH_SUCCESS","CLIENT_SELECT","CLIENT_DESELECT","CLIENTS_FAILURE","CLIENT_DELETE","id","ALL_CLIENTS_REQUEST","ALL_CLIENTS_SUCCESS","ALL_CLIENTS_FAILURE","settings","isAuthMechFetching","printPieceUrl","featuredNeighborhoods","featuredNeighborhoodDetail","isFNLFetching","isFNDFetching","SETTING_REQUEST","SETTING_SUCCESS","Settings","apply","setting","SETTING_FAILURE","AUTH_MECH_REQUEST","AUTH_MECH_SUCCESS","res","AuthenticationMechanism","AuthDetails","Idp","SAMLRequest","AUTH_MECH_FAILURE","PRINTPIECE_REQUEST","PRINTPIECE_SUCCESS","PRINTPIECE_FAILURE","BASEDATA_REQUEST","BASEDATA_SUCCESS","st","BASEDATA_FAILURE","FNEIGHBORHOODS_REQUEST","FNEIGHBORHOODS_SUCCESS","FNEIGHBORHOODS_FAILURE","FNEIGHBORHOODD_REQUEST","FNEIGHBORHOODD_SUCCESS","FNEIGHBORHOODD_FAILURE","profile","mine","agent","PROFILE_REQUEST","PROFILE_SUCCESS","PROFILE_UPDATE_SUCCESS","PROFILE_FAILURE","AGENT_PROFILE_REQUEST","isFetchingAgentProfile","AGENT_PROFILE_SUCCESS","AGENT_PROFILE_FAILURE","agentError","INVITATIONS_REQUEST","INVITATIONS_SUCCESS","INVITATIONS_DELETE_REQUEST","INVITATIONS_DELETE_SUCCESS","INVITATIONS_FAILURE","geolocation","rootReducer","middleware","thunk","api","initialState","createStore","applyMiddleware","fetchMyOffers","dispatch","getState","_dispatch","authToken","DeviceUID","localStorage","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__","setCurrentOfferDetail","module","exports","__webpack_require__","d","AgentPath","ClientPath","PageTitle","encodeSearchParams","decodeSearchParams","getFormatedCurrency","getFormatedNumber","getFormatedDecimal","insertDecimal","convertToDate","getOpenHouseFormatedDate","convertToDateTime","getWeekDayShortName","getTimeInTwentyFourHour","getFormattedOptions","getDefaultTLCParameters","getFamilyTypes","getFamilyTypeName","getLoanTypes","getLoanTypeName","getDownPaymentPercentage","getFicoScores","getStages","getOptionTextFromValue","getFilingStatuses","calculateNetGrossIncome","getDefaultNewClientObject","convertPolygoneFormat","convertPolygonUnformat","getCommuteLocationDriveTime","getUserCommuteLocation","ImageRewrite","isProfileComplete","getDashboardTabText","getDashboardTabIndex","getTextForSearchParameters","getParametersForMatchingProperties","getDefaultTLCToggleSwitches","getBeds","getBaths","getGarages","getHomeSizes","getLotSizes","getBuiltYears","getMaxHOAFees","getMinPriceRange","getMaxPriceRange","getMinTLCRange","getMaxTLCRange","getPageTourParams","showSiteTour","getCommutTimes","getCommutModes","getOrdinalSuffix","GetSiteCustomizationOptions","GetSectionCustomizationOptions","GetMetaTagsProperties","getSearchStatuses","getWaterFrontTypes","getManageTabText","getManageTabIndex","getNeighborhoodItemText","getPropertyTypes","getPropertyTypeName","getFormattedOptionsForReactSelect","getFormattedValueForReactSelect","getStories","getCondoTypes","getLotFeatures","getPropertyStyles","getRooms","getAccessibilities","getEntryDays","getImageRoomTypes","toProperCase","getMyAgentTabText","getMyAgentTabIndex","IsMLSNumber","IsMultiZip","IsSingleZip","getAdTypes","getAdSizes","getHomeBannerAdId","getPropertyCardAdId","getFooterAdId","getMortgageBannerAdId","getMortgageCardAdId","getLargeBannerAdId","getAdDesc","isValueChanged","getGUID","getSlotsOptions","getNumberOfDaysWeeks","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","query_string__WEBPACK_IMPORTED_MODULE_1__","query_string__WEBPACK_IMPORTED_MODULE_1___default","base_64__WEBPACK_IMPORTED_MODULE_2__","base_64__WEBPACK_IMPORTED_MODULE_2___default","dateformat__WEBPACK_IMPORTED_MODULE_3__","dateformat__WEBPACK_IMPORTED_MODULE_3___default","moment__WEBPACK_IMPORTED_MODULE_4__","moment__WEBPACK_IMPORTED_MODULE_4___default","props","PlaceSearch","place","queryString","decodedSearch","substr","slice","polygon","polyString","toString","limitrecords","ficoscore","loantype","lifestyle","orderby","orderbydirection","propertytype","page_number","view","num","isNaN","Math","round","replace","dec","i","parseFloat","toFixed","Number","format","date","formatDate","getDay","getMonth","digitMonth","getMonthShortName","getDate","getFullYear","getHours","getMinutes","startDate","endDate","dtStart","moment","toDate","dtEnd","dateFormat","digitDay","hour","min","array","item","a","createElement","value","text","DownPercentage","FicoScore","LoanType","LifeStyle","FilingStatus","NetMonthlyIncome","MonthlyDebt","TaxBracket","GrossMonthlyIncome","TransportationType","WorkAddressList","WorkAddress","familyType","lst","t","loanType","flst","getDDList","list","val","filtered","filingStatus","taxBracket","netMonthlyIncome","grossMonthlyIncome","IncomeDetail","NetPay","GrossPay","PayPeriod","NetPayPeriod","TaxDeferralPlan","StateLocalTaxes","NumberOfAllowances","NetTaxBracket","OtherPreTaxDeduction","OtherPostTaxDeduction","PostTaxReimbursement","taxWithholding","single","excessover","withhold","percent","married","allowance","payperiod","periodsperyear","_netPay","_grossPay","_periodPerYear","_oneAllowances","_periodPerYearForMonthly","_federalTaxableGross","_excessOver","_withHold","_plusX","_multiplier","_federalTax","_TDP","_NOA","_OA","_PPY","_PLUS","_W","_EO","_SS","_MED","_SLT","_PRE","_POST","_REIMBUS","getPercentageValue","getValue","getOnlyNumber","_NG","ProfileEstGrossPay","ProfileFederalTaxableGross","ProfileFICASocialSecurity","ProfileFICAMedicare","ProfileFederalTaxValue","ProfileTaxDeferralPlanValue","ProfilePreTaxDeductionsValue","ProfileStateLocalTaxesValue","ProfilePostTaxDeductionsValue","ProfilePostTaxReimbursementsValue","_annualFTG","_deductions","_reimbursement","_netTakeHome","_val","_defaultVal","AgentId","Profile","BasicData","MStatus","CellPhone","WorkingWithTCOAgent","HidePersonalDetailFromAgent","HomePhone","FirstName","LastName","Email","NumberOfAdults","OlderChildren","YoungChildren","ChildDetail","InterestedInBuying","InterestedInSelling","AdultDetail","CreditScore","IncomeData","CommuteData","CommuteDetail","CurrentResidenceData","DebtData","DebtDetail","AssetData","CashOnHand","CheckingAccounts","SavingAccounts","CD","RetirementAccounts","FinancialData","LifeStyleData","AddGrociers","AddSuperStores","AddPharmacies","AddHousehold","AddMovieTheaters","AddPublicTransport","AddAirport","AddGolf","AddSkiing","AddBeach","FamilyDetail","EntertainmentData","Other","OtherTLC","OtherTLCData","SearchPreferenceses","DownPayment","DownPaymentPercentage","CustomFields","SupportingInformation","ProfileCompletionPercentage","unFormatted","formattedPoly","eachPoly","lng","lat","formated","unformatedPoly","eachStringPoly","curIndex","split","internalArray","singlePoly","LatLng","poly","splice","cLoation","url","isThumbnail","indexOf","includes","base64","encode","isComplete","PreferredLocation","index","tab","idx","findIndex","e","propTypeFlag","isFormatted","includeDefault","highlightValues","ssName","location","className","locationtext","mlsnumber","MLSNumber","commuteaddress","commutes","tlcmin","tlcmax","beds","baths","garages","livingareamin","livingareamax","acresmin","acresmax","yearbuiltmin","listingpricemin","listingpricemax","openHouseOnly","hoafeemax","haswaterfront","haswaterview","hasbasement","haspool","hasfireplace","isshortsale","status","waterfeatures","isbankowned","haswateraccess","hasgolfcourse","hasgreenfeatures","dpr","hasgym","hasairconditioning","hasdoorman","hasdishwasher","hasbalcony","hasroofaccess","haskeylessentry","keywords","join","postalcode","accessibility","condotype","regionalboardcode","isnewconstruction","isforeclosure","storiesmin","storiesexact","lotfeature","neighborhood","propertystyle","schooldistrictname","roompref","streetaddress","TLCMin","TLCMax","Transportation","GasCost","Parking","Tolls","TransitCost","CarMaintenance","CarInsurance","Utilities","HeatingCooling","WaterSewer","Garbage","LawnSnowCare","OtherUtilities","Entertainment","Phone","Internet","TV","Cell","OtherCharge","page","sites","filteredPage","menuText","basicNavItems","tourText","innerWidth","title","selector","position","allowClicksThruHole","style","mainColor","beacon","inner","outer","isFixed","returnVal","j","k","section","jsonStr","obj","txt","t1","lastIndexOf","substring","pType","isText","rval","v","label","isMulti","aVal","iVal","str","sentence","toUpperCase","RegExp","test","trim","desc","origVal","isNumber","defaultVal","lut","d0","random","d1","d2","d3","cnt","slotsList","name","f","Name","List","inum","r","updateParameters","resetParameters","fetchInvitations","_getState$session$aud","bParams","onlypending","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__","deleteInvitation","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","themeName","NavbarBuilderSubSite","_this","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","updateIsMobile","mainElement","setState","isMobile","hideAllSubmenus","submenus","document","getElementsByClassName","display","closeNav","navExpanded","goTo","history","contains","toUrl","truePlaceholder","trueCmsPlaceholder","buildUrlWithMapping","subMenuOnClick","subChild","open","buildDropDown","buildIndexLink","react_default","NavDropdown","onMouseLeave","onToggle","children","child","isNestedLink","lib","to","NavItem","componentClass","onClick","addEventListener","removeEventListener","_this2","siteLogo","menuItems","REACT_APP_WebsiteSubMenu","mJson","logo","menu","ref","Navbar","inverse","collapseOnSelect","Header","Brand","Link","alt","Toggle","Collapse","Nav","React","Component","connect","ProfilePageCustomizationOptions","QuickBar","loadMore","_this$props","selectedActivity","activityActions","loadActivity","handleScroll","offsetTop","clientHeight","scrollTop","nextProps","selectedFeed","feedActions","loadFeed","acty","context","router","onQuickBarClose","SA","CT","ST","PC","_this$props2","ActionName","showDashboard","feedId","feeds","fetchActivityFeed","_this$props3","goToTimeline","bind","qbClass","showQuickBar","aList","rowId","orderBy","ActivityOn","height","innerHeight","marginBottom","act","quickbar_QuickBarFeedRow","ActivityItem","contextTypes","PropTypes","object","isRequired","QuickBarFeedRow","_this3","localDate","propertyDescription","propertyLink","LastActionBy","lastAction","iconBgClass","iconClass","actionNm","uShortName","uPhoto","DefaultPhoto","ClientName","ProfileImageUrl","AllowAgentToUpdateProfile","UseMemberPhotoURL","MemberPhotoURL","ProfileImageName","agentName","react_timeago_lib_default","bindActionCreators","NavbarBuilder","handleToggle","expanded","toggleSideMenu","eventKey","logoClass","REACT_APP_LargeLogo","purlAgentPhoto","getProfilePhoto","logoImage","onSelect","loginLink","registerLink","pathname","ClientEULAText","TrueLogo","dangerouslySetInnerHTML","__html","EULAText","ThemeCustomizationOptions","AdminCustomizationOptions","CommonCustomizationOptions","NavBar","componentInit","checkForActivities","self","assertThisInitialized","setTimeout","isActivityLoaded","filterUnreadIds","activityFiltered","toggleQuickBar","refs","navBar","max","objLastRead","lastReadCookie","ninetyDays","setDate","closeSelectClientPopup","overlayTriggerRef","hide","nExpanded","onSubmenuDisplay","preventDefault","stopPropagation","handleLogout","sessionActions","logout","getNotificationBadge","Button","Badge","getUserMenu","userName","userEmail","ProfilePhoto","DropdownButton","MenuItem","AllowManage","IsSuperAdmin","getLoginButton","ShowAgentClientLoginInMenu","IsAgentSSOEnabled","utf8","getRegisterButton","_this$props4","getClientMenu","_this$props5","isFetchingClients","showMyAgent","divClient","menuItemSelect","scPopCls","MainMenuBarClass","selectClientPopover","Popover","selectclient","clientActions","OverlayTrigger","trigger","placement","rootClose","overlay","myAgentPhoto","myAgentName","myAgentEmail","buildMenuBar","_this$props6","navbarbuildersubsite","navbarbuilder","eulaCheck","_this$props7","console","log","thisClient","nextClient","cName","showNotification","listingActions","fetchAgentClientListings","clearListings","Dialog","setOptions","defaultCancelLabel","dialogRef","show","clienteulatext","bsClass","bsSize","actions","Action","acceptEULA","onHide","dialog","eulaCookie","objEULA","openEULADialog","headerClass","isHeaderFixed","index_es","quickbar","dist_default","zIndex","withRouter","mlsDisplayName","isFetchingProfile","settingActions","profileActions","agentActions","CampaignPage","qs","audienceType","audienceId","verifyAuthToken","AudienceId","fetchProfile","fetchMyAgentProfile","fetchSettings","FetchPrintPieceUrl","fetchPrintPieceURL","fetchAuthMechanism","href","width","margin","loader","message","CreateAccountPage","openTermsDialog","termsconditions","CancelAction","openPolicyDialog","privacypolicy","subId","verifCode","code","firstName","lastName","email","mlsId","memberNrdsId","subscriptionId","verificationCode","errorMessage","successMessage","fetchingDetails","creatingAccount","accountCreated","handleInputChange","handleSubmit","getSubscriptionDetails","createAccount","showHeader","onShowHideHeader","showFooter","onShowHideFooter","btnSignup","setAttribute","removeAttribute","MemberNrdsId","catch","requestBody","manualLogin","event","target","checked","react_document_title_default","onSubmit","paddingTop","onChange","placeholder","readOnly","float","LoginPageCustomizationOptions","ResetPasswordPage","validatePassword","newPassword","validateCapsPassword","validateNumericPassword","token","password","confirmPassword","resettingPassword","passwordReset","resetPassword","REACT_APP_DefaultAgentId","BrokerAgentId","btnResetPassword","resetPasswordRef","validateLowerPassword","LoginPageBackgroundColor","background","LoginPageTitleTextColor","color","SetPasswordPage","checkToken","isCheckingToken","setPasswordRef","clientId","setPassword","btnSetPassword","isSettingPassword","isPasswordSet","reload","PendingAuthentication","render","AsyncLandingPage","asyncComponent","all","AsyncProfilePage","AsyncAgentClient","AsyncSearchPage","AsyncPropertyDetailPage","AsyncDashboardPage","AsyncAddClientPage","AsyncMyAgentPage","AsyncPersonalizePage","AsyncOnBoardPage","AsyncOnCostOfLivingPage","AsyncSiteTour","AsyncMyOffers","AsyncMyAPOffers","AsyncCompareAlert","AsyncGoogleAnalytics","AsyncApplicationInsights","AsyncAboutUsPage","AsyncPages","AsyncNeighborhood","AsyncNeighborhoodsList","AsyncCommunitiesList","AsyncAgentProfile","AsyncCategories","AsyncBlogs","AsyncTitleToolBox","AsyncAgentOfficePage","resolve","AsyncPurlWrapper","AsyncAboutPage","AsyncJourneyPage","AsyncJourneyPhase1IntroPage","AsyncJourneyPhase1YourLifeTodayPage","AsyncJourneyPhase1YourFinancesTodayPage","AsyncJourneyPhase1HopesForTomorrowPage","AsyncJourneyPhase1MovingWherePage","AsyncJourneyPhase1NeighborhoodQualitiesPage","AsyncJourneyPhase1StartCollectingListingsPage","AsyncJourneyPhase1YourTimingPage","AsyncJourneyPhase2IntroPage","AsyncJourneyPhase2WhatYouCanAffordPage","AsyncJourneyPhase2GetYourCreditScorePage","AsyncJourneyPhase2BestWaysConnectPage","AsyncJourneyPhase2MortgagesPage","AsyncJourneyPhase2TypesMortgagesPage","AsyncJourneyPhase2CalculatingPaymentPage","AsyncJourneyPhase2Lenders101Page","AsyncJourneyPhase2ComparePotentialLendersPage","AsyncJourneyPhase2PreApproval101Page","AsyncJourneyPhase2GetPreApprovedPage","AsyncJourneyPhase3IntroPage","AsyncJourneyPhase3FutureNeighborhoodPage","AsyncJourneyPhase3MyFutureHomePage","AsyncJourneyPhase3NarrowDownYourListingsPage","AsyncJourneyPhase3FindGreatAgentPage","AsyncJourneyPhase3ShareTouringAvailabilityPage","AsyncJourneyPhase3TourHousesLikeProPage","AsyncJourneyPhase3DecideonHousePage","AsyncJourneyPhase4IntroPage","AsyncJourneyPhase4Closings101Page","AsyncJourneyPhase4FindAnEscrowAgentPage","AsyncJourneyPhase4MakingAnOffer101Page","AsyncJourneyPhase4CompletePurchaseOfferPage","AsyncJourneyPhase4WritePersonalNotePage","AsyncJourneyPhase4SubmitPurchaseOfferPage","AsyncJourneyPhase4ReviewGoodFaithEstimatePage","AsyncJourneyPhase4GetHomeInspectionPage","AsyncJourneyPhase4ConfirmHomeAppraisalPage","AsyncJourneyPhase4ClearTitleOrderInsurancePage","AsyncJourneyPhase4ArrangeFinalWalkThruPage","AsyncJourneyPhase5IntroPage","AsyncJourneyPhase5ClosingMoveInDatesPage","AsyncJourneyPhase5HomeownerInsurance101Page","AsyncJourneyPhase5OrderHomeownerInsurancePage","AsyncJourneyPhase5PrepareToMovePage","AsyncJourneyPhase5ChangeAddressUtilitiesPage","AsyncJourneyPhase5RequestHUDFromLenderPage","AsyncJourneyPhase5ArrangeToPayClosingCostsPage","AsyncJourneyPhase5GatherClosingDocsPage","AsyncJourneyPhase5PerformFinalWalkThruPage","AsyncJourneyPhase6IntroPage","AsyncJourneyPhase6ConfirmClosingDetailsPage","AsyncJourneyPhase6ReviewHUD1Page","AsyncJourneyPhase6CompareGFEToHUD1Page","AsyncJourneyPhase6AttendClosingPage","AsyncJourneyPhase6WelcomeToYourHomePage","AsyncJourneyPhase1Page","AsyncJourneyPhase2Page","AsyncJourneyPhase3Page","AsyncJourneyPhase4Page","AsyncJourneyPhase5Page","AsyncJourneyPhase6Page","AsyncInfoPage","AsyncManagePage","AsyncOpenHousesPage","AsyncHotPropsPage","AsyncBuiltForYouPage","AsyncPrintPiecePage","AsyncFeaturedPropsPage","AsyncPlaceAdPage","AsyncNewOnBoardingPage","FooterCustomizationOptions","AdCustomizationOptions","App","hubInitialize","agentId","hubProxy","on","clientIds","isConnected","addActivitiesToEntities","refreshFeedItems","connection","connectionSlow","connectToHub","start","done","invoke","getMyActivity","signalRConnecting","disconnected","fail","disconnectFromHub","stop","signalrHeartbeat","signalrReconnect","refreshAuth","refreshAuthToken","checkForNewActivity","feedActivity","feedActivityEntities","updateBookmarks","updateFavorites","forEach","fetchListingFeed","onClientSelection","hubConnection","createHubProxy","flag","sessionNotification","isSignalRConnecting","root","documentElement","PrimaryColor","setProperty","PrimaryDarkColor","PrimaryLightColor","SubPrimaryColor","SubPrimaryDarkColor","SubPrimaryLightColor","SecondaryColor","SecondaryDarkColor","SecondaryLightColor","SubSecondaryColor","SubSecondaryDarkColor","SubSecondaryLightColor","TertiaryColor","TertiaryDarkColor","TertiaryLightColor","TourButtonColor","FooterBackgroundColor","FooterSubBackgroundColor","FooterBorderColor","FooterFontColor","FooterSubFontColor","SubSiteMenuFontColor","SubSiteMenuFontHoverColor","SubSiteMenuBackgroundColor","SubSiteMenuFontSubColor","OnBoardingSecondaryColor","refreshAuthTimer","setInterval","signalrHeartbeatTimer","oneAll","async","script","getElementsByTagName","parentNode","insertBefore","clearInterval","feedTimer","duration","button1Text","button1Function","button1FunctionParam","button2Text","button2Function","button2FunctionParam","notificationSystem","nProps","level","autoDismiss","dismissible","btn1","btn2","addNotification","propertyDetailPageRef","workingWithClient","dashboardPageRef","searchPageRef","mainElementClass","ShowCustomAds","FooterStyle","MainSearchBarClass","header","components_navbar","footer","components_footer","BrowserRouter","NotificationSystem_default","Route","_ref2","LoginPage","SSOPage","SignUpPage","signUpPageRef","RegisterPage","ForgotPasswordPage","forgotPasswordPageRef","CreateAccount","createAccountPageRef","containers_ResetPasswordPage","resetPasswordPageRef","containers_SetPasswordPage","setPasswordPageRef","FeedbackPage","feedbackPageRef","exact","App_PrivateRoute","component","containers_CampaignPage","ShowMyAPOffers","MyOffersURL","WebsiteErrorMessage","PrivateRoute","_ref9","rest","objectWithoutProperties","oaToken","socialResponse","decode","Redirect","query","from","containers_PendingAuthentication","Boolean","hostname","match","setupGlobalVariables","EnableTeamMembers","fetchTeamAgents","fetchClients","setupLoginState","isIE","browserVersion","ReactDOM","marginLeft","rel","getElementById","es","containers_App","navigator","serviceWorker","ready","registration","unregister","FeedbackForm","UserType","postingForm","ErrorMsg","csvData","isValid","_this$state","errMsg","_this$setState","onSubmitForm","reqBody","SenderName","SenderEmail","SenderType","Comment","statusText","_this$state2","fontWeight","marginRight","rows","resize","padding","disabled","inline","feedbackform","SelectClient","onSelectClient","evt","selectClient","onRemoveSelectedClient","deselectClient","clientsEl","react__WEBPACK_IMPORTED_MODULE_5___default","_loader__WEBPACK_IMPORTED_MODULE_7__","borderBottom","react_router_dom__WEBPACK_IMPORTED_MODULE_6__","textDecoration","textAlign","cursor","menuSelectionUrl","SelectedClientName","_React$Component2","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__","LISTING_ADD_ENTITIES","fetchRecentListings","_ref","LimitRecords","OpenHouseOnly","BedroomsMin","BathroomsMin","OrderBy","OrderByDirection","fetchFeaturedListings","fetchListings","_ref3","addListingToEntities","addListing","removeListing","fetchHomeStats","_ref4","generateLibertyMutualLead","_ref5","FooterStyleStandard","crText","CopyRightTextInFooter","crArr","s","crSubText","CopyRightSubTextInFooter","crsArr","showPlaceAnAdLink","HidePlaceAnAdLinkInFooter","showContactUsLink","HideContactUsLinkInFooter","showTermsOfUseLink","HideTermsOfUseLinkInFooter","minHeight","FooterLogoUrl","FooterImages","ImageUrl","NavigationUrl","FooterCompanyName","FooterAddress","openPAAModal","openCUModal","ShowFeedbackLinkInFooter","PowerByLogo","FacebookPageUrl","FacebookIcon","TwitterPageUrl","TwitterIcon","InstagramPageUrl","InstagramIcon","LinkedInPageUrl","LinkedInIcon","YouTubePageUrl","YouTubeIcon","ExternalBlogPageUrl","BlogIcon","PublishersNoticeInFooter","LicenseTextInFooter","FooterStyleList","showSI","crClass","pbClass","siClass","cols","FooterColumnsList","lnks","Links","l","Type","Text","Url","imgArr","img","imgidx","Title","PlaceAdContactDetails","Class","FooterStyleCompact","facebookIcon","twitterIcon","linkedinIcon","instagramIcon","youtubeIcon","FooterSupportEmail","paddingLeft","borderLeft","SITE_KEY","recaptchaRef","createRef","Footer","param","values","paaErrorMessage","cuErrorMessage","paaSubmit","paaValues","recaptchaValue","current","EmailFor","mBody","SenderId","EmailType","sendingPAA","showPAAModal","Modal","aria-labelledby","Body","MoreInfoUrl","MoreInfoText","select_box_default","esm","sitekey","transform","WebkitTransform","TransformOrigin","WebkitTransformOrigin","cuSubmit","cuValues","sendingCU","showCUModal","refreshFlag","adObj","adsize","count","manageActions","fetchFrontEndAds","pAdsList","adsList","AdType","SkipEvent","trackEvent","EventName","UserId","AdModel","footerClass","subfooter","footerstandard","footerstylelist","footerstylecompact","commonadcomponent","footerads","FETCH_AD_REQUEST","FETCH_AD_SUCCESS","FETCH_AD_FAILURE","fetchFeaturedProperties","addFeaturedProperty","_dispatch2","updateFeaturedProperty","_dispatch3","deleteFeaturedProperty","_dispatch4","lookupFeaturedProperty","mlsNumber","_dispatch5","fetchFeaturedOpenHouses","_dispatch6","addFeaturedOpenHouse","_dispatch7","updateFeaturedOpenHouse","_dispatch8","deleteFeaturedOpenHouse","_dispatch9","lookupFeaturedOpenHouse","_dispatch10","fetchFeaturedHotProperties","_dispatch11","addFeaturedHotProperty","_dispatch12","updateFeaturedHotProperty","_dispatch13","deleteFeaturedHotProperty","_dispatch14","lookupFeaturedHotProperty","_dispatch15","fetchFeaturedBFYProperties","_dispatch16","addFeaturedBFYProperty","_dispatch17","updateFeaturedBFYProperty","_dispatch18","deleteFeaturedBFYProperty","_dispatch19","lookupFeaturedBFYProperty","_dispatch20","fetchFeaturedAgents","_dispatch21","addFeaturedAgent","_dispatch22","updateFeaturedAgent","_dispatch23","deleteFeaturedAgent","_dispatch24","lookupFeaturedAgent","_dispatch25","setPrintPiece","_dispatch26","fetchFeaturedAds","_dispatch27","addFeaturedAd","_dispatch28","updateFeaturedAd","_dispatch29","deleteFeaturedAd","_dispatch30","_dispatch31","lbody","deviceId","_dispatch32","deviceUID","updateFrontEndAds","AUTH_LOGOUT_SUCCESS","TokenId","auth","login","authType","logoutAuthToken","setAuthError","getSelection","setPurlPrefix","anonymousLogin","synchronizeAds","syncAds","duid","LastAdsSyncDate","toLocaleDateString","SETTING_ARRAY","fetchBaseData","fetchFeaturedNeighborhoods","fetchFeaturedNeighborhoodDetail","PrivacyPolicy","LogoNavBar","removeTrailingSlash","site","getLastPartOfURL","prettyURL","useFacebookAnayltics","REACT_APP_FacebookPixelKey","ReactPixel","init","autoConfig","debug","fetchingResult","step","stripePlan","discount","onChangeAuthType","handleNext","handlePrevious","getCouponDetails","selectYealyPlan","selectMonthlyPlan","pageView","track","that","StripePlan","CreditCard","creditCard","CreditCvc","creditCvc","CreditExpiration","creditExpiration","CouponId","currency","stripe_plan","stripe_coupon","couponId","loginCall","MLSId","logonavbar","backgroundColor","handleDropdownChange","class","react_input_mask_es","autoComplete","maxLength","mask","maskChar","amount_off","contactMyAgent","resMsg","addDeleteClientAVM","updateProfile","_getState$session$aud2","setProfileSuccess","successMsg","setProfileError","fetchClient","updateClient","deleteClient","addDeleteBookmark","addDeleteFavorite","addDeleteRemove","_getState$session$aud3","fetchAllClients","require","createReactClass","div","button","select","option","idInc","keyHandlers","38","40","32","13","27","74","75","interceptEvent","displayName","getInitialState","focusedIndex","pendingValue","getDefaultProps","closeText","clearText","changeOnClose","isMultiple","String","updatePendingValue","cb","componentWillMount","componentWillReceiveProps","clickingOption","blurTimeout","handleFocus","clearTimeout","handleBlur","handleClose","handleMouseDown","handleChange","selected","findDOMNode","focus","handleNativeChange","childNodes","reduce","memo","handleClear","toggleOpenClose","handleOpen","moveFocus","move","len","Children","handleKeyDown","which","handleUpKey","handleDownKey","handleSpaceKey","handleEnterKey","handleEscKey","isSelected","multiple","hasValue","onKeyDown","onBlur","tabIndex","aria-hidden","renderOptionMenu","renderClearButton","renderNativeSelect","htmlFor","onFocus","renderOption","renderCloseButton","onMouseDown","aria-label","ACTIVITIES_ADD_ENTITIES","nextPage","_getState","_session$audience","_ref2$pageCount","_ref2$ids","_ref2$unreadIds","_ref2$moreItems","lastDate","activityItems","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__","valueOf","fetchActivityItems","Count","LastReadId","TermsNConditions","LastActionOn","fetchFeedItems","Comments","activityId","p","CommonAdComponent","adClicked","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_5__","currEL","GPT","enableSingleRequest","adWidth","adHeight","adEle","AdSize","sizeArr","sizeWH","GoogleTagId","react__WEBPACK_IMPORTED_MODULE_6___default","react_gpt__WEBPACK_IMPORTED_MODULE_7__","adUnitPath","slotSize","renderWhenViewable","Photo","subEle","URL","classname","username","rememberMe","Application","Username","Password","RememberMe","scrollTo","socialScript","mlsKey","socialSuccess","socialLinkAndVerify","scriptsPath","appendChild","gotoHome","redirectUrl","react_document_title__WEBPACK_IMPORTED_MODULE_12___default","data-type","react_router_dom__WEBPACK_IMPORTED_MODULE_10__","marginTop","SSOAuthDetails","authDt","rm","ssoForm","submit","_this4","react_document_title__WEBPACK_IMPORTED_MODULE_9___default","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__","forgotPasswordCall","btnSubmit","emsg","ErrorCode","react__WEBPACK_IMPORTED_MODULE_7___default","react_document_title__WEBPACK_IMPORTED_MODULE_10___default","react_router_dom__WEBPACK_IMPORTED_MODULE_9__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","firstname","lastname","phone","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__","Firstname","isRegistering","msg","responseObj","loginUser","showModal","showRegisterModal","isProfileFetched","isListingsFetched","react__WEBPACK_IMPORTED_MODULE_8___default","react_google_recaptcha__WEBPACK_IMPORTED_MODULE_14__","react_router_dom__WEBPACK_IMPORTED_MODULE_11__","Loader","styleOptions","cls","loaderHtml","AgentOfficePageCustomizationOptions","MetaTagsProperties","AgentOfficePage","handleTabChange","results","resultsPage","elements","ShowFeaturedAgents","onKeyPress","office","validateInput","flagContinue","officeName","officeCity","officeZip","city","zip","doSearch","officeId","hasChildNodes","officeAgents","MemberFirstName","MemberLastName","MemberAddress1","street","OfficePostalCode","OfficeCity","MemberStateOrProvince","OfficeName","OfficeId","Offices","onPageChange","pageStart","sizePerPage","currentPage","buildAgentCard","lnk","lnkTget","MemberMlsId","ele","react_router_dom__WEBPACK_IMPORTED_MODULE_16__","MemberFullName","Designation","OfficeFullStreetAddress","toCapitalizedWords","OfficePhone","MemberMobilePhone","MemberEmail","FeaturedAgentsSlotsInManage","ceil","pages","iStart","iEnd","_loop","ii","minWidth","_components_loader__WEBPACK_IMPORTED_MODULE_14__","showSearch","HideSearchOnAgentOfficePage","ogTitle","realtor","ogDesc","ogImage","ogUrl","react_helmet__WEBPACK_IMPORTED_MODULE_10__","content","itemProp","property","react_bootstrap__WEBPACK_IMPORTED_MODULE_8__","defaultValue","react_bootstrap__WEBPACK_IMPORTED_MODULE_9__","TitleText","fontSize","OfficeFullAddress","whiteSpace","ix","profilephoto","profileObj","capitalize","word","charAt","importComponent","_Component","AsyncComponent","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__","_componentDidMount","C_TLCWorks_TeamCity_BuildAgent4_work_d2040baf7d4a09cb_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__","_regeneratorRuntime","mark","_callee","_yield$importComponen","wrap","_context","prev","sent","default","C"],"mappings":"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","file":"static/js/main.7fb4ab2e.chunk.js","sourcesContent":["import { normalize, schema } from 'normalizr';\r\n\r\n// const profileSchema = new schema.Entity('profile', {}, {\r\n// idAttribute: client => client.Id ? client.Id : client.AgentId\r\n// });\r\n//\r\n\r\nconst clientSchema = new schema.Entity('clients', {}, {\r\n idAttribute: client => client.Id\r\n});\r\n\r\nconst listingSchema = new schema.Entity('listings', {}, {\r\n idAttribute: listing => listing.Id\r\n});\r\n\r\nconst activitySchema = new schema.Entity('activities', {}, {\r\n idAttribute: activity => `${activity.Id}`\r\n});\r\n\r\nconst feedItemSchema = new schema.Entity('feedItems', {\r\n // Listing: listingSchema\r\n}, {\r\n idAttribute: feedItem => `${feedItem.ClientId}_${feedItem.ListingId}`\r\n});\r\n\r\nconst listingArraySchema = { Listings: new schema.Array(listingSchema) };\r\nconst clientArraySchema = { Clients: new schema.Array(clientSchema) };\r\n\r\nconst invitationSchema = new schema.Entity('invitations', {}, {\r\n idAttribute: invitation => invitation.Id\r\n});\r\n\r\nexport const Schemas = {\r\n CLIENT: clientSchema,\r\n CLIENT_ARRAY: clientArraySchema,\r\n LISTING: listingSchema,\r\n LISTING_ARRAY: listingArraySchema,\r\n FEED_ITEM: feedItemSchema,\r\n FEED_ITEM_ARRAY: [feedItemSchema],\r\n ACTIVITY_ITEM: activitySchema,\r\n ACTIVITY_ITEM_ARRAY: [activitySchema],\r\n INVITATION_ITEM: invitationSchema,\r\n INVITATION_ITEM_ARRAY: [invitationSchema]\r\n};\r\n\r\nexport const CALL_API = 'Call API';\r\n\r\nconst callApi = (endpoint, schema, options) => {\r\n const API_ROOT = window.sessionStorage.getItem('RootAPI');\r\n return fetch(API_ROOT + endpoint, options)\r\n .then(response =>\r\n response.json().then(json => {\r\n if (!response.ok) {\r\n return Promise.reject(json);\r\n }\r\n\r\n if (schema) {\r\n return normalize(json, schema);\r\n }\r\n else {\r\n return json;\r\n }\r\n\r\n })\r\n );\r\n};\r\n\r\nexport default store => next => action => {\r\n const callAPI = action[CALL_API];\r\n\r\n if (typeof callAPI === 'undefined') {\r\n return next(action);\r\n }\r\n\r\n const { endpoint, schema, types, method, body } = callAPI;\r\n\r\n if (typeof endpoint !== 'string') {\r\n throw new Error('Specify a string endpoint URL.');\r\n }\r\n if (!method) {\r\n throw new Error('Specify a method for api call.');\r\n }\r\n if (!Array.isArray(types) || types.length !== 3) {\r\n throw new Error('Expected an array of three action types.');\r\n }\r\n if (!types.every(type => typeof type === 'string')) {\r\n throw new Error('Expected action types to be strings.');\r\n }\r\n\r\n const options = {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + window.sessionStorage.getItem('APIKey')\r\n },\r\n method\r\n };\r\n\r\n if (body) {\r\n options.body = JSON.stringify(body);\r\n }\r\n\r\n const actionWith = data => {\r\n const finalAction = { ...action, ...data };\r\n delete finalAction[CALL_API];\r\n return finalAction;\r\n };\r\n\r\n const [ requestType, successType, failureType ] = types;\r\n next(actionWith({ type: requestType }));\r\n\r\n return callApi(endpoint, schema, options).then(\r\n response => next(actionWith({\r\n response,\r\n type: successType\r\n })),\r\n error => next(actionWith({\r\n type: failureType,\r\n error: error.ExceptionMessage || error.ErrorMessage || (error[0] && error[0].ErrorMessage) || 'An error has occurred.'\r\n }))\r\n );\r\n}\r\n","import Cookies from 'universal-cookie';\r\n//import { getGUID } from 'components/util';\r\nimport {\r\n AUTH_REQUEST,\r\n AUTH_LOGIN_SUCCESS,\r\n AUTH_REFRESH_SUCCESS,\r\n AUTH_LOGOUT,\r\n AUTH_FAILURE,\r\n AUTH_MANUAL_LOGIN_SUCCESS,\r\n PURL_PREFIX_SAVE,\r\n ACCESSTOKEN_LOGOUT_REQUEST, \r\n ACCESSTOKEN_LOGOUT_SUCCESS, \r\n ACCESSTOKEN_LOGOUT_FAILURE,\r\n SYNCADS_REQUEST, \r\n SYNCADS_SUCCESS, \r\n SYNCADS_FAILURE\r\n} from 'actions/session';\r\nimport {\r\n SEND_AGENT_EMAIL_REQUEST,\r\n SEND_AGENT_EMAIL_SUCCESS,\r\n SEND_AGENT_EMAIL_FAILURE,\r\n AGENT_REQUEST,\r\n AGENT_SUCCESS,\r\n AGENT_FAILURE,\r\n FAGENT_REQUEST,\r\n FAGENT_SUCCESS,\r\n FAGENT_FAILURE,\r\n TAGENT_REQUEST, \r\n TAGENT_SUCCESS, \r\n TAGENT_FAILURE\r\n} from 'actions/agents';\r\n\r\nlet cookies;\r\n\r\nconst setSessionItems = resp => {\r\n window.sessionStorage.setItem(\"APIKey\", resp.AccessToken);\r\n window.sessionStorage.setItem(\"LastAuthCheck\", new Date());\r\n\r\n if (resp.AudienceType === \"CLIENT\") {\r\n window.sessionStorage.setItem('APIAudience', 'clients/');\r\n }\r\n else {\r\n window.sessionStorage.setItem('APIAudience', 'agents/');\r\n }\r\n\r\n window.sessionStorage.setItem(\"MLSKey\", resp.Audience.MLSKey);\r\n window.sessionStorage.setItem(\"RootAPI\", window.sessionStorage.getItem(\"BaseAPI\") + resp.Audience.MLSKey + \"/\");\r\n\r\n /* var DeviceIDs = window.localStorage.getItem(\"DeviceIDs\");\r\n if(!DeviceIDs){ \r\n DeviceIDs = [{UserId: resp.Audience.Id, DeviceId: getGUID()}];\r\n }\r\n else{\r\n DeviceIDs = JSON.parse(DeviceIDs);\r\n var dLst = DeviceIDs.filter(d => d.UserId === resp.Audience.Id);\r\n if(!dLst || (dLst && dLst.length === 0)){\r\n DeviceIDs.push({UserId: resp.Audience.Id, DeviceId: getGUID()});\r\n }\r\n }\r\n window.localStorage.setItem(\"DeviceIDs\", JSON.stringify(DeviceIDs)); */\r\n}\r\n\r\nexport default (state = {\r\n isAuthenticating: false,\r\n isAuthenticated: false,\r\n user: null,\r\n audience: {},\r\n notificationMessage: null,\r\n sendingEmail: false,\r\n error: undefined,\r\n emailError: undefined,\r\n featuredagents: [],\r\n teamagents: [],\r\n ssoLogoutRedirectUrl: null,\r\n isAnonymous: true\r\n}, action) => {\r\n switch (action.type) {\r\n case AUTH_REQUEST:\r\n return {\r\n ...state,\r\n isAuthenticating: true,\r\n error: undefined\r\n };\r\n case AUTH_MANUAL_LOGIN_SUCCESS:\r\n case AUTH_LOGIN_SUCCESS:\r\n setSessionItems(action.response);\r\n\r\n // Set long term cookie\r\n cookies = new Cookies();\r\n cookies.set('authDetails', action.response, { path: '/' });\r\n\r\n window.sessionStorage.removeItem(\"SearchParameters\");\r\n window.sessionStorage.removeItem(\"SelectedClient\");\r\n window.sessionStorage.removeItem(\"UserProfile\");\r\n window.sessionStorage.removeItem(\"ACCommuteAddress\");\r\n\r\n var isAnonymous = false;\r\n /* if (process.env.REACT_APP_AnonymousUserId !== undefined)\r\n {\r\n if(action.response && action.response.Audience && action.response.Audience.Id &&\r\n action.response.Audience.Id !== \"\" && action.response.Audience.Id.toLowerCase() === process.env.REACT_APP_AnonymousUserId.toLowerCase()){\r\n isAnonymous = true;\r\n }\r\n } */\r\n\r\n return {\r\n ...state,\r\n isAuthenticating: false,\r\n isAuthenticated: true,\r\n isAnonymous: isAnonymous,\r\n user: action.response,\r\n audience: {\r\n type: action.response.AudienceType === 'CLIENT' ? 'client' : 'agent',\r\n ...action.response.Audience\r\n },\r\n error: undefined\r\n };\r\n case AUTH_REFRESH_SUCCESS:\r\n cookies = new Cookies();\r\n\r\n if(!cookies.get('authDetails') && !action.skip){\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n isAuthenticating: false,\r\n audience: null,\r\n error: undefined\r\n };\r\n }\r\n\r\n if(action.response.ExpiresOnUTC){\r\n cookies.set('authDetails', action.response, { path: '/', expires: new Date(action.response.ExpiresOnUTC) });\r\n }\r\n else {\r\n cookies.set('authDetails', action.response, { path: '/' });\r\n } \r\n setSessionItems(action.response);\r\n\r\n var isAnonymousAR = false;\r\n /* if (process.env.REACT_APP_AnonymousUserId !== undefined)\r\n {\r\n if(action.response && action.response.Audience && action.response.Audience.Id &&\r\n action.response.Audience.Id !== \"\" && action.response.Audience.Id.toLowerCase() === process.env.REACT_APP_AnonymousUserId.toLowerCase()){\r\n isAnonymousAR = true;\r\n }\r\n } */\r\n\r\n return {\r\n ...state,\r\n isAuthenticating: false,\r\n isAuthenticated: true,\r\n isAnonymous: isAnonymousAR,\r\n audience: {\r\n ...state.audience,\r\n type: action.response.AudienceType === 'CLIENT' ? 'client' : 'agent',\r\n ...action.response.Audience\r\n },\r\n error: undefined\r\n };\r\n case AUTH_LOGOUT:\r\n \r\n window.sessionStorage.removeItem(\"SearchParameters\");\r\n window.sessionStorage.removeItem(\"SelectedClient\");\r\n window.sessionStorage.removeItem(\"UserProfile\");\r\n window.sessionStorage.removeItem(\"ACCommuteAddress\");\r\n\r\n cookies = new Cookies(); \r\n /* const authToken = cookies.get('authDetails');\r\n var d = new Date();\r\n d.setDate(d.getDate()-5);\r\n cookies.set('authDetails', authToken, { path: '/', expires: d }); */\r\n cookies.remove('authDetails');\r\n\r\n // Reset APIKey\r\n if (process.env.REACT_APP_NonExpiredAuthToken && process.env.REACT_APP_NonExpiredAuthToken !== \"\"){\r\n window.sessionStorage.setItem(\"APIKey\", process.env.REACT_APP_NonExpiredAuthToken);\r\n }\r\n window.sessionStorage.setItem('APIAudience', 'agents/');\r\n\r\n // Reset baseAPI URL\r\n //window.sessionStorage.setItem(\"RootAPI\", window.sessionStorage.getItem(\"BaseAPI\") + \"true/\");\r\n if (process.env.REACT_APP_PortalKey && process.env.REACT_APP_PortalKey !== \"\"){\r\n window.sessionStorage.setItem(\"RootAPI\", window.sessionStorage.getItem(\"BaseAPI\") + process.env.REACT_APP_PortalKey + \"/\");\r\n window.sessionStorage.setItem(\"MLSKey\", process.env.REACT_APP_PortalKey);\r\n }\r\n else if (process.env.REACT_APP_MLSKey && process.env.REACT_APP_MLSKey !== \"\"){\r\n window.sessionStorage.setItem(\"RootAPI\", window.sessionStorage.getItem(\"BaseAPI\") + process.env.REACT_APP_MLSKey + \"/\");\r\n window.sessionStorage.setItem(\"MLSKey\", process.env.REACT_APP_MLSKey);\r\n }\r\n else {\r\n window.sessionStorage.setItem(\"RootAPI\", window.sessionStorage.getItem(\"BaseAPI\") + \"true/\");\r\n window.sessionStorage.setItem(\"MLSKey\", \"true\");\r\n }\r\n\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n isAnonymous: true,\r\n user: null,\r\n error: undefined\r\n };\r\n case AUTH_FAILURE:\r\n return {\r\n ...state,\r\n isAuthenticating: false,\r\n error: action.error\r\n };\r\n case SEND_AGENT_EMAIL_REQUEST:\r\n return {\r\n ...state,\r\n sendingEmail: true,\r\n notificationMessage: undefined,\r\n emailError: undefined\r\n }\r\n case SEND_AGENT_EMAIL_SUCCESS:\r\n return {\r\n ...state,\r\n sendingEmail: false,\r\n notificationMessage: action.ResponseMessage || action.response.Message\r\n }\r\n case SEND_AGENT_EMAIL_FAILURE:\r\n return {\r\n ...state,\r\n sendingEmail: false,\r\n emailError: action.error\r\n }\r\n case PURL_PREFIX_SAVE:\r\n return {\r\n ...state,\r\n purlPrefix: action.purlPrefix\r\n }\r\n case AGENT_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined\r\n };\r\n case AGENT_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n notificationMessage: action.response.Message\r\n };\r\n case AGENT_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error \r\n };\r\n case FAGENT_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined\r\n };\r\n case FAGENT_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n featuredagents: action.response.Agents \r\n };\r\n case FAGENT_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error \r\n };\r\n case TAGENT_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined\r\n };\r\n case TAGENT_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n teamagents: action.response || [] \r\n };\r\n case TAGENT_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error \r\n };\r\n case ACCESSTOKEN_LOGOUT_REQUEST:\r\n return {\r\n ...state,\r\n ssoLogoutRedirectUrl: null\r\n }\r\n case ACCESSTOKEN_LOGOUT_SUCCESS:\r\n\r\n var rUrl = null;\r\n if(action && action.response && action.response.RedirectUrl && action.response.RedirectUrl !== \"\"){\r\n if(action.UId && action.UId !== \"\" && process.env.REACT_APP_AnonymousUserId && \r\n process.env.REACT_APP_AnonymousUserId !== \"\" && \r\n action.UId.toLowerCase() !== process.env.REACT_APP_AnonymousUserId.toLowerCase() &&\r\n !action.PreventRedirect){\r\n rUrl = action.response.RedirectUrl;\r\n }\r\n }\r\n\r\n return {\r\n ...state,\r\n ssoLogoutRedirectUrl: rUrl\r\n }\r\n case ACCESSTOKEN_LOGOUT_FAILURE:\r\n return {\r\n ...state,\r\n ssoLogoutRedirectUrl: null\r\n }\r\n case SYNCADS_REQUEST:\r\n return {\r\n ...state,\r\n }\r\n case SYNCADS_SUCCESS:\r\n return {\r\n ...state,\r\n }\r\n case SYNCADS_FAILURE:\r\n return {\r\n ...state,\r\n }\r\n default:\r\n return state;\r\n }\r\n};","import union from 'lodash/union'\r\nimport {\r\n LISTING_REQUEST,\r\n LISTING_SUCCESS,\r\n LISTING_FAILURE,\r\n LISTING_ADD,\r\n LISTING_REMOVE,\r\n LISTING_CLEAR,\r\n HOMESTATS_REQUEST, \r\n HOMESTATS_SUCCESS, \r\n HOMESTATS_FAILURE,\r\n FLISTING_REQUEST, \r\n FLISTING_SUCCESS, \r\n FLISTING_FAILURE,\r\n LIBERTYM_REQUEST, \r\n LIBERTYM_SUCCESS, \r\n LIBERTYM_FAILURE,\r\n \r\n} from 'actions/listings';\r\n\r\nconst updatePagination = (state = {\r\n isFetching: false,\r\n ids: [],\r\n error: undefined,\r\n listings: [],\r\n stats: {},\r\n isSuccess: false,\r\n\r\n}, action) => {\r\n switch (action.type) {\r\n case LISTING_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case LISTING_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n //ids: union(state.ids, action.response.result.Listings),\r\n ids: union(action.response.result.Listings),\r\n error: undefined\r\n }\r\n case LISTING_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n case FLISTING_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case FLISTING_SUCCESS:\r\n\r\n /* let lst = action.response.Listings;\r\n lst.map((l,i) => {\r\n if(l.Id === 0) l.Id = (i + 1);\r\n return null;\r\n }) */\r\n\r\n return {\r\n ...state,\r\n isFetching: false,\r\n ids: action.key === \"exteriorstyle\" ? action.response : action.response.Listings,\r\n error: undefined\r\n }\r\n case FLISTING_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n case LISTING_ADD:\r\n return {\r\n ...state,\r\n ids: union([...state.ids, action.listingId]),\r\n listings: union([...state.listings, action.listing])\r\n }\r\n case LISTING_REMOVE:\r\n return {\r\n ...state,\r\n ids: state.ids.filter(n => n !== action.listingId)\r\n }\r\n case LISTING_CLEAR:\r\n return {\r\n ...state,\r\n ids: []\r\n }\r\n case HOMESTATS_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case HOMESTATS_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n stats: action.response,\r\n error: undefined\r\n }\r\n case HOMESTATS_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n case LIBERTYM_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n isSuccess: false\r\n };\r\n case LIBERTYM_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n isSuccess: true,\r\n error: undefined\r\n }\r\n case LIBERTYM_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n isSuccess: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst listings = (state = {}, action) => {\r\n switch (action.type) {\r\n case LISTING_REQUEST:\r\n case LISTING_SUCCESS:\r\n case LISTING_FAILURE:\r\n case FLISTING_REQUEST:\r\n case FLISTING_SUCCESS:\r\n case FLISTING_FAILURE:\r\n case HOMESTATS_REQUEST:\r\n case HOMESTATS_SUCCESS:\r\n case HOMESTATS_FAILURE:\r\n case LISTING_ADD:\r\n case LISTING_REMOVE:\r\n case LISTING_CLEAR:\r\n case LIBERTYM_REQUEST:\r\n case LIBERTYM_SUCCESS:\r\n case LIBERTYM_FAILURE:\r\n const key = action.key;\r\n\r\n return {\r\n ...state,\r\n [key]: updatePagination(state[key], action)\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default listings;\r\n\r\n","import union from 'lodash/union';\r\nimport {\r\n FEED_REQUEST,\r\n FEED_SUCCESS,\r\n FEED_FAILURE,\r\n SINGLE_FEED_REQUEST,\r\n SINGLE_FEED_SUCCESS,\r\n SINGLE_FEED_FAILURE\r\n} from 'actions/feed';\r\n\r\nconst updatePagination = (state = {\r\n isFetching: false,\r\n ids: [],\r\n pageCount: 0,\r\n moreItems: true,\r\n error: undefined\r\n}, action) => {\r\n switch (action.type) {\r\n case FEED_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case FEED_SUCCESS:\r\n const newIds = union(state.ids, action.response.result);\r\n\r\n return {\r\n ...state,\r\n isFetching: false,\r\n ids: newIds,\r\n pageCount: state.pageCount + 1,\r\n moreItems: state.ids.length < newIds.length,\r\n error: undefined\r\n }\r\n case FEED_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst feed = (state = {}, action) => {\r\n switch (action.type) {\r\n case FEED_REQUEST:\r\n case FEED_SUCCESS:\r\n case FEED_FAILURE:\r\n const key = action.key;\r\n\r\n return {\r\n ...state,\r\n [key]: updatePagination(state[key], action)\r\n };\r\n case SINGLE_FEED_REQUEST:\r\n return {\r\n ...state,\r\n isSingleFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n }; \r\n case SINGLE_FEED_SUCCESS:\r\n return {\r\n ...state,\r\n isSingleFetching: false,\r\n error: undefined\r\n };\r\n case SINGLE_FEED_FAILURE:\r\n return {\r\n ...state,\r\n isSingleFetching: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default feed;\r\n\r\n","import union from 'lodash/union';\r\nimport difference from 'lodash/difference';\r\nimport {\r\n ACTIVITY_REQUEST,\r\n ACTIVITY_SUCCESS,\r\n ACTIVITY_FAILURE,\r\n ACTIVITY_FILTER\r\n} from 'actions/activity';\r\n\r\nconst updatePagination = (state = {\r\n isFetching: false,\r\n ids: [],\r\n unreadIds: [],\r\n updateDashboardIds: [],\r\n pageCount: 0,\r\n moreItems: true,\r\n error: undefined\r\n}, action) => {\r\n switch (action.type) {\r\n case ACTIVITY_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case ACTIVITY_SUCCESS:\r\n let unreadIds = [];\r\n let updateDashboardIds = [];\r\n //TODO what is checkForNewActivity for?\r\n //if(window.sessionStorage.getItem(\"checkForNewActivity\") === \"true\"){\r\n unreadIds = union(state.unreadIds, difference(action.response.result, state.ids));\r\n updateDashboardIds = difference(action.response.result, state.ids);\r\n //}\r\n const newIds = union(state.ids, action.response.result);\r\n const moreItms = unreadIds.length > 0 ? true : state.ids.length <= newIds.length;//This needs to be changed\r\n\r\n return {\r\n ...state,\r\n isFetching: false,\r\n ids: newIds,\r\n unreadIds: unreadIds,\r\n updateDashboardIds : updateDashboardIds,\r\n pageCount: state.pageCount + 1,\r\n moreItems: moreItms,\r\n error: undefined\r\n }\r\n case ACTIVITY_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n case ACTIVITY_FILTER:\r\n return {\r\n ...state,\r\n unreadIds: state.unreadIds.filter((urid) => parseInt(urid, 10) > action.lastReadId)\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst activity = (state = {}, action) => {\r\n switch (action.type) {\r\n case ACTIVITY_REQUEST:\r\n case ACTIVITY_SUCCESS:\r\n case ACTIVITY_FAILURE:\r\n case ACTIVITY_FILTER:\r\n const key = action.key;\r\n\r\n return {\r\n ...state,\r\n [key]: updatePagination(state[key], action)\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default activity;\r\n\r\n","import union from 'lodash/union';\r\nimport {\r\n MANAGE_FETCH_REQUEST,\r\n MANAGE_FETCH_SUCCESS,\r\n MANAGE_FETCH_FAILURE,\r\n MANAGE_LOOKUP_REQUEST,\r\n MANAGE_LOOKUP_SUCCESS,\r\n MANAGE_LOOKUP_FAILURE,\r\n MANAGE_ADD_REQUEST,\r\n MANAGE_ADD_SUCCESS,\r\n MANAGE_ADD_FAILURE,\r\n MANAGE_UPDATE_REQUEST,\r\n MANAGE_UPDATE_SUCCESS,\r\n MANAGE_UPDATE_FAILURE,\r\n MANAGE_DELETE_REQUEST,\r\n MANAGE_DELETE_SUCCESS,\r\n MANAGE_DELETE_FAILURE,\r\n MANAGE_PP_REQUEST, \r\n MANAGE_PP_SUCCESS, \r\n MANAGE_PP_FAILURE,\r\n EVENT_REQUEST, \r\n EVENT_SUCCESS, \r\n EVENT_FAILURE,\r\n UPDATE_SUCCESS\r\n \r\n} from 'actions/manage';\r\n\r\nconst updateState = (state = {\r\n isFetching: false,\r\n isAdding: false,\r\n isAdded: false,\r\n isUpdating: false,\r\n isUpdated: false,\r\n isDeleting: false,\r\n isDeleted: false,\r\n isLookingUp: false,\r\n isLookedUp: false,\r\n ids: [],\r\n suggestions: [],\r\n lookupProp: {},\r\n error: undefined\r\n}, action) => {\r\n switch (action.type) {\r\n case MANAGE_FETCH_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case MANAGE_FETCH_SUCCESS: \r\n const newIds = union([], action.response);\r\n \r\n return {\r\n ...state,\r\n isFetching: false,\r\n //ids: defaultLst,\r\n ids: newIds,\r\n error: undefined\r\n }\r\n case MANAGE_FETCH_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n case MANAGE_LOOKUP_REQUEST:\r\n return {\r\n ...state,\r\n isLookingUp: true,\r\n isLookedUp: false,\r\n lookupProp: {}\r\n };\r\n case MANAGE_LOOKUP_SUCCESS:\r\n return {\r\n ...state,\r\n isLookingUp: false,\r\n isLookedUp: true,\r\n //suggestions: action.response.result,\r\n lookupProp: action.response,\r\n error: undefined\r\n }\r\n case MANAGE_LOOKUP_FAILURE:\r\n return {\r\n ...state,\r\n isLookingUp: false,\r\n error: action.error\r\n };\r\n case MANAGE_ADD_REQUEST:\r\n return {\r\n ...state,\r\n isAdding: true,\r\n isAdded: false,\r\n };\r\n case MANAGE_ADD_SUCCESS:\r\n return {\r\n ...state,\r\n isAdding: false,\r\n isAdded: true,\r\n error: undefined\r\n }\r\n case MANAGE_ADD_FAILURE:\r\n return {\r\n ...state,\r\n isAdding: false,\r\n error: action.error\r\n };\r\n case MANAGE_UPDATE_REQUEST:\r\n return {\r\n ...state,\r\n isUpdating: true,\r\n isUpdated: false,\r\n };\r\n case MANAGE_UPDATE_SUCCESS:\r\n return {\r\n ...state,\r\n isUpdating: false,\r\n isUpdated: true,\r\n error: undefined\r\n }\r\n case MANAGE_UPDATE_FAILURE:\r\n return {\r\n ...state,\r\n isUpdating: false,\r\n error: action.error\r\n };\r\n case MANAGE_DELETE_REQUEST:\r\n return {\r\n ...state,\r\n isDeleting: true,\r\n isDeleted: false,\r\n };\r\n case MANAGE_DELETE_SUCCESS:\r\n return {\r\n ...state,\r\n isDeleting: false,\r\n isDeleted: true,\r\n error: undefined\r\n }\r\n case MANAGE_DELETE_FAILURE:\r\n return {\r\n ...state,\r\n isDeleting: false,\r\n error: action.error\r\n };\r\n case MANAGE_PP_REQUEST:\r\n return {\r\n ...state,\r\n isUpdating: true,\r\n isUpdated: false,\r\n };\r\n case MANAGE_PP_SUCCESS:\r\n return {\r\n ...state,\r\n isUpdating: false,\r\n isUpdated: true,\r\n error: undefined\r\n }\r\n case MANAGE_PP_FAILURE:\r\n return {\r\n ...state,\r\n isUpdating: false,\r\n isUpdated: false,\r\n error: action.error\r\n };\r\n case EVENT_REQUEST:\r\n return {\r\n ...state\r\n };\r\n case EVENT_SUCCESS: \r\n if(action.key === \"shared\" && action.response){\r\n return {\r\n ...state,\r\n ids: action.response.sharelink\r\n }\r\n }\r\n return {\r\n ...state\r\n }\r\n case EVENT_FAILURE:\r\n return {\r\n ...state\r\n };\r\n case UPDATE_SUCCESS: {\r\n var rVal = JSON.parse(JSON.stringify(state)); \r\n if(action.listToUpdate){\r\n delete rVal[\"ids\"];\r\n rVal.ids = [];\r\n var uLst = null;\r\n state.ids.map((currAd) => {\r\n uLst = action.listToUpdate.filter(u => u.Id === currAd.Id);\r\n if(uLst && uLst.length > 0){\r\n rVal.ids.push(JSON.parse(JSON.stringify(uLst[0])));\r\n }\r\n else{\r\n rVal.ids.push(JSON.parse(JSON.stringify(currAd)));\r\n }\r\n return true;\r\n });\r\n }\r\n return JSON.parse(JSON.stringify(rVal));\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst manage = (state = {}, action) => {\r\n switch (action.type) {\r\n case MANAGE_FETCH_REQUEST:\r\n case MANAGE_FETCH_SUCCESS:\r\n case MANAGE_FETCH_FAILURE: \r\n case MANAGE_LOOKUP_REQUEST:\r\n case MANAGE_LOOKUP_SUCCESS:\r\n case MANAGE_LOOKUP_FAILURE: \r\n case MANAGE_ADD_REQUEST:\r\n case MANAGE_ADD_SUCCESS:\r\n case MANAGE_ADD_FAILURE: \r\n case MANAGE_UPDATE_REQUEST:\r\n case MANAGE_UPDATE_SUCCESS:\r\n case MANAGE_UPDATE_FAILURE: \r\n case MANAGE_DELETE_REQUEST:\r\n case MANAGE_DELETE_SUCCESS:\r\n case MANAGE_DELETE_FAILURE:\r\n case MANAGE_PP_REQUEST:\r\n case MANAGE_PP_SUCCESS:\r\n case MANAGE_PP_FAILURE:\r\n case EVENT_REQUEST:\r\n case EVENT_SUCCESS:\r\n case EVENT_FAILURE:\r\n case UPDATE_SUCCESS: {\r\n\r\n const key = action.key;\r\n\r\n return {\r\n ...state,\r\n [key]: updateState(state[key], action)\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default manage;","//import union from 'lodash/union';\r\nimport {\r\n MO_FETCH_REQUEST,\r\n MO_FETCH_SUCCESS,\r\n MO_FETCH_FAILURE\r\n \r\n} from 'actions/ads';\r\n\r\nconst updateState = (state = {\r\n isFetching: false,\r\n ids: [],\r\n error: undefined\r\n}, action) => {\r\n switch (action.type) {\r\n case MO_FETCH_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case MO_FETCH_SUCCESS: \r\n \r\n var newIds = [];\r\n if(action.response) newIds = action.response;\r\n \r\n if(action.key === \"addetail\"){\r\n if(action.currentAdd !== undefined){\r\n newIds = action.currentAdd;\r\n }\r\n else{\r\n newIds = {};\r\n }\r\n }\r\n\r\n return {\r\n ...state,\r\n isFetching: false,\r\n ids: newIds,\r\n error: undefined\r\n }\r\n case MO_FETCH_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst ads = (state = {}, action) => {\r\n switch (action.type) {\r\n case MO_FETCH_REQUEST:\r\n case MO_FETCH_SUCCESS:\r\n case MO_FETCH_FAILURE: {\r\n\r\n const key = action.key;\r\n\r\n return {\r\n ...state,\r\n [key]: updateState(state[key], action)\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default ads;","import { combineReducers } from 'redux';\r\nimport mergeWith from 'lodash/merge';\r\nimport search from './search';\r\nimport session from './session';\r\nimport clients from './clients';\r\nimport settings from './settings';\r\nimport profile from './profile';\r\nimport listings from './listings';\r\nimport feed from './feed';\r\nimport activity from './activity';\r\nimport invitations from './invitations';\r\nimport manage from './manage';\r\nimport ads from './ads';\r\nimport { AUTH_LOGOUT } from 'actions/session';\r\nimport { reducer as geolocation } from 'react-redux-geolocation';\r\n\r\nconst defaultState = {\r\n session: {},\r\n listings: {},\r\n clients: {},\r\n feedItems: {},\r\n activities: {},\r\n invitations: {}\r\n};\r\n\r\nconst entities = (state = defaultState, action) => {\r\n if (action.response && action.response.entities) {\r\n // below is to patch deleted comments showing. TODO store and remove by ids\r\n if (action.response.entities.feedItems && action.type === 'SINGLE_FEED_SUCCESS') {\r\n var feedItemKey = Object.keys(action.response.entities.feedItems)[0];\r\n state[\"feedItems\"][feedItemKey] = action.response.entities.feedItems[feedItemKey];\r\n return state;\r\n }\r\n return mergeWith({}, state, action.response.entities, (src, dest) => {\r\n // Deep merge arrays\r\n if (Array.isArray(src)) {\r\n return dest;\r\n }\r\n });\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst appReducer = combineReducers({\r\n entities,\r\n search,\r\n session,\r\n clients,\r\n settings,\r\n listings,\r\n feed,\r\n profile,\r\n activity,\r\n invitations,\r\n geolocation,\r\n manage,\r\n ads\r\n});\r\n\r\nconst rootReducer = (state, action) => {\r\n if (action.type === AUTH_LOGOUT) {\r\n state = undefined;\r\n }\r\n\r\n return appReducer(state, action);\r\n}\r\n\r\nexport default rootReducer;\r\n","import {\r\n SEARCH_REQUEST,\r\n SEARCH_SUCCESS,\r\n SEARCH_FAILURE,\r\n UPDATE_PARAMS_REQUEST,\r\n RESET_PARAMS_REQUEST\r\n} from 'actions/search';\r\nimport { getDefaultSearchParams } from 'components/util'\r\n\r\n/*const defaultParams = {\r\n limitrecords: \"100\",\r\n ficoscore: \"760-850\",\r\n loantype: \"30YrFixed\",\r\n lifestyle: \"couple-no-kids\",\r\n orderby: \"newest\",\r\n orderbydirection: \"DESC\",\r\n skip: 0,\r\n propertytype: \"sf\"\r\n};*/\r\n\r\nexport default (state = {\r\n isFetching: false,\r\n error: undefined,\r\n notificationMessage: undefined,\r\n //parameters: defaultParams\r\n parameters: getDefaultSearchParams()\r\n \r\n}, action) => {\r\n switch (action.type) {\r\n case SEARCH_REQUEST:\r\n case SEARCH_SUCCESS:\r\n case SEARCH_FAILURE:\r\n case UPDATE_PARAMS_REQUEST:\r\n\r\n var params = action.parameters;\r\n if(!action.skipFlag) delete params[\"pagechange\"];\r\n\r\n return {\r\n ...state, \r\n lastParameters : state.parameters,\r\n //parameters: Object.assign({}, defaultParams, params)\r\n parameters: Object.assign({}, getDefaultSearchParams(), params)\r\n };\r\n \r\n case RESET_PARAMS_REQUEST:\r\n\r\n return {\r\n ...state,\r\n lastParameters : state.parameters,\r\n //parameters: defaultParams,\r\n parameters: Object.assign({}, getDefaultSearchParams(), action.params || {})\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n};\r\n","import union from 'lodash/union';\r\nimport {\r\n CLIENTS_REQUEST,\r\n CLIENTS_FETCH_SUCCESS,\r\n CLIENTS_SUCCESS,\r\n CLIENT_UPDATE_SUCCESS,\r\n CLIENT_IGNORE_SUCCESS,\r\n CLIENT_SELECT,\r\n CLIENT_DESELECT,\r\n CLIENTS_FAILURE,\r\n CLIENT_DELETE,\r\n ALL_CLIENTS_REQUEST, \r\n ALL_CLIENTS_SUCCESS, \r\n ALL_CLIENTS_FAILURE\r\n /*CLIENT_DELETE_REQUEST,\r\n CLIENT_DELETE_SUCCESS,\r\n CLIENT_DELETE_FAILURE */\r\n} from 'actions/clients';\r\n\r\nexport default (state = {\r\n isFetching: false,\r\n ids: [],\r\n selectedClient: null,\r\n error: undefined,\r\n notificationMessage: undefined,\r\n allClients: []\r\n}, action) => {\r\n switch (action.type) {\r\n case CLIENTS_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case CLIENTS_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: undefined\r\n };\r\n case CLIENT_UPDATE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n notificationMessage: action.response.Message\r\n };\r\n case CLIENT_IGNORE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false // response message ignored \r\n //notificationMessage: action.response.Message\r\n };\r\n case CLIENTS_FETCH_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n ids: union(state.ids, action.response.result.Clients)\r\n };\r\n case CLIENT_SELECT:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n //selectedClient: action.id\r\n selectedClient: action.response.result\r\n }\r\n case CLIENT_DESELECT:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n selectedClient: null\r\n }\r\n case CLIENTS_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n /* case CLIENT_DELETE_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case CLIENT_DELETE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n ids: state.ids.filter(n => n !== action.id),\r\n notificationMessage: 'Client deleted successfully'\r\n };\r\n case CLIENT_DELETE_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n }; */\r\n case CLIENT_DELETE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n ids: state.ids.filter(n => n !== action.id),\r\n selectedClient: null\r\n };\r\n case ALL_CLIENTS_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case ALL_CLIENTS_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n allClients: action.response,\r\n error: undefined\r\n };\r\n case ALL_CLIENTS_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n SETTING_REQUEST,\r\n SETTING_SUCCESS,\r\n SETTING_FAILURE, \r\n AUTH_MECH_REQUEST, \r\n AUTH_MECH_SUCCESS, \r\n AUTH_MECH_FAILURE,\r\n PRINTPIECE_REQUEST, \r\n PRINTPIECE_SUCCESS, \r\n PRINTPIECE_FAILURE,\r\n BASEDATA_REQUEST, \r\n BASEDATA_SUCCESS, \r\n BASEDATA_FAILURE,\r\n FNEIGHBORHOODS_REQUEST, \r\n FNEIGHBORHOODS_SUCCESS, \r\n FNEIGHBORHOODS_FAILURE,\r\n FNEIGHBORHOODD_REQUEST, \r\n FNEIGHBORHOODD_SUCCESS, \r\n FNEIGHBORHOODD_FAILURE\r\n\r\n} from 'actions/settings';\r\n\r\n\r\nexport default (state = {\r\n isFetching: false,\r\n data: [],\r\n error: undefined,\r\n notificationMessage: undefined,\r\n isAuthMechFetching: false,\r\n printPieceUrl: \"\",\r\n featuredNeighborhoods: [],\r\n featuredNeighborhoodDetail: {},\r\n isFNLFetching: false,\r\n isFNDFetching: false\r\n\r\n}, action) => {\r\n switch (action.type) {\r\n case SETTING_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case SETTING_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n data: (action.response.Settings && action.response.Settings.length > 0) ? \r\n Object.assign(...action.response.Settings.map(setting => ({[setting['SettingTitle']]: setting['Value']}))) : [],\r\n error: undefined\r\n };\r\n case SETTING_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n case AUTH_MECH_REQUEST:\r\n return {\r\n ...state,\r\n isAuthMechFetching: true\r\n };\r\n case AUTH_MECH_SUCCESS:\r\n const res = action.response;\r\n if(res && res.AuthenticationMechanism && res.AuthenticationMechanism.length > 0 &&\r\n res.AuthenticationMechanism[0] && \r\n res.AuthenticationMechanism[0].AuthenticationMechanism &&\r\n res.AuthenticationMechanism[0].AuthenticationMechanism !== \"\" &&\r\n res.AuthenticationMechanism[0].AuthenticationMechanism.toLowerCase() === \"sso-saml\" &&\r\n res.AuthenticationMechanism[0].AuthDetails && \r\n res.AuthenticationMechanism[0].AuthDetails.Idp && \r\n res.AuthenticationMechanism[0].AuthDetails.Idp !== \"\" &&\r\n res.AuthenticationMechanism[0].AuthDetails.SAMLRequest && \r\n res.AuthenticationMechanism[0].AuthDetails.SAMLRequest !== \"\"){\r\n window.sessionStorage.setItem(\"AuthMechanism\", JSON.stringify(res.AuthenticationMechanism[0].AuthDetails));\r\n }\r\n else{\r\n window.sessionStorage.removeItem(\"AuthMechanism\");\r\n }\r\n\r\n return {\r\n ...state,\r\n isAuthMechFetching: false\r\n };\r\n case AUTH_MECH_FAILURE:\r\n return {\r\n ...state,\r\n isAuthMechFetching: false\r\n };\r\n case PRINTPIECE_REQUEST:\r\n return {\r\n ...state,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case PRINTPIECE_SUCCESS:\r\n return {\r\n ...state,\r\n printPieceUrl: action.response,\r\n error: undefined\r\n };\r\n case PRINTPIECE_FAILURE:\r\n return {\r\n ...state,\r\n error: action.error\r\n };\r\n case BASEDATA_REQUEST:\r\n return {\r\n ...state,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case BASEDATA_SUCCESS:\r\n \r\n var st = {\r\n ...state,\r\n error: undefined\r\n } \r\n \r\n if(action.key && action.response){\r\n st[action.key] = action.response;\r\n }\r\n\r\n return st;\r\n\r\n case BASEDATA_FAILURE:\r\n return {\r\n ...state,\r\n error: action.error\r\n };\r\n case FNEIGHBORHOODS_REQUEST:\r\n return {\r\n ...state,\r\n isFNLFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case FNEIGHBORHOODS_SUCCESS:\r\n return {\r\n ...state,\r\n isFNLFetching: false,\r\n featuredNeighborhoods: action.response,\r\n error: undefined\r\n };\r\n case FNEIGHBORHOODS_FAILURE:\r\n return {\r\n ...state,\r\n isFNLFetching: false,\r\n error: action.error\r\n };\r\n case FNEIGHBORHOODD_REQUEST:\r\n return {\r\n ...state,\r\n isFNDFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case FNEIGHBORHOODD_SUCCESS:\r\n return {\r\n ...state,\r\n isFNDFetching: false,\r\n featuredNeighborhoodDetail: action.response,\r\n error: undefined\r\n };\r\n case FNEIGHBORHOODD_FAILURE:\r\n return {\r\n ...state,\r\n isFNDFetching: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n};","import {\r\n PROFILE_REQUEST,\r\n PROFILE_SUCCESS,\r\n PROFILE_UPDATE_SUCCESS,\r\n PROFILE_FAILURE,\r\n AGENT_PROFILE_REQUEST,\r\n AGENT_PROFILE_SUCCESS,\r\n AGENT_PROFILE_FAILURE\r\n} from 'actions/profile';\r\n\r\nexport default (state = {\r\n isFetching: false,\r\n mine: null,\r\n agent: null,\r\n error: undefined,\r\n notificationMessage: undefined,\r\n //isAnonymous: false,\r\n}, action) => {\r\n switch (action.type) {\r\n case PROFILE_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case PROFILE_SUCCESS:\r\n window.sessionStorage.setItem(\"UserProfile\", JSON.stringify(action.response));\r\n\r\n /* var isAnonymous = false;\r\n if (process.env.REACT_APP_AnonymousUserId !== undefined)\r\n {\r\n if(action.response && action.response.AgentId && !action.response.Id &&\r\n action.response.AgentId !== \"\" && action.response.AgentId.toLowerCase() === process.env.REACT_APP_AnonymousUserId.toLowerCase()){\r\n isAnonymous = true;\r\n }\r\n } */\r\n\r\n return {\r\n ...state,\r\n isFetching: false,\r\n mine: action.response,\r\n error: undefined,\r\n //isAnonymous: isAnonymous\r\n };\r\n case PROFILE_UPDATE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n notificationMessage: action.response.Message\r\n };\r\n case PROFILE_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n error: action.error\r\n };\r\n case AGENT_PROFILE_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingAgentProfile: true\r\n };\r\n case AGENT_PROFILE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingAgentProfile: false,\r\n agent: action.response\r\n };\r\n case AGENT_PROFILE_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingAgentProfile: false,\r\n agent: null,\r\n agentError: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import union from 'lodash/union';\r\nimport {\r\n INVITATIONS_REQUEST,\r\n INVITATIONS_SUCCESS,\r\n INVITATIONS_DELETE_REQUEST,\r\n INVITATIONS_DELETE_SUCCESS,\r\n INVITATIONS_FAILURE\r\n} from 'actions/invitations';\r\n\r\nexport default (state = {\r\n isFetching: false,\r\n isDeleting: false,\r\n ids: [],\r\n error: undefined,\r\n notificationMessage: undefined\r\n}, action) => {\r\n switch (action.type) {\r\n case INVITATIONS_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case INVITATIONS_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n //ids: union(state.ids, action.response.result)\r\n ids: union([], action.response.result)\r\n };\r\n case INVITATIONS_DELETE_REQUEST:\r\n return {\r\n ...state,\r\n isDeleting: true,\r\n error: undefined,\r\n notificationMessage: undefined\r\n };\r\n case INVITATIONS_DELETE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n ids: state.ids.filter(n => n !== action.id)\r\n };\r\n case INVITATIONS_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n isDeleting: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport api from './api';\r\nimport rootReducer from '../reducers';\r\n\r\nlet middleware = [thunk, api];\r\n\r\nif (process.env.NODE_ENV !== 'production') {\r\n const logger = require('redux-logger');\r\n\r\n middleware = [...middleware, logger.createLogger({ collapsed: true })];\r\n}\r\n\r\nexport default function configureStore(initialState) {\r\n const store = createStore(\r\n rootReducer,\r\n initialState,\r\n applyMiddleware(...middleware)\r\n );\r\n\r\n return store;\r\n}\r\n","import configureStore from './index';\r\n\r\nconst initialState = {};\r\nconst store = configureStore(initialState);\r\n\r\nexport default store;","import { CALL_API } from '../store/api';\r\nimport Cookies from 'universal-cookie';\r\n\r\nexport const MO_FETCH_REQUEST = 'MO_FETCH_REQUEST';\r\nexport const MO_FETCH_SUCCESS = 'MO_FETCH_SUCCESS';\r\nexport const MO_FETCH_FAILURE = 'MO_FETCH_FAILURE';\r\n\r\nexport const fetchMyOffers = (key) => (dispatch, getState) => {\r\n var endpoint = \"ads/myofferads?type=\" + key; \r\n \r\n if (process.env.REACT_APP_AllowAnonymous === \"true\"){\r\n const cookies = new Cookies();\r\n const authToken = cookies.get('authDetails');\r\n if (authToken && authToken.Audience && authToken.Audience.Id &&\r\n authToken.Audience.Id === process.env.REACT_APP_AnonymousUserId){\r\n var DeviceUID = window.localStorage.getItem(\"DeviceUID\");\r\n if(DeviceUID && DeviceUID !== \"\"){\r\n endpoint = endpoint + \"&duid=\" + DeviceUID;\r\n }\r\n } \r\n }\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MO_FETCH_REQUEST, MO_FETCH_SUCCESS, MO_FETCH_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n}\r\n\r\nexport const setCurrentOfferDetail = (key, id, currentAdd) => (dispatch, getState) => {\r\n return dispatch({\r\n type: MO_FETCH_SUCCESS,\r\n key: key,\r\n currentAdd: currentAdd\r\n });\r\n}","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDc0QUQyNDFFN0IyMTFFN0FBRDFCNTMwOEQzRTREOUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDc0QUQyNDJFN0IyMTFFN0FBRDFCNTMwOEQzRTREOUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNzRBRDIzRkU3QjIxMUU3QUFEMUI1MzA4RDNFNEQ5QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzRBRDI0MEU3QjIxMUU3QUFEMUI1MzA4RDNFNEQ5QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsE/XfMAABJwSURBVHja7F1pjCTl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\"","import React from 'react';\r\nimport queryString from 'query-string';\r\nimport base64 from 'base-64';\r\nimport dateFormat from 'dateformat';\r\nimport moment from 'moment';\r\n\r\nexport const AgentPath = 'agents/';\r\nexport const ClientPath = 'clients/';\r\nexport const PageTitle = (process.env.REACT_APP_WebsiteTitle && process.env.REACT_APP_WebsiteTitle !== \"\") ? '{title} | ' + process.env.REACT_APP_WebsiteTitle : '{title} | TRUE by TLCengine';\r\n\r\nexport function encodeSearchParams(props) {\r\n if(props.PlaceSearch){\r\n props.PlaceSearch = \"<\" + encodeSearchParams(props.PlaceSearch) + \">\";\r\n }\r\n if(props.place){\r\n props.place = \"<\" + encodeSearchParams(props.place) + \">\";\r\n }\r\n return queryString.stringify(props);\r\n // return JSON.stringify(props) \r\n // .replace(/\\[\"/g, \"_sarr_\").replace(/\"\\]/g, \"_earr_\")\r\n // .replace(/{\"/g, \"\").replace(/\"}/g, \"\")\r\n // .replace(/{\\[\"/g, \"\").replace(/\"\\]}/g, \"\")\r\n // .replace(/\":\"/g, \":\")\r\n // .replace(/\",\"/g, \";\")\r\n // .replace(/\":/g, \":\").replace(/\",/g, \";\")\r\n // .replace(/:\"/g, \":\").replace(/,\"/g, \";\");\r\n}\r\n\r\nexport function decodeSearchParams(props) {\r\n // var searchParams = props\r\n // .replace(/_sarr_/g, \"\\[\\\"\").replace(/_earr_/g, \"\\\"\\]\")\r\n // .replace(//g, \"\\\"}\")\r\n // .replace(/:/g, \"\\\":\\\"\").replace(/;/g, \"\\\",\\\"\")\r\n // .replace(/\"{/g, \"{\").replace(/}\"/g, \"}\");\r\n // searchParams = \"{\\\"\" + searchParams + ((searchParams.endsWith(\"}\")) ? \"}\" : \"\\\"}\");\r\n // searchParams = searchParams.replace(/\"\\[/g,\"\\[\").replace(/\\]\"/g, \"\\]\"); // remove when array is in last\r\n // console.log(searchParams);\r\n // searchParams = JSON.parse(searchParams);\r\n\r\n var decodedSearch = queryString.parse(props);\r\n\r\n if(decodedSearch.PlaceSearch){\r\n decodedSearch.PlaceSearch = queryString.parse(decodedSearch.PlaceSearch.substr(1).slice(0, -1));\r\n }\r\n if(decodedSearch.place){\r\n decodedSearch.place = queryString.parse(decodedSearch.place.substr(1).slice(0, -1));\r\n }\r\n\r\n if(decodedSearch.polygon && typeof decodedSearch.polygon === 'string') {\r\n var polyString = decodedSearch.polygon.toString();\r\n decodedSearch.polygon = [];\r\n decodedSearch.polygon.push(polyString);\r\n }\r\n\r\n return decodedSearch;\r\n //return searchParams;\r\n}\r\n\r\nexport function getDefaultSearchParams(props) {\r\n return {\r\n limitrecords: \"100\",\r\n ficoscore: \"760-850\",\r\n loantype: \"30YrFixed\",\r\n lifestyle: \"couple-no-kids\",\r\n orderby: \"ListPrice\",\r\n orderbydirection: \"DESC\",\r\n skip: 0,\r\n propertytype: \"sf\",\r\n page_number: 1,\r\n view: \"maplist\"\r\n };\r\n}\r\n\r\nexport function getFormatedCurrency(num) {\r\n if (isNaN(num)) return \"\";\r\n var n = Math.round(num);\r\n return \"$\" + n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nexport function getFormatedNumber(num) { \r\n if (isNaN(num)) return \"\";\r\n var n = Math.round(num);\r\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nexport function getFormatedDecimal(num, dec) { \r\n if (isNaN(num)) return \"\";\r\n var i = parseInt(num, 10);\r\n var n = parseFloat(num, 10);\r\n n = i !== n ? parseFloat(num, 10).toFixed(dec ? dec : 2) : parseFloat(num, 10);\r\n return n.toString();\r\n}\r\n\r\nexport function insertDecimal(num) {\r\n return Number((num / 100).toFixed(2));\r\n }\r\n\r\nexport function convertToDate(props, format) {\r\n var date = new Date(props);\r\n\r\n var formatDate = format.replace('wwww', getWeekDayName(date.getDay()));\r\n formatDate = formatDate.replace('www', getWeekDayShortName(date.getDay()));\r\n formatDate = formatDate.replace('mmmm', getMonthName(date.getMonth()));\r\n formatDate = formatDate.replace('mmm', getMonthShortName(date.getMonth()));\r\n formatDate = formatDate.replace('mm', ('0' + (date.getMonth() + 1)).slice(-2));\r\n formatDate = formatDate.replace('dd', ('0'+ date.getDate()).slice(-2));\r\n formatDate = formatDate.replace('yyyy', date.getFullYear());\r\n\r\n if(formatDate.search('tt')) {\r\n formatDate = formatDate.replace('h:m tt', getTimeInTwentyFourHour(date.getHours(), date.getMinutes()));\r\n } else {\r\n formatDate = formatDate.replace('h:m', ('0'+ date.getHours()).slice(-2) + ':' + ('0'+ date.getMinutes()).slice(-2));\r\n } \r\n\r\n return formatDate.toString();\r\n}\r\n\r\nexport function getOpenHouseFormatedDate(startDate, endDate) {\r\n if(startDate && endDate){\r\n var dtStart = moment(startDate).toDate();\r\n var dtEnd = moment(endDate).toDate();\r\n\r\n return dateFormat(dtStart, \"dddd, mmmm dS, h:MM TT\") + \" - \" + dateFormat(dtEnd, \"h:MM TT\");\r\n }\r\n else{\r\n return \"\";\r\n }\r\n}\r\n\r\nexport function convertToDateTime(props, format) {\r\n\r\n if(props){\r\n //var date = new Date(props);\r\n var date = moment(props).toDate();\r\n format = format.toLowerCase();\r\n\r\n var formatDate = format.replace('mm', ('0' + (date.getMonth() + 1)).slice(-2));\r\n formatDate = formatDate.replace('dd', ('0' + date.getDate()).slice(-2));\r\n formatDate = formatDate.replace('yyyy', date.getFullYear());\r\n formatDate += ' ' + ('0' + date.getHours()).slice(-2);\r\n formatDate += ':' + ('0' + date.getMinutes()).slice(-2);\r\n\r\n return formatDate.toString();\r\n }\r\n else{\r\n return \"\";\r\n }\r\n}\r\n\r\nexport function getMonthName(digitMonth) {\r\n var monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\r\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\n\r\n return monthNames[digitMonth];\r\n}\r\n\r\nexport function getMonthShortName(digitMonth) {\r\n var monthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\",\r\n \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n\r\n return monthNames[digitMonth];\r\n}\r\n\r\nexport function getWeekDayName(digitDay) {\r\n var weekNames = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];\r\n return weekNames[digitDay];\r\n}\r\n\r\nexport function getWeekDayShortName(digitDay) {\r\n var weekNames = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];\r\n return weekNames[digitDay];\r\n}\r\n\r\nexport function getTimeInTwentyFourHour(hour, min) {\r\n var h = hour % 12 || 12;\r\n //h = ('0' + h).slice(-2);\r\n min = ('0' + min).slice(-2);\r\n var ampm = hour < 12 ? 'AM' : 'PM';\r\n return h + ':' + min + ' ' + ampm;\r\n}\r\n\r\nexport function getDefaultAddress() {\r\n return \"New York, NY, United States\";\r\n}\r\n\r\nexport function getFormattedOptions(array) {\r\n return array.map(function(item, i) {\r\n return \r\n });\r\n}\r\n\r\nexport function getDefaultTLCParameters() {\r\n return {\r\n DownPercentage: 20,\r\n FicoScore: \"760-850\",\r\n LoanType: \"30YrFixed\",\r\n LifeStyle: \"couple-no-kids\",\r\n FilingStatus: \"Single\",\r\n NetMonthlyIncome: 6704,\r\n MonthlyDebt: 0,\r\n TaxBracket: \"24\",\r\n GrossMonthlyIncome: 10000,\r\n TransportationType: \"transit\",\r\n WorkAddressList: [{ TransportationType: \"transit\", WorkAddress: getDefaultAddress() }]\r\n };\r\n}\r\n\r\nexport function getFamilyTypes() {\r\n return [\r\n {value: \"single\", text: \"1 Adult\"},\r\n {value: \"couple-no-kids\", text: \"2 Adults\"},\r\n {value: \"couple-kids-lt5\", text: \"2 Adults w/ kids\"},\r\n {value: \"couple-kids-gt5\", text: \"2 Adults w/ teens\"},\r\n {value: \"single-parent\", text: \"1 Adult w/ kids\"},\r\n {value: \"empty-nester\", text: \"Empty nester\"}\r\n ];\r\n}\r\n\r\nexport function getFamilyTypeName(familyType) {\r\n var lst = getFamilyTypes();\r\n lst = lst.filter(t => t.value === familyType);\r\n return ((lst && lst.length > 0) ? lst[0].text : \"\");\r\n}\r\n\r\nexport function getLoanTypes() {\r\n return [\r\n {value: \"30YrFixed\", text: \"30 Year\"},\r\n {value: \"15YrFixed\", text: \"15 Year\"},\r\n {value: \"7By1YrARM\", text: \"7/1 ARM\"},\r\n {value: \"5By1YrARM\", text: \"5/1 ARM\"}\r\n ];\r\n}\r\n\r\nexport function getLoanTypeName(loanType) {\r\n var lst = getLoanTypes();\r\n lst = lst.filter(t => t.value === loanType);\r\n return ((lst && lst.length > 0) ? lst[0].text : \"\");\r\n}\r\n\r\nexport function getDownPaymentPercentage() {\r\n\r\n var flst = getDDList('downpaymentpercentage');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"5\", text: \"5%\"},\r\n {value: \"10\", text: \"10%\"},\r\n {value: \"15\", text: \"15%\"},\r\n {value: \"20\", text: \"20%\"},\r\n {value: \"25\", text: \"25%\"},\r\n {value: \"30\", text: \"30%\"},\r\n {value: \"35\", text: \"35%\"},\r\n {value: \"40\", text: \"40%\"},\r\n {value: \"45\", text: \"45%\"},\r\n {value: \"50\", text: \"50%\"},\r\n {value: \"55\", text: \"55%\"},\r\n {value: \"60\", text: \"60%\"},\r\n {value: \"65\", text: \"65%\"},\r\n {value: \"70\", text: \"70%\"}\r\n ];\r\n}\r\n\r\nexport function getFicoScores() {\r\n return [\r\n {value: \"760-850\", text: \"760-850 - Excellent\"},\r\n {value: \"700-759\", text: \"700-759 - Good\"},\r\n {value: \"680-699\", text: \"680-699 - Average\"},\r\n {value: \"660-679\", text: \"660-679 - Fair\"},\r\n {value: \"640-659\", text: \"640-659 - Not great\"},\r\n {value: \"620-639\", text: \"620-639 - Poor\"}\r\n ];\r\n}\r\n\r\nexport function getStages() {\r\n return [\r\n {value: \"client\", text: \"Client\"},\r\n {value: \"evangelist\", text: \"Evangelist\"}, \r\n {value: \"lead\", text: \"Lead\"},\r\n {value: \"marketing-qualified-lead\", text: \"Marketing qualified lead\"}, \r\n {value: \"opportunity\", text: \"Opportunity\"},\r\n {value: \"other\", text: \"Other\"}, \r\n {value: \"sales-qualified-lead\", text: \"Sales qualified lead\"},\r\n {value: \"subscriber\", text: \"Subscriber\"}, \r\n {value: \"archive\", text: \"Archive\"} \r\n ];\r\n}\r\n\r\nexport function getOptionTextFromValue(list, val) {\r\n var returnValue = \"\";\r\n var filtered = list.filter(a => a.value === val);\r\n if(filtered && filtered.length > 0) return filtered[0].text;\r\n return returnValue;\r\n}\r\n\r\nexport function getFilingStatuses() {\r\n return [\r\n {value: \"Single\", text: \"Single\"},\r\n {value: \"Married\", text: \"Married\"}\r\n ];\r\n}\r\n\r\nexport function getTaxBrackets() {\r\n return [\r\n {value: \"0\", text: \"0%\"},\r\n {value: \"10\", text: \"10%\"},\r\n {value: \"12\", text: \"12%\"},\r\n {value: \"15\", text: \"15%\"},\r\n {value: \"22\", text: \"22%\"},\r\n {value: \"24\", text: \"24%\"},\r\n {value: \"25\", text: \"25%\"},\r\n {value: \"28\", text: \"28%\"},\r\n {value: \"33\", text: \"33%\"},\r\n {value: \"35\", text: \"35%\"},\r\n {value: \"37\", text: \"37%\"},\r\n {value: \"39.6\", text: \"39.6%\"}\r\n ];\r\n}\r\n\r\nexport function getDefaultIncomeDetail() {\r\n return {\r\n NetPay: 6704,\r\n GrossPay: 10000,\r\n PayPeriod: 'Monthly',\r\n NetPayPeriod: 'Monthly',\r\n FilingStatus: 'Single',\r\n TaxDeferralPlan: 5,\r\n StateLocalTaxes: 5.30,\r\n NumberOfAllowances: 2,\r\n NetTaxBracket: '24',\r\n OtherPreTaxDeduction: 0,\r\n OtherPostTaxDeduction: 0,\r\n PostTaxReimbursement: 0\r\n };\r\n}\r\n\r\nexport function calculateNetGrossIncome(type, filingStatus, taxBracket, netMonthlyIncome, grossMonthlyIncome) {\r\n\r\n // These are from IRS Website and are updated each year\r\n // Updated 2018\r\n var IncomeDetail = getDefaultIncomeDetail();\r\n var taxWithholding = {\r\n \"single\": [\r\n { \"excessover\": 0, \"withhold\": 0, \"percent\": 0 },\r\n { \"excessover\": 3700, \"withhold\": 0, \"percent\": 10 },\r\n { \"excessover\": 13225, \"withhold\": 952.50, \"percent\": 12 },\r\n { \"excessover\": 42400, \"withhold\": 4453.50, \"percent\":22 },\r\n { \"excessover\": 86200, \"withhold\": 14089.50, \"percent\": 24 },\r\n { \"excessover\": 161200, \"withhold\": 32089.50, \"percent\": 32 },\r\n { \"excessover\": 203700, \"withhold\": 45689.50, \"percent\": 35 },\r\n { \"excessover\": 503700, \"withhold\": 150689.50, \"percent\": 37 }\r\n ],\r\n \"married\": [\r\n { \"excessover\": 0, \"withhold\": 0, \"percent\": 0 },\r\n { \"excessover\": 11550, \"withhold\": 0, \"percent\": 10 },\r\n { \"excessover\": 30600, \"withhold\": 1905, \"percent\": 12 },\r\n { \"excessover\": 88950, \"withhold\": 8907, \"percent\": 22 },\r\n { \"excessover\": 176550, \"withhold\": 28179, \"percent\": 24 },\r\n { \"excessover\": 326550, \"withhold\": 64179, \"percent\": 32 },\r\n { \"excessover\": 411550, \"withhold\": 91379, \"percent\": 35 },\r\n { \"excessover\": 611550, \"withhold\": 161379, \"percent\": 37 }\r\n ],\r\n \"allowance\": [\r\n { \"payperiod\": \"Weekly\", \"periodsperyear\": 52, \"allowance\": 79.80 },\r\n { \"payperiod\": \"Biweekly\", \"periodsperyear\": 26, \"allowance\": 159.60 },\r\n { \"payperiod\": \"Semimonthly\", \"periodsperyear\": 24, \"allowance\": 172.90 },\r\n { \"payperiod\": \"Monthly\", \"periodsperyear\": 12, \"allowance\": 345.80 },\r\n { \"payperiod\": \"Quarterly\", \"periodsperyear\": 4, \"allowance\": 1037.50 },\r\n { \"payperiod\": \"Semiannually\", \"periodsperyear\": 2, \"allowance\": 2075 },\r\n { \"payperiod\": \"Annually\", \"periodsperyear\": 1, \"allowance\": 4150 }\r\n ]\r\n };\r\n //var _defaultTaxDeferralPlanValue = 5, _defaultStateLocalTaxesValue = 5.3, _defaultAllowances = 2;\r\n var _FICASocialSecurity = 6.2, _FICAMedicare = 1.45;\r\n\r\n if(filingStatus !== undefined && filingStatus !== null) {\r\n IncomeDetail.FilingStatus = filingStatus;\r\n }\r\n if(taxBracket !== undefined && taxBracket !== null) {\r\n IncomeDetail.NetTaxBracket = taxBracket;\r\n }\r\n var _netPay = 0, _grossPay = 0;\r\n var _periodPerYear = 0, _oneAllowances = 0, _periodPerYearForMonthly = 0, _federalTaxableGross = 0;\r\n var _excessOver = 0, _withHold = 0, _plusX = 0;\r\n var _multiplier = 0, _federalTax = 0;\r\n\r\n if(type === 'g') {\r\n if (netMonthlyIncome !== undefined && netMonthlyIncome !== null && netMonthlyIncome !== \"\") {\r\n IncomeDetail.NetPay = netMonthlyIncome;\r\n\r\n _netPay = IncomeDetail.NetPay;\r\n _periodPerYear = 0;\r\n _oneAllowances = 0;\r\n _periodPerYearForMonthly = 0;\r\n _federalTaxableGross = 0;\r\n _excessOver = 0;\r\n _withHold = 0;\r\n _plusX = 0;\r\n\r\n taxWithholding.allowance.map(function (val) {\r\n if (\"Monthly\".toLowerCase() === val.payperiod.toLowerCase()) {\r\n _periodPerYear = val.periodsperyear;\r\n _periodPerYearForMonthly = val.periodsperyear;\r\n _oneAllowances = val.allowance;\r\n return false;\r\n }\r\n return ;\r\n });\r\n\r\n if (IncomeDetail.FilingStatus.toLowerCase() === \"single\") {\r\n taxWithholding.single.map(function (val) {\r\n if (IncomeDetail.NetTaxBracket === val.percent) {\r\n _excessOver = val.excessover;\r\n _withHold = val.withhold;\r\n _plusX = val.percent;\r\n return false;\r\n }\r\n return ;\r\n });\r\n }\r\n else/* if (IncomeDetail.FilingStatus.toLowerCase() == \"married\")*/ {\r\n taxWithholding.married.map(function (val) {\r\n if (IncomeDetail.NetTaxBracket === val.percent) {\r\n _excessOver = val.excessover;\r\n _withHold = val.withhold;\r\n _plusX = val.percent;\r\n return false;\r\n }\r\n return ;\r\n });\r\n }\r\n _multiplier = (_periodPerYear / 12).toFixed(2);\r\n _netPay = _netPay * _multiplier;\r\n var _TDP = 0, _NOA = 0, _OA = 0, _PPY = 0, _PLUS = 0, _W = 0, _EO = 0, _SS = 0, _MED = 0, _SLT = 0, _PRE = 0, _POST = 0, _REIMBUS = 0;\r\n _TDP = getPercentageValue(getValue(IncomeDetail.TaxDeferralPlan));\r\n _NOA = Number(getValue(IncomeDetail.NumberOfAllowances));\r\n _OA = _oneAllowances;\r\n _PPY = _periodPerYearForMonthly;\r\n _PLUS = getPercentageValue(_plusX);\r\n _W = _withHold;\r\n _EO = _excessOver;\r\n _SS = getPercentageValue(_FICASocialSecurity);\r\n _MED = getPercentageValue(_FICAMedicare);\r\n _SLT = getPercentageValue(getValue(IncomeDetail.StateLocalTaxes));\r\n _PRE = getOnlyNumber(getValue(IncomeDetail.OtherPreTaxDeduction));\r\n _POST = getOnlyNumber(getValue(IncomeDetail.OtherPostTaxDeduction));\r\n _REIMBUS = getOnlyNumber(getValue(IncomeDetail.PostTaxReimbursement));\r\n var _NG = 0, _NA = 0;\r\n _NG = 1 - _SS - _MED - (((1 - _TDP) * _PPY * _PLUS) / 12) - _TDP - (_SLT * (1 - _TDP));\r\n _NA = (_W + (((-1 * (_NOA * _OA) * _PPY) - _EO) * _PLUS)) / 12 + Number(_PRE) + Number(_POST) - Number(_REIMBUS) + (_SLT * -1 * _NOA * _OA);\r\n _grossPay = (_netPay + _NA) / _NG;\r\n\r\n IncomeDetail.GrossPay = Number(_grossPay);\r\n IncomeDetail.PayPeriod = 'Monthly';\r\n IncomeDetail.ProfileEstGrossPay = _grossPay * _periodPerYearForMonthly;\r\n\r\n _federalTaxableGross = _grossPay\r\n - Number(getValue(IncomeDetail.NumberOfAllowances) * _oneAllowances)\r\n - Number(getPercentageValue(getValue(IncomeDetail.TaxDeferralPlan)) * _grossPay)\r\n - getOnlyNumber(getValue(IncomeDetail.OtherPreTaxDeduction));\r\n if (_federalTaxableGross < 0) {\r\n _federalTaxableGross = 0;\r\n }\r\n IncomeDetail.ProfileFederalTaxableGross = Number(_federalTaxableGross);\r\n _multiplier = (_periodPerYearForMonthly / 12).toFixed(2);\r\n _grossPay = _grossPay * _multiplier;\r\n\r\n _federalTax = ((_withHold + (getPercentageValue(_plusX) * ((_federalTaxableGross * _periodPerYearForMonthly) - _excessOver))) / _periodPerYearForMonthly) * _multiplier;\r\n\r\n IncomeDetail.ProfileFICASocialSecurity = _grossPay * getPercentageValue(_FICASocialSecurity);\r\n IncomeDetail.ProfileFICAMedicare = _grossPay * getPercentageValue(_FICAMedicare);\r\n IncomeDetail.ProfileFederalTaxValue = _federalTax;\r\n IncomeDetail.ProfileTaxDeferralPlanValue = getPercentageValue(getValue(IncomeDetail.TaxDeferralPlan)) * _grossPay;\r\n IncomeDetail.ProfilePreTaxDeductionsValue = getOnlyNumber(getValue(IncomeDetail.OtherPreTaxDeduction)) * _multiplier;\r\n IncomeDetail.ProfileStateLocalTaxesValue = _federalTaxableGross * getPercentageValue(getValue(IncomeDetail.StateLocalTaxes)) * _multiplier;\r\n IncomeDetail.ProfilePostTaxDeductionsValue = getOnlyNumber(getValue(IncomeDetail.OtherPostTaxDeduction)) * _multiplier;\r\n IncomeDetail.ProfilePostTaxReimbursementsValue = getOnlyNumber(getValue(IncomeDetail.PostTaxReimbursement)) * _multiplier;\r\n }\r\n }\r\n else if(type === 'n') {\r\n if (grossMonthlyIncome !== undefined && grossMonthlyIncome !== null && grossMonthlyIncome !== \"\") {\r\n IncomeDetail.GrossPay = grossMonthlyIncome;\r\n\r\n _grossPay = IncomeDetail.GrossPay;\r\n _periodPerYear = 0;\r\n _oneAllowances = 0;\r\n _federalTaxableGross = 0;\r\n _excessOver = 0;\r\n _withHold = 0;\r\n _plusX = 0;\r\n\r\n taxWithholding.allowance.map(function (val) {\r\n if (\"monthly\".toLowerCase() === val.payperiod.toLowerCase()) {\r\n _periodPerYear = val.periodsperyear;\r\n _oneAllowances = val.allowance;\r\n return false;\r\n }\r\n return ;\r\n });\r\n IncomeDetail.ProfileEstGrossPay = _grossPay * _periodPerYear;\r\n\r\n _federalTaxableGross = _grossPay\r\n - Number(getValue(IncomeDetail.NumberOfAllowances) * _oneAllowances)\r\n - Number(getPercentageValue(getValue(IncomeDetail.TaxDeferralPlan)) * _grossPay)\r\n - getOnlyNumber(getValue(IncomeDetail.OtherPreTaxDeduction));\r\n\r\n if (_federalTaxableGross < 0) {\r\n _federalTaxableGross = 0;\r\n }\r\n IncomeDetail.ProfileFederalTaxableGross = Number(_federalTaxableGross);\r\n\r\n var _annualFTG = 0;\r\n if (IncomeDetail.FilingStatus.toLowerCase() === \"single\") {\r\n _annualFTG = _federalTaxableGross * _periodPerYear;\r\n taxWithholding.single.map(function (val) {\r\n if (_annualFTG > val.excessover) {\r\n _excessOver = val.excessover;\r\n _withHold = val.withhold;\r\n _plusX = val.percent;\r\n }\r\n else {\r\n return false;\r\n }\r\n return ;\r\n });\r\n }\r\n else/* if (IncomeDetail.FilingStatus.toLowerCase() == \"married\")*/ {\r\n _annualFTG = _federalTaxableGross * _periodPerYear;\r\n taxWithholding.married.map(function (val) {\r\n if (_annualFTG > val.excessover) {\r\n _excessOver = val.excessover;\r\n _withHold = val.withhold;\r\n _plusX = val.percent;\r\n }\r\n else {\r\n return false;\r\n }\r\n return ;\r\n });\r\n }\r\n\r\n IncomeDetail.NetTaxBracket = \"\" + _plusX;\r\n //_plusX = getPercentageValue(IncomeDetail.NetTaxBracket);\r\n _multiplier = (_periodPerYear / 12).toFixed(2);\r\n _grossPay = _grossPay * _multiplier;\r\n\r\n _federalTax = ((_withHold + (getPercentageValue(_plusX) * ((_federalTaxableGross * _periodPerYear) - _excessOver))) / _periodPerYear) * _multiplier;\r\n IncomeDetail.ProfileFICASocialSecurity = _grossPay * getPercentageValue(_FICASocialSecurity);\r\n IncomeDetail.ProfileFICAMedicare = _grossPay * getPercentageValue(_FICAMedicare);\r\n IncomeDetail.ProfileFederalTaxValue = _federalTax;\r\n IncomeDetail.ProfileTaxDeferralPlanValue = getPercentageValue(getValue(IncomeDetail.TaxDeferralPlan)) * _grossPay;\r\n IncomeDetail.ProfilePreTaxDeductionsValue = getOnlyNumber(getValue(IncomeDetail.OtherPreTaxDeduction)) * _multiplier;\r\n IncomeDetail.ProfileStateLocalTaxesValue = _federalTaxableGross * getPercentageValue(getValue(IncomeDetail.StateLocalTaxes)) * _multiplier;\r\n IncomeDetail.ProfilePostTaxDeductionsValue = getOnlyNumber(getValue(IncomeDetail.OtherPostTaxDeduction)) * _multiplier;\r\n IncomeDetail.ProfilePostTaxReimbursementsValue = getOnlyNumber(getValue(IncomeDetail.PostTaxReimbursement)) * _multiplier;\r\n\r\n var _deductions = (getOnlyNumber(getValue(IncomeDetail.ProfileFICASocialSecurity)) + getOnlyNumber(getValue(IncomeDetail.ProfileFICAMedicare))\r\n + getOnlyNumber(getValue(IncomeDetail.ProfileFederalTaxValue)) + getOnlyNumber(getValue(IncomeDetail.ProfileTaxDeferralPlanValue))\r\n + getOnlyNumber(getValue(IncomeDetail.ProfilePreTaxDeductionsValue)) + getOnlyNumber(getValue(IncomeDetail.ProfileStateLocalTaxesValue))\r\n + getOnlyNumber(getValue(IncomeDetail.ProfilePostTaxDeductionsValue)));\r\n var _reimbursement = getOnlyNumber(getValue(IncomeDetail.ProfilePostTaxReimbursementsValue));\r\n var _netTakeHome = getOnlyNumber(_grossPay) - getOnlyNumber(_deductions) + getOnlyNumber(_reimbursement);\r\n IncomeDetail.NetPay = _netTakeHome;\r\n IncomeDetail.NetPayPeriod = 'Monthly';\r\n }\r\n }\r\n\r\n return IncomeDetail;\r\n}\r\n\r\nexport function getPercentageValue(_val) {\r\n return _val / 100;\r\n}\r\n\r\nexport function getValue(_val, _defaultVal) {\r\n if (!_val) {\r\n if (!_defaultVal) {\r\n return 0;\r\n }\r\n else {\r\n return (_defaultVal);\r\n }\r\n }\r\n else {\r\n return (_val);\r\n }\r\n}\r\n\r\nexport function getOnlyNumber(_val) {\r\n return Number(parseFloat(_val.toString().replace(/[^0-9.]+/g, \"\"), 10).toFixed(2));\r\n}\r\n\r\nexport function getCurrencySymbol() {\r\n return \"$\";\r\n}\r\n\r\nexport function getDefaultNewClientObject() {\r\n return {\r\n Id: 0,\r\n AgentId: \"\",\r\n Profile: {\r\n BasicData: {\r\n MStatus: \"couple-no-kids\",\r\n CellPhone: \"\",\r\n WorkingWithTCOAgent: false,\r\n HidePersonalDetailFromAgent: false,\r\n HomePhone: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n FilingStatus: \"Single\",\r\n NumberOfAdults: 1,\r\n OlderChildren: 0,\r\n YoungChildren: 0,\r\n ChildDetail: [],\r\n InterestedInBuying: true,\r\n InterestedInSelling: false,\r\n AdultDetail: [],\r\n CreditScore: \"760-850\",\r\n LoanType: \"30YrFixed\"\r\n },\r\n IncomeData: {IncomeDetail: [{FilingStatus: \"Single\"}]},\r\n CommuteData: {CommuteDetail: []},\r\n CurrentResidenceData: {},\r\n DebtData: {DebtDetail: []},\r\n AssetData: {\r\n CashOnHand: 0,\r\n CheckingAccounts: [],\r\n SavingAccounts: [],\r\n CD: [],\r\n RetirementAccounts: []\r\n },\r\n FinancialData: {},\r\n LifeStyleData: {\r\n AddGrociers: false,\r\n AddSuperStores: false,\r\n AddPharmacies: false,\r\n AddHousehold: false,\r\n AddMovieTheaters: false,\r\n AddPublicTransport: false,\r\n AddAirport: false,\r\n AddGolf: false,\r\n AddSkiing: false,\r\n AddBeach: false,\r\n FamilyDetail: []\r\n },\r\n EntertainmentData: { Other: {} },\r\n OtherTLC: {},\r\n OtherTLCData: {},\r\n SearchPreferenceses: {\r\n DownPayment: \"\",\r\n DownPaymentPercentage: \"20\",\r\n CustomFields: []\r\n }\r\n },\r\n SupportingInformation: {\r\n ProfileCompletionPercentage: 25\r\n },\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\"\r\n };\r\n}\r\n\r\nexport function getCommuteLocationPolygon(lat, lng) {\r\n var clPolygon = null;\r\n if(lat && lng) {\r\n var clLat = parseFloat(lat);\r\n var clLng = parseFloat(lng);\r\n var latFactor = 0.41;\r\n var lngFactor = 0.58;\r\n clPolygon = (clLng - lngFactor) + \" \" + (clLat - latFactor);\r\n clPolygon += \",\" + (clLng + lngFactor) + \" \" + (clLat - latFactor);\r\n clPolygon += \",\" + (clLng + lngFactor) + \" \" + (clLat + latFactor);\r\n clPolygon += \",\" + (clLng - lngFactor) + \" \" + (clLat + latFactor);\r\n clPolygon += \",\" + (clLng - lngFactor) + \" \" + (clLat - latFactor);\r\n }\r\n return clPolygon;\r\n}\r\n\r\nexport function convertPolygoneFormat(unFormatted){\r\n if(unFormatted && unFormatted.length > 0) {\r\n\r\n var formattedPoly = '';\r\n\r\n unFormatted.map((eachPoly) => {\r\n if(eachPoly) {\r\n formattedPoly += eachPoly.lng + ' ' + eachPoly.lat + ',';\r\n }\r\n\r\n return
;\r\n });\r\n\r\n formattedPoly += unFormatted[0].lng + ' ' + unFormatted[0].lat + ',';\r\n formattedPoly = formattedPoly.replace(/,\\s*$/, \"\");\r\n \r\n return formattedPoly;\r\n }\r\n}\r\n\r\nexport function convertPolygonUnformat(formated){\r\n if(formated && formated.length > 0) {\r\n\r\n var unformatedPoly = [];\r\n\r\n formated.map((eachStringPoly, curIndex) => {\r\n if(eachStringPoly && eachStringPoly !== '') {\r\n var eachPoly = eachStringPoly.split(',');\r\n var internalArray = []; \r\n\r\n eachPoly.map((singlePoly) => {\r\n var LatLng = {};\r\n var poly = singlePoly.split(' ');\r\n\r\n LatLng.lat = parseFloat(poly[1]);\r\n LatLng.lng = parseFloat(poly[0]);\r\n\r\n internalArray.push(LatLng);\r\n\r\n return
;\r\n });\r\n\r\n unformatedPoly.push(internalArray);\r\n }\r\n else {\r\n if(unformatedPoly.length > curIndex) {\r\n unformatedPoly.splice(curIndex, 1);\r\n }\r\n }\r\n\r\n return
;\r\n });\r\n \r\n return unformatedPoly;\r\n }\r\n}\r\n\r\nexport function convertCommuteLocationPolygon(polygon) {\r\n var clPolygon = \"\";\r\n if(polygon && polygon.Polygon && polygon.Polygon.length > 0) {\r\n clPolygon += (clPolygon !== \"\") ? \",\" : \"\" + polygon.Polygon.map(poly => poly.toString().replace(',',' '));\r\n }\r\n return clPolygon;\r\n}\r\n\r\nexport function getCommuteLocationDriveTime() {\r\n return \"45\";\r\n}\r\n\r\nexport function getUserCommuteLocation(data) {\r\n var cLoation = \"\";\r\n /* if (data && data.Profile && data.Profile.CommuteData &&\r\n data.Profile.CommuteData.CommuteDetail && data.Profile.CommuteData.CommuteDetail.length > 0 &&\r\n data.Profile.CommuteData.CommuteDetail[0].WorkAddress &&\r\n data.Profile.CommuteData.CommuteDetail[0].WorkAddress !== \"\" &&\r\n data.Profile.CommuteData.CommuteDetail[0].WorkAddressLatitude &&\r\n data.Profile.CommuteData.CommuteDetail[0].WorkAddressLongitude) {\r\n cLoation = data.Profile.CommuteData.CommuteDetail[0].WorkAddress;\r\n } */\r\n if (data && data.Profile && data.Profile.CommuteData &&\r\n data.Profile.CommuteData.CommuteDetail && data.Profile.CommuteData.CommuteDetail.length > 0 &&\r\n data.Profile.CommuteData.CommuteDetail[0].WorkAddress &&\r\n data.Profile.CommuteData.CommuteDetail[0].WorkAddress !== \"\") {\r\n cLoation = data.Profile.CommuteData.CommuteDetail[0].WorkAddress;\r\n }\r\n return cLoation;\r\n}\r\n\r\nexport function ImageRewrite(url, isThumbnail)\r\n{\r\n\r\n if(url.indexOf(\"//\") === 0) url = \"https:\" + url;\r\n\r\n // Directly using the actual image url only for NJ and Buffalo.\r\n // Temporary fix for caching buffer issue with image proxy\r\n //if(process.env.REACT_APP_PortalKey === \"nj\" || process.env.REACT_APP_PortalKey === \"buffalo\"){\r\n // return url;\r\n //}\r\n\r\n // Our Image server needs an image service that will resize on the fly\r\n if (isThumbnail)\r\n {\r\n \r\n url = url.replace('Size=5', 'Size=3');\r\n url = url.replace('Size=4', 'Size=3');\r\n\r\n // Dynamic resize if doesn't exist\r\n // Matrixlinx URL's do not work\r\n if (!url.includes('Size=3') && !url.includes('mlsmatrix.com'))\r\n {\r\n //return \"https://images.truebytlc.com/img2/?key=\" + base64.encode(url) + \"&width=350\";\r\n // https://tlcengine-img-cdn.azureedge.net -> CDN for Azure VM\r\n return \"https://tlcengine-img-cdn.azureedge.net/img/\" + base64.encode(url) + \"?width=350\";\r\n }\r\n }\r\n //console.log(url);\r\n\r\n // If HTTPS is available then don't use images.truebytlc.com\r\n // there is a queueing issue with the image server with requests that take longer.\r\n // if (url.toLowerCase().indexOf(\"https://\"))\r\n // {\r\n // return url;\r\n // }\r\n\r\n //return \"https://images.truebytlc.com/img_asp/\" + base64.encode(url);\r\n //return \"https://images.truebytlc.com/img/?key=\" + base64.encode(url);\r\n return \"https://tlcengine-img-cdn.azureedge.net/img/\" + base64.encode(url);\r\n\r\n}\r\n\r\nexport function isProfileComplete(profile) {\r\n var isComplete = true;\r\n \r\n /* if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.CommuteData) ||\r\n (profile.Profile && profile.Profile.CommuteData && !profile.Profile.CommuteData.CommuteDetail) ||\r\n (profile.Profile && profile.Profile.CommuteData && profile.Profile.CommuteData.CommuteDetail &&\r\n profile.Profile.CommuteData.CommuteDetail.length === 0) ||\r\n (profile.Profile && profile.Profile.CommuteData && profile.Profile.CommuteData.CommuteDetail &&\r\n profile.Profile.CommuteData.CommuteDetail.length > 0 && \r\n (!profile.Profile.CommuteData.CommuteDetail[0].WorkAddress || \r\n profile.Profile.CommuteData.CommuteDetail[0].WorkAddress === \"\"))){\r\n isComplete = false;\r\n } */\r\n if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.BasicData) ||\r\n (profile.Profile && profile.Profile.BasicData && \r\n (!profile.Profile.BasicData.PreferredLocation || profile.Profile.BasicData.PreferredLocation === \"\"))){\r\n isComplete = false;\r\n }\r\n if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.BasicData) ||\r\n (profile.Profile && profile.Profile.BasicData && \r\n (!profile.Profile.BasicData.MStatus || profile.Profile.BasicData.MStatus === \"\"))){\r\n isComplete = false;\r\n }\r\n if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.BasicData) ||\r\n (profile.Profile && profile.Profile.BasicData && \r\n (!profile.Profile.BasicData.CreditScore || profile.Profile.BasicData.CreditScore === \"\"))){\r\n isComplete = false;\r\n }\r\n if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.BasicData) ||\r\n (profile.Profile && profile.Profile.BasicData && \r\n (!profile.Profile.BasicData.LoanType || profile.Profile.BasicData.LoanType === \"\"))){\r\n isComplete = false;\r\n }\r\n if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.IncomeData) ||\r\n (profile.Profile && profile.Profile.IncomeData && !profile.Profile.IncomeData.IncomeDetail) ||\r\n (profile.Profile && profile.Profile.IncomeData && profile.Profile.IncomeData.IncomeDetail &&\r\n profile.Profile.IncomeData.IncomeDetail.length === 0) ||\r\n (profile.Profile && profile.Profile.IncomeData && profile.Profile.IncomeData.IncomeDetail &&\r\n profile.Profile.IncomeData.IncomeDetail.length > 0 && \r\n (!profile.Profile.IncomeData.IncomeDetail[0].FilingStatus || \r\n profile.Profile.IncomeData.IncomeDetail[0].FilingStatus === \"\"))){\r\n isComplete = false;\r\n }\r\n /* if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.IncomeData) ||\r\n (profile.Profile && profile.Profile.IncomeData && !profile.Profile.IncomeData.IncomeDetail) ||\r\n (profile.Profile && profile.Profile.IncomeData && profile.Profile.IncomeData.IncomeDetail &&\r\n profile.Profile.IncomeData.IncomeDetail.length === 0) ||\r\n (profile.Profile && profile.Profile.IncomeData && profile.Profile.IncomeData.IncomeDetail &&\r\n profile.Profile.IncomeData.IncomeDetail.length > 0 && \r\n (!profile.Profile.IncomeData.IncomeDetail[0].GrossPay || \r\n profile.Profile.IncomeData.IncomeDetail[0].GrossPay === \"\"))){\r\n isComplete = false;\r\n } */\r\n if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.IncomeData) ||\r\n (profile.Profile && profile.Profile.IncomeData && !profile.Profile.IncomeData.IncomeDetail) ||\r\n (profile.Profile && profile.Profile.IncomeData && profile.Profile.IncomeData.IncomeDetail &&\r\n profile.Profile.IncomeData.IncomeDetail.length === 0) ||\r\n (profile.Profile && profile.Profile.IncomeData && profile.Profile.IncomeData.IncomeDetail &&\r\n profile.Profile.IncomeData.IncomeDetail.length > 0 && \r\n (!profile.Profile.IncomeData.IncomeDetail[0].GrossPay || \r\n profile.Profile.IncomeData.IncomeDetail[0].GrossPay === \"\"))){\r\n isComplete = false;\r\n }\r\n /* if(!profile.Profile ||\r\n (profile.Profile && !profile.Profile.DebtData) ||\r\n (profile.Profile && profile.Profile.DebtData && !profile.Profile.DebtData.DebtDetail) ||\r\n (profile.Profile && profile.Profile.DebtData && profile.Profile.DebtData.DebtDetail &&\r\n profile.Profile.DebtData.DebtDetail.length === 0) ||\r\n (profile.Profile && profile.Profile.DebtData && profile.Profile.DebtData.DebtDetail &&\r\n profile.Profile.DebtData.DebtDetail.length > 0 && \r\n (!profile.Profile.DebtData.DebtDetail[0].MonthlyPayment || \r\n profile.Profile.DebtData.DebtDetail[0].MonthlyPayment === \"\"))){\r\n isComplete = false;\r\n } */\r\n\r\n return isComplete;\r\n}\r\n\r\nexport function getDashboardTabs() {\r\n return [\"timeline\", \"clients\", \"savedsearches\", \"favorites\", \"bookmarks\", \"invitations\", \"removedlistings\"];\r\n}\r\n\r\nexport function getDashboardTabText(index) {\r\n var lst = getDashboardTabs();\r\n if(index < 1 || index > lst.length) return \"\";\r\n return getDashboardTabs()[index - 1];\r\n}\r\n\r\nexport function getDashboardTabIndex(tab) {\r\n var idx = getDashboardTabs().findIndex((e) => {return e === tab});\r\n if(idx < 0) return 1;\r\n return (idx + 1);\r\n}\r\n\r\n/* export function getSaveSearchPrePopulatedName(loc, params) {\r\n var ssName = [];\r\n if(loc && loc !== \"\"){\r\n if(loc.indexOf(\"#\") === 0){\r\n ssName.push(\"MLS # \" + loc.replace(\"#\",\"\"));\r\n }\r\n else{\r\n ssName.push(loc);\r\n }\r\n }\r\n if(params.tlcmin && params.tlcmax){\r\n ssName.push(params.tlcmin + \"-\" + params.tlcmax + \" TLC\");\r\n }\r\n else if(params.tlcmin){\r\n ssName.push(params.tlcmin + \" TLC Min\");\r\n }\r\n else if(params.tlcmax){\r\n ssName.push(params.tlcmax + \" TLC Max\");\r\n }\r\n if(params.beds){\r\n ssName.push(params.beds.replace(\"g\",\"+\") + \" Beds\");\r\n }\r\n if(params.baths){\r\n ssName.push(params.baths.replace(\"g\",\"+\") + \" Baths\");\r\n }\r\n if(params.garages){\r\n ssName.push(params.garages.replace(\"g\",\"+\") + \" Garages\");\r\n }\r\n if(params.livingareamin){\r\n ssName.push(params.livingareamin + \" Home Size\");\r\n }\r\n if(params.acresmin){\r\n ssName.push(params.acresmin + \" Lot Size\");\r\n }\r\n if(params.yearbuiltmin){\r\n ssName.push(params.yearbuiltmin + \" Built Home\");\r\n }\r\n if(params.listingpricemin && params.listingpricemax){\r\n ssName.push(params.listingpricemin + \"-\" + params.listingpricemax + \" Price\");\r\n }\r\n else if(params.listingpricemin){\r\n ssName.push(params.listingpricemin + \" Price Min\");\r\n }\r\n else if(params.listingpricemax){\r\n ssName.push(params.listingpricemax + \" Price Max\");\r\n }\r\n if(params.openHouseOnly){\r\n ssName.push(\"Open Houses\");\r\n }\r\n if(ssName.length > 0) return ssName.join(', ');\r\n return \"\";\r\n} */\r\n\r\nexport function getFixedNumber(num, digits) {\r\n var numS = num.toString(),\r\n decPos = numS.indexOf('.'),\r\n substrLength = decPos === -1 ? numS.length : 1 + decPos + digits,\r\n trimmedResult = numS.substr(0, substrLength),\r\n finalResult = isNaN(trimmedResult) ? 0 : trimmedResult;\r\n\r\n return parseFloat(finalResult);\r\n}\r\n\r\nexport function getTextForSearchParameters(params, propTypeFlag, isFormatted, includeDefault, highlightValues) {\r\n var ssName = [];\r\n if(params.location && params.location !== \"\"){\r\n if(highlightValues){\r\n ssName.push({params.location.toString().replace(/ , /g,\" \").replace(/, /g,\" \").replace(/ ,/g,\" \").replace(/,/g,\" \")}, );\r\n }\r\n else{\r\n ssName.push(params.location.toString().replace(/ , /g,\" \").replace(/, /g,\" \").replace(/ ,/g,\" \").replace(/,/g,\" \"));\r\n } \r\n }\r\n if(params.locationtext && params.locationtext !== \"\"){\r\n if(highlightValues){\r\n ssName.push({params.locationtext.toString().replace(/ , /g,\" \").replace(/, /g,\" \").replace(/ ,/g,\" \").replace(/,/g,\" \")}, );\r\n }\r\n else{\r\n ssName.push(params.locationtext.toString().replace(/ , /g,\" \").replace(/, /g,\" \").replace(/ ,/g,\" \").replace(/,/g,\" \"));\r\n } \r\n }\r\n if(params.mlsnumber && params.mlsnumber !== \"\"){\r\n ssName.push(\"MLS# \" + params.mlsnumber);\r\n }\r\n if(params.MLSNumber && Array.isArray(params.MLSNumber) && params.MLSNumber.length > 0){\r\n ssName.push(\"MLS# \" + params.MLSNumber[0]);\r\n }\r\n if(params.MLSNumber && !Array.isArray(params.MLSNumber) && params.MLSNumber !== \"\"){\r\n ssName.push(\"MLS# \" + params.MLSNumber);\r\n }\r\n if(params.commuteaddress && params.commuteaddress !== \"\"){\r\n if(highlightValues){\r\n ssName.push({params.commuteaddress.toString().replace(/ , /g,\" \").replace(/, /g,\" \").replace(/ ,/g,\" \").replace(/,/g,\" \")}, );\r\n }\r\n else{\r\n ssName.push(params.commuteaddress.toString().replace(/ , /g,\" \").replace(/, /g,\" \").replace(/ ,/g,\" \").replace(/,/g,\" \"));\r\n } \r\n }\r\n else if(params.commutes && params.commutes.length > 0 && \r\n params.commutes[0].commuteaddress && params.commutes[0].commuteaddress !== \"\"){\r\n if(highlightValues){\r\n ssName.push({params.commutes[0].commuteaddress.toString().replace(/ , /g,\" \").replace(/, /g,\" \").replace(/ ,/g,\" \").replace(/,/g,\" \")} );\r\n }\r\n else{\r\n ssName.push(params.commutes[0].commuteaddress.toString().replace(/ , /g,\" \").replace(/, /g,\" \").replace(/ ,/g,\" \").replace(/,/g,\" \"));\r\n } \r\n }\r\n if(params.tlcmin && params.tlcmax){\r\n if(highlightValues){\r\n ssName.push({getFormatedCurrency(params.tlcmin) + \"-\" + getFormatedCurrency(params.tlcmax)} TLC, );\r\n }\r\n else if(isFormatted){\r\n ssName.push(getFormatedCurrency(params.tlcmin) + \"-\" + getFormatedCurrency(params.tlcmax) + \" TLC\"); \r\n }\r\n else{\r\n ssName.push(params.tlcmin + \"-\" + params.tlcmax + \" TLC\");\r\n } \r\n }\r\n else if(params.tlcmin){\r\n if(highlightValues){\r\n ssName.push(Min {getFormatedCurrency(params.tlcmin)} TLC, ); \r\n }\r\n else if(isFormatted){\r\n ssName.push(\"Min \" + getFormatedCurrency(params.tlcmin) + \" TLC\"); \r\n }\r\n else{\r\n ssName.push(\"Min \" + params.tlcmin + \" TLC\");\r\n }\r\n }\r\n else if(params.tlcmax){\r\n if(highlightValues){\r\n ssName.push(Max {getFormatedCurrency(params.tlcmax)} TLC, ); \r\n }\r\n else if(isFormatted){\r\n ssName.push(\"Max \" + getFormatedCurrency(params.tlcmax) + \" TLC\"); \r\n }\r\n else{\r\n ssName.push(\"Max \" + params.tlcmax + \" TLC\");\r\n }\r\n }\r\n if(params.beds){\r\n ssName.push(params.beds.replace(\"g\",\"+\").replace(\"e\",\"\") + \" Beds\");\r\n }\r\n if(params.baths){\r\n ssName.push(params.baths.replace(\"g\",\"+\").replace(\"e\",\"\") + \" Baths\");\r\n }\r\n if(params.garages){\r\n ssName.push(params.garages.replace(\"g\",\"+\") + \" Garages\");\r\n }\r\n if(params.livingareamin && params.livingareamax){\r\n ssName.push(params.livingareamin + \"-\" + params.livingareamax + \" Sq.Ft. Home Size\");\r\n }\r\n else if(params.livingareamin){\r\n ssName.push(\"Min \" + params.livingareamin + \" Sq.Ft. Home Size\");\r\n }\r\n else if(params.livingareamax){\r\n ssName.push(\"Max \" + params.livingareamax + \" Sq.Ft. Home Size\");\r\n }\r\n if(params.acresmin && params.acresmax){\r\n ssName.push(params.acresmin + \"-\" + params.acresmax + \" Acres Lot Size\");\r\n }\r\n else if(params.acresmin){\r\n ssName.push(\"Min \" + params.acresmin + \" Acres Lot Size\");\r\n }\r\n else if(params.acresmax){\r\n ssName.push(\"Max \" + params.acresmax + \" Acres Lot Size\");\r\n }\r\n if(params.yearbuiltmin){\r\n ssName.push(params.yearbuiltmin + \"+ Built Home\");\r\n }\r\n if(params.listingpricemin && params.listingpricemax){\r\n if(isFormatted){\r\n ssName.push(getFormatedCurrency(params.listingpricemin) + \"-\" + getFormatedCurrency(params.listingpricemax) + \" Price\"); \r\n }\r\n else{\r\n ssName.push(params.listingpricemin + \"-\" + params.listingpricemax + \" Price\");\r\n }\r\n }\r\n else if(params.listingpricemin){\r\n if(isFormatted){\r\n ssName.push(\"Min \" + getFormatedCurrency(params.listingpricemin) + \" Price\"); \r\n }\r\n else{\r\n ssName.push(\"Min \" + params.listingpricemin + \" Price\");\r\n }\r\n }\r\n else if(params.listingpricemax){\r\n if(isFormatted){\r\n ssName.push(\"Max \" + getFormatedCurrency(params.listingpricemax) + \" Price\"); \r\n }\r\n else{\r\n ssName.push(\"Max \" + params.listingpricemax + \" Price\");\r\n }\r\n }\r\n if(params.openHouseOnly){\r\n ssName.push(\"Open Houses\");\r\n }\r\n if(params.hoafeemax){\r\n if(isFormatted){\r\n ssName.push(\"Max \" + getFormatedCurrency(params.hoafeemax) + \" HOA Fee\"); \r\n }\r\n else{\r\n ssName.push(\"Max \" + params.hoafeemax + \" HOA Fee\");\r\n }\r\n }\r\n if(params.haswaterfront !== undefined && params.haswaterfront !== null){\r\n ssName.push(params.haswaterfront.toString().toLowerCase() === \"true\" ? \"Waterfront\" : \"No Waterfront\");\r\n }\r\n if(params.haswaterview !== undefined && params.haswaterview !== null){\r\n ssName.push(params.haswaterview.toString().toLowerCase() === \"true\" ? \"WaterView\" : \"No WaterView\");\r\n }\r\n if(params.hasbasement !== undefined && params.hasbasement !== null){\r\n ssName.push(params.hasbasement.toString().toLowerCase() === \"true\" ? \"Basement\" : \"No Basement\");\r\n }\r\n if(params.haspool !== undefined && params.haspool !== null){\r\n ssName.push(params.haspool.toString().toLowerCase() === \"true\" ? \"Pool\" : \"No Pool\");\r\n }\r\n if(params.hasfireplace !== undefined && params.hasfireplace !== null){\r\n ssName.push(params.hasfireplace.toString().toLowerCase() === \"true\" ? \"Fireplace\" : \"No Fireplace\");\r\n }\r\n if(params.isshortsale !== undefined && params.isshortsale !== null){\r\n ssName.push(params.isshortsale.toString().toLowerCase() === \"true\" ? \"Short Sale\" : \"Not Short Sale\");\r\n }\r\n if(params.status !== undefined && params.status !== null && params.status.toString().toLowerCase() !== \"active\"){\r\n ssName.push(params.status + \" Status\");\r\n }\r\n if(params.waterfeatures){\r\n ssName.push(params.waterfeatures + \" Water Front Type\");\r\n }\r\n if(params.isbankowned !== undefined && params.isbankowned !== null){\r\n ssName.push(params.isbankowned.toString().toLowerCase() === \"true\" ? \"Banked Owned\" : \"Not Banked Owned\");\r\n }\r\n if(params.haswateraccess !== undefined && params.haswateraccess !== null){\r\n ssName.push(params.haswateraccess.toString().toLowerCase() === \"true\" ? \"Water Access\" : \"No Water Access\");\r\n }\r\n if(params.hasgolfcourse !== undefined && params.hasgolfcourse !== null){\r\n ssName.push(params.hasgolfcourse.toString().toLowerCase() === \"true\" ? \"Golf Course\" : \"No Golf Course\");\r\n }\r\n if(params.hasgreenfeatures !== undefined && params.hasgreenfeatures !== null){\r\n ssName.push(params.hasgreenfeatures.toString().toLowerCase() === \"true\" ? \"Green Features\" : \"No Green Features\");\r\n }\r\n if(params.dpr){\r\n ssName.push(\"Downpayment Assistance\");\r\n }\r\n if(params.hasgym){\r\n ssName.push(\"Gym\");\r\n }\r\n if(params.hasairconditioning){\r\n ssName.push(\"Air Conditioning\");\r\n }\r\n if(params.hasdoorman){\r\n ssName.push(\"Doorman\");\r\n }\r\n if(params.hasdishwasher){\r\n ssName.push(\"Dishwasher\");\r\n }\r\n if(params.hasbalcony){\r\n ssName.push(\"Balcony\");\r\n }\r\n if(params.hasroofaccess){\r\n ssName.push(\"Roof Access\");\r\n }\r\n if(params.haskeylessentry){\r\n ssName.push(\"Keyless Entry\");\r\n }\r\n if(params.keywords){\r\n ssName.push(params.keywords.split(',').join(', '));\r\n }\r\n if(params.postalcode){\r\n ssName.push((Array.isArray(params.postalcode) ? params.postalcode.join(', ') : params.postalcode.split(',').join(', ')) + \" Zip Codes\");\r\n }\r\n if(params.accessibility){\r\n ssName.push((Array.isArray(params.accessibility) ? params.accessibility.join(', ') : params.accessibility.split(',').join(', ')) + \" Accessibility\");\r\n }\r\n if(params.condotype){\r\n ssName.push(params.condotype.replace(\"Condominium\",\"Condo Only\").replace(\"Townhouse\",\"Townhomes Only\").replace(\"Patio Home Detached\",\"Patio Homes Only\"));\r\n }\r\n if(params.regionalboardcode && params.regionalboardcode.indexOf(\"rochester\") >= 0){\r\n ssName.push(\"Include Rochester\");\r\n }\r\n if(params.regionalboardcode && params.regionalboardcode.indexOf(\"syracuse\") >= 0){\r\n ssName.push(\"Include Syracuse\");\r\n }\r\n if(params.isnewconstruction){\r\n ssName.push(\"New Construction\");\r\n }\r\n if(params.isforeclosure){\r\n ssName.push(\"Foreclosure\");\r\n }\r\n if(params.storiesmin && params.storiesmin === 2){\r\n ssName.push(\"Greater than Single Story\");\r\n }\r\n if(params.storiesexact && params.storiesexact === 1){\r\n ssName.push(\"Single Story\");\r\n }\r\n if(params.lotfeature){\r\n ssName.push((Array.isArray(params.lotfeature) ? params.lotfeature.join(', ') : params.lotfeature.split(',').join(', ')) + \" Lot Feature\");\r\n }\r\n if(params.neighborhood){\r\n ssName.push(getNeighborhoodItemText(params.neighborhood) + \" Neighborhoods\");\r\n }\r\n if(params.propertystyle){\r\n ssName.push((Array.isArray(params.propertystyle) ? params.propertystyle.join(', ') : params.propertystyle.split(',').join(', ')) + \" Style\");\r\n }\r\n if(params.schooldistrictname){\r\n ssName.push(params.schooldistrictname.split(',').join(', ') + \" School District\");\r\n }\r\n if(params.roompref){\r\n ssName.push((Array.isArray(params.roompref) ? params.roompref.join(', ') : params.roompref.split(',').join(', ')) + \" Rooms\");\r\n }\r\n if(params.streetaddress && params.streetaddress !== \"\"){\r\n ssName.push(params.streetaddress + \" Street Address\");\r\n }\r\n if(propTypeFlag && params.propertytype){\r\n ssName.push(getPropertyTypeName(params.propertytype.toLowerCase()));\r\n /* if(params.propertytype.toLowerCase() === \"sf\"){\r\n ssName.push(\"Single Family Home\");\r\n }\r\n if(params.propertytype.toLowerCase() === \"mf\"){\r\n ssName.push(\"Multi Family Home\");\r\n }\r\n if(params.propertytype.toLowerCase() === \"rnt\"){\r\n ssName.push(\"Rentals\");\r\n } */\r\n }\r\n if(includeDefault){\r\n if(highlightValues && params.lifestyle){\r\n ssName.push({getOptionTextFromValue(getFamilyTypes(), params.lifestyle)}, );\r\n }\r\n else if(params.lifestyle){\r\n ssName.push(getOptionTextFromValue(getFamilyTypes(), params.lifestyle));\r\n }\r\n if(highlightValues && params.ficoscore){\r\n ssName.push({params.ficoscore} Fico Score, );\r\n }\r\n else if(params.ficoscore){\r\n ssName.push(params.ficoscore + \" Fico Score\");\r\n }\r\n if(highlightValues && params.loantype){\r\n ssName.push({getOptionTextFromValue(getLoanTypes(), params.loantype)} Loan Type);\r\n }\r\n else if(params.loantype){\r\n ssName.push(getOptionTextFromValue(getLoanTypes(), params.loantype) + \" Loan Type\");\r\n }\r\n }\r\n if(ssName.length > 0){\r\n if(highlightValues){\r\n return ssName;\r\n }\r\n else{\r\n return ssName.join(', ');\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\nexport function getParametersForMatchingProperties(profile) {\r\n var params = getDefaultSearchParams();\r\n if(profile && profile.Profile && profile.Profile.BasicData){\r\n if(profile.Profile.BasicData.TLCMin && profile.Profile.BasicData.TLCMin !== \"\"){\r\n params.tlcmin = profile.Profile.BasicData.TLCMin;\r\n }\r\n if(profile.Profile.BasicData.TLCMax && profile.Profile.BasicData.TLCMax !== \"\"){\r\n params.tlcmax = profile.Profile.BasicData.TLCMax;\r\n }\r\n /* if(profile.Profile.CommuteData && profile.Profile.CommuteData.CommuteDetail && \r\n profile.Profile.CommuteData.CommuteDetail.length > 0 &&\r\n profile.Profile.CommuteData.CommuteDetail[0].WorkAddress &&\r\n profile.Profile.CommuteData.CommuteDetail[0].WorkAddress !== \"\"){\r\n params.commutes = [{\r\n commuteaddress: profile.Profile.CommuteData.CommuteDetail[0].WorkAddress,\r\n commutemode: \"car\",\r\n commutetimemins: \"45\"\r\n }];\r\n } */\r\n if(profile.Profile.BasicData.PreferredLocation && profile.Profile.BasicData.PreferredLocation !== \"\"){\r\n params.location = profile.Profile.BasicData.PreferredLocation;\r\n }\r\n if(profile.Profile.BasicData.MStatus && profile.Profile.BasicData.MStatus !== \"\"){\r\n params.lifestyle = profile.Profile.BasicData.MStatus;\r\n }\r\n if(profile.Profile.BasicData.CreditScore && profile.Profile.BasicData.CreditScore !== \"\"){\r\n params.ficoscore = profile.Profile.BasicData.CreditScore;\r\n }\r\n if(profile.Profile.BasicData.LoanType && profile.Profile.BasicData.LoanType !== \"\"){\r\n params.loantype = profile.Profile.BasicData.LoanType;\r\n } \r\n }\r\n return JSON.parse(JSON.stringify(params));\r\n}\r\n\r\nexport function getDefaultTLCToggleSwitches() {\r\n return {\r\n Transportation: true,\r\n GasCost: true,\r\n Parking: true,\r\n Tolls: true,\r\n TransitCost: true,\r\n CarMaintenance: true,\r\n CarInsurance: true,\r\n Utilities: true,\r\n HeatingCooling: true,\r\n WaterSewer: true,\r\n Garbage: true,\r\n LawnSnowCare: true,\r\n OtherUtilities: true,\r\n Entertainment: true,\r\n Phone: true,\r\n Internet: true,\r\n TV: true,\r\n Cell: true,\r\n OtherCharge: true\r\n };\r\n}\r\n\r\nexport function getBeds() {\r\n \r\n var flst = getDDList('beds');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"1e\", text: \"1 Bed\"},\r\n {value: \"1g\", text: \"1+ Beds\"},\r\n {value: \"2e\", text: \"2 Beds\"},\r\n {value: \"2g\", text: \"2+ Beds\"},\r\n {value: \"3e\", text: \"3 Beds\"},\r\n {value: \"3g\", text: \"3+ Beds\"},\r\n {value: \"4e\", text: \"4 Beds\"},\r\n {value: \"4g\", text: \"4+ Beds\"},\r\n {value: \"5e\", text: \"5 Beds\"},\r\n {value: \"5g\", text: \"5+ Beds\"},\r\n {value: \"6e\", text: \"6 Beds\"},\r\n {value: \"6g\", text: \"6+ Beds\"},\r\n {value: \"7e\", text: \"7 Beds\"},\r\n {value: \"7g\", text: \"7+ Beds\"}\r\n ];\r\n}\r\n\r\nexport function getBaths() {\r\n\r\n var flst = getDDList('baths');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"1e\", text: \"1 Bath\"},\r\n {value: \"1g\", text: \"1+ Bath\"},\r\n //{value: \"1.5e\", text: \"1.5 Bath\"},\r\n //{value: \"1.5g\", text: \"1.5+ Bath\"},\r\n {value: \"2e\", text: \"2 Bath\"},\r\n {value: \"2g\", text: \"2+ Bath\"},\r\n //{value: \"2.5e\", text: \"2.5 Bath\"},\r\n //{value: \"2.5g\", text: \"2.5+ Bath\"},\r\n {value: \"3e\", text: \"3 Bath\"},\r\n {value: \"3g\", text: \"3+ Bath\"},\r\n //{value: \"3.5e\", text: \"3.5 Bath\"},\r\n //{value: \"3.5g\", text: \"3.5+ Bath\"},\r\n {value: \"4e\", text: \"4 Bath\"},\r\n {value: \"4g\", text: \"4+ Bath\"},\r\n {value: \"5e\", text: \"5 Bath\"},\r\n {value: \"5g\", text: \"5+ Bath\"},\r\n {value: \"6e\", text: \"6 Bath\"},\r\n {value: \"6g\", text: \"6+ Bath\"},\r\n {value: \"7e\", text: \"7 Bath\"},\r\n {value: \"7g\", text: \"7+ Bath\"}\r\n ];\r\n}\r\n\r\nexport function getGarages() { \r\n var flst = getDDList('garages');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"1g\", text: \"1+ Car\"},\r\n {value: \"2g\", text: \"2+ Car\"},\r\n {value: \"3g\", text: \"3+ Car\"},\r\n {value: \"4g\", text: \"4+ Car\"},\r\n {value: \"5g\", text: \"5+ Car\"},\r\n {value: \"6g\", text: \"6+ Car\"},\r\n {value: \"7g\", text: \"7+ Car\"}\r\n ];\r\n}\r\n\r\nexport function getHomeSizes() { \r\n var flst = getDDList('livingareamin');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"500\", text: \"500+ Sqr Ft\"},\r\n {value: \"1000\", text: \"1000+ Sqr Ft\"},\r\n {value: \"1500\", text: \"1500+ Sqr Ft\"},\r\n {value: \"2000\", text: \"2000+ Sqr Ft\"},\r\n {value: \"2500\", text: \"2500+ Sqr Ft\"},\r\n {value: \"3000\", text: \"3000+ Sqr Ft\"},\r\n {value: \"4000\", text: \"4000+ Sqr Ft\"}\r\n ];\r\n}\r\n\r\nexport function getLotSizes() {\r\n var flst = getDDList('acresmin');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \".25\", text: \"1/4+ Acre\"},\r\n {value: \".5\", text: \"1/2+ Acre\"},\r\n {value: \".75\", text: \"3/4+ Acre\"},\r\n {value: \"1\", text: \"1+ Acre\"},\r\n {value: \"1.5\", text: \"1.5+ Acres\"},\r\n {value: \"2\", text: \"2+ Acres\"},\r\n {value: \"4\", text: \"4+ Acres\"}\r\n ];\r\n}\r\n\r\nexport function getBuiltYears() { \r\n var flst = getDDList('yearbuiltmin');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"1900\", text: \"1900+\"},\r\n {value: \"1930\", text: \"1930+\"},\r\n {value: \"1950\", text: \"1950+\"},\r\n {value: \"1970\", text: \"1970+\"},\r\n {value: \"1980\", text: \"1980+\"},\r\n {value: \"1990\", text: \"1990+\"},\r\n {value: \"2000\", text: \"2000+\"},\r\n {value: \"2005\", text: \"2005+\"},\r\n {value: \"2010\", text: \"2010+\"},\r\n {value: \"2015\", text: \"2015+\"}\r\n ];\r\n}\r\n\r\nexport function getMaxHOAFees() { \r\n var flst = getDDList('hoafeemax');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"100\", text: \"100\"},\r\n {value: \"200\", text: \"200\"},\r\n {value: \"300\", text: \"300\"},\r\n {value: \"400\", text: \"400\"},\r\n {value: \"500\", text: \"500\"}\r\n ];\r\n}\r\n\r\nexport function getMinTLCCalculationCriteria() {\r\n //return 0.50;\r\n return 0.45;\r\n}\r\n\r\nexport function getMaxTLCCalculationCriteria() {\r\n //return 0.80;\r\n return 0.65;\r\n}\r\n\r\nexport function getMinPriceRange() {\r\n return [0, 1000, 5000, 10000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 400000, 500000, 1000000];\r\n}\r\n\r\nexport function getMaxPriceRange() {\r\n return [0, 5000, 10000, 50000, 75000, 100000, 125000, 150000, 175000, 200000, 250000, 300000, 400000, 500000, 1000000, 2000000];\r\n}\r\n\r\nexport function getMinTLCRange() {\r\n return [0, 500, 1000, 1500, 2000, 2500, 3000, 4000, 5000, 7500, 10000, 15000, 20000];\r\n}\r\n\r\nexport function getMaxTLCRange() {\r\n return [0, 1000, 1500, 2000, 2500, 3000, 4000, 5000, 7500, 10000, 15000, 20000, 25000];\r\n}\r\n\r\nexport function getDefaultPageTourParams() {\r\n return {\r\n allowClicksThruHole: true,\r\n style: {\r\n mainColor: '#f7941e',\r\n beacon: {\r\n inner: '#f7941e',\r\n outer: '#f7941e',\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport function getPageTourParams(page, user, selectedClient) {\r\n\r\n var sites = [];\r\n var filteredPage = page;\r\n if(filteredPage.indexOf('/search') === 0){\r\n filteredPage = '/search'\r\n }\r\n if(filteredPage.indexOf('/propertydetail') === 0){\r\n filteredPage = '/propertydetail'\r\n }\r\n\r\n var basicNavItems = [];\r\n var tourText='';\r\n\r\n var menuText;\r\n if(user === 'anonymous'){\r\n menuText = 'Find Homes - This is where you create personalized Saved Searches for homes by adjusting your criteria filters.

'\r\n menuText += 'Find a Realtor - This is where you will be able to search Realtors

'\r\n menuText += 'Neighborhoods - Check out Neighborhoods and details about them'\r\n }\r\n else if(user === 'client'){\r\n menuText = 'Dashboard - View your Timeline including property comments with your agent. View your Saved Searches, Favorites and properties suggested by your Agent.

';\r\n menuText += 'Find Homes - This is where you create personalized Saved Searches for homes by adjusting your criteria filters.

'\r\n menuText += 'Find a Realtor - This is where you will be able to search Realtors

'\r\n menuText += 'Neighborhoods - Check out Neighborhoods and details about them'\r\n\r\n } \r\n else {\r\n menuText = 'Dashboard - View your Timeline including property comments with your client. View Saved Searches and properties you suggested to your client.

';\r\n menuText += 'Find Homes - This is where you create personalized searches for homes by adjusting your criteria filters.

'\r\n menuText += 'Find a Realtor - This is where you will be able to search Realtors

'\r\n menuText += 'Neighborhoods - Check out Neighborhoods and details about them'\r\n }\r\n\r\n menuText = \"Explore and navigate through out the site using various Menu links\";\r\n \r\n if(window.innerWidth < 768){\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'Menu Items',\r\n text: menuText,\r\n selector: '.navbar-toggle',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n ); \r\n }\r\n else{\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'Menu Items',\r\n text: menuText,\r\n selector: '.new_leftemenu',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n }\r\n\r\n if(user === 'anonymous'){\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'Login',\r\n text: 'Login, if already registered, and start using the advanced features of the site.',\r\n selector: '.user_button_login',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'Register',\r\n text: 'Register to access advanced features of the site.',\r\n selector: '.user_button_register',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n } \r\n else if(user === 'client'){\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'View/Update your Profile',\r\n text: 'Update your basic information, password, TLC financial factors, family details, commute information, and logout.',\r\n selector: '.menu-item-profile',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n } \r\n else {\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'View your Profile',\r\n text: 'View your saved searches, your listings, change your password and logout.',\r\n selector: '.menu-item-profile',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n }\r\n\r\n if(user === 'agent'){\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'Recent Activity Alerts',\r\n text: 'View interactions between you and your Clients. Click on each activity to view it on your Timeline or click the Property Address to go directly to the property page',\r\n selector: '.menu-item-quickbar',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n ); \r\n }\r\n else if(user === 'client'){\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'Recent Activity Alerts',\r\n text: 'View interactions between you and your Agent. Click on each activity to view it on your Timeline or click the Property Address to go directly to the property page.',\r\n selector: '.menu-item-quickbar',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n }\r\n\r\n if(user === 'agent'){ \r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'Select a Client',\r\n text: 'Select a client to work with to Bookmark properties and Save Searches.',\r\n selector: '.menu-item-selectclient',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n ); \r\n } \r\n else if(user === 'client'){\r\n basicNavItems.push(\r\n Object.assign({},{\r\n title: 'My agent ',\r\n text: 'View details about your agent, saved searches and properties suggested by your agent.',\r\n selector: '.menu-item-activeagent, .menu-item-selectclient, .select_client_menu',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n } \r\n \r\n\r\n // Add navbar to the Tour\r\n sites = sites.concat(basicNavItems)\r\n\r\n switch (filteredPage.toLowerCase()){\r\n case \"\":\r\n case \"/\": {\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Quick Search',\r\n //text: 'Start a new search using a specific location, beds, baths, and monthly TLC costs.',\r\n text: 'Start a new search using various search parameters.',\r\n selector: '.search-item-searchbar',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n if(user === 'anonymous'){\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Featured properties',\r\n text: 'View top Featured properties.',\r\n selector: '.tour-featured-properties',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /*sites.push(\r\n Object.assign({},{\r\n title: 'Find the Perfect fit',\r\n text: 'Find the perfect home based on personalized preferences.',\r\n selector: '.home-item-find-clients',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );*/\r\n \r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Featured open houses',\r\n text: 'Top Featured open houses coming up',\r\n selector: '.tour-featured-openhouse',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Last MLS Update',\r\n text: 'Our comprehensive listings are constantly refreshed with the latest updates so you can move quickly and confidently.',\r\n selector: '.latest_update_mls',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'The Very Latest Listings',\r\n text: 'The most recently updated/added properties.',\r\n selector: '.latest-properties-title',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'What Can I Truly Afford?',\r\n text: 'Understand the true cost of owning your new home.',\r\n selector: '.home_small_tlc',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /*sites.push(\r\n Object.assign({},{\r\n title: 'Open Houses',\r\n text: 'Upcoming open houses.',\r\n selector: '.openhouse-properties-title',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n );*/\r\n }\r\n if(user === 'agent'){\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Featured properties',\r\n text: 'View top Featured properties.',\r\n selector: '.tour-featured-properties',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /*sites.push(\r\n Object.assign({},{\r\n title: 'Add a client',\r\n text: 'From this you will be able to add new client to work with.',\r\n selector: '.home-item-addclient',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'How it works',\r\n text: 'Get knowledge about what different components are included in TLC and how it works.',\r\n selector: '.home-item-how-works',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Shared listings',\r\n text: 'View the list of clients you are working with.',\r\n selector: '.home-item-Shared-listings',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Find the Perfect fit',\r\n text: 'Find the perfect home for your clients based on their preferences.',\r\n selector: '.home-item-find-clients',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );*/\r\n \r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Featured open houses',\r\n text: 'Top Featured open houses coming up',\r\n selector: '.tour-featured-openhouse',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Last MLS Update',\r\n text: 'Our comprehensive listings are constantly refreshed with the latest updates so you can move quickly and confidently.',\r\n selector: '.latest_update_mls',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'The Very Latest Listings',\r\n text: 'The most recently updated/added properties.',\r\n selector: '.latest-properties-title',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'What Can I Truly Afford?',\r\n text: 'Understand the true cost of owning your new home.',\r\n selector: '.home_small_tlc',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /*sites.push(\r\n Object.assign({},{\r\n title: 'Open Houses',\r\n text: 'Upcoming open houses.',\r\n selector: '.openhouse-properties-title',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n );*/\r\n }\r\n if(user === 'client'){\r\n\r\n /*sites.push(\r\n Object.assign({},{\r\n title: 'Go to profile',\r\n text: 'This is where you will be able to see/update all your profile information.',\r\n selector: '.home-item-profile-button',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'How it works',\r\n text: 'Get knowledge about what different components are included in TLC and how it works.',\r\n selector: '.home-item-how-works',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Shared listings',\r\n text: 'View all the properties suggested by your agent.',\r\n selector: '.home-item-Shared-listings',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Find the Perfect fit',\r\n text: 'Find your perfect home based on your preferences.',\r\n selector: '.home-item-find-clients',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );*/\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Matching Properties',\r\n text: 'These are properties that match your personalized profile selections.',\r\n selector: '.matching-properties-title',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Your Personalized Factors',\r\n text: 'The Matching Properties are based on your personalized factors that you provided.',\r\n selector: '.change-factors-link',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n );\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Show More Matches',\r\n text: 'View more properties like these on the Search Results page where you can add additional filters.',\r\n selector: '.more-properties-results-top',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); \r\n }\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Contact us',\r\n text: \"Get in touch with us in case you have any questions or issues with the site.\",\r\n selector: '.support-item-email',\r\n position: 'top-right',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Terms of Use',\r\n text: \"View the Terms of Use for this website\",\r\n selector: '.tour-terms-use',\r\n position: 'top-right',\r\n },getDefaultPageTourParams())\r\n ); */\r\n \r\n break;\r\n }\r\n\r\n case \"/dashboard/timeline\":\r\n case \"/dashboard\": {\r\n\r\n tourText = 'Timeline - See all recent activity and add new comments.

';\r\n\r\n if (user === 'agent') {\r\n tourText += 'Clients - Manage Clients who you are working with.

';\r\n tourText += 'Pending Invitations - Invitations that need to be accepted by your Client so you can work with them.

';\r\n tourText += 'My Saved Searches - Your personal Saved Searches and Alerts. Here you can assign these to your Clients.';\r\n }\r\n else if (user === 'client') {\r\n tourText += 'My Saved Searches - View and manage your Saved Searches and Alerts.

';\r\n tourText += 'My Favorites - Favorited properties.

';\r\n tourText += 'Suggested by Agent - Properties suggested by your Agent.

';\r\n tourText += 'Removed listings - View and manage the listings that you have marked to be hidden.

';\r\n }\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Dashboard Menu',\r\n text: tourText,\r\n selector: '#dashboardTabs .nav-tabs',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n if (user === 'agent') {\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Property Interaction Card',\r\n text: 'An interaction with a single client on a specific property. The card will show Bookmarks, Favorites, and Comments.',\r\n selector: '.timeline-row',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n }\r\n else if (user === 'client') {\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Property Interaction Card',\r\n text: 'An interaction with your Agent on specific property. The card will show Favorites, Agent Bookmarks, and Comments.',\r\n selector: '.timeline-row',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"/dashboard/clients\": {\r\n\r\n if (user === 'agent') {\r\n tourText = 'Timeline - See all recent activity and add new comments.

';\r\n tourText += 'Clients - Manage Clients who you are working with.

';\r\n tourText += 'Pending Invitations - Invitations that need to be accepted by your Client so you can work with them.

';\r\n tourText += 'My Saved Searches - Your personal Saved Searches and Alerts. Here you can assign these to your Clients.';\r\n }\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Dashboard Menu',\r\n text: tourText,\r\n selector: '#dashboardTabs .nav-tabs',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Add a new client',\r\n text: 'From this you will be able to add new client to work with',\r\n selector: '.client_saved_searches .tru-white-link',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n ); \r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Filter By Stage',\r\n text: 'Filter the list of clients based on the following stages.',\r\n selector: '.tour-clients-table .list-item-stage',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n ); \r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Sorting',\r\n text: 'You can sort the list by clicking on specific column.',\r\n selector: '.tour-clients-table .react-bs-container-header',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Client list',\r\n text: 'List of Clients who you are working with.',\r\n selector: '.active .tour-clients-table .react-bs-container-body',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n break;\r\n }\r\n\r\n case \"/dashboard/invitations\": {\r\n\r\n if (user === 'agent') {\r\n tourText = 'Timeline - See all recent activity and add new comments.

';\r\n tourText += 'Clients - Manage Clients who you are working with.

';\r\n tourText += 'Pending Invitations - Invitations that need to be accepted by your Client so you can work with them.

';\r\n tourText += 'My Saved Searches - Your personal Saved Searches and Alerts. Here you can assign these to your Clients.';\r\n }\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Dashboard Menu',\r\n text: tourText,\r\n selector: '#dashboardTabs .nav-tabs',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Sorting',\r\n text: 'You can sort the list by clicking on specific column.',\r\n selector: '.tour-invitations-table .react-bs-container-header',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n ); \r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'List of Invitations',\r\n text: 'These are clients that are currently working with someone else whom you have invited to work with you.',\r\n selector: '.tour-invitations-table .react-bs-container-body',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n \r\n /*sites.push(\r\n Object.assign({},{\r\n title: 'Delete',\r\n text: 'Delete a specific invitation.',\r\n selector: '.tour-invitations-table .fa-trash',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );*/\r\n \r\n break;\r\n }\r\n\r\n case \"/dashboard/savedsearches\": {\r\n\r\n if (user === 'agent') {\r\n tourText = 'Timeline - See all recent activity and add new comments.

';\r\n tourText += 'Clients - Manage Clients who you are working with.

';\r\n tourText += 'Pending Invitations - Invitations that need to be accepted by your Client so you can work with them.

';\r\n tourText += 'My Saved Searches - Your personal Saved Searches and Alerts. Here you can assign these to your Clients.';\r\n }\r\n else if (user === 'client') {\r\n tourText = 'Timeline - See all recent activity and add new comments.

';\r\n tourText += 'My Saved Searches - View and manage your Saved Searches and Alerts.

';\r\n tourText += 'My Favorites - Favorited properties.

';\r\n tourText += 'Suggested by Agent - Properties suggested by your Agent.

';\r\n tourText += 'Removed listings - View and manage the listings that you have marked to be hidden.

';\r\n }\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Dashboard Menu',\r\n text: tourText,\r\n selector: '#dashboardTabs .nav-tabs',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n if(user === 'agent'){\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Assign to client',\r\n text: 'Assign a selected Saved Search to a Client.',\r\n selector: '.assign-item-client',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n ); \r\n }\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Sorting',\r\n text: 'You can sort the list by clicking on specific columns.',\r\n selector: '.tour-savesearch-table .react-bs-container-header',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Saved Searches',\r\n text: 'View and Manage your Saved Searches and Alerts',\r\n selector: '.tour-savesearch-table .react-bs-container-body',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n /*sites.push(\r\n Object.assign({},{\r\n title: 'Daily Alerts',\r\n text: 'Turn daily email alerts on/off for a saved search.',\r\n selector: '.tour-savesearch-table .tour-bell-icon',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Delete',\r\n text: 'Delete a saved search.',\r\n selector: '.tour-savesearch-table .fa-trash',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );*/\r\n \r\n break;\r\n }\r\n case \"/dashboard/favorites\": {\r\n \r\n if (user === 'client') {\r\n tourText = 'Timeline - See all recent activity and add new comments.

';\r\n tourText += 'My Saved Searches - View and manage your Saved Searches and Alerts.

';\r\n tourText += 'My Favorites - View and Manage properties you marked as Favorite.

';\r\n tourText += 'Suggested by Agent - Properties suggested by your Agent.

';\r\n tourText += 'Removed listings - View and manage the listings that you have marked to be hidden.

';\r\n }\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Dashboard Menu',\r\n text: tourText,\r\n selector: '#dashboardTabs .nav-tabs',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Favorites',\r\n text: 'View and Manage properties you marked as Favorite.',\r\n selector: '.tour-favorites-list',\r\n position: 'top ',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n break; \r\n }\r\n\r\n case \"/dashboard/bookmarks\": {\r\n\r\n if (user === 'client') {\r\n tourText = 'Timeline - See all recent activity and add new comments.

';\r\n tourText += 'My Saved Searches - View and manage your Saved Searches and Alerts.

';\r\n tourText += 'My Favorites - Favorited properties.

';\r\n tourText += 'Suggested by Agent - Properties suggested by your Agent.

';\r\n tourText += 'Removed listings - View and manage the listings that you have marked to be hidden.

';\r\n }\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Dashboard Menu',\r\n text: tourText,\r\n selector: '#dashboardTabs .nav-tabs',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Remove Bookmark',\r\n text: 'Once a Bookmark is selected you can remove it from the Bookmark list.',\r\n selector: '.tour-bookmark-table .btn-group-warning',\r\n position: 'bottom ',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Sorting',\r\n text: 'You can sort the list by clicking on eact column.',\r\n selector: '.tour-bookmark-table .react-bs-container-header',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Bookmarks',\r\n text: 'Properties suggested by your Agent.',\r\n selector: '.tour-bookmark-table .react-bs-container-body',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n break; \r\n }\r\n case \"/dashboard/removedlistings\": {\r\n\r\n if (user === 'client') {\r\n tourText = 'Timeline - See all recent activity and add new comments.

';\r\n tourText += 'My Saved Searches - View and manage your Saved Searches and Alerts.

';\r\n tourText += 'My Favorites - Favorited properties.

';\r\n tourText += 'Suggested by Agent - Properties suggested by your Agent.

';\r\n tourText += 'Removed listings - View and manage the listings that you have marked to be hidden.

';\r\n }\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Dashboard Menu',\r\n text: tourText,\r\n selector: '#dashboardTabs .nav-tabs',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Removed Listings',\r\n text: 'View and manage the listings that you have marked to be hidden.',\r\n selector: '.tour-removed-list',\r\n position: 'bottom ',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Restore Property',\r\n text: 'Restore property that you have marked to be hidden',\r\n selector: '.tour-restore-icon',\r\n position: 'bottom ',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n break; \r\n }\r\n\r\n case \"/search\": {\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Search by Location',\r\n text: 'Type in a MLS#, City, Zipcode to narrow your search results',\r\n selector: '.search-item-location',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n if(window.innerWidth >= 768){\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Filter by your Monthly True Lifestyle Cost',\r\n text: 'Look for properties based on your personalized True Lifestyle Cost range.

This should include everything including your Mortgage, Taxes, Insurance, Car costs, and utilities.

Once you find the perfect home we will break it all down for you on the property page!',\r\n selector: '.lifestyle-item-cost',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n }\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Beds',\r\n text: 'Filter properties based on Beds',\r\n selector: '.beds-item-filter',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Baths',\r\n text: 'Filter properties based on Baths',\r\n selector: '.baths-item-filter',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'More filters',\r\n text: 'These are additional search filters that are available for you to use. Open Houses, Fireplace, Pool, etc...',\r\n selector: '.more-item-filter',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n /*if(user === 'agent'){\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Create a Saved Search',\r\n text: 'Save the current search criteria and receive daily updates. If you wish to assign this search to a specific client be sure to first use the Select Client feature above. You can also review these and assign them to a Client at a later time from your Dashboard.',\r\n selector: '.save-item-search',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n }\r\n else{\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Created a Saved Search',\r\n text: 'Save the current search criteria and receive daily updates. You can review these later in your Dashboard.',\r\n selector: '.save-item-search',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n }*/\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Matching Properties Count',\r\n text: 'Number of matching properties for selected filters and map location.',\r\n selector: '.sorting_option_total',\r\n position: 'right',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Draw on Map',\r\n text: 'Draw an area on the map to search in.',\r\n selector: '.leaflet_icon_draw',\r\n position: 'right',\r\n },getDefaultPageTourParams())\r\n );\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Commute Location',\r\n text: 'Add Commute Location to filter properties that are within a certain driving area.',\r\n selector: '.includecommute-wrapper',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Adjust Map Size',\r\n text: 'Allows you to extend or shrink the map area.',\r\n selector: '.map_arrow_btn',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Current Search Filters',\r\n text: 'Search parameters applied to get filtered list of properties. You can quickly remove a filter by clicking on the X next to each',\r\n selector: '.tag-item-location',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Initial Image Filter',\r\n text: 'Choose which image type you would like to see in your search results and Saved Search results like Kitchen, Bedroom, etc...',\r\n selector: '.image-item-category',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Property Card',\r\n text: 'You can interact with the property card by flipping through photos and saving the property for later.',\r\n selector: '.prop_card',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: user === 'agent' ? 'Bookmark this Property' : 'Favorite this Property',\r\n text: user === 'agent' ? 'Bookmark this specific property for a Selected Client.' : 'Add this property to your Favorite list.',\r\n selector: '.property-left-icon',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Compare property',\r\n text: 'Compare this specific property with other properties',\r\n selector: '.tour_compare_icon',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Remove property',\r\n text: \"Hide or remove this specific property which doesn't seem relevant to you\",\r\n selector: '.remove_clsoe_icon',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n break;\r\n }\r\n case \"/propertydetail\": {\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Listing Agent',\r\n text: 'Check out details about the listing agent',\r\n selector: '.tour-contact-box',\r\n position: 'left'\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Contact Agent',\r\n text: 'Get in touch with the agent by sending an email',\r\n selector: '.ture-send-email',\r\n position: 'left',\r\n isFixed: true\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Property Price & TLC',\r\n text: 'The Price and Monthly True LifeStyle Cost for this Listing. The TLC will include everything including your Mortgage, Taxes, Insurance, Car costs, and utilities based on your Lifestyle selections.',\r\n selector: '.tour-details-cost',\r\n position: 'left',\r\n isFixed: true\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n \r\n\r\n /*if(user === 'agent'){\r\n tourText = 'Available Funds - Net monthly income based a default value, or your selected Client

';\r\n }\r\n else{\r\n tourText = 'Available Funds - Net monthly income from your profile

';\r\n }\r\n tourText += 'Mortgage/Taxes - Mortgage, Taxes, Homeowners insurance also called (PITI = Principal, Interest, Taxes, Insurance). HOA Fees, PMI are shown if included.

';\r\n tourText += 'Transportation - Car Maintenance, Insurance and Gas Cost (if applicable).

';\r\n tourText += 'Utilities - Heating, Cooling, Water, Sewer, Garbage, Lawn.

';\r\n tourText += 'Entertainment - Phone, Internet, TV, Cell and Others (if any).

';\r\n tourText += 'Total Monthly TLC - Total Monthly TLC for this property.

';\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'True Lifestyle Cost Breakdown',\r\n text: tourText,\r\n selector: '.tlcSummary',\r\n position: 'left',\r\n isFixed: true\r\n },getDefaultPageTourParams())\r\n ); \r\n // sites.push(\r\n // Object.assign({},{\r\n // title: 'Selected Factors',\r\n // text: 'These are the adjustable assumptions that were used to calculate the TLC for this property.',\r\n // selector: '.tlcAssumptions',\r\n // position: 'left',\r\n // isFixed: true\r\n // },getDefaultPageTourParams())\r\n // );\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Total True Lifestyle Cost',\r\n text: 'This will be the total monthly True Lifestyle Cost for this property. ',\r\n selector: '.tour-lifestyle-cost',\r\n position: 'top'\r\n },getDefaultPageTourParams())\r\n );\r\n */\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Property Photos',\r\n text: 'Check out property photos and also the location of the listing on the map',\r\n selector: '.tour-slider',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); \r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: user === 'agent' ? 'Bookmark this Property' : 'Favorite this Property',\r\n text: user === 'agent' ? 'Bookmark this specific property for a Selected Client.' : 'Add this property to your Favorite list.',\r\n selector: '.tour-fav-bookmark',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n ); \r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Featured Mortgage Services',\r\n text: 'Check out featured home mortgage rates',\r\n selector: '.tour-mortgage-rate',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n \r\n sites.push(\r\n Object.assign({},{\r\n title: 'Mortgage',\r\n text: 'This is the monthly Mortgage portion of the TLC which includes various configurable Lifestyle factors.',\r\n selector: '.tour-mortgage-toggle',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Start An Offer',\r\n text: 'Tell us about the offer you have in mind',\r\n selector: '.tour-start-offer',\r\n position: 'left',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Transportation / Utilities / Entertainment',\r\n text: 'This is the monthly Transportation, Utilities and Entertainment cost portion of the TLC for this specific property including the adjustable Lifestyle factors',\r\n selector: '.tour-utilities-toggle',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Walkscore',\r\n text: 'Measure of walkability of a Neighborhood.',\r\n selector: '.tour-walkscore-tab',\r\n position: 'bottom',\r\n },getDefaultPageTourParams())\r\n );\r\n\r\n /* sites.push(\r\n Object.assign({},{\r\n title: 'Nearby listings',\r\n text: 'Check out the nearby listings for the current listing',\r\n selector: '.tour-nearby-listing',\r\n position: 'top',\r\n },getDefaultPageTourParams())\r\n ); */\r\n\r\n // Soundscore is not always present\r\n // sites.push(\r\n // Object.assign({},{\r\n // title: 'Soundscore',\r\n // text: 'This is the personalized Soundscore for this property that will tell you how quiet the neighborhood is.',\r\n // selector: '.tour-soundscore-tab',\r\n // position: 'top',\r\n // },getDefaultPageTourParams())\r\n // );\r\n /*if(window.innerWidth >= 768){\r\n sites.push(\r\n Object.assign({},{\r\n title: 'Sub Sections',\r\n text: 'You can navigate quickly to sections of the property listing by clicking each Sub Section.',\r\n selector: '.tour-details-item-tab',\r\n position: 'bottom',\r\n isFixed: true\r\n },getDefaultPageTourParams())\r\n );\r\n } */ \r\n \r\n if(user !== 'anonymous'){\r\n sites.push(\r\n Object.assign({},{\r\n title:'Realtime Collaboration',\r\n text: user === 'agent' ? \"Allows you to send/receive messages with your client.\" : \"Allows you to send/receive messages with your agent.\",\r\n selector:'.tour-chat-window',\r\n position: 'top-right',\r\n isFixed: true\r\n },getDefaultPageTourParams())\r\n );\r\n }\r\n \r\n break;\r\n }\r\n default :{\r\n break;\r\n }\r\n }\r\n return sites;\r\n}\r\n\r\nexport function showSiteTour(page, user) {\r\n var returnVal = false;\r\n var filteredPage = page;\r\n if(filteredPage.indexOf('/search') === 0){\r\n filteredPage = '/search'\r\n }\r\n if(filteredPage.indexOf('/propertydetail') === 0){\r\n filteredPage = '/propertydetail'\r\n } \r\n switch (filteredPage.toLowerCase()){\r\n //case \"/realtor\":\r\n case \"\":\r\n case \"/propertydetail\":\r\n case \"/search\": \r\n case \"/dashboard\":\r\n case \"/dashboard/bookmarks\":\r\n case \"/dashboard/removedlistings\":\r\n case \"/dashboard/favorites\":\r\n case \"/dashboard/savedsearches\":\r\n case \"/dashboard/invitations\":\r\n case \"/dashboard/timeline\":\r\n case \"/dashboard/clients\":\r\n case \"/\": {\r\n returnVal = true;\r\n break;\r\n }\r\n default :{\r\n break;\r\n }\r\n }\r\n return returnVal;\r\n}\r\n\r\nexport function getCommutTimes() {\r\n return [\r\n {value: \"15\", text: \"15 mins\"},\r\n {value: \"30\", text: \"30 mins\"},\r\n {value: \"45\", text: \"45 mins\"},\r\n {value: \"60\", text: \"60 mins\"},\r\n ];\r\n}\r\n\r\nexport function getCommutModes() {\r\n return [\r\n {value: \"car\", text: \"Car\"},\r\n \r\n ];\r\n}\r\n\r\nexport function getOrdinalSuffix(i) {\r\n var j = i % 10,\r\n k = i % 100;\r\n if (j === 1 && k !== 11) {\r\n return i + \"st\";\r\n }\r\n if (j === 2 && k !== 12) {\r\n return i + \"nd\";\r\n }\r\n if (j === 3 && k !== 13) {\r\n return i + \"rd\";\r\n }\r\n return i + \"th\";\r\n}\r\n\r\nexport function isFiltersSelected(searchParameters){\r\n\r\n // Use a deep copy so we don't manipulate searchParameters\r\n var parametersCopy = JSON.parse(JSON.stringify(searchParameters));\r\n delete parametersCopy[\"mapbound\"];\r\n\r\n if(JSON.stringify(parametersCopy) !== JSON.stringify(getDefaultSearchParams())){\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n// Check for Customization options Env Variable\r\nexport function GetSiteCustomizationOptions () {\r\n return (process.env.REACT_APP_SiteCustomizationOptions !== undefined && process.env.REACT_APP_SiteCustomizationOptions !== null && process.env.REACT_APP_SiteCustomizationOptions !== \"\") ? JSON.parse(process.env.REACT_APP_SiteCustomizationOptions) : {};\r\n}\r\n\r\n// Check for Customization options Env Variable\r\nexport function GetSectionCustomizationOptions (section) {\r\n if(process.env.REACT_APP_SiteCustomizationOptions !== undefined && process.env.REACT_APP_SiteCustomizationOptions !== null && process.env.REACT_APP_SiteCustomizationOptions !== \"\"){\r\n var jsonStr = JSON.parse(process.env.REACT_APP_SiteCustomizationOptions);\r\n if(jsonStr[section] !== undefined && jsonStr[section] !== null && jsonStr[section] !== \"\"){\r\n return jsonStr[section];\r\n }\r\n } \r\n return({});\r\n}\r\n\r\nexport function GetMetaTagsProperties(){\r\n return (process.env.REACT_APP_MetaTags !== undefined && process.env.REACT_APP_MetaTags !=null && process.env.REACT_APP_MetaTags !== \"\") ? JSON.parse(process.env.REACT_APP_MetaTags) : {};\r\n}\r\n\r\nexport function getSearchStatuses() { \r\n var flst = getDDList('status');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"Active\", text: \"Active listings\"},\r\n {value: \"Pending\", text: \"Pending listings\"},\r\n {value: \"Sold\", text: \"Sold listings\"},\r\n ];\r\n}\r\n\r\nexport function getWaterFrontTypes() { \r\n var flst = getDDList('waterfeatures');\r\n if(flst && flst.length > 0) return flst;\r\n \r\n return [\r\n {value: \"Bay\", text: \"Bay/Harbor\"},\r\n {value: \"Beach\", text: \"Beach\"},\r\n {value: \"Canal\", text: \"Canal\"},\r\n {value: \"Creek\", text: \"Creek\"},\r\n {value: \"Gulf\", text: \"Gulf/Ocean\"},\r\n {value: \"Intracoastal Waterway\", text: \"Intracoastal Waterway\"},\r\n {value: \"Lagoon\", text: \"Lagoon\"},\r\n {value: \"Lake\", text: \"Lake\"},\r\n {value: \"Marina\", text: \"Marina\"},\r\n {value: \"Pond\", text: \"Pond\"},\r\n ];\r\n}\r\n\r\nexport function getManageTabs() {\r\n return [\"featured-properties\", \"featured-openhouses\", \"featured-hot-properties\", \"featured-agents\", \"featured-built-for-you\", \"print-piece\", \"analytics\", \"ads\", \"clients\"];\r\n}\r\n\r\nexport function getManageTabText(index) {\r\n var lst = getManageTabs();\r\n if(index < 1 || index > lst.length) return \"\";\r\n return getManageTabs()[index - 1];\r\n}\r\n\r\nexport function getManageTabIndex(tab) {\r\n var idx = getManageTabs().findIndex((e) => {return e === tab});\r\n if(idx < 0) return 1;\r\n return (idx + 1);\r\n}\r\n\r\nexport function getNeighborhoodItemText(obj) {\r\n var txt = obj;\r\n \r\n if(Array.isArray(obj)){\r\n txt = [];\r\n obj.map(t => txt.push(getNeighborhoodItemText(t)));\r\n txt = txt.join(', ');\r\n }\r\n else if(obj.split(',').length > 1){\r\n var t1 = obj.split(',');\r\n txt = [];\r\n t1.map(t => txt.push(getNeighborhoodItemText(t)));\r\n txt = txt.join(', ');\r\n }\r\n else{\r\n if(obj.lastIndexOf(\"|\") > -1){\r\n txt = obj.substring(0, obj.lastIndexOf(\"|\"));\r\n }\r\n }\r\n \r\n return txt;\r\n}\r\n\r\nexport function getPropertyTypes() {\r\n\r\n var flst = getDDList('propertytype');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"sf\", text: \"Single Family Home\"},\r\n {value: \"cnd\", text: \"Condos & Townhomes\"},\r\n {value: \"mf\", text: \"Multiple Unit\"},\r\n {value: \"lot\", text: \"Vacant Land\"},\r\n {value: \"apt\", text: \"Apartment\"},\r\n {value: \"com\", text: \"Commercial\"},\r\n {value: \"rnt\", text: \"Rental\"}\r\n ];\r\n}\r\n\r\nexport function getPropertyTypeName(pType, isText) {\r\n var rval = \"\";\r\n var val = [];\r\n var lst = getPropertyTypes();\r\n var flst = [];\r\n if(Array.isArray(pType)){\r\n val = [].concat(pType);\r\n }\r\n else if(!Array.isArray(pType)){\r\n val = pType.split(\",\");\r\n }\r\n val.map(v => {\r\n if(isText){\r\n flst = lst.filter(t => t.text.toLowerCase() === v.toLowerCase());\r\n }\r\n else{\r\n flst = lst.filter(t => t.value.toLowerCase() === v.toLowerCase());\r\n }\r\n if(flst && flst.length > 0){\r\n if(isText){\r\n rval = rval + (rval === \"\" ? flst[0].value : \", \" + flst[0].value);\r\n }\r\n else{\r\n rval = rval + (rval === \"\" ? flst[0].text : \", \" + flst[0].text);\r\n }\r\n }\r\n return null; \r\n })\r\n \r\n //lst = lst.filter(t => t.value === pType.toLowerCase());\r\n //return ((lst && lst.length > 0) ? lst[0].text : \"\");\r\n\r\n return rval;\r\n}\r\n\r\nexport function getFormattedOptionsForReactSelect(array) {\r\n return array.map(function(item) {\r\n return { value: item.value, label: item.text }\r\n });\r\n}\r\n\r\nexport function getFormattedValueForReactSelect(array, val, isMulti) {\r\n if(isMulti){\r\n var aVal = null;\r\n if(val && val.length > 0){\r\n aVal = [];\r\n array.map(function(item) {\r\n if(val.indexOf(item.value) >= 0){\r\n aVal.push({ value: item.value, label: item.text});\r\n }\r\n return null;\r\n });\r\n }\r\n return aVal;\r\n }\r\n else{\r\n var iVal = null;\r\n if(val){\r\n array.map(function(item) {\r\n if(val === item.value){\r\n iVal = { value: item.value, label: item.text};\r\n return null;\r\n }\r\n return null;\r\n });\r\n }\r\n return iVal;\r\n }\r\n}\r\n\r\nexport function getStories() {\r\n var flst = getDDList('stories');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"Single Story\", text: \"Single Story\"},\r\n {value: \"Greater than Single Story\", text: \"Greater than Single Story\"}\r\n ];\r\n}\r\n\r\nexport function getCondoTypes() { \r\n var flst = getDDList('condotype');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"Condominium\", text: \"Condo Only\"},\r\n {value: \"Townhouse\", text: \"Townhomes Only\"},\r\n {value: \"Patio Home Detached\", text: \"Patio Homes Only\"}\r\n ];\r\n}\r\n\r\nexport function getLotFeatures() {\r\n var flst = getDDList('lotfeature');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"Beach Access\", text: \"Beach Access\"},\r\n {value: \"City or Village\", text: \"City or Village\"},\r\n {value: \"Commercial Zoning\", text: \"Commercial Zoning\"},\r\n {value: \"Corner Lot\", text: \"Corner Lot\"},\r\n {value: \"Cul De Sac\", text: \"Cul De Sac\"},\r\n {value: \"Deed Restriction\", text: \"Deed Restriction\"},\r\n {value: \"Flood Zone\", text: \"Flood Zone\"},\r\n {value: \"Green Area\", text: \"Green Area\"},\r\n {value: \"Home Office Zoning\", text: \"Home Office Zoning\"},\r\n {value: \"Horses Permitted\", text: \"Horses Permitted\"},\r\n {value: \"Industrial\", text: \"Industrial\"},\r\n {value: \"Near Bus Line\", text: \"Near Bus Line\"},\r\n {value: \"Neighborhood Street\", text: \"Neighborhood Street\"},\r\n {value: \"On Golf Course\", text: \"On Golf Course\"},\r\n {value: \"On Reservation\", text: \"On Reservation\"},\r\n {value: \"Preservation District\", text: \"Preservation District\"},\r\n {value: \"Private Road\", text: \"Private Road\"},\r\n {value: \"Recreational\", text: \"Recreational\"},\r\n {value: \"Residential\", text: \"Residential\"},\r\n {value: \"Right of Way\", text: \"Right of Way\"},\r\n {value: \"Rural\", text: \"Rural\"},\r\n {value: \"Secluded\", text: \"Secluded\"},\r\n {value: \"Ski in and out\", text: \"Ski in and out\"},\r\n {value: \"Slope View\", text: \"Slope View\"},\r\n {value: \"Subdivision\", text: \"Subdivision\"}\r\n ];\r\n}\r\n\r\nexport function getPropertyStyles() {\r\n var flst = getDDList('propertystyle');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"2 Story\", text: \"2 Story\"},\r\n {value: \"A-Frame\", text: \"A-Frame\"},\r\n {value: \"Bungalow\", text: \"Bungalow\"},\r\n {value: \"Cabin\", text: \"Cabin\"},\r\n {value: \"Cape Cod\", text: \"Cape Cod\"},\r\n {value: \"Carriage House\", text: \"Carriage House\"},\r\n {value: \"Chalet\", text: \"Chalet\"},\r\n {value: \"Colonial\", text: \"Colonial\"},\r\n {value: \"Contemporary\", text: \"Contemporary\"},\r\n {value: \"Cottage\", text: \"Cottage\"},\r\n {value: \"Farmhouse\", text: \"Farmhouse\"},\r\n {value: \"Foursquare\", text: \"Foursquare\"},\r\n {value: \"Greek Revival\", text: \"Greek Revival\"},\r\n {value: \"Hillside\", text: \"Hillside\"},\r\n {value: \"Historic\", text: \"Historic\"},\r\n {value: \"Log Home\", text: \"Log Home\"},\r\n {value: \"Mediterranean/Spanish\", text: \"Mediterranean/Spanish\"},\r\n {value: \"Mobile Manu - Double Wide\", text: \"Mobile Manu - Double Wide\"},\r\n {value: \"Mobile Manu Home Park\", text: \"Mobile Manu Home Park\"},\r\n {value: \"Mobile Manu Home With Land\", text: \"Mobile Manu Home With Land\"},\r\n {value: \"Mobile Manu - Single Wide\", text: \"Mobile Manu - Single Wide\"},\r\n {value: \"Modular\", text: \"Modular\"},\r\n {value: \"Old Style\", text: \"Old Style\"},\r\n {value: \"Patio\", text: \"Patio\"},\r\n {value: \"Raised Ranch\", text: \"Raised Ranch\"},\r\n {value: \"Ranch\", text: \"Ranch\"},\r\n {value: \"Rehab Needed\", text: \"Rehab Needed\"},\r\n {value: \"Seasonal\", text: \"Seasonal\"},\r\n {value: \"Split Level\", text: \"Split Level\"},\r\n {value: \"Traditional\", text: \"Traditional\"},\r\n {value: \"Transitional\", text: \"Transitional\"},\r\n {value: \"Tudor\", text: \"Tudor\"},\r\n {value: \"Victorian\", text: \"Victorian\"}\r\n ];\r\n}\r\n\r\nexport function getRooms() {\r\n var flst = getDDList('roompref');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"1st Floor Bedroom\", text: \"1st Floor Bedroom\"},\r\n {value: \"1st Floor Master Bedroom\", text: \"1st Floor Master Bedroom\"},\r\n {value: \"1st Floor Master Suite\", text: \"1st Floor Master Suite\"},\r\n {value: \"Basement / Rec Room\", text: \"Basement / Rec Room\"},\r\n {value: \"Bonus Room\", text: \"Bonus Room\"},\r\n {value: \"Den/Study\", text: \"Den/Study\"},\r\n {value: \"Family Room\", text: \"Family Room\"},\r\n {value: \"Florida/Sun Room- Heated\", text: \"Florida/Sun Room- Heated\"},\r\n {value: \"Florida/Sun Room- Unheated\", text: \"Florida/Sun Room- Unheated\"},\r\n {value: \"Foyer/Entry Hall\", text: \"Foyer/Entry Hall\"},\r\n {value: \"Garage Apartment\", text: \"Garage Apartment\"},\r\n {value: \"Great Room\", text: \"Great Room\"},\r\n {value: \"Guest Suite\", text: \"Guest Suite\"},\r\n {value: \"In-Law - see Remarks\", text: \"In-Law - see Remarks\"},\r\n {value: \"Laundry-1st Floor\", text: \"Laundry-1st Floor\"},\r\n {value: \"Laundry-2nd Floor\", text: \"Laundry-2nd Floor\"},\r\n {value: \"Laundry-Basement\", text: \"Laundry-Basement\"},\r\n {value: \"Laundry-Common\", text: \"Laundry-Common\"},\r\n {value: \"Laundry-None\", text: \"Laundry-None\"},\r\n {value: \"Library\", text: \"Library\"},\r\n {value: \"Living Room\", text: \"Living Room\"},\r\n {value: \"Loft\", text: \"Loft\"},\r\n {value: \"Master Bedroom Bath\", text: \"Master Bedroom Bath\"},\r\n {value: \"Morning Room\", text: \"Morning Room\"},\r\n {value: \"Office\", text: \"Office\"},\r\n {value: \"Porch - Enclosed\", text: \"Porch - Enclosed\"},\r\n {value: \"Porch - Open\", text: \"Porch - Open\"},\r\n {value: \"Porch - Screened\", text: \"Porch - Screened\"},\r\n {value: \"Studio\", text: \"Studio\"},\r\n {value: \"Workshop\", text: \"Workshop\"}\r\n ];\r\n}\r\n\r\nexport function getAccessibilities() { \r\n var flst = getDDList('accessibility');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: \"32 Inch Doors - some\", text: \"32 Inch Doors - some\"},\r\n {value: \"Accessible/ANSI - some\", text: \"Accessible/ANSI - some\"},\r\n {value: \"Adaptable Home - some\", text: \"Adaptable Home - some\"},\r\n {value: \"Bath - Removable Cabinets\", text: \"Bath - Removable Cabinets\"},\r\n {value: \"Built to ANSI standards\", text: \"Built to ANSI standards\"},\r\n {value: \"Chairlift - see Remarks\", text: \"Chairlift - see Remarks\"},\r\n {value: \"Elevator - ANSI standard\", text: \"Elevator - ANSI standard\"},\r\n {value: \"Entry Level Bedroom\", text: \"Entry Level Bedroom\"},\r\n {value: \"Handicap Doors - Some\", text: \"Handicap Doors - Some\"},\r\n {value: \"Kitchen - Adj Cabinets\", text: \"Kitchen - Adj Cabinets\"},\r\n {value: \"No Interior Steps\", text: \"No Interior Steps\"},\r\n {value: \"No Step Entry\", text: \"No Step Entry\"},\r\n {value: \"No Step Laundry\", text: \"No Step Laundry\"},\r\n {value: \"No Step Shower\", text: \"No Step Shower\"},\r\n {value: \"Ramp\", text: \"Ramp\"},\r\n {value: \"Visual Alert System\", text: \"Visual Alert System\"},\r\n {value: \"Wheelchair Bathroom\", text: \"Wheelchair Bathroom\"},\r\n {value: \"Wheelchair Hall - 4 ft plus\", text: \"Wheelchair Hall - 4 ft plus\"},\r\n {value: \"Wheelchair Kitchen\", text: \"Wheelchair Kitchen\"}\r\n ];\r\n}\r\n\r\nexport function getEntryDays() {\r\n\r\n var flst = getDDList('entrydayold');\r\n if(flst && flst.length > 0) return flst;\r\n\r\n return [\r\n {value: '1', text: 'Show only new listings in the past 1 day' },\r\n {value: '2', text: 'Show only new listings in the past 2 days' },\r\n {value: '3', text: 'Show only new listings in the past 3 days' },\r\n {value: '7', text: 'Show only new listings in the past 1 week' },\r\n ];\r\n}\r\n\r\nexport function getImageRoomTypes() {\r\n return [\r\n {value: 'exterior', text: 'Exterior' },\r\n {value: 'kitchen', text: 'Kitchen' },\r\n {value: 'bathroom', text: 'Bathroom' },\r\n {value: 'bedroom', text: 'Bedroom' },\r\n /* {value: 'animals', text: 'Animals' }, */\r\n /* {value: 'backyard', text: 'Backyard' }, */\r\n {value: 'cinema_room', text: 'Cinema Room' },\r\n {value: 'community_amenities', text: 'Community Amenities' },\r\n /* {value: 'corridor', text: 'Corridor' }, */\r\n {value: 'details', text: 'Details' },\r\n {value: 'dining_area', text: 'Dining Area' },\r\n /* {value: 'empty_room', text: 'Empty Room' }, */\r\n {value: 'foyer_entrance', text: 'Foyer Entrance' },\r\n {value: 'front_house', text: 'Front House' },\r\n {value: 'garage', text: 'Garage' },\r\n {value: 'gym', text: 'Gym' }, \r\n {value: 'laundry_room', text: 'Laundry Room' },\r\n {value: 'living,living_room', text: 'Living' },\r\n {value: 'map_location', text: 'Map Location' },\r\n {value: 'misc_room', text: 'Misc Room' },\r\n {value: 'mountain_view', text: 'Mountain View' },\r\n /* {value: 'non_related', text: 'Non Related' }, */\r\n {value: 'office', text: 'Office' },\r\n {value: 'outdoor_building', text: 'Outdoor Building' },\r\n {value: 'patio_terrace', text: 'Patio Terrace' },\r\n {value: 'plan', text: 'Plan' },\r\n {value: 'pool', text: 'Pool' },\r\n {value: 'sauna', text: 'Sauna' },\r\n {value: 'sport_court', text: 'Sport Court' },\r\n {value: 'stairs', text: 'Stairs' },\r\n {value: 'utility_room', text: 'Utility Room' },\r\n {value: 'walk_in_closet_pantry', text: 'Walk In Closet Pantry' },\r\n {value: 'water_view', text: 'Water View' },\r\n {value: 'wine_room', text: 'Wine Room' },\r\n ];\r\n}\r\n\r\nexport function getImageExteriorTypes() {\r\n return [\r\n {value: 'art_deco', text: 'Art Deco' },\r\n {value: 'cape_cod', text: 'Cape Cod' },\r\n {value: 'colonial', text: 'Colonial' },\r\n {value: 'contemporary', text: 'Contemporary' },\r\n {value: 'craftsman', text: 'Craftsman' },\r\n {value: 'farmhouse', text: 'Farmhouse' },\r\n {value: 'italianate', text: 'Italianate' },\r\n {value: 'log', text: 'Log' },\r\n {value: 'mediterranean_spanish', text: 'Mediterranean Spanish' },\r\n {value: 'neoclassical_greek_revival', text: 'Neoclassical Greek Revival' },\r\n {value: 'oriental', text: 'Oriental' },\r\n {value: 'prairie', text: 'Prairie' },\r\n {value: 'pueblo_revival', text: 'Pueblo Revival' },\r\n {value: 'ranch', text: 'Ranch' },\r\n {value: 'tudor', text: 'Tudor' },\r\n {value: 'victorian', text: 'Victorian' }, \r\n ];\r\n}\r\n\r\nexport function toProperCase(str) {\r\n var sentence = str.toLowerCase().replace(/_/g,\" \").split(\" \");\r\n for(var i = 0; i < sentence.length; i++){\r\n sentence[i] = sentence[i][0].toUpperCase() + sentence[i].slice(1);\r\n } \r\n return sentence.join(\" \");\r\n}\r\n\r\nexport function getMyAgentTabs() {\r\n return [\"suggestions\", \"listings\", \"contact\", \"invitations\"];\r\n}\r\nexport function getMyAgentTabText(index) {\r\n var lst = getMyAgentTabs();\r\n if(index < 1 || index > lst.length) return \"\";\r\n return getMyAgentTabs()[index - 1];\r\n}\r\n\r\nexport function getMyAgentTabIndex(tab) {\r\n var idx = getMyAgentTabs().findIndex((e) => {return e === tab});\r\n if(idx < 0) return 1;\r\n return (idx + 1);\r\n}\r\n\r\nexport function IsMLSNumber(text) {\r\n return new RegExp('^[BbRrSs][0-9]{1,7}$').test(text);\r\n}\r\n\r\nexport function IsMultiZip(text) {\r\n return (/^(\\d{5}(\\s*[,]\\s*\\d{5})+)$/.test(text.trim().replace(/(^,)|(,$)/g, \"\").trim()));\r\n}\r\n\r\nexport function IsSingleZip(text) {\r\n return (/^(\\d{5})$/.test(text.trim()));\r\n}\r\n\r\nexport function getAdTypes() {\r\n return [\r\n {value: \"custom\", text: \"Custom Ad\"},\r\n {value: \"googletag\", text: \"Google Tag\"},\r\n {value: \"adpersistence\", text: \"Ad Persistence\"},\r\n ];\r\n}\r\n\r\nexport function getAdSizes() {\r\n return [\r\n {value: \"home_banner_300x50\", text: \"Home Banner Ad (300x50)\", desc: \"Banner Ads to be displayed on home page\"},\r\n {value: \"property_card_270x285\", text: \"Property Card Ad (270x285)\", desc: \"Ads to be displayed on property cards\"},\r\n {value: \"footer_728x90\", text: \"Footer Ad (728x90)\", desc: \"Ads to be displayed in the footer\"},\r\n {value: \"mortgage_banner_700x90\", text: \"Mortgage Banner Ad (700x90)\", desc: \"Mortgage Banner Ads to be displayed on property detail page\"},\r\n {value: \"mortgage_card_280x280\", text: \"Mortgage Card Ad (280x280)\", desc: \"Mortgage Card Ads to be displayed on property detail page\"},\r\n {value: \"large_banner_921x450\", text: \"Large Banner Ad (921x450)\", desc: \"Large Banner Ads to be displayed on open houses page\"},\r\n ];\r\n}\r\n\r\nexport function getHomeBannerAdId() {\r\n return getAdSizes()[0].value;\r\n}\r\n\r\nexport function getPropertyCardAdId() {\r\n return getAdSizes()[1].value;\r\n}\r\n\r\nexport function getFooterAdId() {\r\n return getAdSizes()[2].value;\r\n}\r\n\r\nexport function getMortgageBannerAdId() {\r\n return getAdSizes()[3].value;\r\n}\r\n\r\nexport function getMortgageCardAdId() {\r\n return getAdSizes()[4].value;\r\n}\r\n\r\nexport function getLargeBannerAdId() {\r\n return getAdSizes()[5].value;\r\n}\r\n\r\nexport function getAdDesc(val) {\r\n var lst = getAdSizes();\r\n lst = lst.filter(t => t.value.toString() === val.toString());\r\n return ((lst && lst.length > 0) ? lst[0].desc : \"\");\r\n}\r\n\r\nexport function isValueChanged(val, origVal, isNumber, defaultVal) {\r\n if(defaultVal !== undefined && defaultVal !== null) {\r\n if(isNumber){ \r\n if(val !== undefined && val !== null && (origVal === undefined || origVal === null || parseInt(origVal,10) === 0) &&\r\n parseInt(val,10) !== parseInt(defaultVal,10)){\r\n return true;\r\n }\r\n else if(val !== undefined && val !== null && origVal !== undefined && origVal !== null &&\r\n parseInt(val,10) !== parseInt(defaultVal,10) && parseInt(val,10) !== parseInt(origVal,10)){\r\n return true;\r\n }\r\n }\r\n else if(!isNumber){ \r\n if(val !== undefined && val !== null && (origVal === undefined || origVal === null) &&\r\n val !== defaultVal){\r\n return true;\r\n }\r\n else if(val !== undefined && val !== null && origVal !== undefined && origVal !== null &&\r\n val !== origVal){\r\n return true;\r\n }\r\n else if(val !== origVal && val !== defaultVal){\r\n return true;\r\n }\r\n }\r\n }\r\n else {\r\n if(((val === undefined || val === null) && origVal !== undefined && origVal !== null) ||\r\n (val !== undefined && val !== null && (origVal === undefined || origVal === null))){\r\n return true;\r\n }\r\n else if((val !== undefined && val !== null && origVal !== undefined && origVal !== null) &&\r\n isNumber && parseInt(val,10) !== parseInt(origVal,10)){\r\n return true; \r\n }\r\n else if((val !== undefined && val !== null && origVal !== undefined && origVal !== null) &&\r\n !isNumber && val !== origVal){\r\n return true; \r\n }\r\n } \r\n \r\n return false;\r\n}\r\n\r\nexport function getGUID() {\r\n var lut = []; \r\n for (var i=0; i<256; i++) { lut[i] = (i<16?'0':'')+(i).toString(16); }\r\n var d0 = Math.random()*0xffffffff|0;\r\n var d1 = Math.random()*0xffffffff|0;\r\n var d2 = Math.random()*0xffffffff|0;\r\n var d3 = Math.random()*0xffffffff|0;\r\n // eslint-disable-next-line\r\n return lut[d0&0xff]+lut[d0>>8&0xff]+lut[d0>>16&0xff]+lut[d0>>24&0xff]+'-'+lut[d1&0xff]+lut[d1>>8&0xff]+'-'+lut[d1>>16&0x0f|0x40]+lut[d1>>24&0xff]+'-'+lut[d2&0x3f|0x80]+lut[d2>>8&0xff]+'-'+lut[d2>>16&0xff]+lut[d2>>24&0xff]+lut[d3&0xff]+lut[d3>>8&0xff]+lut[d3>>16&0xff]+lut[d3>>24&0xff];\r\n}\r\n\r\nexport function getSlotsOptions(cnt) {\r\n var slotsList = [];\r\n if(cnt){\r\n slotsList.push({value: \"\", text: \"All Slots\"});\r\n for(var i = 1; i <= cnt; i++){\r\n slotsList.push({value: i.toString(), text: \"Slot \"+ i.toString()});\r\n }\r\n }\r\n return slotsList;\r\n}\r\n\r\nexport function getDDList(name) {\r\n if(process.env.REACT_APP_SiteCustomizationOptions !== undefined && process.env.REACT_APP_SiteCustomizationOptions !== null && process.env.REACT_APP_SiteCustomizationOptions !== \"\"){\r\n var jsonStr = JSON.parse(process.env.REACT_APP_SiteCustomizationOptions);\r\n if(jsonStr[\"CommonOptions\"] !== undefined && jsonStr[\"CommonOptions\"] !== null && jsonStr[\"CommonOptions\"] !== \"\"){\r\n if(jsonStr[\"CommonOptions\"][\"DDLists\"] !== undefined && jsonStr[\"CommonOptions\"][\"DDLists\"] !== null && \r\n jsonStr[\"CommonOptions\"][\"DDLists\"] !== \"\" && jsonStr[\"CommonOptions\"][\"DDLists\"].length > 0){\r\n var flst = jsonStr[\"CommonOptions\"][\"DDLists\"].filter(f => f.Name === name);\r\n if(flst && flst.length > 0 && flst[0].List && flst[0].List.length > 0){ \r\n return flst[0].List;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return [];\r\n}\r\n\r\nexport function getNumberOfDaysWeeks(num) {\r\n if(num && num !== \"\" && parseInt(num, 10) > 0){\r\n const inum = parseInt(num, 10);\r\n if(inum === 365){\r\n return \"1 year\";\r\n }\r\n else if(inum === 180){\r\n return \"6 months\";\r\n }\r\n else if(inum === 150){\r\n return \"5 months\";\r\n }\r\n else if(inum === 120){\r\n return \"4 months\";\r\n }\r\n else if(inum === 90){\r\n return \"3 months\";\r\n }\r\n else if(inum === 60){\r\n return \"2 months\";\r\n }\r\n else if(inum === 30){\r\n return \"1 month\";\r\n }\r\n else if(inum === 21){\r\n return \"3 weeks\";\r\n }\r\n else if(inum === 14){\r\n return \"2 weeks\";\r\n }\r\n else if(inum === 7){\r\n return \"1 week\";\r\n }\r\n else if(inum === 1){\r\n return \"1 day\";\r\n }\r\n else{\r\n return inum + \" days\";\r\n }\r\n }\r\n\r\n return num;\r\n}","//import { CALL_API, Schemas } from '../store/api';\r\n//import { normalize, schema } from 'normalizr';\r\n\r\nexport const SEARCH_REQUEST = 'SEARCH_REQUEST';\r\nexport const SEARCH_SUCCESS = 'SEARCH_SUCCESS';\r\nexport const SEARCH_FAILURE = 'SEARCH_FAILURE';\r\nexport const UPDATE_PARAMS_REQUEST = 'UPDATE_PARAMS_REQUEST';\r\nexport const RESET_PARAMS_REQUEST = 'RESET_PARAMS_REQUEST';\r\n\r\n// export const fetchListings = (key, body) => ({\r\n// [CALL_API]: {\r\n// types: [SEARCH_REQUEST, SEARCH_SUCCESS, SEARCH_FAILURE],\r\n// method: 'POST',\r\n// body: {\r\n// limitrecords: \"100\",\r\n// ficoscore: \"760-850\",\r\n// loantype: \"30YrFixed\",\r\n// lifestyle: \"couple-no-kids\",\r\n// orderby: \"lastupdated\",\r\n// orderbydirection: \"ASC\",\r\n// skip: 0,\r\n// propertytype: \"sf\",\r\n// ...body\r\n// },\r\n// endpoint: 'listingsdata'//,\r\n// //schema: Schemas.LISTING_ARRAY\r\n// },\r\n// key: key\r\n// });\r\n\r\nexport const updateParameters = (parameters, skipFlag) => (dispatch, getState) => {\r\n return dispatch({type: UPDATE_PARAMS_REQUEST, parameters: parameters, skipFlag: skipFlag ? skipFlag : false })\r\n}\r\n\r\nexport const resetParameters = (params) => (dispatch, getState) => {\r\n return dispatch({type: RESET_PARAMS_REQUEST, params })\r\n}\r\n\r\n","import { CALL_API, Schemas } from '../store/api';\r\n\r\nexport const INVITATIONS_REQUEST = 'INVITATIONS_REQUEST';\r\nexport const INVITATIONS_SUCCESS = 'INVITATIONS_SUCCESS';\r\nexport const INVITATIONS_DELETE_REQUEST = 'INVITATIONS_DELETE_REQUEST';\r\nexport const INVITATIONS_DELETE_SUCCESS = 'INVITATIONS_DELETE_SUCCESS';\r\nexport const INVITATIONS_FAILURE = 'INVITATIONS_FAILURE';\r\n\r\nexport const fetchInvitations = (params) => (dispatch, getState) => {\r\n const { Id, type } = getState().session.audience;\r\n\r\n var bParams = params;\r\n if(!bParams || bParams.onlypending === undefined || bParams.onlypending === null){\r\n bParams = {onlypending: true};\r\n }\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [INVITATIONS_REQUEST, INVITATIONS_SUCCESS, INVITATIONS_FAILURE],\r\n method: 'POST',\r\n body: bParams,\r\n endpoint: `${type}s/${Id}/invites`,\r\n schema: Schemas.INVITATION_ITEM_ARRAY\r\n }\r\n })\r\n};\r\n\r\nexport const deleteInvitation = id => (dispatch, getState) => {\r\n /* const { Id, type } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [INVITATIONS_DELETE_REQUEST, INVITATIONS_DELETE_SUCCESS, INVITATIONS_FAILURE],\r\n method: 'DELETE',\r\n endpoint: `${type}s/${Id}/invitations`,\r\n id: id\r\n }\r\n }); */\r\n\r\n /* return {\r\n types: INVITATIONS_DELETE_SUCCESS,\r\n id: id\r\n }; */\r\n\r\n const { invitations } = getState();\r\n\r\n return {\r\n ...invitations,\r\n isFetching: false,\r\n ids: invitations.ids.filter(n => n !== id)\r\n };\r\n};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"themeName\":\"light\"};","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { IndexLinkContainer } from 'react-router-bootstrap'\r\nimport { Nav, Navbar, NavItem, NavDropdown} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\nclass NavbarBuilderSubSite extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { isMobile: false, navExpanded: false } \r\n\r\n this.truePlaceholder = 'http://truebytlc';\r\n this.trueCmsPlaceholder = 'http://cms.truebytlc';\r\n }\r\n\r\n componentDidMount() {\r\n if (window.innerWidth < 768) { \r\n if(this.mainElement){\r\n this.setState({ isMobile: true });\r\n }\r\n }\r\n \r\n window.addEventListener(\"resize\", this.updateIsMobile);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.updateIsMobile);\r\n } \r\n\r\n updateIsMobile = () => {\r\n if(this.mainElement){\r\n this.setState({ isMobile: window.innerWidth < 768});\r\n }\r\n }\r\n\r\n hideAllSubmenus = () => {\r\n var submenus = document.getElementsByClassName('navbar-subsitemenu');\r\n for (var i = 0; i < submenus.length; i++)\r\n submenus[i].style.display = 'none';\r\n }\r\n\r\n closeNav = () => {\r\n if(this.mainElement){\r\n this.setState({ navExpanded: false });\r\n }\r\n }\r\n\r\n goTo = (url) => {\r\n this.props.history.push(url);\r\n this.closeNav();\r\n }\r\n\r\n contains = (url, key) => { return url.includes(key) }\r\n \r\n toUrl = (url) => { \r\n var result = url.replace(this.truePlaceholder, '').replace(this.trueCmsPlaceholder, '/info'); \r\n if (this.props.purlPrefix && this.props.purlPrefix.url)\r\n result = this.props.purlPrefix.url + result;\r\n return result;\r\n }\r\n\r\n buildUrlWithMapping = (item) => {\r\n var result = item.url \r\n if (item.url.includes(this.truePlaceholder) || item.url.includes(this.trueCmsPlaceholder)) {\r\n result = this.toUrl(item.url);\r\n }\r\n return result;\r\n }\r\n\r\n subMenuOnClick = (subChild) => {\r\n var url = this.buildUrlWithMapping(subChild);\r\n if (url !== subChild.url)\r\n this.goTo(url);\r\n else\r\n window.open(url)\r\n }\r\n\r\n buildDropDown = (item, i) => {\r\n const hasPermission = this.buildIndexLink(item, i) // if returns null means top level dropdown is true page that's hidden\r\n if (!hasPermission) return null;\r\n\r\n return (\r\n {}} // onToggle required to use open but we are using css hover\r\n >\r\n {item.children.map((child, i) => {\r\n return this.buildIndexLink(child, i); \r\n })}\r\n \r\n );\r\n }\r\n\r\n buildIndexLink = (item, i, isNestedLink) => {\r\n switch (true) {\r\n case this.contains(item.url, this.truePlaceholder):\r\n return (\r\n \r\n {item.title}\r\n \r\n );\r\n default:\r\n return this.subMenuOnClick(item)}>{item.title}\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { purlPrefix } = this.props;\r\n var siteLogo = null;\r\n var menuItems = [];\r\n if(process.env.REACT_APP_WebsiteSubMenu !== undefined && process.env.REACT_APP_WebsiteSubMenu !== null &&\r\n process.env.REACT_APP_WebsiteSubMenu !== \"\"){\r\n const mJson = JSON.parse(process.env.REACT_APP_WebsiteSubMenu);\r\n siteLogo = mJson.logo || null;\r\n menuItems = mJson.menu || [];\r\n }\r\n\r\n return (\r\n
this.mainElement = ref}>\r\n \r\n \r\n {siteLogo &&\r\n \r\n \"\"\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n purlPrefix: state.session.purlPrefix || { url: ''},\r\n});\r\n\r\nexport default connect(mapStateToProps)(NavbarBuilderSubSite);","import React from 'react';\r\nimport DefaultPhoto from '../img/default-photo.png';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n//import Loader from './loader';\r\nimport TimeAgo from 'react-timeago';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {orderBy} from 'lodash';\r\nimport { GetSectionCustomizationOptions } from './util';\r\nimport * as activityActions from 'actions/activity';\r\nimport * as feedActions from 'actions/feed';\r\n\r\n\r\n//const SiteCustomizationOptions = GetSiteCustomizationOptions();\r\nconst ProfilePageCustomizationOptions = GetSectionCustomizationOptions(\"ProfilePageOptions\");\r\n\r\nclass QuickBar extends React.Component {\r\n\r\n componentDidMount() { \r\n document.getElementsByClassName(\"bottom-bar\")[0].addEventListener('scroll', this.handleScroll);\r\n }\r\n\r\n loadMore = () => {\r\n const { selectedClient, selectedActivity, activityActions } = this.props;\r\n\r\n if (selectedActivity.isFetching) return;\r\n\r\n if (selectedClient) {\r\n activityActions.loadActivity(selectedClient.Id, true);\r\n }\r\n else {\r\n activityActions.loadActivity('mine', true);\r\n }\r\n }\r\n \r\n handleScroll = () => {\r\n const { selectedActivity } = this.props;\r\n if (selectedActivity.ids.length === 0 || selectedActivity.isFetching) {\r\n return;\r\n }\r\n var offsetTop = (document.getElementsByClassName('activity_item')[selectedActivity.ids.length-1]).offsetTop;\r\n var scrollTop = document.getElementsByClassName('bottom-bar')[0].clientHeight + \r\n document.getElementsByClassName('bottom-bar')[0].scrollTop;\r\n\r\n if (offsetTop <= scrollTop)\r\n this.loadMore();\r\n }\r\n \r\n componentWillReceiveProps(nextProps) {\r\n\r\n //if ((!this.props.showQuickBar && nextProps.showQuickBar) ||\r\n if (JSON.stringify(this.props.selectedClient) !== JSON.stringify(nextProps.selectedClient)) {\r\n if (nextProps.selectedClient) {\r\n this.props.activityActions.loadActivity(nextProps.selectedClient.Id, true, true);\r\n }\r\n else {\r\n this.props.activityActions.loadActivity('mine', true, true);\r\n }\r\n\r\n const { selectedFeed, feedActions } = nextProps;\r\n if(!selectedFeed || (selectedFeed && !selectedFeed.isFetching && selectedFeed.ids && selectedFeed.ids.length === 0)){\r\n if(feedActions){\r\n if (nextProps.selectedClient) {\r\n feedActions.loadFeed(nextProps.selectedClient.Id, true);\r\n }\r\n else {\r\n feedActions.loadFeed('mine', true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(this.props.isSingleFetching && !nextProps.isSingleFetching){\r\n var acty = window.sessionStorage.getItem(\"CurrentActivityObject\");\r\n if(acty){\r\n acty = JSON.parse(acty);\r\n window.sessionStorage.removeItem(\"CurrentActivityObject\");\r\n const { feedItems } = nextProps;\r\n if(feedItems){\r\n var feedId = acty.ClientId + \"_\" + acty.ListingId;\r\n var feedItem = feedItems[feedId];\r\n if(feedItem){\r\n if(this.context && this.context.router && this.context.router.history){\r\n if(this.props.onQuickBarClose) this.props.onQuickBarClose();\r\n this.context.router.history.push('/dashboard/activityfeed/'+acty.ClientId + \"_\" + acty.ListingId);\r\n }\r\n }\r\n else{\r\n if(acty.ListingId && this.context && this.context.router && this.context.router.history){\r\n if(this.props.onQuickBarClose) this.props.onQuickBarClose();\r\n this.context.router.history.push('/propertydetail/' + acty.ListingId + '/' + acty.SA.split(' ').join('-') + (acty.CT ? '_' + acty.CT.split(' ').join('-') : '') + (acty.ST ? '_' + acty.ST.split(' ').join('-') : '') + (acty.PC ? '_' + acty.PC.split(' ').join('-') : ''));\r\n }\r\n }\r\n }\r\n \r\n }\r\n }\r\n }\r\n\r\n goToTimeline(id){\r\n if(!this.props.isSingleFetching && id){\r\n const { activities, selectedFeed, feedItems, audience } = this.props;\r\n if(activities){\r\n const acty = activities[id];\r\n if(acty){\r\n if(acty.ActionName.toLowerCase().indexOf(\"search\") > -1){\r\n if(audience && audience.type === \"client\"){\r\n if(this.props.onQuickBarClose) this.props.onQuickBarClose();\r\n if(this.context && this.context.router && this.context.router.history){\r\n this.context.router.history.push('/dashboard/savedsearches');\r\n }\r\n }\r\n else{\r\n if(this.props.onQuickBarClose) this.props.onQuickBarClose();\r\n if(this.context && this.context.router && this.context.router.history){\r\n this.context.router.history.push('/agent/clients/' + acty.ClientId);\r\n }\r\n }\r\n }\r\n else{\r\n var showDashboard = true;\r\n if(feedItems && selectedFeed && selectedFeed.ids && selectedFeed.ids.length > 0){\r\n var feedId = acty.ClientId + \"_\" + acty.ListingId;\r\n var feeds = selectedFeed.ids.filter(f => f === feedId);\r\n if(feeds && feeds.length > 0){\r\n showDashboard = false;\r\n\r\n // Reload this on the timeline\r\n if (acty.ListingId !== null) {\r\n //this.props.feedActions.fetchListingFeed(acty.ClientId, acty.ListingId);\r\n this.props.feedActions.fetchActivityFeed(acty.ClientId, acty.ListingId, acty.Id);\r\n }\r\n window.sessionStorage.setItem(\"CurrentActivityObject\", JSON.stringify(acty));\r\n if(this.props.onQuickBarClose) this.props.onQuickBarClose();\r\n if(this.context && this.context.router && this.context.router.history){\r\n this.context.router.history.push('/dashboard');\r\n }\r\n }\r\n }\r\n if(showDashboard){\r\n if(this.props.feedActions){\r\n window.sessionStorage.setItem(\"CurrentActivityObject\", JSON.stringify(acty));\r\n if (acty.ListingId !== null) {\r\n //this.props.feedActions.fetchListingFeed(acty.ClientId, acty.ListingId);\r\n this.props.feedActions.fetchActivityFeed(acty.ClientId, acty.ListingId, acty.Id);\r\n }\r\n }\r\n }\r\n } \r\n } \r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { selectedActivity, activities, agent } = this.props;\r\n\r\n this.goToTimeline = this.goToTimeline.bind(this);\r\n\r\n var qbClass = (this.props.showQuickBar) ? \"quick-bar open\" : \"quick-bar\";\r\n\r\n var aList = [];\r\n if(selectedActivity && selectedActivity.ids && selectedActivity.ids.length > 0){\r\n aList = selectedActivity.ids.map(rowId => activities[rowId]);\r\n if(aList && aList.length > 0){\r\n //aList = orderBy(aList, ((a) => new Date(a.ActivityOn.replace('T',' ') + ' UTC')), ['desc']);\r\n aList = orderBy(aList, ((a) => new Date(a.ActivityOn + 'Z')), ['desc']);\r\n } \r\n }\r\n\r\n return(\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {selectedActivity && selectedActivity.ids && selectedActivity.ids.length === 0 && !selectedActivity.isFetching &&\r\n

No activities

\r\n }\r\n {selectedActivity && selectedActivity.ids && selectedActivity.ids.length > 0 &&\r\n
\r\n
\r\n Recent activity\r\n
\r\n
    \r\n {aList.map(act =>\r\n \r\n )}\r\n
\r\n
\r\n }\r\n {/* {selectedActivity && selectedActivity.isFetching && }\r\n {selectedActivity && selectedActivity.ids && selectedActivity.ids.length > 0 && !selectedActivity.isFetching &&\r\n
\r\n Load More\r\n
\r\n } */}\r\n
\r\n
\r\n
);\r\n }\r\n}\r\n\r\nQuickBar.contextTypes = {\r\n router: PropTypes.object.isRequired\r\n};\r\n\r\nclass QuickBarFeedRow extends React.Component {\r\n render() {\r\n // UTC to Local date\r\n //var localDate = new Date(this.props.ActivityItem.ActivityOn.replace('T',' ') + ' UTC');\r\n var localDate = new Date(this.props.ActivityItem.ActivityOn + 'Z');\r\n\r\n var propertyDescription = 'MLS# ' + this.props.ActivityItem.MLSNumber;\r\n if (this.props.ActivityItem.ListingId !== undefined && this.props.ActivityItem.ListingId !== null){\r\n propertyDescription = (this.props.ActivityItem.SA ? this.props.ActivityItem.SA + ' ' : '')\r\n + this.props.ActivityItem.CT + ', ' + this.props.ActivityItem.ST\r\n + ' (' + propertyDescription + ')';\r\n }\r\n var propertyLink = null;\r\n if (this.props.ActivityItem.ListingId !== undefined && this.props.ActivityItem.ListingId !== null){\r\n propertyLink = this.props.purlPrefix.url + '/propertydetail/' + this.props.ActivityItem.ListingId + '/' + \r\n (this.props.ActivityItem.SA ? this.props.ActivityItem.SA.split(' ').join('-') : this.props.ActivityItem.MLSNumber) + \r\n (this.props.ActivityItem.CT ? '_' + this.props.ActivityItem.CT.split(' ').join('-') : '') + \r\n (this.props.ActivityItem.ST ? '_' + this.props.ActivityItem.ST.split(' ').join('-') : '') + \r\n (this.props.ActivityItem.PC ? '_' + this.props.ActivityItem.PC.split(' ').join('-') : '') + \r\n (this.props.ActivityItem.LastActionBy === 'Client' ? '?clientId=' + this.props.ActivityItem.ClientId: '');\r\n }\r\n\r\n var lastAction = this.props.ActivityItem.ActionName.toLowerCase();\r\n var iconBgClass = \"activity_iconbox bg_\" + lastAction.replace(\"created\",\"\").replace(\"viewed\",\"\").replace(\"edited\",\"\").replace(\"updated\",\"\").replace(\"deleted\",\"\");\r\n var iconClass = \"fa fa-\" + lastAction.replace(\"created\",\"\").replace(\"viewed\",\"\").replace(\"edited\",\"\").replace(\"updated\",\"\").replace(\"deleted\",\"\").replace(\"favorite\",\"heart\").replace(\"property\",\"home\");\r\n var actionNm = lastAction.replace(\"createdcomment\", \"commented \")\r\n .replace(\"createdsearch\", (this.props.ActivityItem.LastActionBy === 'Client' ? \"saved a search\" : \"saved a search for You\"))\r\n .replace(\"created\",\"created a \").replace(\"viewed\",\"viewed \").replace(\"edited\",\"edited \")\r\n .replace(\"updated\",\"updated \").replace(\"deleted\",\"deleted a \")\r\n\r\n var uShortName = null;\r\n var uPhoto = \"\";\r\n if(this.props.ActivityItem && this.props.ActivityItem.LastActionBy && this.props.ActivityItem.LastActionBy === \"Client\"){\r\n uShortName = this.props.ActivityItem.ClientName.substring(0, 1);\r\n if(this.props.ActivityItem.ClientName.indexOf(\" \") >= 0) {\r\n var idx = this.props.ActivityItem.ClientName.indexOf(\" \");\r\n uShortName += this.props.ActivityItem.ClientName.substring(idx+1, idx+2);\r\n uPhoto = (\r\n \r\n {uShortName}\r\n \r\n );\r\n }\r\n if(this.props.ActivityItem && this.props.ActivityItem.ProfileImageUrl &&\r\n this.props.ActivityItem.ProfileImageUrl !== \"\"){\r\n uPhoto = \"\";\r\n }\r\n }\r\n if(this.props.ActivityItem && this.props.ActivityItem.LastActionBy && this.props.ActivityItem.LastActionBy === \"Agent\"){\r\n if(this.props.agent){\r\n uShortName = this.props.agent.FirstName.substring(0, 1) + this.props.agent.LastName.substring(0, 1);\r\n uPhoto = (\r\n \r\n {uShortName}\r\n \r\n );\r\n if(ProfilePageCustomizationOptions && ProfilePageCustomizationOptions.AllowAgentToUpdateProfile){\r\n if(this.props.agent && this.props.agent.UseMemberPhotoURL) {\r\n if(this.props.agent.MemberPhotoURL !== undefined &&\r\n this.props.agent.MemberPhotoURL !== null && this.props.agent.MemberPhotoURL !== \"\") {\r\n uPhoto = \"\";\r\n }\r\n }\r\n else{\r\n if(this.props.agent && this.props.agent.Profile && this.props.agent.Profile.ProfileImageName &&\r\n this.props.agent.Profile.ProfileImageName !== \"\"){\r\n uPhoto = \"\";\r\n }\r\n }\r\n }\r\n else{\r\n if(this.props.agent && this.props.agent.Profile && this.props.agent.Profile.ProfileImageName &&\r\n this.props.agent.Profile.ProfileImageName !== \"\"){\r\n uPhoto = \"\";\r\n }\r\n }\r\n }\r\n }\r\n \r\n var agentName = \"Your Agent \";\r\n if(this.props.agent){\r\n //agentName = this.props.agent.FirstName + \" \" + this.props.agent.LastName + \" \";\r\n agentName = this.props.agent.FirstName + \" \";\r\n }\r\n\r\n \r\n\r\n return(\r\n
  • \r\n\r\n
    { if(this.props.goToTimeline && this.props.ActivityItem) this.props.goToTimeline(this.props.ActivityItem.Id) }}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n { if(this.props.goToTimeline && this.props.ActivityItem) this.props.goToTimeline(this.props.ActivityItem.Id) }}>\r\n \r\n \r\n

    \r\n { if(this.props.goToTimeline && this.props.ActivityItem) this.props.goToTimeline(this.props.ActivityItem.Id) }}>\r\n \r\n {uPhoto}\r\n \r\n \r\n \r\n { if(this.props.goToTimeline && this.props.ActivityItem) this.props.goToTimeline(this.props.ActivityItem.Id) }}>\r\n {(this.props.ActivityItem.LastActionBy === 'Client') ? this.props.ActivityItem.ClientName : agentName } \r\n {actionNm}\r\n {this.props.ActivityItem.ListingId && this.props.ActivityItem.ListingId > 0 && lastAction.indexOf('property') === -1 ? (lastAction.indexOf('comment') === -1 ? ' for ' : ' about ') : ' '}\r\n \r\n {/* this.props.ActivityItem.ListingId && this.props.ActivityItem.ListingId > 0 && \r\n {propertyDescription} */\r\n }\r\n {this.props.ActivityItem.ListingId && this.props.ActivityItem.ListingId > 0 && \r\n {propertyDescription}\r\n }\r\n \r\n

    \r\n
    \r\n\r\n
  • \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => {\r\n const { feed, entities, clients, activity } = state;\r\n const selectedClient = entities.clients[clients.selectedClient];\r\n\r\n let selectedFeed;\r\n if (selectedClient) {\r\n selectedFeed = feed[selectedClient.Id];\r\n }\r\n else {\r\n selectedFeed = feed['mine'];\r\n }\r\n\r\n let selectedActivity;\r\n if (selectedClient) {\r\n selectedActivity = activity[selectedClient.Id];\r\n }\r\n else {\r\n selectedActivity = activity['mine'];\r\n }\r\n\r\n return {\r\n audience: state.session.audience,\r\n purlPrefix: state.session.purlPrefix || { url: ''},\r\n activities: entities.activities,\r\n feedItems: entities.feedItems,\r\n isSingleFetching: state.feed.isSingleFetching,\r\n agent: state.profile.agent,\r\n selectedClient,\r\n selectedActivity,\r\n selectedFeed\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n activityActions: bindActionCreators(activityActions, dispatch),\r\n feedActions: bindActionCreators(feedActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(QuickBar);","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { IndexLinkContainer } from 'react-router-bootstrap'\r\nimport { Nav, Navbar, NavItem, NavDropdown} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { getProfilePhoto } from '../containers/AgentOfficePage';\r\nimport logo from '../img/svg/truebytlc-logo.svg';\r\n\r\nclass NavbarBuilder extends React.Component {\r\n\r\n constructor(props) { \r\n super(props);\r\n this.state = { \r\n isMobile: false, \r\n navExpanded: false,\r\n menuItems: [\r\n {\r\n \"title\": \"Dashboard\",\r\n \"url\": \"http://truebytlc/dashboard\"\r\n },\r\n {\r\n \"title\": \"Find Homes\",\r\n \"url\": \"http://truebytlc/search\"\r\n }, \r\n {\r\n \"title\": \"About Us\",\r\n \"url\": \"http://truebytlc/aboutus\"\r\n }\r\n ]\r\n }\r\n\r\n this.truePlaceholder = 'http://truebytlc';\r\n this.trueCmsPlaceholder = 'http://cms.truebytlc';\r\n }\r\n\r\n componentDidMount() {\r\n if (window.innerWidth < 768) { \r\n if(this.mainElement){\r\n this.setState({ isMobile: false });\r\n }\r\n }\r\n \r\n window.addEventListener(\"resize\", this.updateIsMobile);\r\n }\r\n\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.updateIsMobile);\r\n }\r\n\r\n updateIsMobile = () => {\r\n if(this.mainElement){\r\n //this.setState({ isMobile: window.innerWidth < 768});\r\n }\r\n }\r\n\r\n hideAllSubmenus = () => {\r\n var submenus = document.getElementsByClassName('navbar-submenu');\r\n for (var i = 0; i < submenus.length; i++)\r\n submenus[i].style.display = 'none';\r\n }\r\n \r\n handleToggle = (expanded) => {\r\n if(this.mainElement){\r\n this.setState({ navExpanded: expanded });\r\n }\r\n }\r\n\r\n closeNav = () => {\r\n if(this.mainElement){\r\n this.setState({ navExpanded: false });\r\n }\r\n }\r\n\r\n goTo = (url) => {\r\n this.props.history.push(url);\r\n this.closeNav();\r\n } \r\n\r\n contains = (url, key) => { return url.includes(key) }\r\n \r\n toUrl = (url) => { \r\n var result = url.replace(this.truePlaceholder, '').replace(this.trueCmsPlaceholder, '/info'); \r\n if (this.props.purlPrefix && this.props.purlPrefix.url)\r\n result = this.props.purlPrefix.url + result;\r\n return result;\r\n }\r\n\r\n buildUrlWithMapping = (item) => {\r\n var result = item.url \r\n if (item.url.includes(this.truePlaceholder) || item.url.includes(this.trueCmsPlaceholder)) {\r\n result = this.toUrl(item.url);\r\n }\r\n return result;\r\n }\r\n\r\n subMenuOnClick = (subChild) => {\r\n var url = this.buildUrlWithMapping(subChild);\r\n if (url !== subChild.url)\r\n this.goTo(url);\r\n else\r\n window.open(url)\r\n }\r\n\r\n toggleSideMenu = (i) => { \r\n if(this.mainElement){\r\n this.setState({ isMobile: !this.state.isMobile});\r\n }\r\n }\r\n\r\n buildDropDown = (item, i) => {\r\n const hasPermission = this.buildIndexLink(item, i) // if returns null means top level dropdown is true page that's hidden\r\n if (!hasPermission)\r\n return null;\r\n\r\n if(window.innerWidth <= 1025){\r\n return (\r\n {}} // onToggle required to use open but we are using css hover\r\n onClick={() => this.toggleSideMenu(i)}>\r\n {item.children.map((child, i) => {\r\n return this.buildIndexLink(child, i);\r\n })}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {item.children.map((child, i) => {\r\n return this.buildIndexLink(child, i);\r\n })}\r\n \r\n );\r\n }\r\n\r\n buildIndexLink = (item, i, isNestedLink) => {\r\n const { isAnonymous, isAuthenticated } = this.props;\r\n switch (true) {\r\n case this.contains(item.url,`${this.truePlaceholder}/dashboard`):\r\n if (isAuthenticated && !isAnonymous){\r\n return (\r\n \r\n Dashboard\r\n \r\n );\r\n }\r\n else return null\r\n case this.contains(item.url, this.truePlaceholder):\r\n return (\r\n \r\n {item.title}\r\n \r\n );\r\n default:\r\n return this.subMenuOnClick(item)}>{item.title} \r\n }\r\n }\r\n\r\n render() {\r\n\r\n var siteLogo = logo;\r\n\r\n if (process.env.REACT_APP_WebsiteLogo !== undefined && process.env.REACT_APP_WebsiteLogo !== null &&\r\n process.env.REACT_APP_WebsiteLogo !== \"\"){\r\n siteLogo = process.env.REACT_APP_WebsiteLogo;\r\n }\r\n\r\n var logoClass = \"logo-img\";\r\n if (process.env.REACT_APP_LargeLogo === \"true\"){\r\n logoClass = \"large-logo-img\";\r\n }\r\n\r\n var purlAgentPhoto = '';\r\n const { purlPrefix } = this.props;\r\n const { agent } = purlPrefix;\r\n if (agent && agent.Profile && purlPrefix.url)\r\n purlAgentPhoto = getProfilePhoto(agent);\r\n const logoImage = !purlAgentPhoto ? \"\" : \r\n (
    \r\n
    \r\n \"\"\r\n
    \r\n \"\"\r\n \r\n
    );\r\n \r\n var menuItems = [];\r\n if(this.state.menuItems && this.state.menuItems.length > 0){\r\n menuItems = [].concat(this.state.menuItems);\r\n }\r\n if(process.env.REACT_APP_WebsiteMenu !== undefined && process.env.REACT_APP_WebsiteMenu !== null &&\r\n process.env.REACT_APP_WebsiteMenu !== \"\"){\r\n menuItems = JSON.parse(process.env.REACT_APP_WebsiteMenu);\r\n }\r\n\r\n return (\r\n this.mainElement = ref} inverse className={(purlPrefix && purlPrefix.url && purlPrefix.url !== \"\") ? \"new_stylemenu purl_agent\" : \"new_stylemenu\"} expanded={this.state.navExpanded} onToggle={(e) => this.handleToggle(e)}>\r\n \r\n \r\n \r\n {logoImage}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n {this.props.children}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n purlPrefix: state.session.purlPrefix || { url: ''},\r\n isAuthenticated: state.session.isAuthenticated || false\r\n});\r\n\r\nexport default connect(mapStateToProps)(NavbarBuilder);","import React, { Component } from 'react';\r\nimport TrueLogo from '../img/svg/truebytlc-logo.svg';\r\n\r\nclass ClientEULAText extends Component {\r\n\r\n render() {\r\n\r\n var siteLogo = TrueLogo;\r\n\r\n if (process.env.REACT_APP_WebsiteLogo !== undefined && process.env.REACT_APP_WebsiteLogo !== null &&\r\n process.env.REACT_APP_WebsiteLogo !== \"\"){\r\n siteLogo = process.env.REACT_APP_WebsiteLogo;\r\n }\r\n\r\n return (\r\n
    \r\n
    \"\"/
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ClientEULAText;","import React from 'react';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport ProfilePhoto from 'img/profile_photo.jpg';\r\nimport { IndexLinkContainer } from 'react-router-bootstrap'\r\nimport { Popover, OverlayTrigger, NavItem, Button, Badge, MenuItem, DropdownButton } from 'react-bootstrap';\r\nimport SelectClient, {SelectedClientName} from 'components/selectclient';\r\nimport { GetSectionCustomizationOptions } from 'components/util';\r\nimport NavbarBuilderSubSite from 'components/navbarbuildersubsite';\r\nimport QuickBar from 'components/quickbar';\r\nimport NavbarBuilder from 'components/navbarbuilder';\r\nimport base64 from 'base-64';\r\nimport utf8 from 'utf8';\r\nimport 'css/navbar.css';\r\nimport * as sessionActions from 'actions/session';\r\nimport * as settingActions from 'actions/settings';\r\nimport * as profileActions from 'actions/profile';\r\nimport * as clientActions from 'actions/clients';\r\nimport * as listingActions from 'actions/listings';\r\nimport * as activityActions from 'actions/activity';\r\nimport * as agentActions from 'actions/agents';\r\nimport ReactTooltip from 'react-tooltip'\r\nimport ClientEULAText from 'components/clienteulatext';\r\nimport Dialog from 'react-bootstrap-dialog';\r\nimport Cookies from 'universal-cookie';\r\nimport 'scss/_wordpressMenu.scss';\r\nimport 'scss/_loginButton.scss';\r\nimport 'scss/_navbar.scss';\r\n\r\n\r\nconst ThemeCustomizationOptions = GetSectionCustomizationOptions(\"ThemeOptions\");\r\nconst AdminCustomizationOptions = GetSectionCustomizationOptions(\"AdminOptions\");\r\nconst CommonCustomizationOptions = GetSectionCustomizationOptions(\"CommonOptions\");\r\nconst ProfilePageCustomizationOptions = GetSectionCustomizationOptions(\"ProfilePageOptions\");\r\n\r\n\r\nclass NavBar extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showQuickBar: false, \r\n nExpanded: false, \r\n activityFiltered: false,\r\n isMobile: false\r\n }; \r\n }\r\n\r\n componentDidMount() {\r\n this.componentInit(this.props.audience, this.props.profile);\r\n this.eulaCheck();\r\n this.checkForActivities();\r\n window.addEventListener(\"resize\", this.updateIsMobile);\r\n }\r\n\r\n componentInit = (audience, profile) => { \r\n /* const { profileActions, clientActions, settingActions } = this.props;\r\n\r\n if(audience && audience.Id && !profile){\r\n profileActions.fetchProfile();\r\n settingActions.fetchSettings();\r\n settingActions.fetchAuthMechanism();\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.FetchPrintPieceUrl){\r\n settingActions.fetchPrintPieceURL();\r\n } \r\n }\r\n if (audience && audience.type === 'client' && !this.props.agent) {\r\n profileActions.fetchMyAgentProfile();\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers && this.props.agentActions){\r\n this.props.agentActions.fetchTeamAgents();\r\n }\r\n }\r\n if (audience && audience.type === 'agent') {\r\n if(!this.props.isAnonymous){\r\n clientActions.fetchClients();\r\n this.props.listingActions.fetchAgentClientListings(\"agentlistings\");\r\n }\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers && this.props.agentActions){\r\n this.props.agentActions.fetchTeamAgents();\r\n }\r\n } */\r\n\r\n if (window.innerWidth < 768) { \r\n this.setState({ isMobile: false });\r\n }\r\n }\r\n\r\n checkForActivities = () => {\r\n var self = this;\r\n setTimeout(function isActivityLoaded() {\r\n if (!self.props.selectedActivity || !self.props.selectedActivity.ids.length || !self.props.profile) {\r\n setTimeout(isActivityLoaded, 5000);\r\n }\r\n else {\r\n self.filterUnreadIds();\r\n self.setState({activityFiltered: true});\r\n }\r\n }, 1000);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.updateIsMobile);\r\n }\r\n\r\n updateIsMobile = () => {\r\n //this.setState({ isMobile: window.innerWidth < 768});\r\n }\r\n\r\n filterUnreadIds() {\r\n const { activityActions, profile, selectedClient} = this.props;\r\n\r\n const cookies = new Cookies();\r\n var lastReadId = cookies.get('lastReadId');\r\n if (lastReadId && selectedClient && lastReadId[selectedClient.Id]) {\r\n activityActions.filterUnreadIds(selectedClient.Id, lastReadId[selectedClient.Id]);\r\n }\r\n else if (lastReadId && profile && lastReadId[profile.Email]) {\r\n activityActions.filterUnreadIds('mine', lastReadId[profile.Email]);\r\n }\r\n else {\r\n console.log('no cookie found. selectedClient:' + selectedClient + ' , profile: ' + profile);\r\n }\r\n }\r\n\r\n componentDidUpdate(){\r\n this.eulaCheck();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if(JSON.stringify(this.props.audience) !== JSON.stringify(nextProps.audience)){\r\n this.componentInit(nextProps.audience, nextProps.profile);\r\n }\r\n if(JSON.stringify(this.props.profile) !== JSON.stringify(nextProps.profile)){\r\n this.eulaCheck();\r\n }\r\n\r\n const thisClient = this.props.selectedClient;\r\n const nextClient = nextProps.selectedClient;\r\n\r\n // Deselect client\r\n if (thisClient && !nextClient) {\r\n const cName = thisClient.FirstName + \" \" + thisClient.LastName;\r\n this.props.showNotification(\r\n \"info\",\r\n \"\",\r\n \"Now you are not working with \" + cName + \".\",\r\n 4000);\r\n\r\n if(this.refs.navBar)\r\n {\r\n this.setState({nExpanded: false});\r\n }\r\n }\r\n\r\n // Select client\r\n if (!thisClient && nextClient) {\r\n const cName = nextClient.FirstName + \" \" + nextClient.LastName;\r\n if(this.props.showNotification) {\r\n this.props.showNotification(\r\n \"success\",\r\n \"\",\r\n \"Now you are working with \" + cName +\r\n \". All bookmarks and saved searches will be assigned to \" + cName + \".\",\r\n 5000);\r\n }\r\n this.props.listingActions.fetchAgentClientListings(\"favorites\", nextClient.Id);\r\n this.props.listingActions.fetchAgentClientListings(\"bookmarks\", nextClient.Id);\r\n this.props.listingActions.fetchAgentClientListings(\"removed\", nextClient.Id);\r\n this.props.listingActions.fetchAgentClientListings(\"agentlistings\", nextClient.Id);\r\n if(this.refs.navBar)\r\n {\r\n this.setState({nExpanded: false});\r\n }\r\n }\r\n else if (thisClient && !nextClient){\r\n this.props.listingActions.clearListings(\"favorites\");\r\n this.props.listingActions.clearListings(\"bookmarks\");\r\n this.props.listingActions.clearListings('removed');\r\n this.props.listingActions.clearListings(\"agentlistings\");\r\n // if you're on the clients page when deselecting go back to clients\r\n if (this.props.location.pathname.indexOf('/clients/') >= 0)\r\n this.props.history.push('/dashboard/clients');\r\n }\r\n }\r\n\r\n openEULADialog() {\r\n let self = this;\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsClass: 'modal',\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.Action(\r\n 'Accept',\r\n () => {\r\n self.acceptEULA();\r\n }\r\n )\r\n ],\r\n onHide: (dialog) => { }\r\n })\r\n }\r\n\r\n acceptEULA() {\r\n let self = this;\r\n\r\n const cookies = new Cookies();\r\n var eulaCookie = cookies.get('EULAUserAcceptance');\r\n var objEULA = {};\r\n\r\n if(eulaCookie !== undefined && \r\n eulaCookie !== null && \r\n eulaCookie !== \"\" && \r\n this.props && \r\n this.props.profile)\r\n {\r\n objEULA = eulaCookie;\r\n }\r\n\r\n objEULA[self.props.profile.Email] = 'true';\r\n var ninetyDays = new Date();\r\n ninetyDays.setDate(new Date().getDate()+90);\r\n cookies.set('EULAUserAcceptance', JSON.stringify(objEULA), { expires: ninetyDays });\r\n }\r\n\r\n toggleQuickBar = () => {\r\n if(this.refs.navBar){\r\n this.setState({showQuickBar: !this.state.showQuickBar});\r\n }\r\n if (this.props.selectedActivity) {\r\n const cookies = new Cookies();\r\n const lastReadId = Math.max.apply(Math, this.props.selectedActivity.ids);\r\n var objLastRead = {};\r\n var lastReadCookie = cookies.get('lastReadId');\r\n if (lastReadCookie)\r\n objLastRead = lastReadCookie;\r\n if (this.props.selectedClient)\r\n objLastRead[this.props.selectedClient.Id] = lastReadId;\r\n else\r\n objLastRead[this.props.profile.Email] = lastReadId;\r\n \r\n var ninetyDays = new Date();\r\n ninetyDays.setDate(new Date().getDate()+90);\r\n cookies.set('lastReadId', JSON.stringify(objLastRead), { expires: ninetyDays, path: '/'});\r\n this.filterUnreadIds();\r\n }\r\n } \r\n \r\n\r\n closeSelectClientPopup = () => {\r\n if(this.overlayTriggerRef){\r\n this.overlayTriggerRef.hide();\r\n }\r\n\r\n if(this.refs.navBar)\r\n {\r\n this.setState({nExpanded: false});\r\n }\r\n } \r\n\r\n eulaCheck() {\r\n if(this.refs.dialogRef !== undefined && this.props.audience && this.props.audience.type === 'client'){\r\n if(this.props.EULAText !== undefined && this.props.EULAText !== null && this.props.EULAText !== \"\"){\r\n if (this.props === undefined || this.props.profile === undefined || this.props.profile === null){ \r\n return;\r\n }\r\n\r\n const cookies = new Cookies();\r\n var eulaCookie = cookies.get('EULAUserAcceptance');\r\n if(eulaCookie !== undefined && eulaCookie !== null && eulaCookie !== \"\"){\r\n if(eulaCookie[this.props.profile.Email] && eulaCookie[this.props.profile.Email] === 'true'){ \r\n return;\r\n }\r\n } \r\n // Eula wasn't found in cookie\r\n if (window.location.pathname !== '/personalize' && window.location.pathname.indexOf('/login') === -1 && window.location.pathname.indexOf('/register') === -1){\r\n this.openEULADialog();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSubmenuDisplay = (a) => {\r\n this.setState({ isMobile: !this.state.isMobile});\r\n a.preventDefault();\r\n a.stopPropagation();\r\n }\r\n\r\n handleLogout = () => {\r\n this.props.sessionActions.logout();\r\n this.props.history.push(this.props.purlPrefix.url + '/');\r\n }\r\n\r\n getNotificationBadge = () => {\r\n const { isAnonymous, purlPrefix, selectedActivity, profile } = this.props;\r\n const { activityFiltered } = this.state;\r\n\r\n if(!isAnonymous && profile){\r\n return ( \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getUserMenu = () => {\r\n const { isAnonymous, purlPrefix, profile, audience } = this.props; \r\n if(!isAnonymous && profile){\r\n\r\n var userName = null;\r\n var userEmail = null; \r\n var uPhoto = \"\"; \r\n if(profile && audience){\r\n if(audience.type === 'agent') {\r\n uPhoto = (\r\n
    \r\n
    {profile.FirstName.substring(0, 1) + profile.LastName.substring(0, 1)}
    \r\n
    \r\n );\r\n userName = profile.FirstName + ' ' + profile.LastName;\r\n userEmail = profile.Email;\r\n }\r\n else if(audience.type === 'client' && profile.Profile && profile.Profile.BasicData){\r\n uPhoto = (\r\n
    \r\n
    {profile.Profile.BasicData.FirstName.substring(0, 1) + profile.Profile.BasicData.LastName.substring(0, 1)}
    \r\n
    \r\n );\r\n userName = profile.Profile.BasicData.FirstName + ' ' + profile.Profile.BasicData.LastName;\r\n userEmail = profile.Profile.BasicData.Email;\r\n }\r\n if(audience.type === 'agent') {\r\n\r\n if(ProfilePageCustomizationOptions && ProfilePageCustomizationOptions.AllowAgentToUpdateProfile){\r\n if(profile && profile.UseMemberPhotoURL) {\r\n if(profile && profile.MemberPhotoURL !== undefined &&\r\n profile.MemberPhotoURL !== null && profile.MemberPhotoURL !== \"\") {\r\n uPhoto = \"\";\r\n }\r\n }\r\n else{\r\n if(profile && profile.Profile &&\r\n profile.Profile.ProfileImageName !== undefined &&\r\n profile.Profile.ProfileImageName !== null &&\r\n profile.Profile.ProfileImageName !== \"\") {\r\n uPhoto = \"\";\r\n }\r\n }\r\n }\r\n else{\r\n if(profile && profile.Profile &&\r\n profile.Profile.ProfileImageName !== undefined &&\r\n profile.Profile.ProfileImageName !== null &&\r\n profile.Profile.ProfileImageName !== \"\") {\r\n uPhoto = \"\";\r\n }\r\n }\r\n }\r\n else if(audience.type === 'client' &&\r\n profile.Profile &&\r\n profile.Profile.BasicData &&\r\n profile.Profile.BasicData.ProfileImageUrl !== undefined &&\r\n profile.Profile.BasicData.ProfileImageUrl !== null &&\r\n profile.Profile.BasicData.ProfileImageUrl !== \"\") {\r\n uPhoto = \"\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n {(window.innerWidth < 1026) ?\r\n {}} onClick={(e) => this.onSubmenuDisplay(e)}>\r\n
    \r\n {userName}\r\n {userEmail}\r\n
    \r\n \r\n Profile\r\n \r\n {(AdminCustomizationOptions && AdminCustomizationOptions.AllowManage && profile && profile.IsSuperAdmin) &&\r\n \r\n Manage\r\n \r\n }\r\n
    \r\n
    Logout
    \r\n
    \r\n
    \r\n :\r\n \r\n
    \r\n {/* Myself : {userName} */}\r\n {userName}\r\n {userEmail}\r\n
    \r\n \r\n Profile\r\n \r\n {(AdminCustomizationOptions && AdminCustomizationOptions.AllowManage && profile && profile.IsSuperAdmin) &&\r\n \r\n Manage\r\n \r\n }\r\n
    \r\n
    Logout
    \r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getLoginButton = () => {\r\n const cookies = new Cookies();\r\n const authToken = cookies.get('authDetails');\r\n const { isAnonymous, purlPrefix } = this.props;\r\n\r\n if(!authToken && isAnonymous){\r\n return(\r\n ((CommonCustomizationOptions && CommonCustomizationOptions.ShowAgentClientLoginInMenu) ?\r\n \r\n {(window.innerWidth < 1026) ?\r\n {}} onClick={(e) => this.onSubmenuDisplay(e)}>\r\n {\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.IsAgentSSOEnabled){\r\n window.sessionStorage.setItem(\"ComingForSSO\",true);\r\n }\r\n else{\r\n if(window.location.pathname !== '/' && window.location.pathname !== '/profile'){\r\n window.sessionStorage.setItem(\"RedirectLocation\",base64.encode(utf8.encode(window.location.pathname)));\r\n }\r\n }\r\n return true;\r\n }}>\r\n Agent\r\n \r\n {\r\n if(window.location.pathname !== '/' && window.location.pathname !== '/profile'){\r\n window.sessionStorage.setItem(\"RedirectLocation\",base64.encode(utf8.encode(window.location.pathname)));\r\n }\r\n return true;\r\n }}>\r\n Client\r\n \r\n \r\n :\r\n \r\n {\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.IsAgentSSOEnabled){\r\n window.sessionStorage.setItem(\"ComingForSSO\",true);\r\n }\r\n else{\r\n if(window.location.pathname !== '/' && window.location.pathname !== '/profile'){\r\n window.sessionStorage.setItem(\"RedirectLocation\",base64.encode(utf8.encode(window.location.pathname)));\r\n }\r\n } \r\n return true;\r\n }}>\r\n Agent\r\n \r\n {\r\n if(window.location.pathname !== '/' && window.location.pathname !== '/profile'){\r\n window.sessionStorage.setItem(\"RedirectLocation\",base64.encode(utf8.encode(window.location.pathname)));\r\n }\r\n return true;\r\n }}>\r\n Client\r\n \r\n \r\n }\r\n \r\n :\r\n {\r\n if(window.location.pathname !== '/' && window.location.pathname !== '/profile'){\r\n window.sessionStorage.setItem(\"RedirectLocation\",base64.encode(utf8.encode(window.location.pathname)));\r\n }\r\n return true;\r\n }}>\r\n Login\r\n \r\n )\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getRegisterButton = () => {\r\n const cookies = new Cookies();\r\n const authToken = cookies.get('authDetails');\r\n const { isAnonymous, purlPrefix } = this.props;\r\n if(!authToken && isAnonymous){\r\n return (\r\n \r\n Register\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getClientMenu = () => {\r\n const { isAnonymous, audience, location, agent, purlPrefix, \r\n selectedClient, isFetchingClients, clients, profile } = this.props;\r\n if(!isAnonymous && profile){\r\n\r\n var showMyAgent = true;\r\n if (process.env.REACT_APP_AllowAnonymous === \"true\" && process.env.REACT_APP_AnonymousUserId !== undefined && \r\n process.env.REACT_APP_AnonymousUserId !== null && agent && agent.AgentId && \r\n agent.AgentId === process.env.REACT_APP_AnonymousUserId){\r\n showMyAgent = false;\r\n }\r\n\r\n var divClient = [];\r\n var isSearch = (location && location.pathname.indexOf('/search') !== -1);\r\n var menuItemSelect = isSearch ? 'menu-item-selectclient selectclient_search': 'menu-item-selectclient'\r\n if(audience.type === 'agent') {\r\n\r\n var scPopCls = \"top-select-client\";\r\n if(ThemeCustomizationOptions && ThemeCustomizationOptions.MainMenuBarClass && ThemeCustomizationOptions.MainMenuBarClass !== \"\"){\r\n scPopCls = scPopCls + \" \" + ThemeCustomizationOptions.MainMenuBarClass;\r\n }\r\n else {\r\n scPopCls = scPopCls + \" menu-standard\";\r\n }\r\n if(process.env.REACT_APP_WebsiteSubMenu !== undefined && process.env.REACT_APP_WebsiteSubMenu !== null && process.env.REACT_APP_WebsiteSubMenu !== \"\"){\r\n scPopCls = scPopCls + \" othersite_menubox\";\r\n }\r\n var selectClientPopover = (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n\r\n divClient = (\r\n this.overlayTriggerRef = ref}>\r\n
  • \r\n \r\n
  • \r\n
    \r\n );\r\n \r\n }\r\n else if (audience.type === 'client' && agent && showMyAgent){\r\n\r\n var myAgentPhoto = \"\"; \r\n var myAgentName = null;\r\n var myAgentEmail = null;\r\n if(agent && agent.FirstName && agent.LastName){\r\n myAgentPhoto = (\r\n
    \r\n
    {agent.FirstName.substring(0, 1) + agent.LastName.substring(0, 1)}
    \r\n
    \r\n );\r\n myAgentName = agent.FirstName + ' ' + agent.LastName;\r\n myAgentEmail = agent.Email;\r\n }\r\n if(ProfilePageCustomizationOptions && ProfilePageCustomizationOptions.AllowAgentToUpdateProfile){\r\n if(agent.UseMemberPhotoURL) {\r\n if(agent.MemberPhotoURL !== undefined && agent.MemberPhotoURL !== null && agent.MemberPhotoURL !== \"\") {\r\n myAgentPhoto = \"\";\r\n }\r\n }\r\n else{\r\n if(agent.Profile && agent.Profile.ProfileImageName !== undefined &&\r\n agent.Profile.ProfileImageName !== null && agent.Profile.ProfileImageName !== \"\") {\r\n myAgentPhoto = \"\";\r\n }\r\n }\r\n }\r\n else{\r\n if(agent.Profile && agent.Profile.ProfileImageName !== undefined &&\r\n agent.Profile.ProfileImageName !== null && agent.Profile.ProfileImageName !== \"\") {\r\n myAgentPhoto = \"\";\r\n }\r\n } \r\n\r\n divClient = (\r\n (window.innerWidth < 768) ?\r\n (
  • \r\n \r\n
    My Agent: \r\n {myAgentName}\r\n
    \r\n \r\n
  • ) :\r\n (
  • \r\n \r\n
    \r\n My Agent : {myAgentName}\r\n {myAgentEmail}\r\n
    \r\n \r\n Agent's Profile\r\n \r\n \r\n Agent's Suggestions\r\n \r\n \r\n Agent's Listings\r\n \r\n \r\n Contact Agent\r\n \r\n
    \r\n
  • )\r\n );\r\n }\r\n\r\n return (\r\n
      \r\n {divClient}\r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n buildMenuBar = () => {\r\n const { isAnonymous, audience, history, clients } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.getNotificationBadge()}\r\n
    \r\n
    \r\n {(process.env.REACT_APP_WebsiteSubMenu !== undefined && process.env.REACT_APP_WebsiteSubMenu !== null && process.env.REACT_APP_WebsiteSubMenu !== \"\") &&\r\n \r\n }\r\n
    \r\n
    \r\n \r\n {this.getClientMenu()}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const { isAnonymous } = this.props;\r\n \r\n var headerClass = \"header animated header-nonfixed\";\r\n if (this.props.isHeaderFixed) {\r\n headerClass = \"header animated header-fixed\";\r\n }\r\n if(process.env.REACT_APP_WebsiteSubMenu !== undefined && process.env.REACT_APP_WebsiteSubMenu !== null &&\r\n process.env.REACT_APP_WebsiteSubMenu !== \"\"){\r\n headerClass = headerClass + \" othersite_menubox\";\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {this.buildMenuBar()}\r\n {!isAnonymous &&\r\n \r\n }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => {\r\n \r\n const { feed, entities, clients, activity } = state;\r\n const selectedClient = entities.clients[clients.selectedClient];\r\n \r\n let selectedFeed;\r\n if (selectedClient) {\r\n selectedFeed = feed[selectedClient.Id];\r\n }\r\n else {\r\n selectedFeed = feed['mine'];\r\n }\r\n\r\n let selectedActivity;\r\n if (selectedClient) {\r\n selectedActivity = activity[selectedClient.Id];\r\n }\r\n else {\r\n selectedActivity = activity['mine'];\r\n }\r\n\r\n return {\r\n audience: state.session.audience,\r\n purlPrefix: state.session.purlPrefix || { url: ''},\r\n mlsDisplayName: state.settings.data['MLSDisplayName'],\r\n isFetchingProfile: state.profile.isFetching,\r\n profile: state.profile.mine,\r\n clients: state.clients.ids.map(id => state.entities.clients[id]) || [],\r\n selectedClient: state.entities.clients[state.clients.selectedClient],\r\n isFetchingClients: state.clients.isFetching,\r\n agent: state.profile.agent,\r\n selectedFeed,\r\n selectedActivity,\r\n EULAText: state.settings.data['EULAText'],\r\n isAnonymous: state.session.isAnonymous\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch),\r\n settingActions: bindActionCreators(settingActions, dispatch),\r\n profileActions: bindActionCreators(profileActions, dispatch),\r\n clientActions: bindActionCreators(clientActions, dispatch),\r\n listingActions: bindActionCreators(listingActions, dispatch),\r\n activityActions: bindActionCreators(activityActions, dispatch),\r\n agentActions: bindActionCreators(agentActions, dispatch)\r\n});\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(NavBar));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport qs from \"query-string\";\r\nimport store from '../store/store';\r\nimport { verifyAuthToken } from 'actions/session';\r\nimport Loader from 'components/loader';\r\nimport { GetSectionCustomizationOptions } from 'components/util';\r\nimport * as profileActions from 'actions/profile';\r\nimport * as settingActions from 'actions/settings';\r\nimport * as listingActions from 'actions/listings';\r\nimport * as sessionActions from 'actions/session';\r\n\r\nconst CommonCustomizationOptions = GetSectionCustomizationOptions(\"CommonOptions\");\r\n\r\nclass CampaignPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n\r\n state = {}\r\n\r\n componentDidMount() {\r\n const obj = qs.parse(this.props.location.search);\r\n if(obj && obj.t && obj.audienceType && obj.audienceId){\r\n var self = this;\r\n setTimeout(() => {\r\n store.dispatch(verifyAuthToken({\r\n AudienceType: obj.audienceType,\r\n AudienceId: obj.audienceId,\r\n AccessToken: obj.t,\r\n skip: true\r\n })).then(r => {\r\n \r\n if (r.response && r.response.AudienceType === \"CLIENT\" && r.response.Audience && r.response.Audience.Id && r.response.Audience.Id === obj.audienceId) {\r\n\r\n self.props.profileActions.fetchProfile().then((res) => { \r\n self.props.profileActions.fetchMyAgentProfile(); \r\n self.props.listingActions.fetchAgentClientListings(\"favorites\");\r\n self.props.listingActions.fetchAgentClientListings(\"bookmarks\");\r\n self.props.listingActions.fetchAgentClientListings(\"removed\");\r\n self.props.listingActions.fetchAgentClientListings(\"agentlistings\");\r\n });\r\n self.props.settingActions.fetchSettings();\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.FetchPrintPieceUrl){\r\n self.props.settingActions.fetchPrintPieceURL();\r\n }\r\n self.props.settingActions.fetchAuthMechanism();\r\n \r\n if(self.props.history) self.props.history.push('/onboarding');\r\n }\r\n else{\r\n window.location.href = \"/\";\r\n }\r\n \r\n });\r\n },500);\r\n }\r\n else {\r\n window.sessionStorage.setItem(\"ComingFromCampaign\", \"true\");\r\n window.location.href = \"/login\";\r\n }\r\n } \r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n session: state.session,\r\n audience: state.session.audience,\r\n profile: state.profile.mine\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch),\r\n profileActions: bindActionCreators(profileActions, dispatch),\r\n settingActions: bindActionCreators(settingActions, dispatch),\r\n listingActions: bindActionCreators(listingActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CampaignPage);","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport logo from '../img/login_logo.png';\r\nimport { Link } from 'react-router-dom';\r\nimport Dialog from 'react-bootstrap-dialog';\r\nimport TermsNConditions from '../components/termsconditions';\r\nimport PrivacyPolicy from '../components/privacypolicy';\r\nimport queryString from 'query-string';\r\nimport Loader from '../components/loader';\r\nimport DocumentTitle from 'react-document-title';\r\nimport { PageTitle } from '../components/util';\r\nimport '../css/Login.css';\r\nimport * as sessionActions from 'actions/session';\r\n\r\n\r\nclass CreateAccountPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n var params = queryString.parse(props.location.search);\r\n const subId = (params && params.id) ? params.id : null;\r\n const verifCode = (params && params.code) ? params.code : null;\r\n\r\n this.state = {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n mlsId: '',\r\n memberNrdsId: '',\r\n subscriptionId: subId,\r\n verificationCode: verifCode,\r\n errorMessage: '',\r\n successMessage: '',\r\n fetchingDetails: false,\r\n creatingAccount: false,\r\n accountCreated: false,\r\n title: 'Create Account'\r\n };\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.getSubscriptionDetails = this.getSubscriptionDetails.bind(this);\r\n this.createAccount = this.createAccount.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.showHeader) {\r\n this.props.onShowHideHeader(false);\r\n }\r\n if (this.props.showFooter) {\r\n this.props.onShowHideFooter(false);\r\n }\r\n this.getSubscriptionDetails();\r\n }\r\n\r\n openTermsDialog = () => {\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.CancelAction(),\r\n ]\r\n })\r\n }\r\n openPolicyDialog = () => {\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.CancelAction(),\r\n ]\r\n })\r\n }\r\n\r\n getSubscriptionDetails() {\r\n\r\n var self = this;\r\n\r\n // Call API to get subscription details\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"subscriptionrequest/detail/\" + this.state.subscriptionId + \"/\" +this.state.verificationCode;\r\n\r\n if(self.refs.btnSignup) self.refs.btnSignup.setAttribute(\"disabled\", \"disabled\");\r\n self.setState({fetchingDetails: true});\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: \"GET\"\r\n })\r\n .then(response => response.json())\r\n .then(json => {\r\n //console.log(json);\r\n if (json) {\r\n if(self.refs.btnSignup) self.refs.btnSignup.removeAttribute(\"disabled\");\r\n self.setState({\r\n fetchingDetails: false, firstName: json.FirstName, lastName: json.LastName, \r\n email: json.Email, memberNrdsId:json.MemberNrdsId\r\n });\r\n\r\n if (json.MLSKey !== undefined) {\r\n self.setState({mlsId:json.MLSKey.toLowerCase()});\r\n }\r\n //self.props.history.push(`/`);\r\n }\r\n else {\r\n if(self.refs.btnSignup) self.refs.btnSignup.removeAttribute(\"disabled\");\r\n self.setState({\r\n fetchingDetails: false,\r\n errorMessage: \"This link is invalid or expired. Please contact support@truebytlc.com\"\r\n });\r\n }\r\n })\r\n .catch(function (data) {\r\n //console.log(data);\r\n if(self.refs.btnSignup) self.refs.btnSignup.removeAttribute(\"disabled\");\r\n self.setState({fetchingDetails: false, errorMessage: \"There was an error fetching your details. Please try again later.\"});\r\n });\r\n }\r\n\r\n createAccount() {\r\n\r\n var self = this;\r\n\r\n // Call API to get subscription details\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"subscriptionrequest/\" + this.state.subscriptionId + \"/\" +this.state.verificationCode;\r\n\r\n var requestBody = {\r\n MLSKey: self.state.mlsId,\r\n MemberNrdsId: self.state.memberNrdsId\r\n }\r\n\r\n if(self.refs.btnSignup) self.refs.btnSignup.setAttribute(\"disabled\", \"disabled\");\r\n self.setState({creatingAccount: true});\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(requestBody)\r\n })\r\n .then(response => response.json())\r\n .then(json => {\r\n //console.log(json);\r\n if (json) {\r\n if(self.refs.btnSignup) self.refs.btnSignup.removeAttribute(\"disabled\");\r\n var accountCreated = false;\r\n var successMessage = \"\", errorMessage = \"\";\r\n if(json.AgentId){\r\n successMessage = \"Your Account has been created successfully. A welcome email with your username and password has been sent, please check the same.\";\r\n accountCreated = true;\r\n }\r\n else if(json.Audience && json.Audience.Id){\r\n successMessage = \"Your Account has been created successfully. A welcome email with your username and password has been sent, please check the same.\";\r\n accountCreated = true;\r\n }\r\n else if(json.length > 0 && json[0].ErrorMessage){\r\n errorMessage = json[0].ErrorMessage;\r\n }\r\n self.setState({\r\n creatingAccount: false, accountCreated: accountCreated,\r\n errorMessage: errorMessage, successMessage: successMessage\r\n });\r\n if(accountCreated){\r\n if(self.props.sessionActions){\r\n self.props.sessionActions.manualLogin(json);\r\n if(self.props.history) self.props.history.push(`/`);\r\n }\r\n }\r\n }\r\n else {\r\n if(self.refs.btnSignup) self.refs.btnSignup.removeAttribute(\"disabled\");\r\n self.setState({\r\n creatingAccount: false,\r\n errorMessage: \"Your Account creation failed. Please contact support@truebytlc.com\"\r\n });\r\n }\r\n })\r\n .catch(function (data) {\r\n //console.log(data);\r\n if(self.refs.btnSignup) self.refs.btnSignup.removeAttribute(\"disabled\");\r\n self.setState({creatingAccount: false, errorMessage: \"There was an error creating your account. Please try again later.\"});\r\n });\r\n }\r\n\r\n handleInputChange(event) {\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n\r\n var errorMessage = '';\r\n if (this.state.mlsId === null || this.state.mlsId === '')\r\n errorMessage += \"MLS is required. \";\r\n if (this.state.firstName === null || this.state.firstName === '')\r\n errorMessage += \"First name is required. \";\r\n if (this.state.lastName === null || this.state.lastName === '')\r\n errorMessage += \"Last name is required. \";\r\n if (this.state.email === null || this.state.email === '')\r\n errorMessage += \"Email is required. \";\r\n if (this.state.memberNrdsId === null || this.state.memberNrdsId === '')\r\n errorMessage += \"Member NRDS ID is required. \";\r\n\r\n this.setState({errorMessage: errorMessage});\r\n\r\n if (errorMessage.length === 0) {\r\n this.createAccount();\r\n }\r\n\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \"\"/
    \r\n
    \r\n
    \r\n
    \"\"/
    \r\n
    \r\n
    \r\n
    \r\n {this.state.errorMessage && this.state.errorMessage !== \"\" &&
    {this.state.errorMessage}
    }\r\n {this.state.successMessage && this.state.successMessage !== \"\" &&
    {this.state.successMessage}
    }\r\n\r\n {this.state.fetchingDetails &&\r\n
    \r\n \r\n
    \r\n }\r\n\r\n {!this.state.fetchingDetails && !this.state.accountCreated &&\r\n this.state.firstName && this.state.firstName !== \"\" &&\r\n this.state.lastName && this.state.lastName !== \"\" &&\r\n this.state.email && this.state.email !== \"\" &&\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Sign in
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n {this.state.accountCreated &&\r\n
    \r\n Sign in\r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n By signing in/up you agree to the Terms of Use and Privacy Policy\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ©{new Date().getFullYear()} 2FindYourHome. All Rights Reserved.
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch)\r\n});\r\n\r\nexport default connect(null, mapDispatchToProps)(CreateAccountPage);","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\n//import Dialog from 'react-bootstrap-dialog';\r\n//import TermsNConditions from '../components/termsconditions';\r\n//import PrivacyPolicy from '../components/privacypolicy';\r\nimport queryString from 'query-string';\r\nimport DocumentTitle from 'react-document-title';\r\nimport { PageTitle, GetSectionCustomizationOptions } from '../components/util';\r\nimport '../scss/_login.scss';\r\n//import LogoNavBar from '../components/logonavbar';\r\n//import SecondaryFooter from 'components/secondaryfooter';\r\n\r\nconst LoginPageCustomizationOptions = GetSectionCustomizationOptions(\"LoginPageOptions\");\r\n\r\nclass ResetPasswordPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n var params = queryString.parse(props.location.search);\r\n const token = (params && params.token) ? params.token : null;\r\n\r\n this.state = {\r\n password: '',\r\n confirmPassword: '',\r\n errorMessage: '',\r\n successMessage: '',\r\n fetchingDetails: false,\r\n resettingPassword: false,\r\n passwordReset: false,\r\n title: 'Reset Password',\r\n token: token\r\n };\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.resetPassword = this.resetPassword.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (process.env.REACT_APP_AllowAnonymous === \"true\"){\r\n if (!this.props.showHeader) {\r\n this.props.onShowHideHeader(true);\r\n }\r\n }\r\n else {\r\n if (this.props.showHeader) {\r\n this.props.onShowHideHeader(false);\r\n }\r\n }\r\n if (!this.props.showFooter) {\r\n this.props.onShowHideFooter(true);\r\n }\r\n }\r\n\r\n /*openTermsDialog = () => {\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.CancelAction(),\r\n ]\r\n })\r\n }\r\n openPolicyDialog = () => {\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.CancelAction(),\r\n ]\r\n })\r\n }*/\r\n\r\n resetPassword() {\r\n\r\n var self = this;\r\n\r\n \r\n // Call API to get subscription details\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"accesstokens/resetpassword\";\r\n //https://trueapi-uat.tlcengine.com/v3/api/true/accesstokens/setpassword\r\n var requestBody = {\r\n token: self.state.token,\r\n password: self.state.password\r\n }\r\n //If there is default agent then pass default agent id to use default agent specific email template\r\n if (process.env.REACT_APP_DefaultAgentId !== undefined && \r\n process.env.REACT_APP_DefaultAgentId !== null && \r\n process.env.REACT_APP_DefaultAgentId !== \"\")\r\n {\r\n requestBody.BrokerAgentId = process.env.REACT_APP_DefaultAgentId;\r\n }\r\n //---\r\n\r\n if(self.refs.btnResetPassword) self.refs.btnResetPassword.setAttribute(\"disabled\", \"disabled\");\r\n self.setState({creatingAccount: true});\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(requestBody)\r\n })\r\n .then(response => response.json())\r\n .then(json => {\r\n if (json) {\r\n if(self.refs.btnResetPassword) self.refs.btnResetPassword.removeAttribute(\"disabled\");\r\n var accountCreated = false;\r\n var successMessage = \"\", errorMessage = \"\";\r\n if(json.Message){\r\n if(self.props.showNotification)\r\n {\r\n self.props.showNotification(\r\n \"success\",\r\n \"\",\r\n \"Your Password has been reset successfully.\",\r\n 5000);\r\n }\r\n self.props.history.push(`/`);\r\n }\r\n else if(json.length > 0 && json[0].ErrorMessage){\r\n errorMessage = json[0].ErrorMessage;\r\n }\r\n\r\n if(self.refs.resetPasswordRef)\r\n {\r\n self.setState({\r\n creatingAccount: false, accountCreated: accountCreated,\r\n errorMessage: errorMessage, successMessage: successMessage, resettingPassword: false\r\n });\r\n }\r\n }\r\n else {\r\n if(self.refs.btnResetPassword) self.refs.btnResetPassword.removeAttribute(\"disabled\");\r\n self.setState({\r\n creatingAccount: false,\r\n errorMessage: \"There was an error trying to reset your password. Please contact support@truebytlc.com\"\r\n });\r\n }\r\n })\r\n .catch(function (data) {\r\n console.log(data);\r\n if(self.refs.btnSignup) self.refs.btnSignup.removeAttribute(\"disabled\");\r\n self.setState({creatingAccount: false, errorMessage: \"There was an error trying to reset your password. Please try again later.\"});\r\n }); \r\n }\r\n\r\n handleInputChange(event) {\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n validatePassword = (newPassword) => {\r\n return new RegExp('^(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$').test(newPassword);\r\n }\r\n \r\n validateCapsPassword = (newPassword) => {\r\n return new RegExp('^(?=.*[A-Z])').test(newPassword);\r\n }\r\n \r\n validateNumericPassword = (newPassword) => {\r\n return new RegExp('^(?=.*\\\\d)').test(newPassword);\r\n }\r\n \r\n validateLowerPassword(newPassword) \r\n {\r\n return new RegExp('^(?=.*[a-z])').test(newPassword);\r\n }\r\n\r\n handleSubmit(event) {\r\n\r\n var errorMessage = '';\r\n if (this.state.password === null || this.state.password === ''){\r\n errorMessage = \"Please enter new password. \";\r\n }\r\n else if(this.state.password.length < 8){\r\n errorMessage = \"New password should be at least 8 characters. \";\r\n }\r\n else if(!this.validateLowerPassword(this.state.password)){\r\n errorMessage = \"New password should contain at least one lowercase letter. \";\r\n }\r\n else if(!this.validateCapsPassword(this.state.password)){\r\n errorMessage = \"New password should contain at least one UPPERCASE letter. \";\r\n }\r\n else if(!this.validateNumericPassword(this.state.password)){\r\n errorMessage = \"New password should contain at least one numeric digit. \";\r\n }\r\n else if (this.state.confirmPassword === null || this.state.confirmPassword === ''){\r\n errorMessage = \"Please confirm new password. \";\r\n }\r\n else if (this.state.password !== this.state.confirmPassword){\r\n errorMessage = \"New password and confirm password should match. \";\r\n }\r\n\r\n if (errorMessage.length === 0) {\r\n this.setState({resettingPassword: true}, function() {\r\n this.resetPassword();\r\n }); \r\n }\r\n else\r\n {\r\n if(this.refs.resetPasswordRef)\r\n {\r\n this.setState({errorMessage: errorMessage});\r\n }\r\n }\r\n\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n {/* !process.env.REACT_APP_AllowAnonymous && */}\r\n
     
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    A new home search experience—starting with what really matters to you.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.state.errorMessage && this.state.errorMessage !== \"\" &&
    {this.state.errorMessage}
    }\r\n {this.state.successMessage && this.state.successMessage !== \"\" &&
    {this.state.successMessage}
    }\r\n\r\n {!this.state.passwordReset && \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Sign in
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n {this.state.passwordReset &&\r\n
    \r\n Sign in\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n \r\n
    By signing in/up you agree to the Terms of Use and Privacy Policy
    \r\n
    ©{new Date().getFullYear()} 2FindYourHome. All Rights Reserved.
    \r\n
    \r\n
    \r\n */} \r\n {/**/}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ResetPasswordPage;","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport queryString from 'query-string';\r\nimport DocumentTitle from 'react-document-title';\r\nimport { PageTitle, GetSectionCustomizationOptions } from '../components/util';\r\nimport '../scss/_login.scss';\r\n//import LogoNavBar from '../components/logonavbar';\r\nimport * as sessionActions from 'actions/session';\r\n\r\nconst LoginPageCustomizationOptions = GetSectionCustomizationOptions(\"LoginPageOptions\");\r\n\r\nclass SetPasswordPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n var params = queryString.parse(props.location.search);\r\n const token = (params && params.t) ? params.t.replace(/ /g,\"+\") : null;\r\n\r\n this.state = {\r\n title: 'Set Password',\r\n token: token,\r\n isCheckingToken: true,\r\n clientId: null,\r\n password: '',\r\n confirmPassword: '',\r\n isSettingPassword: false,\r\n errorMessage: '',\r\n successMessage: 'Processing, please wait...', \r\n isPasswordSet: false, \r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (process.env.REACT_APP_AllowAnonymous === \"true\"){\r\n if (!this.props.showHeader) {\r\n this.props.onShowHideHeader(true);\r\n }\r\n }\r\n else {\r\n if (this.props.showHeader) {\r\n this.props.onShowHideHeader(false);\r\n }\r\n }\r\n if (!this.props.showFooter) {\r\n this.props.onShowHideFooter(true);\r\n }\r\n \r\n if(!this.state.token || this.state.token === \"\"){\r\n if(this.props.history) this.props.history.push(\"/\");\r\n } \r\n else{\r\n this.checkToken();\r\n } \r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.isAnonymous !== nextProps.isAnonymous && this.props.isAnonymous === undefined && nextProps.isAnonymous === false) {\r\n this.props.sessionActions.logout(true);\r\n /* this.props.sessionActions.anonymousLogin().then(r => {\r\n setTimeout(() => {\r\n window.location.reload();\r\n },1000);\r\n }); */\r\n setTimeout(() => {\r\n window.location.reload();\r\n },1000);\r\n }\r\n }\r\n\r\n checkToken = () => {\r\n var self = this;\r\n var token = this.state.token;\r\n if(token && token !== \"\"){ \r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"clients/checkallowsetpassword\";\r\n var requestBody = {\r\n token: token\r\n } \r\n self.setState({isCheckingToken: true});\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(requestBody)\r\n })\r\n .then(response => response.json())\r\n .then(json => {\r\n if (json) { \r\n if(self.refs.setPasswordRef){\r\n self.setState({\r\n isCheckingToken: false, clientId: json, successMessage: \"\"\r\n });\r\n }\r\n }\r\n else {\r\n self.setState({\r\n isCheckingToken: false, clientId: null, \r\n successMessage: \"You have already set your password. Please sign in using the same. If you don't remember your password, try forgot password.\"\r\n });\r\n }\r\n })\r\n .catch(function (data) {\r\n console.log(data);\r\n self.setState({isCheckingToken: false });\r\n if(self.props.history) self.props.history.push(\"/\");\r\n }); \r\n }\r\n }\r\n\r\n setPassword = () => {\r\n\r\n var self = this;\r\n\r\n if(self.state.clientId !== null && self.state.password && self.state.password !== \"\"){\r\n \r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"clients/\" + self.state.clientId + \"/setpassword\";\r\n var requestBody = {\r\n password: self.state.password\r\n }\r\n \r\n if(self.refs.btnSetPassword) self.refs.btnSetPassword.setAttribute(\"disabled\", \"disabled\");\r\n self.setState({isSettingPassword: true});\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(requestBody)\r\n })\r\n .then(response => response.json())\r\n .then(json => {\r\n if (json) {\r\n if(self.refs.btnSetPassword) self.refs.btnSetPassword.removeAttribute(\"disabled\");\r\n if(self.refs.setPasswordRef){\r\n self.setState({\r\n isCheckingToken: false, isSettingPassword: false, isPasswordSet: true,\r\n successMessage: \"Your Password has been set successfully. Please sign in using the same.\"\r\n });\r\n }\r\n }\r\n else {\r\n if(self.refs.btnSetPassword) self.refs.btnSetPassword.removeAttribute(\"disabled\");\r\n self.setState({\r\n isCheckingToken: false, isSettingPassword: false,\r\n errorMessage: \"There was an error trying to set your password. Please try again later.\"\r\n });\r\n }\r\n })\r\n .catch(function (data) {\r\n console.log(data);\r\n if(self.refs.btnSignup) self.refs.btnSignup.removeAttribute(\"disabled\");\r\n self.setState({isCheckingToken: false, isSettingPassword: false, errorMessage: \"There was an error trying to set your password. Please try again later.\" });\r\n }); \r\n }\r\n }\r\n\r\n handleInputChange = (event) => {\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n validatePassword = (newPassword) => {\r\n return new RegExp('^(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$').test(newPassword);\r\n }\r\n \r\n validateCapsPassword = (newPassword) => {\r\n return new RegExp('^(?=.*[A-Z])').test(newPassword);\r\n }\r\n \r\n validateNumericPassword = (newPassword) => {\r\n return new RegExp('^(?=.*\\\\d)').test(newPassword);\r\n }\r\n \r\n validateLowerPassword = (newPassword) => {\r\n return new RegExp('^(?=.*[a-z])').test(newPassword);\r\n }\r\n\r\n handleSubmit = (event) => {\r\n\r\n var errorMessage = '';\r\n if (!this.state.password || this.state.password === ''){\r\n errorMessage = \"Please enter new password. \";\r\n }\r\n else if(this.state.password.length < 8){\r\n errorMessage = \"New password should be at least 8 characters. \";\r\n }\r\n else if(!this.validateLowerPassword(this.state.password)){\r\n errorMessage = \"New password should contain at least one lowercase letter. \";\r\n }\r\n else if(!this.validateCapsPassword(this.state.password)){\r\n errorMessage = \"New password should contain at least one UPPERCASE letter. \";\r\n }\r\n else if(!this.validateNumericPassword(this.state.password)){\r\n errorMessage = \"New password should contain at least one numeric digit. \";\r\n }\r\n else if (!this.state.confirmPassword || this.state.confirmPassword === ''){\r\n errorMessage = \"Please confirm new password. \";\r\n }\r\n else if (this.state.password !== this.state.confirmPassword){\r\n errorMessage = \"New password and confirm password should match. \";\r\n }\r\n\r\n if (errorMessage.length === 0) {\r\n this.setState({isSettingPassword: true}, function() {\r\n this.setPassword();\r\n }); \r\n }\r\n else {\r\n if(this.refs.setPasswordRef){\r\n this.setState({errorMessage: errorMessage});\r\n }\r\n }\r\n\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n {/* !process.env.REACT_APP_AllowAnonymous && */}\r\n
     
    \r\n
    \r\n
    \r\n
    \r\n {this.state.isCheckingToken && this.state.successMessage && this.state.successMessage !== \"\" &&\r\n this.state.clientId === null &&\r\n
    \r\n
    \r\n
    \r\n

    {this.state.successMessage}

    \r\n
    \r\n
    \r\n
    \r\n }\r\n {!this.state.isCheckingToken && !this.state.isPasswordSet && this.state.successMessage && \r\n this.state.successMessage !== \"\" && this.state.clientId === null &&\r\n
    \r\n
    \r\n
    \r\n

    {this.state.successMessage}

    \r\n
    \r\n
    \r\n
    \r\n Sign in\r\n
    \r\n
    \r\n Forgot password?\r\n
    \r\n
    \r\n }\r\n {!this.state.isCheckingToken && this.state.isPasswordSet && this.state.successMessage && \r\n this.state.successMessage !== \"\" &&\r\n
    \r\n
    \r\n
    \r\n

    {this.state.successMessage}

    \r\n
    \r\n
    \r\n
    \r\n Sign in\r\n
    \r\n
    \r\n }\r\n {this.state.clientId !== null && !this.state.isPasswordSet &&\r\n
    \r\n

    Set your password

    \r\n
    \r\n }\r\n {this.state.clientId !== null && !this.state.isPasswordSet &&\r\n
    \r\n
    \r\n
    \r\n {this.state.errorMessage && this.state.errorMessage !== \"\" &&
    {this.state.errorMessage}
    }\r\n {this.state.successMessage && this.state.successMessage !== \"\" &&
    {this.state.successMessage}
    }\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n } \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n isAnonymous: state.session.isAnonymous,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SetPasswordPage);","import React, { Component } from 'react';\r\nimport Loader from '../components/loader';\r\n\r\nclass PendingAuthentication extends Component{\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n render: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // The delay is added to prevent the message from flashing on the screen\r\n setTimeout(function() { \r\n //After 2 seconds, set render to true\r\n if(this.mainElement) {\r\n this.setState({render: true}); \r\n }\r\n }.bind(this), 2000)\r\n }\r\n\r\n render(){\r\n if(this.state.render) { \r\n return( \r\n \r\n
    this.mainElement = ref}>\r\n
    \r\n

    Our server is taking longer than expected to respond.

    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n\r\n return(\r\n null\r\n )\r\n }\r\n}\r\n\r\nexport default PendingAuthentication;","import React, { Component } from 'react';\r\nimport { BrowserRouter as Router, Route, Redirect } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport NavBar from 'components/navbar';\r\nimport Footer from 'components/footer';\r\nimport { GetSectionCustomizationOptions } from 'components/util';\r\n\r\nimport asyncComponent from \"components/AsyncComponent\";\r\n\r\nimport FeedbackPage from 'containers/FeedbackPage';\r\nimport LoginPage from 'containers/LoginPage';\r\nimport SSOPage from 'containers/SSOPage';\r\nimport CampaignPage from 'containers/CampaignPage';\r\nimport NotificationSystem from 'react-notification-system';\r\nimport ForgotPasswordPage from 'containers/ForgotPasswordPage';\r\nimport SignUpPage from 'containers/SignUpPage';\r\nimport CreateAccountPage from 'containers/CreateAccount';\r\nimport ResetPasswordPage from 'containers/ResetPasswordPage';\r\nimport SetPasswordPage from 'containers/SetPasswordPage';\r\nimport PendingAuthentication from 'containers/PendingAuthentication';\r\nimport RegisterPage from 'containers/RegisterPage';\r\nimport base64 from 'base-64';\r\nimport utf8 from 'utf8';\r\nimport qs from \"query-string\";\r\nimport { hubConnection } from 'signalr-no-jquery';\r\n\r\nimport * as sessionActions from 'actions/session';\r\nimport * as feedActions from 'actions/feed';\r\nimport * as activityActions from 'actions/activity';\r\nimport * as listingActions from 'actions/listings';\r\n\r\nconst AsyncLandingPage = asyncComponent(() => import(\"containers/LandingPage\"));\r\nconst AsyncProfilePage = asyncComponent(() => import(\"containers/ProfilePage\"));\r\nconst AsyncAgentClient = asyncComponent(() => import(\"components/agent/client\"));\r\nconst AsyncSearchPage = asyncComponent(() => import(\"containers/SearchPage\"));\r\nconst AsyncPropertyDetailPage = asyncComponent(() => import(\"containers/PropertyDetailPage\"));\r\nconst AsyncDashboardPage = asyncComponent(() => import(\"containers/DashboardPage\"));\r\nconst AsyncAddClientPage = asyncComponent(() => import(\"containers/AddClientPage\"));\r\nconst AsyncMyAgentPage = asyncComponent(() => import(\"containers/MyAgentPage\"));\r\nconst AsyncPersonalizePage = asyncComponent(() => import(\"containers/PersonalizePage\"));\r\nconst AsyncOnBoardPage = asyncComponent(() => import(\"containers/OnBoardPage\"));\r\nconst AsyncOnCostOfLivingPage = asyncComponent(() => import(\"containers/CostOfLivingPage\"));\r\nconst AsyncSiteTour = asyncComponent(() => import(\"components/sitetour\"));\r\nconst AsyncMyOffers = asyncComponent(() => import(\"components/myoffers\"));\r\nconst AsyncMyAPOffers = asyncComponent(() => import(\"components/myapoffers\"));\r\nconst AsyncCompareAlert = asyncComponent(() => import(\"components/PropertiesCompare\"));\r\nconst AsyncGoogleAnalytics = asyncComponent(() => import(\"components/GoogleAnalytics\"));\r\nconst AsyncApplicationInsights = asyncComponent(() => import(\"components/ApplicationInsights\"));\r\nconst AsyncAboutUsPage = asyncComponent(() => import(\"containers/AboutUsPage\"));\r\nconst AsyncPages = asyncComponent(() => import(\"components/pages\"));\r\nconst AsyncNeighborhood = asyncComponent(() => import(\"components/neighborhood\"));\r\nconst AsyncNeighborhoodsList = asyncComponent(() => import(\"components/neighborhoodslist\"));\r\nconst AsyncCommunitiesList = asyncComponent(() => import(\"components/communitieslist\"));\r\nconst AsyncAgentProfile = asyncComponent(() => import(\"components/agentProfile\"));\r\nconst AsyncCategories = asyncComponent(() => import(\"components/categories\"));\r\nconst AsyncBlogs = asyncComponent(() => import(\"components/blogs\"));\r\nconst AsyncTitleToolBox = asyncComponent(() => import(\"containers/TitleToolBox\"));\r\nconst AsyncAgentOfficePage = asyncComponent(() => import(\"containers/AgentOfficePage\"));\r\nconst AsyncPurlWrapper = asyncComponent(() => import(\"containers/PurlWrapper\"));\r\nconst AsyncAboutPage = asyncComponent(() => import(\"containers/AboutPage\"));\r\nconst AsyncJourneyPage = asyncComponent(() => import(\"containers/JourneyPage\"));\r\nconst AsyncJourneyPhase1IntroPage = asyncComponent(() => import(\"containers/JourneyPhase1IntroPage\"));\r\nconst AsyncJourneyPhase1YourLifeTodayPage = asyncComponent(() => import(\"containers/JourneyPhase1YourLifeTodayPage\"));\r\nconst AsyncJourneyPhase1YourFinancesTodayPage = asyncComponent(() => import(\"containers/JourneyPhase1YourFinancesTodayPage\"));\r\nconst AsyncJourneyPhase1HopesForTomorrowPage = asyncComponent(() => import(\"containers/JourneyPhase1HopesForTomorrowPage\"));\r\nconst AsyncJourneyPhase1MovingWherePage = asyncComponent(() => import(\"containers/JourneyPhase1MovingWherePage\"));\r\nconst AsyncJourneyPhase1NeighborhoodQualitiesPage = asyncComponent(() => import(\"containers/JourneyPhase1NeighborhoodQualitiesPage\"));\r\nconst AsyncJourneyPhase1StartCollectingListingsPage = asyncComponent(() => import(\"containers/JourneyPhase1StartCollectingListingsPage\"));\r\nconst AsyncJourneyPhase1YourTimingPage = asyncComponent(() => import(\"containers/JourneyPhase1YourTimingPage\"));\r\nconst AsyncJourneyPhase2IntroPage = asyncComponent(() => import(\"containers/JourneyPhase2IntroPage\"));\r\nconst AsyncJourneyPhase2WhatYouCanAffordPage = asyncComponent(() => import(\"containers/JourneyPhase2WhatYouCanAffordPage\"));\r\nconst AsyncJourneyPhase2GetYourCreditScorePage = asyncComponent(() => import(\"containers/JourneyPhase2GetYourCreditScorePage\"));\r\nconst AsyncJourneyPhase2BestWaysConnectPage = asyncComponent(() => import(\"containers/JourneyPhase2BestWaysConnectPage\"));\r\nconst AsyncJourneyPhase2MortgagesPage = asyncComponent(() => import(\"containers/JourneyPhase2MortgagesPage\"));\r\nconst AsyncJourneyPhase2TypesMortgagesPage = asyncComponent(() => import(\"containers/JourneyPhase2TypesMortgagesPage\"));\r\nconst AsyncJourneyPhase2CalculatingPaymentPage = asyncComponent(() => import(\"containers/JourneyPhase2CalculatingPaymentPage\"));\r\nconst AsyncJourneyPhase2Lenders101Page = asyncComponent(() => import(\"containers/JourneyPhase2Lenders101Page\"));\r\nconst AsyncJourneyPhase2ComparePotentialLendersPage = asyncComponent(() => import(\"containers/JourneyPhase2ComparePotentialLendersPage\"));\r\nconst AsyncJourneyPhase2PreApproval101Page = asyncComponent(() => import(\"containers/JourneyPhase2PreApproval101Page\"));\r\nconst AsyncJourneyPhase2GetPreApprovedPage = asyncComponent(() => import(\"containers/JourneyPhase2GetPreApprovedPage\"));\r\nconst AsyncJourneyPhase3IntroPage = asyncComponent(() => import(\"containers/JourneyPhase3IntroPage\"));\r\nconst AsyncJourneyPhase3FutureNeighborhoodPage = asyncComponent(() => import(\"containers/JourneyPhase3FutureNeighborhoodPage\"));\r\nconst AsyncJourneyPhase3MyFutureHomePage = asyncComponent(() => import(\"containers/JourneyPhase3MyFutureHomePage\"));\r\nconst AsyncJourneyPhase3NarrowDownYourListingsPage = asyncComponent(() => import(\"containers/JourneyPhase3NarrowDownYourListingsPage\"));\r\nconst AsyncJourneyPhase3FindGreatAgentPage = asyncComponent(() => import(\"containers/JourneyPhase3FindGreatAgentPage\"));\r\nconst AsyncJourneyPhase3ShareTouringAvailabilityPage = asyncComponent(() => import(\"containers/JourneyPhase3ShareTouringAvailabilityPage\"));\r\nconst AsyncJourneyPhase3TourHousesLikeProPage = asyncComponent(() => import(\"containers/JourneyPhase3TourHousesLikeProPage\"));\r\nconst AsyncJourneyPhase3DecideonHousePage = asyncComponent(() => import(\"containers/JourneyPhase3DecideonHousePage\"));\r\nconst AsyncJourneyPhase4IntroPage = asyncComponent(() => import(\"containers/JourneyPhase4IntroPage\"));\r\nconst AsyncJourneyPhase4Closings101Page = asyncComponent(() => import(\"containers/JourneyPhase4Closings101Page\"));\r\nconst AsyncJourneyPhase4FindAnEscrowAgentPage = asyncComponent(() => import(\"containers/JourneyPhase4FindAnEscrowAgentPage\"));\r\nconst AsyncJourneyPhase4MakingAnOffer101Page = asyncComponent(() => import(\"containers/JourneyPhase4MakingAnOffer101Page\"));\r\nconst AsyncJourneyPhase4CompletePurchaseOfferPage = asyncComponent(() => import(\"containers/JourneyPhase4CompletePurchaseOfferPage\"));\r\nconst AsyncJourneyPhase4WritePersonalNotePage = asyncComponent(() => import(\"containers/JourneyPhase4WritePersonalNotePage\"));\r\nconst AsyncJourneyPhase4SubmitPurchaseOfferPage = asyncComponent(() => import(\"containers/JourneyPhase4SubmitPurchaseOfferPage\"));\r\nconst AsyncJourneyPhase4ReviewGoodFaithEstimatePage = asyncComponent(() => import(\"containers/JourneyPhase4ReviewGoodFaithEstimatePage\"));\r\nconst AsyncJourneyPhase4GetHomeInspectionPage = asyncComponent(() => import(\"containers/JourneyPhase4GetHomeInspectionPage\"));\r\nconst AsyncJourneyPhase4ConfirmHomeAppraisalPage = asyncComponent(() => import(\"containers/JourneyPhase4ConfirmHomeAppraisalPage\"));\r\nconst AsyncJourneyPhase4ClearTitleOrderInsurancePage = asyncComponent(() => import(\"containers/JourneyPhase4ClearTitleOrderInsurancePage\"));\r\nconst AsyncJourneyPhase4ArrangeFinalWalkThruPage = asyncComponent(() => import(\"containers/JourneyPhase4ArrangeFinalWalkThruPage\"));\r\nconst AsyncJourneyPhase5IntroPage = asyncComponent(() => import(\"containers/JourneyPhase5IntroPage\"));\r\nconst AsyncJourneyPhase5ClosingMoveInDatesPage = asyncComponent(() => import(\"containers/JourneyPhase5ClosingMoveInDatesPage\"));\r\nconst AsyncJourneyPhase5HomeownerInsurance101Page = asyncComponent(() => import(\"containers/JourneyPhase5HomeownerInsurance101Page\"));\r\nconst AsyncJourneyPhase5OrderHomeownerInsurancePage = asyncComponent(() => import(\"containers/JourneyPhase5OrderHomeownerInsurancePage\"));\r\nconst AsyncJourneyPhase5PrepareToMovePage = asyncComponent(() => import(\"containers/JourneyPhase5PrepareToMovePage\"));\r\nconst AsyncJourneyPhase5ChangeAddressUtilitiesPage = asyncComponent(() => import(\"containers/JourneyPhase5ChangeAddressUtilitiesPage\"));\r\nconst AsyncJourneyPhase5RequestHUDFromLenderPage = asyncComponent(() => import(\"containers/JourneyPhase5RequestHUDFromLenderPage\"));\r\nconst AsyncJourneyPhase5ArrangeToPayClosingCostsPage = asyncComponent(() => import(\"containers/JourneyPhase5ArrangeToPayClosingCostsPage\"));\r\nconst AsyncJourneyPhase5GatherClosingDocsPage = asyncComponent(() => import(\"containers/JourneyPhase5GatherClosingDocsPage\"));\r\nconst AsyncJourneyPhase5PerformFinalWalkThruPage = asyncComponent(() => import(\"containers/JourneyPhase5PerformFinalWalkThruPage\"));\r\nconst AsyncJourneyPhase6IntroPage = asyncComponent(() => import(\"containers/JourneyPhase6IntroPage\"));\r\nconst AsyncJourneyPhase6ConfirmClosingDetailsPage = asyncComponent(() => import(\"containers/JourneyPhase6ConfirmClosingDetailsPage\"));\r\nconst AsyncJourneyPhase6ReviewHUD1Page = asyncComponent(() => import(\"containers/JourneyPhase6ReviewHUD1Page\"));\r\nconst AsyncJourneyPhase6CompareGFEToHUD1Page = asyncComponent(() => import(\"containers/JourneyPhase6CompareGFEToHUD1Page\"));\r\nconst AsyncJourneyPhase6AttendClosingPage = asyncComponent(() => import(\"containers/JourneyPhase6AttendClosingPage\"));\r\nconst AsyncJourneyPhase6WelcomeToYourHomePage = asyncComponent(() => import(\"containers/JourneyPhase6WelcomeToYourHomePage\"));\r\n\r\nconst AsyncJourneyPhase1Page = asyncComponent(() => import(\"containers/JourneyPhase1Page\"));\r\nconst AsyncJourneyPhase2Page = asyncComponent(() => import(\"containers/JourneyPhase2Page\"));\r\nconst AsyncJourneyPhase3Page = asyncComponent(() => import(\"containers/JourneyPhase3Page\"));\r\nconst AsyncJourneyPhase4Page = asyncComponent(() => import(\"containers/JourneyPhase4Page\"));\r\nconst AsyncJourneyPhase5Page = asyncComponent(() => import(\"containers/JourneyPhase5Page\"));\r\nconst AsyncJourneyPhase6Page = asyncComponent(() => import(\"containers/JourneyPhase6Page\"));\r\nconst AsyncInfoPage = asyncComponent(() => import(\"containers/InfoPage\"));\r\n\r\nconst AsyncManagePage = asyncComponent(() => import(\"containers/ManagePage\"));\r\nconst AsyncOpenHousesPage = asyncComponent(() => import(\"containers/OpenHousesPage\"));\r\nconst AsyncHotPropsPage = asyncComponent(() => import(\"containers/HotPropsPage\"));\r\nconst AsyncBuiltForYouPage = asyncComponent(() => import(\"containers/BuiltForYouPage\"));\r\nconst AsyncPrintPiecePage = asyncComponent(() => import(\"containers/PrintPiecePage\"));\r\nconst AsyncFeaturedPropsPage = asyncComponent(() => import(\"containers/FeaturedPropsPage\"));\r\n\r\nconst AsyncPlaceAdPage = asyncComponent(() => import(\"containers/PlaceAdPage\"));\r\n\r\nconst AsyncNewOnBoardingPage = asyncComponent(() => import(\"containers/NewOnBoardingPage\"));\r\n\r\nconst ThemeCustomizationOptions = GetSectionCustomizationOptions(\"ThemeOptions\");\r\nconst FooterCustomizationOptions = GetSectionCustomizationOptions(\"FooterOptions\");\r\nconst CommonCustomizationOptions = GetSectionCustomizationOptions(\"CommonOptions\");\r\nconst AdCustomizationOptions = GetSectionCustomizationOptions(\"AdOptions\");\r\n\r\nclass App extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showFooter: true,\r\n showHeader: true,\r\n isHeaderFixed: false\r\n };\r\n this.onShowHideHeader = this.onShowHideHeader.bind(this);\r\n this.onShowHideFooter = this.onShowHideFooter.bind(this);\r\n this.showNotification = this.showNotification.bind(this);\r\n this.onClientSelection = this.onClientSelection.bind(this);\r\n this.connection = hubConnection(window.sessionStorage.getItem('BaseAPI').replace('/api/', ''));\r\n this.hubProxy = this.connection.createHubProxy('tlchub');\r\n }\r\n\r\n onShowHideHeader(flag) {\r\n this.setState({showHeader: flag});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if(this.props.ssoLogoutRedirectUrl === null && nextProps.ssoLogoutRedirectUrl !== null && nextProps.ssoLogoutRedirectUrl !== \"\"){\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.IsAgentSSOEnabled){\r\n window.location = nextProps.ssoLogoutRedirectUrl; \r\n }\r\n }\r\n if (!this.props.sessionNotification && nextProps.sessionNotification) {\r\n if(this.showNotification) {\r\n this.showNotification(\"success\", \"\", nextProps.sessionNotification, 5000);\r\n }\r\n }\r\n else if (JSON.stringify(this.props.audience) !== JSON.stringify(nextProps.audience)) { \r\n if (nextProps.audience && nextProps.audience.Id && \r\n nextProps.session && nextProps.session.isAuthenticated && !nextProps.session.isAnonymous) { // logging in\r\n this.setState({signalRConnecting: true});\r\n this.hubInitialize(nextProps.audience.Id, nextProps.audience.AgentId); \r\n }\r\n else { // logging out\r\n if(this.props.audience && this.props.audience.Id){\r\n this.disconnectFromHub(this.props.audience.Id);\r\n }\r\n }\r\n }\r\n else if (JSON.stringify(this.props.selectedClient) !== JSON.stringify(nextProps.selectedClient)){\r\n var self = this;\r\n // this was added because opening new tab sometimes called hub before connection was established\r\n setTimeout(function isSignalRConnecting() {\r\n if (self.state.signalRConnecting) {\r\n setTimeout(isSignalRConnecting, 1000);\r\n }\r\n else {\r\n self.hubProxy.invoke('selectedClient', self.props.audience.Id, nextProps.selectedClient ? nextProps.selectedClient.Id : null);\r\n }\r\n }, 1000);\r\n }\r\n //Setting theme colors---\r\n const root = document.documentElement;\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.PrimaryColor && ThemeCustomizationOptions.PrimaryColor !== \"\"){ \r\n root.style.setProperty('--theme-primary-color', ThemeCustomizationOptions.PrimaryColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.PrimaryDarkColor && ThemeCustomizationOptions.PrimaryDarkColor !== \"\"){ \r\n root.style.setProperty('--theme-primary-dark-color', ThemeCustomizationOptions.PrimaryDarkColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.PrimaryLightColor && ThemeCustomizationOptions.PrimaryLightColor !== \"\"){ \r\n root.style.setProperty('--theme-primary-light-color', ThemeCustomizationOptions.PrimaryLightColor);\r\n }\r\n\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubPrimaryColor && ThemeCustomizationOptions.SubPrimaryColor !== \"\"){ \r\n root.style.setProperty('--theme-subprimary-color', ThemeCustomizationOptions.SubPrimaryColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubPrimaryDarkColor && ThemeCustomizationOptions.SubPrimaryDarkColor !== \"\"){ \r\n root.style.setProperty('--theme-subprimary-dark-color', ThemeCustomizationOptions.SubPrimaryDarkColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubPrimaryLightColor && ThemeCustomizationOptions.SubPrimaryLightColor !== \"\"){ \r\n root.style.setProperty('--theme-subprimary-light-color', ThemeCustomizationOptions.SubPrimaryLightColor);\r\n }\r\n\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SecondaryColor && ThemeCustomizationOptions.SecondaryColor !== \"\"){ \r\n root.style.setProperty('--theme-secondary-color', ThemeCustomizationOptions.SecondaryColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SecondaryDarkColor && ThemeCustomizationOptions.SecondaryDarkColor !== \"\"){ \r\n root.style.setProperty('--theme-secondary-dark-color', ThemeCustomizationOptions.SecondaryDarkColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SecondaryLightColor && ThemeCustomizationOptions.SecondaryLightColor !== \"\"){ \r\n root.style.setProperty('--theme-secondary-light-color', ThemeCustomizationOptions.SecondaryLightColor);\r\n }\r\n\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubSecondaryColor && ThemeCustomizationOptions.SubSecondaryColor !== \"\"){ \r\n root.style.setProperty('--theme-subsecondary-color', ThemeCustomizationOptions.SubSecondaryColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubSecondaryDarkColor && ThemeCustomizationOptions.SubSecondaryDarkColor !== \"\"){ \r\n root.style.setProperty('--theme-subsecondary-dark-color', ThemeCustomizationOptions.SubSecondaryDarkColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubSecondaryLightColor && ThemeCustomizationOptions.SubSecondaryLightColor !== \"\"){ \r\n root.style.setProperty('--theme-subsecondary-light-color', ThemeCustomizationOptions.SubSecondaryLightColor);\r\n }\r\n\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.TertiaryColor && ThemeCustomizationOptions.TertiaryColor !== \"\"){ \r\n root.style.setProperty('--theme-tertiary-color', ThemeCustomizationOptions.TertiaryColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.TertiaryDarkColor && ThemeCustomizationOptions.TertiaryDarkColor !== \"\"){ \r\n root.style.setProperty('--theme-tertiary-dark-color', ThemeCustomizationOptions.TertiaryDarkColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.TertiaryLightColor && ThemeCustomizationOptions.TertiaryLightColor !== \"\"){ \r\n root.style.setProperty('--theme-tertiary-light-color', ThemeCustomizationOptions.TertiaryLightColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.TourButtonColor && ThemeCustomizationOptions.TourButtonColor !== \"\"){ \r\n root.style.setProperty('--theme-tour-button-color', ThemeCustomizationOptions.TourButtonColor);\r\n }\r\n if(root && FooterCustomizationOptions && FooterCustomizationOptions.FooterBackgroundColor && FooterCustomizationOptions.FooterBackgroundColor !== \"\"){ \r\n root.style.setProperty('--theme-footer-background-color', FooterCustomizationOptions.FooterBackgroundColor);\r\n }\r\n if(root && FooterCustomizationOptions && FooterCustomizationOptions.FooterSubBackgroundColor && FooterCustomizationOptions.FooterSubBackgroundColor !== \"\"){ \r\n root.style.setProperty('--theme-footer-sub-background-color', FooterCustomizationOptions.FooterSubBackgroundColor);\r\n }\r\n if(root && FooterCustomizationOptions && FooterCustomizationOptions.FooterBorderColor && FooterCustomizationOptions.FooterBorderColor !== \"\"){ \r\n root.style.setProperty('--theme-footer-border-color', FooterCustomizationOptions.FooterBorderColor);\r\n }\r\n if(root && FooterCustomizationOptions && FooterCustomizationOptions.FooterFontColor && FooterCustomizationOptions.FooterFontColor !== \"\"){ \r\n root.style.setProperty('--theme-footer-font-color', FooterCustomizationOptions.FooterFontColor);\r\n }\r\n if(root && FooterCustomizationOptions && FooterCustomizationOptions.FooterSubFontColor && FooterCustomizationOptions.FooterSubFontColor !== \"\"){ \r\n root.style.setProperty('--theme-footer-sub-font-color', FooterCustomizationOptions.FooterSubFontColor);\r\n }\r\n \r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubSiteMenuFontColor && ThemeCustomizationOptions.SubSiteMenuFontColor !== \"\"){\r\n root.style.setProperty('--theme-subsitemenu-font-color', ThemeCustomizationOptions.SubSiteMenuFontColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubSiteMenuFontHoverColor && ThemeCustomizationOptions.SubSiteMenuFontHoverColor !== \"\"){\r\n root.style.setProperty('--theme-subsitemenu-fonthover-color', ThemeCustomizationOptions.SubSiteMenuFontHoverColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubSiteMenuBackgroundColor && ThemeCustomizationOptions.SubSiteMenuBackgroundColor !== \"\"){\r\n root.style.setProperty('--theme-subsitemenu-background-color', ThemeCustomizationOptions.SubSiteMenuBackgroundColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.SubSiteMenuFontSubColor && ThemeCustomizationOptions.SubSiteMenuFontSubColor !== \"\"){\r\n root.style.setProperty('--theme-subsitemenu-font-subcolor', ThemeCustomizationOptions.SubSiteMenuFontSubColor);\r\n }\r\n if(root && ThemeCustomizationOptions && ThemeCustomizationOptions.OnBoardingSecondaryColor && ThemeCustomizationOptions.OnBoardingSecondaryColor !== \"\"){\r\n root.style.setProperty('--theme-onboard-color', ThemeCustomizationOptions.OnBoardingSecondaryColor);\r\n }\r\n //------\r\n }\r\n\r\n onShowHideFooter(flag) {\r\n this.setState({showFooter: flag, isHeaderFixed: !flag});\r\n }\r\n\r\n componentDidMount(){\r\n\r\n // Refresh the auth token every minute\r\n this.refreshAuthTimer = setInterval(this.refreshAuth, 120000);\r\n\r\n // SignalR Heartbeat\r\n this.signalrHeartbeatTimer = setInterval(this.signalrHeartbeat, 15000);\r\n\r\n /* include oneall script */\r\n var oneall_subdomain = 'tlc-social-login';\r\n var oneAll = document.createElement('script');\r\n oneAll.type = 'text/javascript'; oneAll.async = true;\r\n oneAll.src = '//' + oneall_subdomain + '.api.oneall.com/socialize/library.js';\r\n var script = document.getElementsByTagName('script')[0];\r\n script.parentNode.insertBefore(oneAll, script);\r\n\r\n window.addEventListener(\"beforeunload\", () => {\r\n this.disconnectFromHub(this.props.audience.Id);\r\n }, false)\r\n }\r\n\r\n hubInitialize = (id, agentId) => {\r\n var self = this;\r\n // set up event listeners i.e. for incoming \"message\" event\r\n this.hubProxy.on('message', function (message) {\r\n console.log(message);\r\n });\r\n\r\n this.hubProxy.on('agentConnected', function (message) {\r\n console.log(message);\r\n });\r\n\r\n this.hubProxy.on('agentDisconnected', function (message) {\r\n console.log(message);\r\n });\r\n\r\n this.hubProxy.on('clientsConnected', function (clientIds) {\r\n console.log('clients connected: ' + clientIds.join(','));\r\n });\r\n \r\n // TODO store agent clientids in redux to avoid this hub response\r\n this.hubProxy.on('isSelectedClientConnected', function (isConnected) {\r\n });\r\n\r\n this.hubProxy.on('loadActivity', function (result) {\r\n self.props.activityActions\r\n .addActivitiesToEntities(self.props.selectedClient ? self.props.selectedClient.Id: 'mine', result)\r\n .then(self.refreshFeedItems);\r\n console.log('selectedClient: ' + self.props.selectedClient + JSON.stringify(result));\r\n });\r\n\r\n this.connection.connectionSlow(() => {\r\n // The Socket is still connect but there is connection issues\r\n // We will attempt to reconnect\r\n console.log('We are currently experiencing difficulties with the connection. Will reattempt. ');\r\n \r\n });\r\n\r\n // connect\r\n self.connectToHub(id, agentId);\r\n }\r\n\r\n connectToHub = (id, agentId) => {\r\n var self = this;\r\n \r\n // connect\r\n this.connection.start()\r\n .done(function () {\r\n console.log('Now connected, connection ID=' + self.connection.id);\r\n self.hubProxy.invoke('connectToHub', id, agentId);\r\n self.getMyActivity();\r\n self.setState({signalRConnecting: false});\r\n\r\n self.connection.disconnected(() => {\r\n // Socket is closed there will be no more attempt to reconnect\r\n // Try to reconnect in 5 seconds\r\n // setTimeout(self.signalrReconnect, 5000);\r\n });\r\n\r\n })\r\n .fail(function () { \r\n console.log('SignalR Connection failed.'); \r\n });\r\n }\r\n\r\n disconnectFromHub = (id) => {\r\n this.connection.disconnected(() => { \r\n });\r\n\r\n // Disconnect\r\n if (this.connection !== undefined && this.connection.id !== undefined) {\r\n this.hubProxy.invoke('disconnectFromHub', id);\r\n }\r\n this.connection.stop();\r\n }\r\n\r\n // Update the server with a Heartbeat\r\n signalrHeartbeat = () => {\r\n if (this.connection !== undefined && this.connection.id !== undefined) { \r\n this.hubProxy.invoke('HeartBeat');\r\n } \r\n }\r\n\r\n signalrReconnect = () => {\r\n if ((!this.connection || !this.connection.id) && this.props.audience &&\r\n this.props.audience.Id !== undefined && this.props.session && !this.props.session.isAnonymous) {\r\n this.connectToHub(this.props.audience.Id, this.props.audience.AgentId); \r\n }\r\n }\r\n\r\n componentWillUnmount(){\r\n clearInterval(this.refreshAuthTimer);\r\n clearInterval(this.signalrHeartbeatTimer);\r\n clearInterval(this.feedTimer);\r\n }\r\n\r\n refreshAuth = () => {\r\n const { session, sessionActions } = this.props;\r\n if (session.isAuthenticated && session.isAuthenticating === false) {\r\n sessionActions.refreshAuthToken();\r\n }\r\n }\r\n \r\n getMyActivity = () => { \r\n this.props.activityActions.loadActivity('mine', false, true).then(this.refreshFeedItems); \r\n }\r\n\r\n checkForNewActivity = () => {\r\n const { session, selectedClient, activityActions, isAnonymous} = this.props;\r\n\r\n if (session.isAuthenticated && session.isAuthenticating === false && !isAnonymous) {\r\n\r\n if (selectedClient) {\r\n activityActions.loadActivity(selectedClient.Id, false, true).then(this.refreshFeedItems);\r\n }\r\n else {\r\n activityActions.loadActivity('mine', false, true).then(this.refreshFeedItems);\r\n }\r\n }\r\n }\r\n\r\n // Update any items in the dashboard if they exist\r\n refreshFeedItems = () => {\r\n const {feedActions, feedActivity, feedActivityEntities, listingActions, selectedClient, audience } = this.props;\r\n if (feedActivity === undefined || feedActivity.updateDashboardIds === undefined || feedActivity.updateDashboardIds.length === 0) {\r\n return;\r\n }\r\n var updateBookmarks = false;\r\n var updateFavorites = false;\r\n \r\n const lastReadId = Math.max.apply(Math, feedActivity.updateDashboardIds);\r\n this.hubProxy.invoke('setLastReadId', audience.Id, lastReadId);\r\n\r\n feedActivity.updateDashboardIds.forEach(function (feedId) {\r\n var item = feedActivityEntities[feedId]\r\n\r\n // Update the entity for each updated FeedItem\r\n if (item.ListingId !== null) {\r\n feedActions.fetchListingFeed(item.ClientId, item.ListingId)\r\n if ((item.ActionName === 'CreatedBookmark' || item.ActionName === 'DeletedBookmark') &&\r\n (audience.type !== 'agent' || (selectedClient && selectedClient.Id === item.ClientId)))\r\n updateBookmarks = true;\r\n else if ((item.ActionName === 'CreatedFavorite' || item.ActionName === 'DeletedFavorite') &&\r\n (audience.type !== 'agent' || (selectedClient && selectedClient.Id === item.ClientId)))\r\n updateFavorites = true;\r\n }\r\n });\r\n if (updateBookmarks)\r\n listingActions.fetchAgentClientListings('bookmarks', selectedClient ? selectedClient.Id : 0);\r\n if (updateFavorites)\r\n listingActions.fetchAgentClientListings('favorites', selectedClient ? selectedClient.Id : 0);\r\n }\r\n\r\n showNotification(type, title, message, duration, button1Text, button1Function, button1FunctionParam, button2Text, button2Function,button2FunctionParam){\r\n if(this.notificationSystem) {\r\n var nProps = {\r\n message: message,\r\n level: type,\r\n autoDismiss: 8,\r\n dismissible: true,\r\n position: 'tc'\r\n };\r\n if(title && title !== ''){\r\n nProps.title = title;\r\n }\r\n if(button1Text || button2Text){\r\n var btn1 = null;\r\n if(button1Text && button1Function && button1FunctionParam){\r\n btn1 = \r\n }\r\n else if(button1Text && button1Function && !button1FunctionParam){\r\n btn1 = \r\n }\r\n else if(button1Text && !button1Function){\r\n btn1 = \r\n }\r\n var btn2 = null;\r\n if(button2Text && button2Function && button2FunctionParam){\r\n btn2 = \r\n }\r\n else if(button2Text && button2Function && !button2FunctionParam){\r\n btn2 = \r\n }\r\n else if(button2Text && !button2Function){\r\n btn2 = \r\n }\r\n var child = (
    {btn1} {btn2}
    );\r\n nProps.children = child;\r\n nProps.autoDismiss = 0;\r\n }\r\n\r\n this.notificationSystem.addNotification(nProps);\r\n }\r\n }\r\n\r\n onClientSelection(selectedClient){\r\n if(this.propertyDetailPageRef){\r\n if(this.propertyDetailPageRef.workingWithClient){\r\n this.propertyDetailPageRef.workingWithClient(selectedClient);\r\n }\r\n }\r\n if(this.dashboardPageRef){\r\n if(this.dashboardPageRef.workingWithClient){\r\n this.dashboardPageRef.workingWithClient(selectedClient);\r\n }\r\n }\r\n if(this.searchPageRef){\r\n if(this.searchPageRef.workingWithClient){\r\n this.searchPageRef.workingWithClient(selectedClient);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { session, sessionActions } = this.props;\r\n\r\n var mainElementClass = \"main-nonfixed\";\r\n if(this.state.isHeaderFixed) {\r\n mainElementClass = \"main-fixed\";\r\n }\r\n if(ThemeCustomizationOptions && ThemeCustomizationOptions.MainMenuBarClass && ThemeCustomizationOptions.MainMenuBarClass !== \"\"){\r\n mainElementClass = mainElementClass + \" \" + ThemeCustomizationOptions.MainMenuBarClass;\r\n }\r\n else{\r\n mainElementClass = mainElementClass + \" menu-standard\";\r\n }\r\n if(FooterCustomizationOptions && FooterCustomizationOptions.ShowCustomAds){\r\n mainElementClass = mainElementClass + \" admargin\";\r\n }\r\n\r\n if(FooterCustomizationOptions && FooterCustomizationOptions.FooterStyle && FooterCustomizationOptions.FooterStyle !== \"\"){\r\n mainElementClass = mainElementClass + \" \" + FooterCustomizationOptions.FooterStyle;\r\n }\r\n\r\n if(ThemeCustomizationOptions && ThemeCustomizationOptions.MainSearchBarClass && ThemeCustomizationOptions.MainSearchBarClass !== \"\"){\r\n mainElementClass = mainElementClass + \" \" + ThemeCustomizationOptions.MainSearchBarClass;\r\n }\r\n\r\n if(!this.props.isAnonymous) mainElementClass = mainElementClass + \" loggedin\"; \r\n\r\n var header = null;\r\n\r\n // Do not load the Nav Bar until the user is authenticated or bad things will happen\r\n //if(this.state.showHeader && session.isAuthenticated ) {\r\n if(this.state.showHeader) {\r\n header = \r\n }\r\n\r\n var footer = null;\r\n if(this.state.showFooter) {\r\n footer =
    \r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {/* this.notificator = ref} />*/}\r\n this.notificationSystem = ref} />\r\n\r\n {/* if is purl don't render header but pass as param to be rendered inside */}\r\n {\r\n return location.pathname.indexOf('/agenturl/') === -1 ? header : null \r\n }} />\r\n \r\n }\r\n />\r\n \r\n }\r\n />\r\n \r\n }\r\n />\r\n (\r\n this.signUpPageRef = ref}\r\n onShowHideFooter={this.onShowHideFooter}\r\n showFooter={this.state.showFooter}\r\n onShowHideHeader={this.onShowHideHeader}\r\n showHeader={this.state.showHeader}\r\n showNotification={this.showNotification}\r\n {...props} />\r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n this.forgotPasswordPageRef = ref}\r\n onShowHideFooter={this.onShowHideFooter}\r\n showFooter={this.state.showFooter}\r\n onShowHideHeader={this.onShowHideHeader}\r\n showHeader={this.state.showHeader}\r\n showNotification={this.showNotification}\r\n {...props} />\r\n )} />\r\n (\r\n this.createAccountPageRef = ref}\r\n onShowHideFooter={this.onShowHideFooter}\r\n showFooter={this.state.showFooter}\r\n onShowHideHeader={this.onShowHideHeader}\r\n showHeader={this.state.showHeader}\r\n showNotification={this.showNotification}\r\n {...props} />\r\n )} />\r\n (\r\n this.resetPasswordPageRef = ref}\r\n onShowHideFooter={this.onShowHideFooter}\r\n showFooter={this.state.showFooter}\r\n onShowHideHeader={this.onShowHideHeader}\r\n showHeader={this.state.showHeader}\r\n showNotification={this.showNotification}\r\n {...props} />\r\n )} />\r\n (\r\n this.setPasswordPageRef = ref}\r\n onShowHideFooter={this.onShowHideFooter}\r\n showFooter={this.state.showFooter}\r\n onShowHideHeader={this.onShowHideHeader}\r\n showHeader={this.state.showHeader}\r\n showNotification={this.showNotification}\r\n {...props} />\r\n )} />\r\n (\r\n this.feedbackPageRef = ref}\r\n onShowHideFooter={this.onShowHideFooter}\r\n showFooter={this.state.showFooter}\r\n onShowHideHeader={this.onShowHideHeader}\r\n showHeader={this.state.showHeader}\r\n showNotification={this.showNotification}\r\n {...props} />\r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n (\r\n \r\n )} />\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n (

    Favorties

    )}/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n\r\n \r\n \r\n \r\n \r\n {(AdCustomizationOptions && AdCustomizationOptions.ShowMyAPOffers) ?\r\n () :\r\n ((AdCustomizationOptions && AdCustomizationOptions.MyOffersURL && AdCustomizationOptions.MyOffersURL !== \"\") ?\r\n : null)\r\n } \r\n
    \r\n
    \r\n
    \r\n {footer}\r\n {(CommonCustomizationOptions && CommonCustomizationOptions.WebsiteErrorMessage && CommonCustomizationOptions.WebsiteErrorMessage !== \"\") &&\r\n
    {CommonCustomizationOptions.WebsiteErrorMessage}
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => {\r\n\r\n const { entities, clients, activity } = state;\r\n const selectedClient = entities.clients[clients.selectedClient];\r\n\r\n let feedActivity;\r\n if (selectedClient) {\r\n feedActivity = activity[selectedClient.Id];\r\n }\r\n else {\r\n feedActivity = activity['mine'];\r\n }\r\n\r\n var session = state.session;\r\n\r\n return {\r\n audience: state.session.audience,\r\n session,\r\n sessionNotification: state.session.notificationMessage,\r\n feedItems: state.entities.feedItems,\r\n selectedClient, \r\n feedActivity,\r\n feedActivityEntities: state.entities.activities,\r\n isAnonymous: state.session.isAnonymous,\r\n ssoLogoutRedirectUrl: state.session.ssoLogoutRedirectUrl\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch),\r\n feedActions: bindActionCreators(feedActions, dispatch),\r\n activityActions: bindActionCreators(activityActions, dispatch),\r\n listingActions: bindActionCreators(listingActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\r\n\r\n// Redirect to the component only if the user is logged in, otherwise send to login page\r\nconst PrivateRoute = ({component: Component, session, refreshAuth, ...rest }) => (\r\n {\r\n\r\n const { isAuthenticating, isAuthenticated, isAnonymous } = session;\r\n\r\n // We are not Authenticated and there is no open Authentication requests\r\n // Redirect to login\r\n if (isAuthenticating === false && (isAuthenticated === false || (isAuthenticated && isAnonymous))) {\r\n // check if using social login\r\n if (props.location && props.location.search) {\r\n const obj = qs.parse(props.location.search);\r\n if (obj.oaToken) {\r\n var socialResponse = JSON.parse(base64.decode(obj.oaToken));\r\n rest.sessionActions.manualLogin(socialResponse);\r\n sessionStorage.setItem(\"LoggedInWithSocialLogins\",\"true\");\r\n return ;\r\n }\r\n }\r\n }\r\n\r\n if (isAuthenticated === false && isAuthenticating === false) {\r\n if(props.location && props.location.pathname && props.location.pathname !== '/' && \r\n props.location.pathname !== '/profile' && props.location.pathname !== '/register'){\r\n window.sessionStorage.setItem(\"RedirectLocation\",base64.encode(utf8.encode(props.location.pathname)));\r\n }\r\n return ;\r\n }\r\n\r\n //Waiting on Authentication to Complete\r\n if (isAuthenticating && isAuthenticated === false) {\r\n return ;\r\n }\r\n\r\n if(window.sessionStorage.getItem(\"RedirectLocation\")){ \r\n window.sessionStorage.removeItem(\"RedirectLocation\");\r\n }\r\n\r\n\r\n if(!isAuthenticating && isAuthenticated && isAnonymous){\r\n if(rest.path && (rest.path.indexOf(\"/profile\") > -1 || rest.path.indexOf(\"/dashboard\") > -1 || \r\n rest.path.indexOf(\"/agent/clients/\") > -1 || rest.path.indexOf(\"/myagent\") > -1 || \r\n rest.path.indexOf(\"/agent/client/add\") > -1)){\r\n return ;\r\n }\r\n }\r\n\r\n return ;\r\n\r\n }}/>\r\n)\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (!isLocalhost) {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n } else {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import Cookies from 'universal-cookie';\r\nimport { refreshAuthToken } from 'actions/session';\r\nimport { fetchAgentClientListings } from 'actions/listings';\r\nimport { fetchProfile, fetchMyAgentProfile } from 'actions/profile';\r\nimport { fetchClients } from 'actions/clients';\r\nimport { fetchSettings, fetchAuthMechanism, fetchPrintPieceURL } from 'actions/settings';\r\nimport { fetchTeamAgents } from 'actions/agents';\r\nimport { GetSectionCustomizationOptions } from 'components/util';\r\n\r\nconst CommonCustomizationOptions = GetSectionCustomizationOptions(\"CommonOptions\");\r\n\r\nexport default function setupLoginState(store) {\r\n const cookies = new Cookies();\r\n const authToken = cookies.get('authDetails');\r\n\r\n if(store){\r\n \r\n if (authToken) {\r\n store.dispatch(refreshAuthToken()).then(r => {\r\n if(r.response && r.response.AccessToken && r.response.AudienceType){\r\n store.dispatch(fetchProfile());\r\n store.dispatch(fetchSettings());\r\n store.dispatch(fetchAuthMechanism());\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.FetchPrintPieceUrl){\r\n store.dispatch(fetchPrintPieceURL());\r\n }\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers){\r\n store.dispatch(fetchTeamAgents());\r\n }\r\n\r\n if (r.response.AudienceType === 'CLIENT') {\r\n store.dispatch(fetchMyAgentProfile());\r\n store.dispatch(fetchAgentClientListings(\"favorites\"));\r\n store.dispatch(fetchAgentClientListings(\"bookmarks\"));\r\n store.dispatch(fetchAgentClientListings(\"removed\"));\r\n store.dispatch(fetchAgentClientListings(\"agentlistings\"));\r\n }\r\n else {\r\n store.dispatch(fetchClients());\r\n store.dispatch(fetchAgentClientListings(\"agentlistings\"));\r\n }\r\n }\r\n });\r\n }\r\n\r\n if(!authToken) {\r\n //store.dispatch(anonymousLogin());\r\n store.dispatch(fetchSettings());\r\n store.dispatch(fetchAuthMechanism());\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.FetchPrintPieceUrl){\r\n store.dispatch(fetchPrintPieceURL());\r\n }\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers){\r\n store.dispatch(fetchTeamAgents());\r\n }\r\n }\r\n }\r\n}\r\n","import { getGUID } from 'components/util';\r\n\r\n\r\nexport default function setupGlobalVariables() {\r\n\r\n // Use SessionStorage for now but we will want to tie this to users settings\r\n window.sessionStorage.setItem(\"APIKey\", \"\");\r\n window.sessionStorage.setItem(\"SoundScoreKey\", \"IYzwQFXCXqlSirWy\");\r\n window.sessionStorage.setItem(\"WalkScoreKey\", \"d654eda8614498e8685981ae8320ca2c\");\r\n window.sessionStorage.setItem(\"MLSKey\", \"true\");\r\n window.sessionStorage.setItem('APIAudience', 'agents/');\r\n\r\n // Check for Non Expired Auth Token Env Variable to be used for Anonymous\r\n if (process.env.REACT_APP_NonExpiredAuthToken && process.env.REACT_APP_NonExpiredAuthToken !== \"\"){\r\n window.sessionStorage.setItem(\"APIKey\", process.env.REACT_APP_NonExpiredAuthToken);\r\n }\r\n\r\n // Check for BaseAPI Env Variable\r\n if (process.env.REACT_APP_BaseAPI !== undefined){\r\n window.sessionStorage.setItem(\"BaseAPI\", process.env.REACT_APP_BaseAPI);\r\n }\r\n else {\r\n window.sessionStorage.setItem(\"BaseAPI\", \"https://uat-api.truebytlc.com/v3/api/\");\r\n }\r\n // Check for Portal Key Env Variable\r\n if (process.env.REACT_APP_PortalKey && process.env.REACT_APP_PortalKey !== \"\"){\r\n window.sessionStorage.setItem(\"RootAPI\", window.sessionStorage.getItem(\"BaseAPI\") + process.env.REACT_APP_PortalKey + \"/\");\r\n window.sessionStorage.setItem(\"MLSKey\", process.env.REACT_APP_PortalKey);\r\n }\r\n else if (process.env.REACT_APP_MLSKey && process.env.REACT_APP_MLSKey !== \"\"){\r\n window.sessionStorage.setItem(\"RootAPI\", window.sessionStorage.getItem(\"BaseAPI\") + process.env.REACT_APP_MLSKey + \"/\");\r\n window.sessionStorage.setItem(\"MLSKey\", process.env.REACT_APP_MLSKey);\r\n }\r\n else {\r\n window.sessionStorage.setItem(\"RootAPI\", window.sessionStorage.getItem(\"BaseAPI\") + \"true/\");\r\n }\r\n\r\n // Generate Device ID, if not already done\r\n window.localStorage.removeItem(\"DeviceIDs\");\r\n window.localStorage.removeItem(\"DeviceID\");\r\n var DeviceUID = window.localStorage.getItem(\"DeviceUID\");\r\n if(!DeviceUID || DeviceUID === \"\"){\r\n window.localStorage.setItem(\"DeviceUID\", getGUID());\r\n }\r\n\r\n}\r\n","import 'react-app-polyfill/ie9';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport './css/index.css';\r\nimport store from './store/store'\r\nimport App from './containers/App';\r\nimport { unregister } from './registerServiceWorker';\r\nimport {isIE, browserVersion} from 'react-device-detect';\r\nimport 'bootstrap/dist/css/bootstrap.css';\r\nimport 'font-awesome/css/font-awesome.css';\r\n\r\n//Select-box css\r\nimport './css/select-box.css';\r\n//Carousel css\r\nimport 'react-responsive-carousel/lib/styles/carousel.min.css';\r\n// Theme file\r\nimport './css/variable.css';\r\nimport './css/App.css';\r\nimport './scss/App.scss';\r\n// Print Css\r\nimport './css/print.css';\r\n\r\nimport setupGlobalVariables from './setupGlobalVariables';\r\nimport setupLoginState from './setupLoginState';\r\n\r\nsetupGlobalVariables();\r\nsetupLoginState(store);\r\n\r\nif(isIE && browserVersion <= 10){\r\n ReactDOM.render(\r\n
    \r\n

    Internet Explorer 10 or lower versions are not supported

    \r\n

    Either update to Internet Explorer 11 or Edge [Check here]

    \r\n

    Or use Google Chrome [Download here]

    \r\n
    ,\r\n document.getElementById('root')\r\n );\r\n}\r\nelse {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n );\r\n}\r\n\r\n//registerServiceWorker();\r\n// Because Service Workers were added before we have to disable them\r\nunregister();\r\n","import React from 'react';\r\nimport Loader from './loader';\r\n\r\nclass FeedbackForm extends React.Component {\r\n state = {\r\n Name: \"\",\r\n Email: \"\",\r\n UserType: \"agent\",\r\n Message: \"\",\r\n postingForm: false,\r\n ErrorMsg: \"\",\r\n csvData: {}\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if(JSON.stringify(this.props.profile) !== JSON.stringify(nextProps.profile) && \r\n nextProps.profile && !nextProps.isAnonymous){\r\n this.setState({\r\n Name: nextProps.profile.FirstName + \" \" + nextProps.profile.LastName,\r\n Email: nextProps.profile.Email ? nextProps.profile.Email : \"\",\r\n UserType: nextProps.audience.type\r\n });\r\n }\r\n \r\n }\r\n\r\n isValid = () => {\r\n const { Name, Email, Message} = this.state;\r\n var errMsg = \"\";\r\n if(!Name || Name === \"\"){\r\n errMsg = \"Please enter your name\";\r\n }\r\n else if(!Email || Email === \"\"){\r\n errMsg = \"Please enter your email\";\r\n }\r\n // eslint-disable-next-line\r\n else if(Email && !(/^[\\w-+\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/).test(Email)){\r\n errMsg = \"Please enter a valid email\";\r\n }\r\n else if(!Message || Message === \"\"){\r\n errMsg = \"Please enter your comments\";\r\n }\r\n \r\n this.setState({ErrorMsg : errMsg});\r\n\r\n return(errMsg === \"\");\r\n }\r\n\r\n handleInputChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n \r\n this.setState({[name]: value, ErrorMsg: \"\"});\r\n\r\n }\r\n\r\n onSubmitForm = (e) => {\r\n if(e) e.preventDefault();\r\n\r\n if (this.isValid()) {\r\n var self = this;\r\n\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"sendfeedback\";\r\n\r\n var reqBody = {\r\n SenderName: self.state.Name,\r\n SenderEmail: self.state.Email,\r\n SenderType: self.state.UserType,\r\n Comment: self.state.Message,\r\n }\r\n \r\n self.setState({postingForm: true});\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"APIKey\")\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(reqBody)\r\n })\r\n .then(response => {\r\n if (response.ok) return response.json()\r\n else throw Error(response.statusText)\r\n })\r\n .then(json => {\r\n self.setState({Message: \"\", postingForm: false});\r\n if(self.props.showNotification) {\r\n self.props.showNotification(\r\n \"success\",\r\n \"\",\r\n \"Thanks for your feedback. We will get back to you soon.\",\r\n 5000);\r\n } \r\n })\r\n .catch(function (data) {\r\n self.setState({postingForm: false});\r\n if(self.props.showNotification) {\r\n self.props.showNotification(\r\n \"success\",\r\n \"\",\r\n \"Failed sending your feedback. Please try again later.\",\r\n 5000);\r\n } \r\n });\r\n }\r\n } \r\n\r\n render() {\r\n const { Name, Email, UserType, Message, ErrorMsg, postingForm } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    HELP US IMPROVE

    \r\n

    Have an idea on how we can make our site better? Have you found a bug or an issue you’d like to report? Please use this form to let us know. We’ll get back to you as soon as possible. Thanks for your help!

    \r\n
    \r\n {ErrorMsg && ErrorMsg !== \"\" &&\r\n
    {ErrorMsg}
    \r\n }\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n Agent\r\n \r\n \r\n \r\n Client\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    { this.state.paaErrorMessage }
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n {this.state.sendingPAA ?\r\n :\r\n \r\n }\r\n
    \r\n
    \r\n \r\n }\r\n\r\n cuSubmit = () => {\r\n const { cuValues } = this.state;\r\n\r\n var cuErrorMessage = \"\";\r\n const recaptchaValue = recaptchaRef.current.getValue();\r\n\r\n if(!cuValues.SenderName || cuValues.SenderName === \"\"){\r\n cuErrorMessage = \"Please enter your name\";\r\n }\r\n else if(!cuValues.SenderEmail || cuValues.SenderEmail === \"\"){\r\n cuErrorMessage = \"Please enter your email\";\r\n }\r\n // eslint-disable-next-line\r\n else if(cuValues.SenderEmail && /^[\\w-+\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/.test(cuValues.SenderEmail) === false){\r\n cuErrorMessage = \"Please enter a valid email\";\r\n } \r\n else if(!cuValues.EmailFor || cuValues.EmailFor === \"\"){\r\n cuErrorMessage = \"Please select type\";\r\n }\r\n else if(!cuValues.Comment || cuValues.Comment === \"\"){\r\n cuErrorMessage = \"Please enter message\";\r\n }\r\n else if(!recaptchaValue)\r\n cuErrorMessage = \"Oops, you have to check the captcha!\";\r\n\r\n if(cuErrorMessage === \"\"){\r\n var self = this;\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"contactus\";\r\n \r\n var mBody = JSON.parse(JSON.stringify(cuValues));\r\n if(self.props.isAnonymous){\r\n mBody.SenderType = 'ANON';\r\n }\r\n else if(self.props.audience && self.props.audience.type && self.props.audience.type !== \"\"){\r\n mBody.SenderType = self.props.audience.type.toUpperCase();\r\n if(self.props.audience && self.props.audience.Id && self.props.audience.Id !== \"\"){\r\n mBody.SenderId = self.props.audience.Id;\r\n }\r\n }\r\n mBody.EmailType = \"CONTACTUS\";\r\n\r\n self.setState({sendingCU: true});\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"APIKey\")\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(mBody)\r\n })\r\n .then(response => response.json())\r\n .then(json => {\r\n self.setState({ showCUModal: false, cuErrorMessage: '', sendingCU: false });\r\n if(self.props.showNotification){\r\n self.props.showNotification(\r\n \"success\", \r\n \"\", \r\n \"Thanks for your message. We will contact you soon\",\r\n 5000\r\n );\r\n } \r\n })\r\n .catch(function(data){\r\n console.log(data);\r\n self.setState({sendingCU: false});\r\n if(self.props.showNotification){\r\n self.props.showNotification(\r\n \"error\", \r\n \"\", \r\n \"Message sending failed. Please try again later\",\r\n 5000\r\n );\r\n } \r\n });\r\n \r\n }\r\n else{\r\n this.setState({ cuErrorMessage: cuErrorMessage });\r\n } \r\n }\r\n\r\n showCUModal = () => {\r\n return \r\n \r\n
    \r\n

    Contact Us

    \r\n
    Linda Doane
    \r\n
    \r\n Direct: 716-636-9000 ext 122\r\n Email: ldoane@bnar.org\r\n
    \r\n
    Open \"Place an Ad\" link from the Footer for more information about advertising on our Website
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.handleInputChange(e,'cuValues')} />\r\n
    \r\n
    \r\n this.handleInputChange(e, 'cuValues')} />\r\n
    \r\n
    \r\n this.handleInputChange(e, 'cuValues')} />\r\n
    \r\n
    \r\n this.handleInputChange({target: {name: 'EmailFor', value: e}}, 'cuValues')}>\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    { this.state.cuErrorMessage }
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {this.state.sendingCU ?\r\n :\r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n openPAAModal = () => {\r\n this.setState({ showPAAModal: true, paaValues: {} });\r\n }\r\n\r\n openCUModal = () => {\r\n this.setState({ showCUModal: true, cuValues: {} });\r\n }\r\n\r\n render(){\r\n \r\n this.openPolicyDialog = this.openPolicyDialog.bind(this);\r\n\r\n const { showPAAModal, showCUModal } = this.state;\r\n\r\n var footerClass = \"footer\";\r\n var subfooter = (\r\n \r\n );\r\n if(FooterCustomizationOptions && FooterCustomizationOptions.FooterStyle \r\n && FooterCustomizationOptions.FooterStyle !== \"\"){\r\n footerClass = footerClass + \" \" + FooterCustomizationOptions.FooterStyle;\r\n\r\n if(FooterCustomizationOptions.FooterStyle === \"footerstylelist\"){ \r\n subfooter = (\r\n \r\n );\r\n }\r\n else if(FooterCustomizationOptions.FooterStyle === \"footerstylecompact\"){\r\n subfooter = (\r\n \r\n );\r\n }\r\n }\r\n\r\n return(\r\n
    \r\n \r\n {(FooterCustomizationOptions && FooterCustomizationOptions.ShowCustomAds) &&\r\n
    \r\n
    \r\n 0) ? this.props.pAdsList[0] : null} /> \r\n
    \r\n
    \r\n }\r\n\r\n {subfooter} \r\n \r\n \r\n {showPAAModal &&\r\n this.showPAAModal()\r\n }\r\n {showCUModal &&\r\n this.showCUModal()\r\n }\r\n
    \r\n\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n profile: state.profile.mine || {},\r\n isAnonymous: state.session.isAnonymous,\r\n audience: state.session.audience,\r\n pAdsList: (state.manage.footerads && state.manage.footerads.ids) ? state.manage.footerads.ids : [],\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n manageActions: bindActionCreators(manageActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Footer);","import { CALL_API/* , Schemas */ } from '../store/api';\r\n//import Cookies from 'universal-cookie';\r\n\r\nexport const MANAGE_FETCH_REQUEST = 'MANAGE_FETCH_REQUEST';\r\nexport const MANAGE_FETCH_SUCCESS = 'MANAGE_FETCH_SUCCESS';\r\nexport const MANAGE_FETCH_FAILURE = 'MANAGE_FETCH_FAILURE';\r\n\r\nexport const MANAGE_LOOKUP_REQUEST = 'MANAGE_LOOKUP_REQUEST';\r\nexport const MANAGE_LOOKUP_SUCCESS = 'MANAGE_LOOKUP_SUCCESS';\r\nexport const MANAGE_LOOKUP_FAILURE = 'MANAGE_LOOKUP_FAILURE';\r\n\r\nexport const MANAGE_ADD_REQUEST = 'MANAGE_ADD_REQUEST';\r\nexport const MANAGE_ADD_SUCCESS = 'MANAGE_ADD_SUCCESS';\r\nexport const MANAGE_ADD_FAILURE = 'MANAGE_ADD_FAILURE';\r\n\r\nexport const MANAGE_UPDATE_REQUEST = 'MANAGE_UPDATE_REQUEST';\r\nexport const MANAGE_UPDATE_SUCCESS = 'MANAGE_UPDATE_SUCCESS';\r\nexport const MANAGE_UPDATE_FAILURE = 'MANAGE_UPDATE_FAILURE';\r\n\r\nexport const MANAGE_DELETE_REQUEST = 'MANAGE_DELETE_REQUEST';\r\nexport const MANAGE_DELETE_SUCCESS = 'MANAGE_DELETE_SUCCESS';\r\nexport const MANAGE_DELETE_FAILURE = 'MANAGE_DELETE_FAILURE';\r\n\r\nexport const MANAGE_PP_REQUEST = 'MANAGE_PP_REQUEST';\r\nexport const MANAGE_PP_SUCCESS = 'MANAGE_PP_SUCCESS';\r\nexport const MANAGE_PP_FAILURE = 'MANAGE_PP_FAILURE';\r\n\r\nexport const FETCH_AD_REQUEST = 'FETCH_AD_REQUEST';\r\nexport const FETCH_AD_SUCCESS = 'FETCH_AD_SUCCESS';\r\nexport const FETCH_AD_FAILURE = 'FETCH_AD_FAILURE';\r\n\r\nexport const EVENT_REQUEST = 'EVENT_REQUEST';\r\nexport const EVENT_SUCCESS = 'EVENT_SUCCESS';\r\nexport const EVENT_FAILURE = 'EVENT_FAILURE';\r\nexport const UPDATE_SUCCESS = 'UPDATE_SUCCESS';\r\n\r\nexport const fetchFeaturedProperties = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredproperty/list\";\r\n var key = \"featuredproperties\";\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_FETCH_REQUEST, MANAGE_FETCH_SUCCESS, MANAGE_FETCH_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n\r\n /* return dispatch({\r\n type: MANAGE_FETCH_SUCCESS,\r\n key: key\r\n }); */\r\n};\r\n\r\nexport const addFeaturedProperty = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredproperty/add\";\r\n var key = \"featuredproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_ADD_REQUEST, MANAGE_ADD_SUCCESS, MANAGE_ADD_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const updateFeaturedProperty = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredproperty/update\";\r\n var key = \"featuredproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_UPDATE_REQUEST, MANAGE_UPDATE_SUCCESS, MANAGE_UPDATE_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const deleteFeaturedProperty = (id) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredproperty/delete/\" + id;\r\n var key = \"featuredproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_DELETE_REQUEST, MANAGE_DELETE_SUCCESS, MANAGE_DELETE_FAILURE],\r\n method: 'DELETE',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const lookupFeaturedProperty = (mlsNumber) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredlisting/detail/\" + mlsNumber;\r\n var key = \"featuredproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_LOOKUP_REQUEST, MANAGE_LOOKUP_SUCCESS, MANAGE_LOOKUP_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const fetchFeaturedOpenHouses = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredopenhouse/list\";\r\n var key = \"featuredopenhouse\";\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_FETCH_REQUEST, MANAGE_FETCH_SUCCESS, MANAGE_FETCH_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const addFeaturedOpenHouse = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredopenhouse/add\";\r\n var key = \"featuredopenhouse\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_ADD_REQUEST, MANAGE_ADD_SUCCESS, MANAGE_ADD_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const updateFeaturedOpenHouse = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredopenhouse/update\";\r\n var key = \"featuredopenhouse\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_UPDATE_REQUEST, MANAGE_UPDATE_SUCCESS, MANAGE_UPDATE_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const deleteFeaturedOpenHouse = (id) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredopenhouse/delete/\" + id;\r\n var key = \"featuredopenhouse\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_DELETE_REQUEST, MANAGE_DELETE_SUCCESS, MANAGE_DELETE_FAILURE],\r\n method: 'DELETE',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const lookupFeaturedOpenHouse = (mlsNumber) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredlisting/detail/\" + mlsNumber;\r\n var key = \"featuredopenhouse\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_LOOKUP_REQUEST, MANAGE_LOOKUP_SUCCESS, MANAGE_LOOKUP_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const fetchFeaturedHotProperties = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/hotproperty/list\";\r\n var key = \"featuredhotproperties\";\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_FETCH_REQUEST, MANAGE_FETCH_SUCCESS, MANAGE_FETCH_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const addFeaturedHotProperty = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/hotproperty/add\";\r\n var key = \"featuredhotproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_ADD_REQUEST, MANAGE_ADD_SUCCESS, MANAGE_ADD_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const updateFeaturedHotProperty = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/hotproperty/update\";\r\n var key = \"featuredhotproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_UPDATE_REQUEST, MANAGE_UPDATE_SUCCESS, MANAGE_UPDATE_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const deleteFeaturedHotProperty = (id) => (dispatch, getState) => {\r\n var endpoint = \"listings/hotproperty/delete/\" + id;\r\n var key = \"featuredhotproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_DELETE_REQUEST, MANAGE_DELETE_SUCCESS, MANAGE_DELETE_FAILURE],\r\n method: 'DELETE',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const lookupFeaturedHotProperty = (mlsNumber) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredlisting/detail/\" + mlsNumber;\r\n var key = \"featuredhotproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_LOOKUP_REQUEST, MANAGE_LOOKUP_SUCCESS, MANAGE_LOOKUP_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const fetchFeaturedBFYProperties = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredbuild/list\";\r\n var key = \"featuredbfyproperties\";\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_FETCH_REQUEST, MANAGE_FETCH_SUCCESS, MANAGE_FETCH_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const addFeaturedBFYProperty = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredbuild/add\";\r\n var key = \"featuredbfyproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_ADD_REQUEST, MANAGE_ADD_SUCCESS, MANAGE_ADD_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const updateFeaturedBFYProperty = (body) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredbuild/update\";\r\n var key = \"featuredbfyproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_UPDATE_REQUEST, MANAGE_UPDATE_SUCCESS, MANAGE_UPDATE_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const deleteFeaturedBFYProperty = (id) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredbuild/delete/\" + id;\r\n var key = \"featuredbfyproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_DELETE_REQUEST, MANAGE_DELETE_SUCCESS, MANAGE_DELETE_FAILURE],\r\n method: 'DELETE',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const lookupFeaturedBFYProperty = (mlsNumber) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredbuild/detail/\" + mlsNumber;\r\n var key = \"featuredbfyproperties\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_LOOKUP_REQUEST, MANAGE_LOOKUP_SUCCESS, MANAGE_LOOKUP_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const fetchFeaturedAgents = (body) => (dispatch, getState) => {\r\n var endpoint = \"agents/featuredagent/list\";\r\n var key = \"featuredagents\";\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_FETCH_REQUEST, MANAGE_FETCH_SUCCESS, MANAGE_FETCH_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const addFeaturedAgent = (body) => (dispatch, getState) => {\r\n var endpoint = \"agents/featuredagent/add\";\r\n var key = \"featuredagents\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_ADD_REQUEST, MANAGE_ADD_SUCCESS, MANAGE_ADD_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const updateFeaturedAgent = (body) => (dispatch, getState) => {\r\n var endpoint = \"agents/featuredagent/update\";\r\n var key = \"featuredagents\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_UPDATE_REQUEST, MANAGE_UPDATE_SUCCESS, MANAGE_UPDATE_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const deleteFeaturedAgent = (id) => (dispatch, getState) => {\r\n var endpoint = \"agents/featuredagent/delete/\" + id;\r\n var key = \"featuredagents\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_DELETE_REQUEST, MANAGE_DELETE_SUCCESS, MANAGE_DELETE_FAILURE],\r\n method: 'DELETE',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const lookupFeaturedAgent = (mlsNumber) => (dispatch, getState) => {\r\n var endpoint = \"listings/featuredbuild/detail/\" + mlsNumber;\r\n var key = \"featuredagents\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_LOOKUP_REQUEST, MANAGE_LOOKUP_SUCCESS, MANAGE_LOOKUP_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const setPrintPiece = (body) => (dispatch, getState) => {\r\n var endpoint = \"agents/printpieceurl/set\";\r\n var key = \"printpiece\";\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_PP_REQUEST, MANAGE_PP_SUCCESS, MANAGE_PP_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const fetchFeaturedAds = (body) => (dispatch, getState) => {\r\n var endpoint = \"ads/list\";\r\n var key = \"featuredads\";\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_FETCH_REQUEST, MANAGE_FETCH_SUCCESS, MANAGE_FETCH_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const addFeaturedAd = (body) => (dispatch, getState) => {\r\n var endpoint = \"ads/add\";\r\n var key = \"featuredads\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_ADD_REQUEST, MANAGE_ADD_SUCCESS, MANAGE_ADD_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const updateFeaturedAd = (body) => (dispatch, getState) => {\r\n var endpoint = \"ads/update\";\r\n var key = \"featuredads\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_UPDATE_REQUEST, MANAGE_UPDATE_SUCCESS, MANAGE_UPDATE_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\nexport const deleteFeaturedAd = (id) => (dispatch, getState) => {\r\n var endpoint = \"ads/delete/\" + id;\r\n var key = \"featuredads\";\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_DELETE_REQUEST, MANAGE_DELETE_SUCCESS, MANAGE_DELETE_FAILURE],\r\n method: 'DELETE',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n};\r\n\r\n/* export const fetchFrontEndAds = (key, adSize, count) => (dispatch, getState) => {\r\n var endpoint = \"ads/get?adsize=\" + adSize;\r\n if(count){\r\n endpoint = endpoint + \"&count=\" + count;\r\n }\r\n\r\n const cookies = new Cookies();\r\n const authToken = cookies.get('authDetails');\r\n if(authToken) { \r\n var DeviceIDs = window.localStorage.getItem(\"DeviceIDs\"); \r\n if(DeviceIDs){\r\n DeviceIDs = JSON.parse(DeviceIDs);\r\n var dLst = DeviceIDs.filter(d => d.UserId === authToken.Audience.Id);\r\n if(dLst && dLst.length > 0){\r\n endpoint = endpoint + \"&duid=\" + dLst[0].DeviceId;\r\n }\r\n }\r\n }\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_FETCH_REQUEST, MANAGE_FETCH_SUCCESS, MANAGE_FETCH_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n}; */\r\n\r\nexport const fetchFrontEndAds = (key, body) => (dispatch, getState) => {\r\n var endpoint = \"ads/get\";\r\n \r\n var lbody = body;\r\n\r\n var DeviceUID = window.localStorage.getItem(\"DeviceUID\");\r\n if(DeviceUID && DeviceUID !== \"\"){\r\n lbody.deviceId = DeviceUID;\r\n }\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [MANAGE_FETCH_REQUEST, MANAGE_FETCH_SUCCESS, MANAGE_FETCH_FAILURE],\r\n method: 'POST', \r\n body: lbody,\r\n endpoint: endpoint\r\n },\r\n key\r\n });\r\n}\r\n\r\n/* export const trackEvent = (key, body) => (dispatch, getState) => {\r\n \r\n var endpoint = \"ads/addevent\";\r\n \r\n var lbody = body;\r\n var DeviceIDs = window.localStorage.getItem(\"DeviceIDs\");\r\n if(DeviceIDs && lbody && lbody.UserId){\r\n DeviceIDs = JSON.parse(DeviceIDs);\r\n var dLst = DeviceIDs.filter(d => d.UserId === lbody.UserId);\r\n if(dLst && dLst.length > 0){\r\n lbody.deviceUID = dLst[0].DeviceId;\r\n }\r\n }\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [EVENT_REQUEST, EVENT_SUCCESS, EVENT_FAILURE],\r\n method: 'POST',\r\n body: lbody,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n}; */\r\n\r\nexport const trackEvent = (key, body) => (dispatch, getState) => {\r\n \r\n var endpoint = \"ads/addevent\";\r\n \r\n var lbody = body;\r\n\r\n var DeviceUID = window.localStorage.getItem(\"DeviceUID\");\r\n if(DeviceUID && DeviceUID !== \"\"){\r\n lbody.deviceUID = DeviceUID;\r\n }\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [EVENT_REQUEST, EVENT_SUCCESS, EVENT_FAILURE],\r\n method: 'POST',\r\n body: lbody,\r\n endpoint: endpoint,\r\n },\r\n key\r\n });\r\n}\r\n\r\nexport const updateFrontEndAds = (key, listToUpdate) => (dispatch, getState) => {\r\n return dispatch({\r\n type: UPDATE_SUCCESS,\r\n key: key,\r\n listToUpdate: listToUpdate \r\n });\r\n}","import { CALL_API } from '../store/api';\r\nimport Cookies from 'universal-cookie';\r\n\r\nexport const AUTH_REQUEST = 'AUTH_REQUEST';\r\nexport const AUTH_LOGIN_SUCCESS = 'AUTH_LOGIN_SUCCESS';\r\nexport const AUTH_LOGOUT = 'AUTH_LOGOUT';\r\nexport const AUTH_REFRESH_SUCCESS = 'AUTH_REFRESH_SUCCESS';\r\nexport const AUTH_LOGOUT_SUCCESS = 'AUTH_LOGOUT_SUCCESS';\r\nexport const AUTH_FAILURE = 'AUTH_FAILURE';\r\nexport const AUTH_MANUAL_LOGIN_SUCCESS = 'AUTH_MANUAL_LOGIN_SUCCESS';\r\nexport const PURL_PREFIX_SAVE = 'PURL_PREFIX_SAVE';\r\nexport const ACCESSTOKEN_LOGOUT_REQUEST = 'ACCESSTOKEN_LOGOUT_REQUEST';\r\nexport const ACCESSTOKEN_LOGOUT_SUCCESS = 'ACCESSTOKEN_LOGOUT_SUCCESS';\r\nexport const ACCESSTOKEN_LOGOUT_FAILURE = 'ACCESSTOKEN_LOGOUT_FAILURE';\r\nexport const SYNCADS_REQUEST = 'SYNCADS_REQUEST';\r\nexport const SYNCADS_SUCCESS = 'SYNCADS_SUCCESS';\r\nexport const SYNCADS_FAILURE = 'SYNCADS_FAILURE';\r\n\r\nconst endpoint = 'accesstokens';\r\n\r\nexport const refreshAuthToken = id => (dispatch, getState) => {\r\n const cookies = new Cookies();\r\n const authToken = cookies.get('authDetails');\r\n\r\n if (!authToken) return dispatch(logout());\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [AUTH_REQUEST, AUTH_REFRESH_SUCCESS, AUTH_FAILURE],\r\n method: 'POST',\r\n body: {\r\n AudienceType: authToken.AudienceType,\r\n AudienceId: authToken.Audience.Id,\r\n TokenId: authToken.AccessToken\r\n },\r\n endpoint: `${endpoint}/verifytoken`\r\n }\r\n });\r\n};\r\n\r\nexport const verifyAuthToken = (auth) => (dispatch, getState) => { \r\n dispatch(logout(true)); \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [AUTH_REQUEST, AUTH_REFRESH_SUCCESS, AUTH_FAILURE],\r\n method: 'POST',\r\n body: {\r\n AudienceType: auth.AudienceType,\r\n AudienceId: auth.AudienceId,\r\n TokenId: auth.AccessToken\r\n },\r\n endpoint: `${endpoint}/verifytoken`\r\n },\r\n skip: auth.skip || false\r\n });\r\n};\r\n\r\nexport const login = (authType, body) => ({\r\n /* [CALL_API]: {\r\n types: [AUTH_REQUEST, AUTH_LOGIN_SUCCESS, AUTH_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: `${endpoint}/${authType}`\r\n }\r\n */\r\n [CALL_API]: {\r\n types: [AUTH_REQUEST, AUTH_LOGIN_SUCCESS, AUTH_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: `${endpoint}/verifylogin`\r\n }\r\n});\r\n\r\nexport const logout = (PreventRedirect) => (dispatch, getState) => {\r\n dispatch(logoutAuthToken(PreventRedirect));\r\n return dispatch({\r\n type: AUTH_LOGOUT\r\n });\r\n};\r\n\r\nexport const manualLogin = (response) => (dispatch, getState) => {\r\n return dispatch({\r\n type: AUTH_MANUAL_LOGIN_SUCCESS,\r\n response: response\r\n });\r\n};\r\n\r\nexport const setAuthError = (errMsg) => (dispatch, getSelection) => {\r\n return dispatch({\r\n type: AUTH_FAILURE,\r\n error: errMsg \r\n })\r\n}\r\n\r\nexport const setPurlPrefix = (match) => (dispatch, getState) => {\r\n return dispatch({\r\n type: PURL_PREFIX_SAVE,\r\n purlPrefix: match \r\n })\r\n}\r\n\r\nexport const anonymousLogin = () => (dispatch, getState) => {\r\n if (process.env.REACT_APP_AllowAnonymous !== undefined && process.env.REACT_APP_AllowAnonymous === \"true\")\r\n { \r\n return dispatch(login('Agent', JSON.parse(process.env.REACT_APP_AnonymousAuth)));\r\n }\r\n return false;\r\n};\r\n\r\nexport const logoutAuthToken = (PreventRedirect) => (dispatch, getState) => {\r\n const cookies = new Cookies();\r\n const authToken = cookies.get('authDetails');\r\n if(!authToken) return false;\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [ACCESSTOKEN_LOGOUT_REQUEST, ACCESSTOKEN_LOGOUT_SUCCESS, ACCESSTOKEN_LOGOUT_FAILURE],\r\n method: 'DELETE',\r\n endpoint: `accesstokens/${authToken.AudienceType.replace('MLSAGENT','AGENTS').replace('CLIENT','CLIENTS')}/${authToken.Audience.Id}/${authToken.AccessToken}`\r\n },\r\n UId: authToken.Audience.Id,\r\n PreventRedirect: PreventRedirect\r\n });\r\n};\r\n\r\nexport const synchronizeAds = (flag) => (dispatch, getState) => {\r\n\r\n var DeviceUID = window.localStorage.getItem(\"DeviceUID\");\r\n if(DeviceUID && DeviceUID !== \"\"){\r\n return dispatch(syncAds(DeviceUID)); \r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport const syncAds = (duid) => (dispatch, getState) => {\r\n \r\n var endpoint = `ads/syncads/${duid}`;\r\n\r\n var LastAdsSyncDate = window.localStorage.getItem(\"LastAdsSyncDate\");\r\n if(!LastAdsSyncDate || LastAdsSyncDate !== (new Date()).toLocaleDateString()){ \r\n window.localStorage.setItem(\"LastAdsSyncDate\", (new Date()).toLocaleDateString());\r\n endpoint = `ads/fullsyncads/${duid}`;\r\n }\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [SYNCADS_REQUEST, SYNCADS_SUCCESS, SYNCADS_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint\r\n }\r\n });\r\n};","import { CALL_API, Schemas } from '../store/api';\r\n\r\nexport const SETTING_REQUEST = 'SETTING_REQUEST';\r\nexport const SETTING_SUCCESS = 'SETTING_SUCCESS';\r\nexport const SETTING_FAILURE = 'SETTING_FAILURE';\r\n\r\nexport const AUTH_MECH_REQUEST = 'AUTH_MECH_REQUEST';\r\nexport const AUTH_MECH_SUCCESS = 'AUTH_MECH_SUCCESS';\r\nexport const AUTH_MECH_FAILURE = 'AUTH_MECH_FAILURE';\r\n\r\nexport const PRINTPIECE_REQUEST = 'PRINTPIECE_REQUEST';\r\nexport const PRINTPIECE_SUCCESS = 'PRINTPIECE_SUCCESS';\r\nexport const PRINTPIECE_FAILURE = 'PRINTPIECE_FAILURE';\r\n\r\nexport const BASEDATA_REQUEST = 'BASEDATA_REQUEST';\r\nexport const BASEDATA_SUCCESS = 'BASEDATA_SUCCESS';\r\nexport const BASEDATA_FAILURE = 'BASEDATA_FAILURE';\r\n\r\nexport const FNEIGHBORHOODS_REQUEST = 'FNEIGHBORHOODS_REQUEST';\r\nexport const FNEIGHBORHOODS_SUCCESS = 'FNEIGHBORHOODS_SUCCESS';\r\nexport const FNEIGHBORHOODS_FAILURE = 'FNEIGHBORHOODS_FAILURE';\r\nexport const FNEIGHBORHOODD_REQUEST = 'FNEIGHBORHOODD_REQUEST';\r\nexport const FNEIGHBORHOODD_SUCCESS = 'FNEIGHBORHOODD_SUCCESS';\r\nexport const FNEIGHBORHOODD_FAILURE = 'FNEIGHBORHOODD_FAILURE';\r\n\r\nexport const fetchSettings = () => (dispatch, getState) => {\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [SETTING_REQUEST, SETTING_SUCCESS, SETTING_FAILURE],\r\n method: 'GET',\r\n endpoint: `basedata/settings`,\r\n schema: Schemas.SETTING_ARRAY\r\n }\r\n })\r\n}\r\n\r\nexport const fetchPrintPieceURL = () => (dispatch, getState) => {\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [PRINTPIECE_REQUEST, PRINTPIECE_SUCCESS, PRINTPIECE_FAILURE],\r\n method: 'GET',\r\n endpoint: `basedata/printpieceurl/get`\r\n }\r\n })\r\n}\r\n\r\nexport const fetchBaseData = (key, body) => (dispatch, getState) => {\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [BASEDATA_REQUEST, BASEDATA_SUCCESS, BASEDATA_FAILURE],\r\n method: 'POST',\r\n body: body,\r\n endpoint: 'basedata/' + key + '/get'\r\n },\r\n key\r\n });\r\n}\r\n\r\nexport const fetchAuthMechanism = () => (dispatch, getState) => {\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [AUTH_MECH_REQUEST, AUTH_MECH_SUCCESS, AUTH_MECH_FAILURE],\r\n method: 'GET',\r\n endpoint: `accesstokens/auth`\r\n }\r\n })\r\n}\r\n\r\nexport const fetchFeaturedNeighborhoods = () => (dispatch, getState) => {\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [FNEIGHBORHOODS_REQUEST, FNEIGHBORHOODS_SUCCESS, FNEIGHBORHOODS_FAILURE],\r\n method: 'GET',\r\n endpoint: 'listings/featuredneighborhood/get'\r\n }\r\n });\r\n}\r\n\r\nexport const fetchFeaturedNeighborhoodDetail = (key) => (dispatch, getState) => {\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [FNEIGHBORHOODD_REQUEST, FNEIGHBORHOODD_SUCCESS, FNEIGHBORHOODD_FAILURE],\r\n method: 'GET',\r\n endpoint: 'listings/featuredneighborhood/getdetail/' + key\r\n }\r\n });\r\n}","import React, { Component } from 'react';\r\nimport TrueLogo from '../img/svg/truebytlc-logo.svg';\r\n\r\nclass PrivacyPolicy extends Component {\r\n\r\n render() {\r\n\r\n var siteLogo = TrueLogo;\r\n\r\n if (process.env.REACT_APP_WebsiteLogo !== undefined && process.env.REACT_APP_WebsiteLogo !== null &&\r\n process.env.REACT_APP_WebsiteLogo !== \"\"){\r\n siteLogo = process.env.REACT_APP_WebsiteLogo;\r\n }\r\n\r\n return (\r\n
    \r\n
    \"\"/
    \r\n
    \r\n
    Online Privacy Policy
    \r\n

    The Company respects the privacy rights of our online visitors and recognizes the importance of protecting the information collected from you. We have adopted an Online Privacy Policy that guides how we collect, store and use the information you provide online. Please note that this policy applies only to sites maintained by Company, and not to web sites maintained by other companies or organizations to which we link.

    \r\n

    If you have questions or concerns regarding this statement, you should first contact Company at the email address or postal address specified on this Website.

    \r\n

    Information Collection And Use

    \r\n

    Our primary goals in collecting personally identifiable information are to provide you with the product and services made available through our Website, including, but not limited, our services, to communicate with you, and to manage your registered user account, if you have one.

    \r\n

    Information Collected Upon Registration: If you desire to have access to certain restricted sections of our web site, you will be required to become a registered user, and to submit certain personally identifiable information to Company. This happens in a number of instances, such as when you sign up for our services, or if you desire to receive marketing materials and information or if you chose to obtain information tailored based on your personal situation. Personally identifiable information that we may collect in such instances may include your IP address, full user name, password, email address, city, time zone, telephone number, and other information that you decide to provide us with, or that you decide to include in your public profile.

    \r\n

    Use of Contact Information: In addition, we may use your contact information to market to you, and provide you with information about, our products and services or the products and services of third parties. If you decide at any time that you no longer wish to receive such information or communications from us, please follow the unsubscribe instructions provided in any of the communications.

    \r\n

    Log Data: When you visit our Website, our servers automatically record information that your browser sends whenever you visit a Website as Log Data. This Log Data may include information such as your IP address, browser type or the domain from which you are visiting, the websites you visit, the search terms you use, and any advertisements on which you click. For most users accessing the Internet from an Internet service provider the IP address will be different every time you log on. We use Log Data to monitor the use of the Site and of our Service, and for the Site's technical administration. We do not associate your IP address with any other personally identifiable information to identify you personally, except in case of violation of the Terms of Service.

    \r\n

    Cookies and Other Technologies

    \r\n

    Cookies: We use cookies and other technologies to passively collect demographic information, personalize your experience on our site and monitor advertisements and other activities. Cookies are small files downloaded to your computer to track movements within web sites. We may link cookie information to personal information. Cookies link to information regarding what transactions you have conducted or pages you have viewed on our Website. This information is used to keep track of your ongoing transactions and make sure you don't see the same ad repeatedly. Also, we use cookies to deliver content, including advertising specific to your interest and to monitor website usage. Some of our sites use an outside ad company to display ads. These ads may contain cookies. Our ad companies collect cookies received with banner ads, and Company does not have access to this information. Most browsers are automatically set to accept cookies whenever you visit a website. You can disable cookies or set your browser to alert you when cookies are being sent. However some areas of our sites will not function properly if you do so. Please note that this privacy policy covers the use of cookies by Company only and does not cover the use of cookies by any advertisers.

    \r\n

    Other Technologies: Other technologies used include clear GIFs and IP address logging. Clear GIFs also known as web bugs, beacons or tags, are small graphic images placed on a web page, web-based document, or in an e-mail message. Clear GIFs are invisible to the user because they are typically very small (only 1-by-1 pixel) and the same color as the background of the web page, document or e-mail message. We do not use clear GIFs to collect personal information about you. However, we may use clear GIFs to capture statistical usage information for our web pages, features or other elements on a web page. We may correlate this information to a user to personalize user experience and for statistical analysis of user experiences on our web pages.

    \r\n

    Third Parties

    \r\n

    Third Party Services: Users may register for other services from our website. Certain products and/or services available on our site are provided to you in partnership with third party(s) and may require you to disclose personally identifiable information in order to register for and access such products and/or services. Such products and/or services shall identify the third party partners at the point of registration. If you elect to register for such products and/or services your personally identifiable information will be transferred to such third party(s) and will be subject to the privacy policy and practices of such third party(s). We are not responsible for the privacy practices and policies of such third party(s) and, therefore, you should review the privacy practices and policies of such third party(s) prior to providing your personally identifiable information in connection with such products and/or services.

    \r\n

    Service Providers: We engage certain trusted third parties to perform functions and provide services to us, including, without limitation, hosting and maintenance, customer relationship, database storage and management, and direct marketing campaigns. We will share your personally identifiable information with these third parties, but only to the extent necessary to perform these functions and provide such services, and only pursuant to binding contractual obligations requiring such third parties to maintain the privacy and security of your data.

    \r\n

    Business Transfers: We may sell, transfer or otherwise share some or all of its assets, including your personally identifiable information, in connection with a merger, acquisition, reorganization or sale of assets or in the event of bankruptcy. You will have the opportunity to opt out of any such transfer if the new entity's planned processing of your information differs materially from that set forth in this Privacy Policy.

    \r\n
    \r\n\r\n
    \r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default PrivacyPolicy;","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n//import logo from '../img/logo.png';\r\nimport logo from '../img/svg/truebytlc-logo.svg';\r\nimport { Navbar} from 'react-bootstrap';\r\nimport '../css/navbar.css';\r\nimport ReactTooltip from 'react-tooltip'\r\nimport '../scss/_wordpressMenu.scss';\r\nimport '../scss/_loginButton.scss';\r\nimport '../scss/_navbar.scss';\r\n\r\nclass LogoNavBar extends React.Component {\r\n\r\n removeTrailingSlash = (site) => site.replace(/\\/$/, \"\");\r\n\r\n getLastPartOfURL = (url) => url.substr(url.lastIndexOf('/') + 1);\r\n\r\n prettyURL = url => this.getLastPartOfURL(this.removeTrailingSlash(url));\r\n\r\n render() {\r\n var headerClass = \"header header-nonfixed logoheader\";\r\n\r\n var siteLogo = logo;\r\n\r\n if (process.env.REACT_APP_WebsiteLogo !== undefined && process.env.REACT_APP_WebsiteLogo !== null &&\r\n process.env.REACT_APP_WebsiteLogo !== \"\"){\r\n siteLogo = process.env.REACT_APP_WebsiteLogo;\r\n }\r\n\r\n var logoClass = \"logo-img\";\r\n if (process.env.REACT_APP_LargeLogo === \"true\"){\r\n logoClass = \"large-logo-img\";\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \"\"\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LogoNavBar;","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport InputMask from 'react-input-mask';\r\nimport Dialog from 'react-bootstrap-dialog';\r\nimport TermsNConditions from '../components/termsconditions';\r\nimport PrivacyPolicy from '../components/privacypolicy';\r\nimport { insertDecimal, getFormatedCurrency } from '../components/util';\r\nimport '../css/Login.css'; \r\nimport * as sessionActions from 'actions/session';\r\nimport LogoNavBar from '../components/logonavbar';\r\nimport SelectBox from '../components/select-box';\r\nimport ReactPixel from 'react-facebook-pixel';\r\nimport '../css/select-box.css';\r\nimport '../scss/_signup.scss';\r\n\r\n// Check if Pixel is setup for logging\r\nconst useFacebookAnayltics = process.env.REACT_APP_FacebookPixelKey !== undefined;\r\nif (useFacebookAnayltics) {\r\n //const advancedMatching = { em: 'some@email.com' };\r\n const advancedMatching = { };\r\n\r\n const options = {\r\n autoConfig: true, \t// set pixel's autoConfig\r\n debug: false, \t\t// enable logs\r\n };\r\n\r\n ReactPixel.init(process.env.REACT_APP_FacebookPixelKey, advancedMatching, options);\r\n}\r\n\r\nclass SignUpPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n mlsId:'',\r\n memberNrdsId: '',\r\n errorMessage: '',\r\n successMessage: '',\r\n authType: 'Agent',\r\n fetchingResult: false,\r\n step: 1,\r\n stripePlan: \"TrueByTLC_Yearly\",\r\n discount: {id: ''}\r\n };\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.onChangeAuthType = this.onChangeAuthType.bind(this);\r\n this.handleNext = this.handleNext.bind(this);\r\n this.handlePrevious = this.handlePrevious.bind(this);\r\n this.openTermsDialog = this.openTermsDialog.bind(this);\r\n this.openPolicyDialog = this.openPolicyDialog.bind(this); \r\n this.getCouponDetails = this.getCouponDetails.bind(this);\r\n this.selectYealyPlan = this.selectYealyPlan.bind(this);\r\n this.selectMonthlyPlan = this.selectMonthlyPlan.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n\r\n // Log component mounting\r\n if (useFacebookAnayltics)\r\n {\r\n ReactPixel.pageView();\r\n //ReactPixel.track('ViewContent', {content_ids:'Signup', content_type:'Signup', contents:'Initial page Load'});\r\n ReactPixel.track('ViewContent', null);\r\n }\r\n\r\n if (this.props.showHeader) {\r\n this.props.onShowHideHeader(false);\r\n }\r\n if (this.props.showFooter) {\r\n this.props.onShowHideFooter(false);\r\n }\r\n }\r\n\r\n loginCall() {\r\n // Call API creating subscription\r\n var that = this;\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"createtruesubscription\";\r\n var requestBody = {\r\n FirstName: this.state.firstName,\r\n LastName: this.state.lastName,\r\n Email: this.state.email,\r\n MLSKey: this.state.mlsId,\r\n MemberNrdsId: this.state.memberNrdsId,\r\n StripePlan: this.state.stripePlan,\r\n CreditCard: this.state.creditCard,\r\n CreditCvc: this.state.creditCvc,\r\n CreditExpiration: this.state.creditExpiration,\r\n CouponId: this.state.discount.id\r\n };\r\n that.refs.btnSignup.setAttribute(\"disabled\", \"disabled\");\r\n that.setState({ fetchingResult: true });\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(requestBody)\r\n })\r\n .then(response => response.json())\r\n .then(json => {\r\n //console.log(json);\r\n if (json) {\r\n if (that.refs.btnSignup) that.refs.btnSignup.removeAttribute(\"disabled\");\r\n var accountCreated = false;\r\n var successMessage = \"\", errorMessage = \"\";\r\n if (json.AgentId) {\r\n successMessage = \"Your Account has been created successfully. A welcome email with your username and password has been sent, please check the same.\";\r\n accountCreated = true;\r\n }\r\n else if (json.Audience && json.Audience.Id) {\r\n successMessage = \"Your Account has been created successfully. A welcome email with your username and password has been sent, please check the same.\";\r\n accountCreated = true;\r\n }\r\n else if (json.length > 0 && json[0].ErrorMessage) {\r\n errorMessage = json[0].ErrorMessage;\r\n }\r\n that.setState({\r\n fetchingResult: false, accountCreated: accountCreated,\r\n errorMessage: errorMessage, successMessage: successMessage\r\n });\r\n if (accountCreated) {\r\n if (useFacebookAnayltics)\r\n //ReactPixel.track('ViewContent', {content_ids:'Signup', content_type:'Signup', contents:'Initial page Load'});\r\n ReactPixel.track('Purchase', {value:'99',currency:'USD', \r\n stripe_plan:this.state.stripePlan, \r\n stripe_coupon:this.state.discount.id,\r\n //FirstName: this.state.firstName,\r\n //LastName: this.state.lastName,\r\n Email: this.state.email,\r\n MemberNrdsId: this.state.memberNrdsId,\r\n MLSKey: this.state.mlsId});\r\n\r\n if (that.props.sessionActions) {\r\n that.props.sessionActions.manualLogin(json);\r\n if (that.props.history) that.props.history.push(`/`);\r\n }\r\n }\r\n }\r\n else {\r\n if (that.refs.btnSignup) that.refs.btnSignup.removeAttribute(\"disabled\");\r\n that.setState({\r\n fetchingResult: false,\r\n errorMessage: \"Your Account creation failed. Please contact support@truebytlc.com\"\r\n });\r\n }\r\n })\r\n .catch(function (data) {\r\n //console.log(data);\r\n if (that.refs.btnSignup) that.refs.btnSignup.removeAttribute(\"disabled\");\r\n that.setState({ fetchingResult: false, errorMessage: \"There was an error creating your account. Please try again later.\" });\r\n });\r\n }\r\n\r\n getCouponDetails() {\r\n var that = this;\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"getcoupon/\" + this.state.couponId;\r\n\r\n if (useFacebookAnayltics)\r\n //ReactPixel.track('ViewContent', {content_ids:'Signup', content_type:'Signup', contents:'Initial page Load'});\r\n ReactPixel.track('CustomizeProduct ', null);\r\n\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: \"GET\"\r\n })\r\n .then(response => {\r\n if (response.ok) return response.json()\r\n else throw Error(response.statusText)\r\n })\r\n .then(json => {\r\n that.setState({ discount: json });\r\n })\r\n .catch(function (data) {\r\n console.log(data);\r\n that.setState({ discount: { id: '' }, errorMessage: 'Invalid Coupon Code' });\r\n });\r\n }\r\n\r\n handleInputChange(event) {\r\n this.setState({errorMessage: \"\"});\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n handleDropdownChange(val, name) {\r\n this.setState({\r\n [name]: val\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n var errorMessage = '';\r\n if(this.state.mlsId === null || this.state.mlsId === '')\r\n errorMessage += \"MLS is required. \";\r\n if(this.state.firstName === null || this.state.firstName === '')\r\n errorMessage += \"First name is required. \";\r\n if(this.state.lastName === null || this.state.lastName === '')\r\n errorMessage += \"Last name is required. \";\r\n if(this.state.email === null || this.state.email === '')\r\n errorMessage += \"Email is required. \";\r\n // eslint-disable-next-line\r\n if (this.state.email !== null && this.state.email !== '' && !(/^[\\w-+\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/.test(this.state.email)))\r\n errorMessage += \"A valid email is required. \";\r\n if(this.state.memberNrdsId === null || this.state.memberNrdsId === '')\r\n errorMessage += \"RE Member ID is required. \";\r\n\r\n if(this.state.stripePlan === undefined || this.state.stripePlan === null || this.state.stripePlan === '')\r\n errorMessage += \"Choose your TRUE Plan. \";\r\n if(this.state.creditCard === undefined || this.state.creditCard === null || this.state.creditCard === '')\r\n errorMessage += \"Credit card number is required. \";\r\n if(this.state.creditCard !== undefined && this.state.creditCard !== null && this.state.creditCard !== '' &&\r\n (!(/^[0-9]{16}$/.test(this.state.creditCard.replace(/-/g,''))) || (/^[0]{16}$/.test(this.state.creditCard.replace(/-/g,'')))))\r\n errorMessage += \"A valid Credit card number is required. \";\r\n if(this.state.creditExpiration === undefined || this.state.creditExpiration === null || this.state.creditExpiration === '')\r\n errorMessage += \"Credit card Expiration is required. \";\r\n\r\n if(this.state.creditExpiration !== undefined && this.state.creditExpiration !== null && this.state.creditExpiration !== '' &&\r\n (!(/^[0-1]{1}[0-9]{1}[0-9]{4}$/.test(this.state.creditExpiration.replace(/\\//g,''))) ||\r\n (!(/^0[1-9][2-3][0-9]{3}|^(10)[2-3][0-9]{3}|^(11)[2-3][0-9]{3}|^(12)[2-3][0-9]{3}$/.test(this.state.creditExpiration.replace(/\\//g,'')))) ||\r\n (/^[0]{6}$/.test(this.state.creditExpiration.replace(/\\//g,''))) ||\r\n (/^[0]{2}[0-9]{4}$/.test(this.state.creditExpiration.replace(/\\//g,''))) ||\r\n (/^[0-1]{1}[0-2]{1}[0-1]{1}[0-9]{3}$/.test(this.state.creditExpiration.replace(/\\//g,'')))))\r\n errorMessage += \"A valid Credit card Expiration is required. \";\r\n if(this.state.creditCvc === undefined || this.state.creditCvc === null || this.state.creditCvc === '')\r\n errorMessage += \"Credit card Cvc is required. \"; \r\n if(this.state.creditCvc !== undefined && this.state.creditCvc !== null && this.state.creditCvc !== '' &&\r\n !(/^[0-9]{3}$/.test(this.state.creditCvc)))\r\n errorMessage += \"A valid Credit card Cvc is required. \";\r\n\r\n this.setState({errorMessage: errorMessage});\r\n\r\n if (errorMessage.length === 0) {\r\n this.setState({errorMessage: \"\"});\r\n this.loginCall();\r\n }\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n onChangeAuthType(authType) {\r\n this.setState({ authType: authType });\r\n }\r\n\r\n handleNext() {\r\n var errorMessage = '';\r\n if(this.state.mlsId === null || this.state.mlsId === '')\r\n errorMessage += \"MLS is required. \";\r\n if(this.state.firstName === null || this.state.firstName === '')\r\n errorMessage += \"First name is required. \";\r\n if(this.state.lastName === null || this.state.lastName === '')\r\n errorMessage += \"Last name is required. \";\r\n if(this.state.email === null || this.state.email === '')\r\n errorMessage += \"Email is required. \";\r\n // eslint-disable-next-line\r\n if (this.state.email !== null && this.state.email !== '' && !(/^[\\w-+\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/.test(this.state.email)))\r\n errorMessage += \"A valid email is required. \";\r\n if(this.state.memberNrdsId === null || this.state.memberNrdsId === '')\r\n errorMessage += \"RE Member ID is required. \";\r\n\r\n this.setState({errorMessage: errorMessage});\r\n if (errorMessage.length === 0) {\r\n // Log component mounting\r\n if (useFacebookAnayltics){\r\n //ReactPixel.track('ViewContent', {content_ids:'Signup', content_type:'Signup', contents:'Initial page Load'});\r\n\r\n ReactPixel.track('InitiateCheckout', {\r\n Email:this.state.email,\r\n //FirstName:this.state.firstName,\r\n //LastName:this.state.lastName,\r\n MLSId:this.state.mlsId,\r\n MemberNrdsId:this.state.memberNrdsId\r\n });\r\n };\r\n\r\n // Move to Step 2\r\n this.setState({step: 2});\r\n }\r\n }\r\n\r\n handlePrevious() {\r\n this.setState({step: 1, errorMessage: ''});\r\n }\r\n \r\n openTermsDialog() {\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.CancelAction(),\r\n ]\r\n })\r\n }\r\n\r\n openPolicyDialog() {\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.CancelAction(),\r\n\r\n ]\r\n })\r\n }\r\n\r\n selectYealyPlan() {\r\n // if (useFacebookAnayltics)\r\n // //ReactPixel.track('ViewContent', {content_ids:'Signup', content_type:'Signup', contents:'Initial page Load'});\r\n // ReactPixel.track('CustomizeProduct ', null);\r\n\r\n this.setState({stripePlan: \"TrueByTLC_Yearly\"});\r\n }\r\n\r\n selectMonthlyPlan() {\r\n // if (useFacebookAnayltics)\r\n // //ReactPixel.track('ViewContent', {content_ids:'Signup', content_type:'Signup', contents:'Initial page Load'});\r\n // ReactPixel.track('CustomizeProduct ', null);\r\n\r\n this.setState({ discount: {id: ''}, couponId: null, errorMessage: \"\" });\r\n this.setState({stripePlan: \"TrueByTLC_Monthly\"});\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n
     
    \r\n
    \r\n
    \r\n
    \r\n

    Welcome to a new era in home buying.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Step 1:
    \r\n
    Your details
    \r\n
    \r\n
    \r\n
    Step 2:
    \r\n
    Payment info
    \r\n
    \r\n
    \r\n {this.state.errorMessage && this.state.errorMessage !== \"\" &&
    {this.state.errorMessage}
    }\r\n {this.state.successMessage && this.state.successMessage !== \"\" &&
    {this.state.successMessage}
    }\r\n {this.state.authType === 'Agent' &&\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.handleDropdownChange(e, 'mlsId')}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {this.state.fetchingResult &&\r\n \r\n }\r\n {!this.state.fetchingResult &&\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n {/* ---------------------STEP 2 --------------------------- */}\r\n {this.state && this.state.step === 2 &&\r\n
    \r\n {/*
    */}\r\n {/*
    \r\n
    \r\n
    \r\n
    Annual
    \r\n
    \r\n
    $83.25
    \r\n
    /month
    \r\n
    \r\n
    $999 billed annually
    \r\n
    \r\n save\r\n $189\r\n 16%\r\n
    \r\n
    \r\n
    \r\n
    Monthly
    \r\n
    \r\n
    $99
    \r\n
    /month
    \r\n
    \r\n
    $99 billed monthly
    \r\n
    \r\n
    {this.state.stripePlan === \"TrueByTLC_Yearly\" ? \"Includes 7 day Free Trial\" : \"Includes 7 day Free Trial\"}
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n

    Free Trial

    \r\n
    \r\n
    \r\n Your purchase includes a
    free \r\n 14-day trial.
    After 14 days we will bill you on the schedule you choose. Don’t worry, you’ll be hooked!\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    Monthly

    \r\n
    \r\n
    \r\n
    Pay just $99 a month
    \r\n Our most popular plan—get ready to increase your potential sales and help your clients make more informed decisions.\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    Yearly

    \r\n
    \r\n
    \r\n
    Pay $999 a year
    \r\n Save $189 a year when you bill annually. Lock in for a year of TLC calculations, smart searches, and happier clients.\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    */}\r\n {this.state.stripePlan === 'TrueByTLC_Yearly' &&\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n }\r\n {this.state.discount.id &&\r\n
    \r\n
    \r\n
    \r\n
    Subtotal
    $999
    \r\n
    Discount
    -{ getFormatedCurrency(insertDecimal(this.state.discount.amount_off)) }
    \r\n
    Total
    { getFormatedCurrency(999 - insertDecimal(this.state.discount.amount_off)) }
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {this.state.fetchingResult &&\r\n \r\n }\r\n {!this.state.fetchingResult &&\r\n \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n By signing in/up you agree to the Terms of Use and Privacy Policy\r\n {this.state.step && this.state.step === 2 &&\r\n
    \r\n Cancel by midnight on day 30 [14 for trial] to avoid a monthly subscription.\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n }\r\n
    \r\n
    ©{new Date().getFullYear()} TLCengine. All Rights Reserved.
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n //
    \r\n // \r\n //
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch)\r\n});\r\n\r\nexport default connect(null, mapDispatchToProps)(SignUpPage);","import { CALL_API } from '../store/api';\r\n\r\nexport const SEND_AGENT_EMAIL_REQUEST = 'SEND_AGENT_EMAIL_REQUEST';\r\nexport const SEND_AGENT_EMAIL_SUCCESS = 'SEND_AGENT_EMAIL_SUCCESS';\r\nexport const SEND_AGENT_EMAIL_FAILURE = 'SEND_AGENT_EMAIL_FAILURE';\r\nexport const AGENT_REQUEST = 'AGENT_REQUEST';\r\nexport const AGENT_SUCCESS = 'AGENT_SUCCESS';\r\nexport const AGENT_FAILURE = 'AGENT_FAILURE';\r\nexport const FAGENT_REQUEST = 'FAGENT_REQUEST';\r\nexport const FAGENT_SUCCESS = 'FAGENT_SUCCESS';\r\nexport const FAGENT_FAILURE = 'FAGENT_FAILURE';\r\nexport const TAGENT_REQUEST = 'TAGENT_REQUEST';\r\nexport const TAGENT_SUCCESS = 'TAGENT_SUCCESS';\r\nexport const TAGENT_FAILURE = 'TAGENT_FAILURE';\r\n\r\nexport const contactMyAgent = (body) => (dispatch, getState) => {\r\n\r\n var resMsg = null;\r\n if(body && body.ResponseMessage && body.ResponseMessage !== \"\"){\r\n resMsg = body.ResponseMessage; \r\n }\r\n delete body[\"ResponseMessage\"];\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [SEND_AGENT_EMAIL_REQUEST, SEND_AGENT_EMAIL_SUCCESS, SEND_AGENT_EMAIL_FAILURE],\r\n method: 'POST',\r\n body,\r\n endpoint: 'agents/emailagent'\r\n },\r\n ResponseMessage: resMsg\r\n });\r\n};\r\n\r\nexport const addDeleteClientAVM = (method, body, clientId) => (dispatch, getState) => {\r\n const { Id/* , type */ } = getState().session.audience;\r\n var url = window.sessionStorage.getItem(\"APIAudience\");\r\n url += `${Id}/clients/${clientId}/avm`;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [AGENT_REQUEST, AGENT_SUCCESS, AGENT_FAILURE],\r\n method: method,\r\n body: body,\r\n endpoint: url \r\n }\r\n })\r\n};\r\n\r\nexport const fetchFeaturedAgents = () => (dispatch, getState) => {\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [FAGENT_REQUEST, FAGENT_SUCCESS, FAGENT_FAILURE],\r\n method: 'GET',\r\n endpoint: 'agents/featuredagent/get' \r\n }\r\n })\r\n};\r\n\r\nexport const fetchTeamAgents = () => (dispatch, getState) => {\r\n \r\n return dispatch({\r\n [CALL_API]: {\r\n types: [TAGENT_REQUEST, TAGENT_SUCCESS, TAGENT_FAILURE],\r\n method: 'GET',\r\n endpoint: 'agents/teamagents/get' \r\n }\r\n })\r\n};\r\n","import { CALL_API } from '../store/api';\r\n\r\nexport const PROFILE_REQUEST = 'PROFILE_REQUEST';\r\nexport const AGENT_PROFILE_REQUEST = 'AGENT_PROFILE_REQUEST';\r\nexport const AGENT_PROFILE_SUCCESS = 'AGENT_PROFILE_SUCCESS';\r\nexport const AGENT_PROFILE_FAILURE = 'AGENT_PROFILE_FAILURE';\r\nexport const PROFILE_SUCCESS = 'PROFILE_SUCCESS';\r\nexport const PROFILE_UPDATE_SUCCESS = 'PROFILE_UPDATE_SUCCESS';\r\nexport const PROFILE_FAILURE = 'PROFILE_FAILURE';\r\n\r\nexport const fetchProfile = () => (dispatch, getState) => {\r\n const { Id, type } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [PROFILE_REQUEST, PROFILE_SUCCESS, PROFILE_FAILURE],\r\n method: 'GET',\r\n endpoint: `${type}s/${Id}`\r\n }\r\n });\r\n}\r\n\r\nexport const fetchMyAgentProfile = () => (dispatch, getState) => {\r\n const { Id } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [AGENT_PROFILE_REQUEST, AGENT_PROFILE_SUCCESS, AGENT_PROFILE_FAILURE],\r\n method: 'GET',\r\n endpoint: `clients/${Id}/agent`\r\n }\r\n })\r\n}\r\n\r\nexport const updateProfile = body => (dispatch, getState) => {\r\n const { Id, type } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [PROFILE_REQUEST, PROFILE_UPDATE_SUCCESS, PROFILE_FAILURE],\r\n method: 'PUT',\r\n body,\r\n endpoint: `${type}s/${Id}`\r\n }\r\n });\r\n};\r\n\r\nexport const setProfileSuccess = (successMsg) => (dispatch, getState) => {\r\n return dispatch({\r\n type: PROFILE_UPDATE_SUCCESS,\r\n response: { Message: successMsg }\r\n });\r\n}\r\n\r\nexport const setProfileError = (errMsg) => (dispatch, getSelection) => {\r\n return dispatch({\r\n type: PROFILE_FAILURE,\r\n error: errMsg \r\n })\r\n}\r\n","import { CALL_API, Schemas } from '../store/api';\r\n\r\nexport const CLIENTS_REQUEST = 'CLIENTS_REQUEST';\r\nexport const CLIENTS_SUCCESS = 'CLIENTS_SUCCESS';\r\nexport const CLIENT_UPDATE_SUCCESS = 'CLIENT_UPDATE_SUCCESS';\r\nexport const CLIENTS_FETCH_SUCCESS = 'CLIENTS_FETCH_SUCCESS';\r\nexport const CLIENT_SELECT = 'CLIENT_SELECT';\r\nexport const CLIENT_DESELECT = 'CLIENT_DESELECT';\r\nexport const CLIENTS_FAILURE = 'CLIENTS_FAILURE';\r\n\r\nexport const CLIENT_IGNORE_SUCCESS = 'CLIENT_IGNORE_SUCCESS';\r\nexport const CLIENT_DELETE = 'CLIENT_DELETE';\r\n/* export const CLIENT_DELETE_REQUEST = 'CLIENT_DELETE_REQUEST';\r\nexport const CLIENT_DELETE_SUCCESS = 'CLIENT_DELETE_SUCCESS';\r\nexport const CLIENT_DELETE_FAILURE = 'CLIENT_DELETE_FAILURE'; */\r\n\r\nexport const ALL_CLIENTS_REQUEST = 'ALL_CLIENTS_REQUEST';\r\nexport const ALL_CLIENTS_SUCCESS = 'ALL_CLIENTS_SUCCESS';\r\nexport const ALL_CLIENTS_FAILURE = 'ALL_CLIENTS_FAILURE';\r\n\r\nexport const fetchClient = id => (dispatch, getState) => {\r\n const { Id } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [CLIENTS_REQUEST, CLIENTS_SUCCESS, CLIENTS_FAILURE],\r\n method: 'GET',\r\n endpoint: `agents/${Id}/clients/${id}`,\r\n schema: Schemas.CLIENT\r\n }\r\n });\r\n};\r\n\r\nexport const updateClient = (id, body) => (dispatch, getState) => {\r\n const { Id } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [CLIENTS_REQUEST, CLIENT_UPDATE_SUCCESS, CLIENTS_FAILURE],\r\n method: 'PUT',\r\n body,\r\n endpoint: `agents/${Id}/clients/${id}`\r\n }\r\n });\r\n};\r\n\r\nexport const fetchClients = () => (dispatch, getState) => {\r\n const { Id } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [CLIENTS_REQUEST, CLIENTS_FETCH_SUCCESS, CLIENTS_FAILURE],\r\n method: 'GET',\r\n endpoint: `agents/${Id}/clients`,\r\n schema: Schemas.CLIENT_ARRAY\r\n }\r\n })\r\n};\r\n\r\n/* export const selectClient = id => ({\r\n type: CLIENT_SELECT, \r\n id\r\n}); */\r\n\r\nexport const selectClient = id => (dispatch, getState) => {\r\n const { Id } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [CLIENTS_REQUEST, CLIENT_SELECT, CLIENTS_FAILURE],\r\n method: 'GET',\r\n endpoint: `agents/${Id}/clients/${id}`,\r\n schema: Schemas.CLIENT\r\n }\r\n });\r\n}; \r\n\r\nexport const deselectClient = () => ({\r\n type: CLIENT_DESELECT\r\n});\r\n\r\n/* export const deleteClient = id => (dispatch, getState) => {\r\n const { Id } = getState().session.audience;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [CLIENT_DELETE_REQUEST, CLIENT_DELETE_SUCCESS, CLIENT_DELETE_FAILURE],\r\n method: 'DELETE',\r\n endpoint: `agents/${Id}/clients/${id}`,\r\n id: id\r\n }\r\n });\r\n}; */\r\n\r\nexport const deleteClient = id => ({\r\n type: CLIENT_DELETE, \r\n id\r\n});\r\n\r\nexport const addDeleteBookmark = (method, body, clientId) => (dispatch, getState) => {\r\n const { Id, type } = getState().session.audience;\r\n var url = window.sessionStorage.getItem(\"APIAudience\");\r\n if (type === 'agent') \r\n url += `${Id}/clients/${clientId}/bookmarks`;\r\n else \r\n url += `${Id}/bookmarks`;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [CLIENTS_REQUEST, CLIENT_IGNORE_SUCCESS, CLIENTS_FAILURE],\r\n method: method,\r\n body: body,\r\n endpoint: url \r\n }\r\n })\r\n};\r\n\r\nexport const addDeleteFavorite = (method, body, clientId) => (dispatch, getState) => {\r\n const { Id, type } = getState().session.audience;\r\n var url = window.sessionStorage.getItem(\"APIAudience\");\r\n if (type === 'agent') \r\n url += `${Id}/clients/${clientId}/favorites`;\r\n else \r\n url += `${Id}/favorites`;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [CLIENTS_REQUEST, CLIENT_IGNORE_SUCCESS, CLIENTS_FAILURE],\r\n method: method,\r\n body: body,\r\n endpoint: url \r\n }\r\n })\r\n};\r\n\r\nexport const addDeleteRemove = (method, body, clientId) => (dispatch, getState) => {\r\n const { Id, type } = getState().session.audience;\r\n var url = window.sessionStorage.getItem(\"APIAudience\");\r\n if (method === 'POST') {\r\n if (type === 'agent')\r\n url += `${Id}/clients/${clientId}/removed/${body}`;\r\n else\r\n url += `${Id}/removed/${body}`;\r\n }\r\n else \r\n url += `${Id}/removed`;\r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [CLIENTS_REQUEST, CLIENT_IGNORE_SUCCESS, CLIENTS_FAILURE],\r\n method: method,\r\n body: body,\r\n endpoint: url \r\n }\r\n })\r\n};\r\n\r\nexport const fetchAllClients = () => (dispatch, getState) => { \r\n\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [ALL_CLIENTS_REQUEST, ALL_CLIENTS_SUCCESS, ALL_CLIENTS_FAILURE],\r\n method: 'GET',\r\n endpoint: `agents/allclients/get`\r\n }\r\n })\r\n};","//\"use strict\"\r\n\r\nvar React = require('react')\r\nvar ReactDOM = require('react-dom')\r\nvar createReactClass = require('create-react-class');\r\n\r\nvar div = React.createElement.bind(null, 'div')\r\nvar button = React.createElement.bind(null, 'button')\r\nvar a = React.createElement.bind(null, 'a')\r\nvar select = React.createElement.bind(null, 'select')\r\nvar option = React.createElement.bind(null ,'option')\r\nvar label = React.createElement.bind(null, 'label')\r\n\r\nvar idInc = 0\r\n\r\nvar keyHandlers = {\r\n 38: 'handleUpKey',\r\n 40: 'handleDownKey',\r\n 32: 'handleSpaceKey',\r\n 13: 'handleEnterKey',\r\n 27: 'handleEscKey',\r\n 74: 'handleDownKey',\r\n 75: 'handleUpKey'\r\n}\r\n\r\nfunction interceptEvent(event) {\r\n if (event) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n }\r\n}\r\n\r\nmodule.exports = createReactClass({displayName: 'exports',\r\n getInitialState: function () {\r\n return {\r\n id: 'react-select-box-' + (++idInc),\r\n open: false,\r\n focusedIndex: -1,\r\n pendingValue: []\r\n }\r\n },\r\n\r\n getDefaultProps: function () {\r\n return {\r\n closeText: 'Close',\r\n clearText: 'Remove selection'\r\n }\r\n },\r\n\r\n changeOnClose: function () {\r\n return this.isMultiple() && String(this.props.changeOnClose) === 'true'\r\n },\r\n\r\n updatePendingValue: function (value, cb) {\r\n if (this.changeOnClose()) {\r\n this.setState({pendingValue: value}, cb)\r\n return true\r\n }\r\n return false\r\n },\r\n\r\n componentWillMount: function () {\r\n this.updatePendingValue(this.props.value)\r\n },\r\n\r\n componentWillReceiveProps: function (next) {\r\n this.updatePendingValue(next.value)\r\n },\r\n\r\n clickingOption: false,\r\n\r\n blurTimeout: null,\r\n\r\n handleFocus: function () {\r\n clearTimeout(this.blurTimeout)\r\n },\r\n\r\n handleBlur: function () {\r\n clearTimeout(this.blurTimeout)\r\n this.blurTimeout = setTimeout(this.handleClose, 0)\r\n },\r\n\r\n handleMouseDown: function() {\r\n this.clickingOption = true\r\n },\r\n\r\n handleChange: function (val, cb) {\r\n return function (event) {\r\n this.clickingOption = false\r\n interceptEvent(event)\r\n if (this.isMultiple()) {\r\n var selected = []\r\n if (val != null) {\r\n selected = this.value().slice(0)\r\n var index = selected.indexOf(val)\r\n if (index !== -1) {\r\n selected.splice(index, 1)\r\n } else {\r\n selected.push(val)\r\n }\r\n }\r\n this.updatePendingValue(selected, cb) || this.props.onChange(selected)\r\n } else {\r\n this.updatePendingValue(val, cb) || this.props.onChange(val)\r\n this.handleClose()\r\n //this.refs.button.getDOMNode().focus()\r\n ReactDOM.findDOMNode(this.refs.button).focus()\r\n }\r\n }.bind(this)\r\n },\r\n\r\n handleNativeChange: function (event) {\r\n var val = event.target.value\r\n if (this.isMultiple()) {\r\n var children = [].slice.call(event.target.childNodes, 0)\r\n val = children.reduce(function (memo, child) {\r\n if (child.selected) {\r\n memo.push(child.value)\r\n }\r\n return memo\r\n }, [])\r\n }\r\n this.props.onChange(val)\r\n },\r\n\r\n handleClear: function (event) {\r\n interceptEvent(event)\r\n this.handleChange(null, function () {\r\n // only called when change=\"true\"\r\n this.props.onChange(this.state.pendingValue)\r\n })(event)\r\n },\r\n\r\n toggleOpenClose: function (event) {\r\n interceptEvent(event)\r\n this.setState({open: !this.state.open});\r\n if(this.state.open) {\r\n return this.setState({open: false})\r\n }\r\n\r\n this.handleOpen()\r\n },\r\n\r\n handleOpen: function (event) {\r\n interceptEvent(event)\r\n this.setState({open: true}, function () {\r\n //this.refs.menu.getDOMNode().focus()\r\n ReactDOM.findDOMNode(this.refs.menu).focus()\r\n })\r\n },\r\n\r\n handleClose: function (event) {\r\n interceptEvent(event)\r\n if(!this.clickingOption) {\r\n this.setState({open: false, focusedIndex: -1})\r\n }\r\n if (this.changeOnClose()) {\r\n this.props.onChange(this.state.pendingValue)\r\n }\r\n },\r\n\r\n\r\n moveFocus: function (move) {\r\n var len = React.Children.count(this.props.children)\r\n var idx = (this.state.focusedIndex + move + len) % len\r\n this.setState({focusedIndex: idx})\r\n },\r\n\r\n handleKeyDown: function (event) {\r\n if (keyHandlers[event.which]) {\r\n this[keyHandlers[event.which]](event)\r\n }\r\n },\r\n\r\n handleUpKey: function (event) {\r\n interceptEvent(event)\r\n this.moveFocus(-1)\r\n },\r\n\r\n handleDownKey: function (event) {\r\n interceptEvent(event)\r\n if (!this.state.open) {\r\n this.handleOpen(event)\r\n }\r\n this.moveFocus(1)\r\n },\r\n\r\n handleSpaceKey: function (event) {\r\n interceptEvent(event)\r\n if (!this.state.open) {\r\n this.handleOpen(event)\r\n } else if (this.state.focusedIndex !== -1) {\r\n this.handleEnterKey()\r\n }\r\n },\r\n\r\n handleEnterKey: function (event) {\r\n if (this.state.focusedIndex !== -1) {\r\n this.handleChange(this.options()[this.state.focusedIndex].value)(event)\r\n }\r\n },\r\n\r\n handleEscKey: function (event) {\r\n if (this.state.open) {\r\n this.handleClose(event)\r\n } else {\r\n this.handleClear(event)\r\n }\r\n },\r\n\r\n label: function () {\r\n var selected = this.options()\r\n .filter(function (option) {\r\n return this.isSelected(option.value)\r\n }.bind(this))\r\n .map(function (option) {\r\n return option.label\r\n })\r\n return selected.length > 0 ? selected.join(', ') : this.props.label\r\n },\r\n\r\n isMultiple: function () {\r\n return String(this.props.multiple) === 'true'\r\n },\r\n\r\n options: function () {\r\n var options = []\r\n React.Children.forEach(this.props.children, function (option) {\r\n options.push({\r\n value: option.props.value,\r\n label: option.props.children,\r\n className: option.props.className,\r\n })\r\n })\r\n return options\r\n },\r\n\r\n value: function () {\r\n var value = this.changeOnClose() ?\r\n this.state.pendingValue :\r\n this.props.value\r\n\r\n if (!this.isMultiple() || Array.isArray(value)) {\r\n return value\r\n } if (value != null) {\r\n return [value]\r\n }\r\n return []\r\n },\r\n\r\n hasValue: function () {\r\n if (this.isMultiple()) {\r\n return this.value().length > 0\r\n }\r\n return this.value() != null\r\n },\r\n\r\n isSelected: function (value) {\r\n if (this.isMultiple()) {\r\n return this.value().indexOf(value) !== -1\r\n }\r\n return this.value() === value\r\n },\r\n\r\n render: function () {\r\n var className = 'react-select-box-container'\r\n if (this.props.className) {\r\n className += ' ' + this.props.className\r\n }\r\n if (this.isMultiple()) {\r\n className += ' react-select-box-multi'\r\n }\r\n if (!this.hasValue()) {\r\n className += ' react-select-box-empty'\r\n }\r\n return (\r\n div(\r\n {\r\n onKeyDown: this.handleKeyDown,\r\n className: className\r\n },\r\n button(\r\n {\r\n id: this.state.id,\r\n ref: 'button',\r\n className: 'react-select-box',\r\n onClick: this.toggleOpenClose,\r\n onBlur: this.handleBlur,\r\n tabIndex: '0',\r\n 'aria-hidden': true\r\n },\r\n div({className: 'react-select-box-label'}, this.label())\r\n ),\r\n this.renderOptionMenu(),\r\n this.renderClearButton(),\r\n this.renderNativeSelect()\r\n )\r\n )\r\n },\r\n\r\n renderNativeSelect: function () {\r\n var id = this.state.id + '-native-select'\r\n var multiple = this.isMultiple()\r\n var empty = multiple ? null : option({key: '', value: ''}, 'No Selection')\r\n var options = [empty].concat(this.props.children)\r\n return div(\r\n {className: 'react-select-box-native'},\r\n label({htmlFor: id}, this.props.label),\r\n select({\r\n id: id,\r\n multiple: multiple,\r\n onKeyDown: function (e) { e.stopPropagation() },\r\n value: this.props.value || (multiple ? [] : ''),\r\n onChange: this.handleNativeChange\r\n }, options)\r\n )\r\n\r\n },\r\n\r\n renderOptionMenu: function () {\r\n var className = 'react-select-box-options'\r\n if (!this.state.open) {\r\n className += ' react-select-box-hidden'\r\n }\r\n /*\r\n var active = null\r\n if (this.state.focusedIndex !== -1) {\r\n active = this.state.id + '-' + this.state.focusedIndex\r\n }\r\n */\r\n return div(\r\n {\r\n className: className,\r\n onBlur: this.handleBlur,\r\n onFocus: this.handleFocus,\r\n 'aria-hidden': true,\r\n ref: 'menu',\r\n tabIndex: 0\r\n },\r\n div(\r\n {\r\n className: 'react-select-box-off-screen'\r\n },\r\n this.options().map(this.renderOption)\r\n ),\r\n this.renderCloseButton()\r\n )\r\n },\r\n\r\n renderOption: function (option, i) {\r\n var className = 'react-select-box-option'\r\n if (option.className && option.className !== \"\") {\r\n className += ' ' + option.className + ' ';\r\n }\r\n if (i === this.state.focusedIndex) {\r\n className += ' react-select-box-option-focused'\r\n }\r\n if (this.isSelected(option.value)) {\r\n className += ' react-select-box-option-selected'\r\n }\r\n return a(\r\n {\r\n id: this.state.id + '-' + i,\r\n href: '#',\r\n onClick: this.handleChange(option.value),\r\n onMouseDown: this.handleMouseDown,\r\n className: className,\r\n tabIndex: -1,\r\n key: option.value,\r\n onBlur: this.handleBlur,\r\n onFocus: this.handleFocus\r\n },\r\n option.label\r\n )\r\n },\r\n\r\n renderClearButton: function () {\r\n if (this.hasValue()) {\r\n return button({\r\n 'aria-label': this.props.clearText,\r\n className: 'react-select-box-clear',\r\n onClick: this.handleClear\r\n })\r\n }\r\n },\r\n\r\n renderCloseButton: function () {\r\n if (this.isMultiple() && this.props.closeText) {\r\n return button(\r\n {\r\n onClick: this.handleClose,\r\n className: 'react-select-box-close',\r\n onBlur: this.handleBlur,\r\n onFocus: this.handleFocus\r\n },\r\n this.props.closeText\r\n )\r\n }\r\n }\r\n})\r\n","import { CALL_API, Schemas } from '../store/api';\r\nimport { normalize } from 'normalizr';\r\nexport const ACTIVITY_REQUEST = 'ACTIVITY_REQUEST';\r\nexport const ACTIVITY_SUCCESS = 'ACTIVITY_SUCCESS';\r\nexport const ACTIVITY_FAILURE = 'ACTIVITY_FAILURE';\r\nexport const ACTIVITY_FILTER = 'ACTIVITY_FILTER';\r\nexport const ACTIVITIES_ADD_ENTITIES = 'ACTIVITIES_ADD_ENTITIES';\r\n\r\nconst fetchActivityItems = (key, endpoint, body) => ({\r\n [CALL_API]: {\r\n types: [ACTIVITY_REQUEST, ACTIVITY_SUCCESS, ACTIVITY_FAILURE],\r\n method: 'POST',\r\n body,\r\n endpoint,\r\n schema: Schemas.ACTIVITY_ITEM_ARRAY\r\n },\r\n key\r\n})\r\n\r\n// nextPage: false, checkForNewActivity: true - App.js (setFeedTimer)\r\n// nextPage: true, checkForNewActivity: undefined - quickbar.js (loadMore/recievedprops)\r\n// key is 'mine' or selectedClient.id\r\nexport const loadActivity = (key, nextPage, checkForNewActivity) => (dispatch, getState) => {\r\n const { session, activity, entities } = getState();\r\n const { type, Id } = session.audience;\r\n const {\r\n pageCount = 0,\r\n ids = [],\r\n unreadIds = [],\r\n moreItems = true\r\n } = activity[key] || {};\r\n\r\n if(checkForNewActivity){\r\n window.sessionStorage.setItem(\"checkForNewActivity\", \"true\");\r\n }\r\n else{\r\n window.sessionStorage.removeItem(\"checkForNewActivity\");\r\n }\r\n\r\n // Cached results, don't fetch new items\r\n if (!checkForNewActivity && pageCount > 0 && !nextPage) {\r\n return null;\r\n }\r\n // Don't fetch more when there are no more items\r\n if (nextPage && !moreItems) {\r\n return null;\r\n }\r\n\r\n let count = 10;\r\n let lastDate;\r\n let lastReadId;\r\n const activityItems = ids.map(id => entities.activities[id]).concat(unreadIds.map(id => entities.activities[id]));\r\n\r\n // Calculate count and lastDate for pagination (loadMore/receivedprops)\r\n // This is a hack because we are getting records by DateTime instead of TrackAction.id\r\n if (!checkForNewActivity && activityItems.length > 0) {\r\n // lastDate is the oldest Date we have in the activity feed\r\n //lastDate = new Date(Math.min(...activityItems.map(item => new Date(item.ActivityOn.replace('T',' ') + ' UTC'))));\r\n lastDate = new Date(Math.min(...activityItems.map(item => new Date(item.ActivityOn + 'Z'))));\r\n\r\n // Increase the count because we have {totalwithDate} records that match this datetime already\r\n //const totalwithDate = activityItems.filter(item => (new Date(item.ActivityOn.replace('T',' ') + ' UTC')).valueOf() === lastDate.valueOf());\r\n const totalwithDate = activityItems.filter(item => (new Date(item.ActivityOn + 'Z')).valueOf() === lastDate.valueOf());\r\n count += totalwithDate.length;\r\n }\r\n // called by setFeedTimer\r\n else {\r\n if (activityItems.length > 0) {\r\n lastReadId = Math.max.apply(Math, activityItems.map(function (a) { return a.Id; }))\r\n count = undefined;\r\n }\r\n }\r\n\r\n let endpoint;\r\n\r\n // Determine endpoint by checking session audience type and the 'key' passed into action\r\n if (type === 'agent') {\r\n endpoint = `agents/${Id}`;\r\n\r\n if (key !== 'mine') {\r\n endpoint += `/clients/${key}`;\r\n }\r\n }\r\n else {\r\n endpoint = `clients/${Id}`;\r\n }\r\n\r\n endpoint += '/trackfeeds';\r\n\r\n const body = {\r\n Count: count,\r\n startDate: lastDate,\r\n LastReadId: lastReadId\r\n };\r\n\r\n return dispatch(fetchActivityItems(key, endpoint, body));\r\n}\r\n\r\nexport const addActivitiesToEntities = (key, activities) => (dispatch, getState) => {\r\n return new Promise((resolve, reject) => {\r\n const response = normalize(activities, Schemas.ACTIVITY_ITEM_ARRAY);\r\n // this does the same as calling API by using entities reducer\r\n dispatch({type: ACTIVITIES_ADD_ENTITIES, response: response, key: key}); \r\n // you shouldn't have to call ACTIVITY_SUCCESS but there's logic in the reducer :[\r\n dispatch({type: ACTIVITY_SUCCESS, response: response, key: key})\r\n resolve();\r\n });\r\n}\r\n\r\nexport const filterUnreadIds = (key, lastReadId) => (dispatch, getState) => {\r\n return dispatch({type: ACTIVITY_FILTER, lastReadId: lastReadId, key: key })\r\n}","import React, { Component } from 'react';\r\nimport TrueLogo from '../img/svg/truebytlc-logo.svg';\r\n\r\nclass TermsNConditions extends Component {\r\n\r\n render() {\r\n\r\n var siteLogo = TrueLogo;\r\n\r\n if (process.env.REACT_APP_WebsiteLogo !== undefined && process.env.REACT_APP_WebsiteLogo !== null &&\r\n process.env.REACT_APP_WebsiteLogo !== \"\"){\r\n siteLogo = process.env.REACT_APP_WebsiteLogo;\r\n }\r\n\r\n return (\r\n
    \r\n
    \"\"/
    \r\n
    \r\n
    \r\n

    Please Read The Following Terms And Policies Carefully. When You Use Our Website You Acknowledge That You Have Read, Understood, And Agree To Be Bound By These Terms And Policies.

    \r\n
    \r\n
    Terms Of Service
    \r\n

    This website that you are visiting, tripTLC (the \"Website\" or the \"Site\"), is owned by TLCengine LLC (the \"Company\") and is being made available, pursuant to an Agreement (the \"MLS Agreement\") between the Company and Multiple Listing Service of current area. (\"MLS\"), to real estate brokers and agents, appraisers, and other real estate professionals (\"MLS Subscribers\") who subscribe to the the proprietary online, interactive real estate information service that MLS operates (\"MLS Subscribers\") and to customers of MLS Subscribers to whom MLS Subscribers make this Website available (\"Customers\" or \"End Users\"),

    \r\n

    Electronic Communication: When you visit our website or send e-mails to us, you are communicating with us electronically. You consent to receive communications from us electronically. We will communicate with you by e-mail or by posting notices on this site. You agree that all agreements, notices, disclosures and other communications that we provide to you electronically satisfy any legal requirement that such communications be in writing.

    \r\n

    Copyright: All content included on this site, such as text, graphics, logos, button icons, images, audio clips, digital downloads, data compilations, and software, is the property of Company protected by United States and international copyright laws. The compilation of all content on this site is the exclusive property of the Company and protected by U.S. and international copyright laws. All software used on this site is the property of Company or its software suppliers and protected by United States and international copyright laws.

    \r\n

    Trademarks: TLCengine and other Company graphics, logos, page headers, button icons, scripts, and service names are trademarks, registered trademarks or trade dress of Company in the U.S. and/or other countries. Company's trademarks and trade dress may not be used in connection with any product or service that is not Company's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Company. All other trademarks not owned by Company that appear on this site are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Company.

    \r\n

    License and Site Access: Company grants you a limited license to access and make personal use of this site and not to download (other than page caching) or modify it, or any portion of it, except with express written consent. This license does not include any resale or commercial use of this site or its contents; any collection and use of any product listings, descriptions, or prices; any derivative use of this site or its contents; or any use of data mining, robots, or similar data gathering and extraction tools. This site or any portion of this site may not be reproduced, duplicated, copied, sold, resold, visited, or otherwise exploited for any commercial purpose without express written consent of Company. You may not frame or utilize framing techniques to enclose any trademark, logo, or other proprietary information including but not limited to images, text, page layout, or form of Company without express written consent. You may not use any meta tags or any other \"hidden text\" utilizing Company's name or trademarks without the express written consent. Any unauthorized use terminates the permission or license granted. You are granted a limited, revocable, and nonexclusive right to create a hyperlink to the home page of Company so long as the link does not portray Company, or its products or services in a false, misleading, derogatory, or otherwise offensive matter. You may not use any Company logo or other proprietary graphic or trademark as part of the link without express written permission.

    \r\n

    Right To Modify Terms And Terminate License. Your License Is Subject To The Company's Reservation Of The Right, In The Company's Sole Discretion, To Modify These Terms Of Service At Any Time And/Or To Terminate Your License To Use This Website At Any Time Without Cause.

    \r\n

    Additional Conditions of License. Your license to use this site is subject to the following additional conditions of the MLS Agreement:

    \r\n
      \r\n
    • The access of each MLS Subscriber and its End-Users to this Site and other databases and services of MLS are subject at all times to the rules and regulations and operating policies of MLS. MLS may change its policies at any time. Such changes may result in changes to the Developer MLS Product, including a reduction or elimination of functionality or capabilities.
    • \r\n
    • If at any time MLS informs the Company that a MLS Subscriber is no longer a subscriber in good standing with MLS, Company will terminate access to this site by such MLS Subscriber and its Customers.
    • \r\n
    • No MLS Subscriber is permitted under any circumstances to make access to the this site to any person not authorized by MLS to have that access.
    • \r\n
    \r\n

    Your Account: If you use this site, you are responsible for maintaining the confidentiality of your account and password and for restricting access to your computer, and you agree to accept responsibility for all activities that occur under your account or password. Company reserves the right to refuse service, terminate accounts, remove or edit content, or cancel orders in their sole discretion.

    \r\n

    Illegal or Abusive Usage is Strictly Prohibited: You must not abuse, harass, threaten, impersonate or intimidate other users of our website. You may not use the Company's Website for any illegal or unauthorized purpose. International users agree to comply with all local laws regarding online conduct and acceptable content. Should you be found to have engaged in illegal or abusive usage of our website, Company will suspend your account or usage as applicable.

    \r\n

    Disclaimer of Warranties and Limitation of Liability

    \r\n
    \r\n

    This Website And All Information, Content, Materials, Products (Including Software) And Services Included On Or Otherwise Made Available To You Through This Website Are Provided By Company On An \"As Is\" And \"As Available\" Basis, Unless Otherwise Specified In These Terms Of Service. The Company Makes No Representations Or Warranties Of Any Kind, Express Or Implied, As To The Operation Of This Site Or The Information, Content, Materials, Products (Including Software) Or Services Included On Or Otherwise Made Available To You Through This Site, Unless Otherwise Specified In Writing. You Expressly Agree That Your Use Of This Site Is At Your Sole Risk.

    \r\n

    To The Full Extent Permissible By Applicable Law, Company Disclaims All Warranties, Express Or Implied, Including, But Not Limited To, Implied Warranties Of Merchantability And Fitness For A Particular Purpose. Company Does Not Warrant That This Site; Information, Content, Materials, Products (Including Software) Or Services Included On Or Otherwise Made Available To You Through This Site; Their Servers; Or E-Mail Sent From [Company] Are Free Of Viruses Or Other Harmful Components. Company Will Not Be Liable For Any Damages Of Any Kind Arising From The Use Of This Site Or From Any Information, Content, Materials, Products (Including Software) Or Services Included On Or Otherwise Made Available To You Through This Site, Including, But Not Limited To Direct, Indirect, Incidental, Punitive, And Consequential Damages, Unless Otherwise Specified In Writing.

    \r\n

    Certain State Laws Do Not Allow Limitations On Implied Warranties Or The Exclusion Or Limitation Of Certain Damages. If These Laws Apply To You, Some Or All Of The Above Disclaimers, Exclusions, Or Limitations May Not Apply To You, And You Might Have Additional Rights.

    \r\n

    The Company Is Not mls's Agent And Has No Authority To Enter Into Any Agreement On mls's Behalf. These Terms Of Service Are An Agreement Between The Company And You, As An mls Subscriber Or Customer, Does Not Create Any Liability Or Obligations On The Part Of mls. mls Subscriber's And The Sole Recourse For Damages Or Breach Of This Agreement Is To The Company.

    \r\n

    The Company Makes No Warranties Of Any Kind On Behalf Of mls. The Entire Risk Arising Out Of The Use This Site And Any Database Or Service Of Remls Remains With You, As An mls Subscriber Or Customer.

    \r\n

    Limitation Of Liability. In No Event Shall mls Or The Company Be Held Liable For Any Injury To You, As An mls Subscriber Or Customer, Arising Out Of This Agreement Or Use Of This Site.

    \r\n
    \r\n

    Indemnification: MLS Subscriber shall indemnify, defend and hold MLS and the Company and ,their directors, staff, shareholders, licensors harmless from any and all claims, damages, losses, liabilities, costs and expenses (including reasonable fees of attorneys and other professionals) arising out of or in connection with this Agreement or use of the Site.

    \r\n

    You acknowledge that the Company is an information provider and not a financial advisor. The Company assembles information from various third party sources, relating to various expenses of an End User in purchasing and owning a residences in various specified locations, including commuting and other costs, based on information provided with respect to such end user. The Company does not independently verify, and is not responsible for the accuracy of information provided by third party sources and cannot predict whether such information will change in the future. The Company is not responsible for the application of information provided through this site to any End-User's particular circumstances or for decisions make by an End-User based on such application. The Company, in its limited role as an information provider, does not replace the services of a qualified financial advisor in analyzing the applicability of information to decisions made by an End-User

    \r\n

    Applicable Law: By visiting our website, you agree that the laws of the State of Delaware, without regard to principles of conflict of laws, will govern these Conditions of Use and any dispute of any sort that might arise between you and Company.

    \r\n

    Disputes: Any dispute relating in any way to your visit to our website or to products or services sold or distributed by Company in which the aggregate total claim for relief sought on behalf of one or more parties exceeds $7,500 shall be adjudicated in any state or federal court in the County of in the State of Delaware, and you consent to exclusive jurisdiction and venue in such courts.

    \r\n
    \r\n\r\n
    \r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default TermsNConditions;","import { CALL_API, Schemas } from '../store/api';\r\n\r\nexport const FEED_REQUEST = 'FEED_REQUEST';\r\nexport const FEED_SUCCESS = 'FEED_SUCCESS';\r\nexport const FEED_FAILURE = 'FEED_FAILURE';\r\n\r\nexport const SINGLE_FEED_REQUEST = 'SINGLE_FEED_REQUEST';\r\nexport const SINGLE_FEED_SUCCESS = 'SINGLE_FEED_SUCCESS';\r\nexport const SINGLE_FEED_FAILURE = 'SINGLE_FEED_FAILURE';\r\n\r\nconst fetchFeedItems = (key, endpoint, body) => ({\r\n [CALL_API]: {\r\n types: [FEED_REQUEST, FEED_SUCCESS, FEED_FAILURE],\r\n method: 'POST',\r\n body,\r\n endpoint,\r\n schema: Schemas.FEED_ITEM_ARRAY\r\n },\r\n key\r\n})\r\n\r\nexport const loadFeed = (key, nextPage) => (dispatch, getState) => {\r\n const { session, feed, entities } = getState();\r\n const { type, Id } = session.audience;\r\n const {\r\n pageCount = 0,\r\n ids = [],\r\n moreItems = true\r\n } = feed[key] || {};\r\n\r\n // Cached results, don't fetch new items\r\n if (pageCount > 0 && !nextPage) {\r\n return null;\r\n }\r\n // Don't fetch more when there are no more items\r\n if (nextPage && !moreItems) {\r\n return null;\r\n }\r\n\r\n let count = 5;\r\n let lastDate;\r\n const feedItems = ids.map(id => entities.feedItems[id]);\r\n\r\n // Calculate count and lastDate for pagination\r\n if (feedItems.length > 0) {\r\n //lastDate = new Date(Math.min(...feedItems.map(item => new Date(item.LastActionOn.replace('T',' ') + ' UTC'))));\r\n //const totalwithDate = feedItems.filter(item => (new Date(item.LastActionOn.replace('T',' ') + ' UTC')).valueOf() === lastDate.valueOf());\r\n lastDate = new Date(Math.min(...feedItems.map(item => new Date(item.LastActionOn + 'Z'))));\r\n const totalwithDate = feedItems.filter(item => (new Date(item.LastActionOn + 'Z')).valueOf() === lastDate.valueOf());\r\n count += totalwithDate.length;\r\n }\r\n\r\n let endpoint;\r\n\r\n // Determine endpoint by checking session audience type and the 'key' passed into action\r\n if (type === 'agent') {\r\n endpoint = `agents/${Id}`;\r\n\r\n if (key !== 'mine') {\r\n endpoint += `/clients/${key}`;\r\n }\r\n }\r\n else {\r\n endpoint = `clients/${Id}`;\r\n }\r\n\r\n endpoint += '/activityfeed';\r\n\r\n const body = {\r\n Count: count,\r\n startDate: lastDate,\r\n Comments: true\r\n };\r\n\r\n return dispatch(fetchFeedItems(key, endpoint, body));\r\n}\r\n\r\nexport const fetchListingFeed = (clientId, listingId) => (dispatch, getState) => {\r\n const { Id, type } = getState().session.audience;\r\n var endpoint = (type === \"agent\" ? \"agents/\" + Id + \"/\" : \"\") + \"clients/\" + clientId + \"/activityfeed/\" + listingId;\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [SINGLE_FEED_REQUEST, SINGLE_FEED_SUCCESS, SINGLE_FEED_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n schema: Schemas.FEED_ITEM\r\n }\r\n });\r\n};\r\n\r\nexport const fetchActivityFeed = (clientId, listingId, activityId) => (dispatch, getState) => {\r\n const { Id, type } = getState().session.audience;\r\n var endpoint = (type === \"agent\" ? \"agents/\" + Id + \"/\" : \"\") + \"clients/\" + clientId + \"/activityfeed/\" + listingId + \"/activity/\" + activityId;\r\n return dispatch({\r\n [CALL_API]: {\r\n types: [SINGLE_FEED_REQUEST, SINGLE_FEED_SUCCESS, SINGLE_FEED_FAILURE],\r\n method: 'GET',\r\n endpoint: endpoint,\r\n schema: Schemas.FEED_ITEM\r\n }\r\n });\r\n};","module.exports = __webpack_public_path__ + \"static/media/login_logo.45fa4d2b.png\";","import React from 'react';\r\nimport {Bling as GPT} from \"react-gpt\";\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport * as manageActions from 'actions/manage';\r\n\r\n\r\nclass CommonAdComponent extends React.Component{\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n adObj: this.props.adObj || null\r\n\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if(this.state.adObj && this.state.adObj.AdType && this.state.adObj.AdType === \"googletag\"){\r\n GPT.enableSingleRequest();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n\r\n if(JSON.stringify(this.props.adObj) !== JSON.stringify(nextProps.adObj)){\r\n this.setState({adObj: nextProps.adObj});\r\n }\r\n\r\n var flag = window.sessionStorage.getItem(\"RefreshAd\");\r\n if((!flag || flag !== window.location.href) &&\r\n (this.state.adObj && this.state.adObj.AdType && this.state.adObj.AdType === \"googletag\") ){\r\n window.sessionStorage.setItem(\"RefreshAd\",window.location.href);\r\n GPT.render();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.sessionStorage.removeItem(\"RefreshAd\");\r\n }\r\n\r\n adClicked = (event) => {\r\n //event.preventDefault();\r\n\r\n var self = this;\r\n if(self.state.adObj && self.state.adObj.AdType !== \"googletag\" && self.props.audience && self.props.audience.Id){ \r\n var currEL = [];\r\n currEL.push(self.state.adObj);\r\n if(currEL && currEL.length > 0){\r\n self.props.manageActions.trackEvent(\"click\", { \r\n EventName: \"click\",\r\n UserId: self.props.audience.Id,\r\n AdModel: currEL\r\n });\r\n }\r\n }\r\n \r\n return true;\r\n }\r\n\r\n render(){\r\n \r\n const { adObj } = this.state;\r\n\r\n var adWidth = 0, adHeight = 0;\r\n var adEle = null;\r\n\r\n if(adObj && adObj.AdType && adObj.AdSize){\r\n var sizeArr = adObj.AdSize.split(\"_\");\r\n if(sizeArr && sizeArr.length > 0){\r\n var sizeWH = sizeArr[sizeArr.length - 1].split(\"x\");\r\n if(sizeWH && sizeWH.length === 2){\r\n adWidth = parseInt(sizeWH[0],10);\r\n adHeight = parseInt(sizeWH[1],10);\r\n }\r\n }\r\n \r\n if(this.props.height && this.props.height !== \"\"){\r\n adHeight = parseInt(this.props.height, 10);\r\n }\r\n\r\n if(adObj.AdType === \"googletag\"){\r\n if(adObj.GoogleTagId && adObj.GoogleTagId !== \"\" && adWidth > 0 && adHeight > 0){\r\n adEle = (\r\n \r\n );\r\n }\r\n }\r\n else {\r\n if(adObj.Photo && adObj.Photo !== \"\" && adWidth > 0 && adHeight > 0){\r\n var subEle = (\r\n \"\"\r\n );\r\n if(adObj.URL && adObj.URL !== \"\" && (adObj.URL.indexOf(\"https://\") > -1 || adObj.URL.indexOf(\"http://\") > -1)){\r\n adEle = (\r\n \r\n );\r\n }\r\n else{\r\n adEle = (\r\n
    {subEle}
    \r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n if(!adObj) return null;\r\n\r\n return (\r\n
    \r\n
    \r\n {adEle}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n audience: state.session.audience, \r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n manageActions: bindActionCreators(manageActions, dispatch), \r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CommonAdComponent);","// extracted by mini-css-extract-plugin\nmodule.exports = {\"themeName\":\"light\"};","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport qs from \"query-string\";\r\nimport { Link } from 'react-router-dom';\r\nimport {isProfileComplete} from '../components/util';\r\nimport DocumentTitle from 'react-document-title';\r\nimport { PageTitle } from '../components/util';\r\nimport { GetSectionCustomizationOptions } from 'components/util';\r\nimport base64 from 'base-64';\r\nimport utf8 from 'utf8';\r\nimport * as sessionActions from 'actions/session';\r\nimport * as profileActions from 'actions/profile';\r\nimport * as settingActions from 'actions/settings';\r\nimport * as listingActions from 'actions/listings';\r\nimport * as agentActions from 'actions/agents';\r\nimport '../scss/_login.scss';\r\nimport 'css/Login.css';\r\n\r\n\r\nconst CommonCustomizationOptions = GetSectionCustomizationOptions(\"CommonOptions\");\r\nconst LoginPageCustomizationOptions = GetSectionCustomizationOptions(\"LoginPageOptions\");\r\n\r\nclass LoginPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n\r\n state = {\r\n username: '',\r\n password: '',\r\n rememberMe: false,\r\n authType: 'Agent',\r\n title: 'Login'\r\n }\r\n\r\n componentDidMount() { \r\n \r\n if(this.props.sessionActions) {\r\n this.props.sessionActions.setAuthError('');\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n\r\n if (process.env.REACT_APP_AllowAnonymous === \"true\"){\r\n if (!this.props.showHeader) {\r\n this.props.onShowHideHeader(true);\r\n }\r\n }\r\n else {\r\n if (this.props.showHeader) {\r\n this.props.onShowHideHeader(false);\r\n }\r\n }\r\n if (!this.props.showFooter) {\r\n this.props.onShowHideFooter(true);\r\n }\r\n \r\n const obj = qs.parse(this.props.location.query);\r\n var socialScript = obj.audienceId ? 'social-link.js': 'social-login.js';\r\n // if weclome client email. wire up social to link and verify\r\n if (obj.audienceId) {\r\n window.sessionStorage.setItem(\"SocialLinkAndVerify\", JSON.stringify({ Id: obj.audienceId, audienceType: obj.audienceType, mlsKey: obj.mlsKey }));\r\n } \r\n else if (obj.socialSuccess === 'false') {\r\n //social login failed\r\n this.props.sessionActions.setAuthError('Error with social login. For the first time, you must use the link from your welcome email.');\r\n }\r\n else if (obj.socialLinkAndVerify === 'false') {\r\n //social link failed\r\n this.props.sessionActions.setAuthError('Error with social login. This social account already exists.');\r\n }\r\n const script = document.createElement(\"script\");\r\n const scriptsPath = window.sessionStorage.getItem('BaseAPI').replace('/api/', '/scripts/');\r\n script.src = scriptsPath + socialScript; \r\n script.async = true;\r\n\r\n document.body.appendChild(script);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.session.isAuthenticated) { \r\n if((this.props.profile === undefined || this.props.profile === null) &&\r\n (nextProps.profile === undefined || nextProps.profile === null)){\r\n if(this.props.settingActions){\r\n this.props.settingActions.fetchSettings();\r\n this.props.settingActions.fetchAuthMechanism();\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.FetchPrintPieceUrl){\r\n this.props.settingActions.fetchPrintPieceURL();\r\n } \r\n }\r\n if(this.props.profileActions){\r\n this.props.profileActions.fetchProfile();\r\n }\r\n }\r\n if(nextProps.profile !== undefined && nextProps.profile !== null){ \r\n if(nextProps.audience && nextProps.audience.type === \"client\"){\r\n if(nextProps.profileActions) nextProps.profileActions.fetchMyAgentProfile();\r\n \r\n var gotoHome = isProfileComplete(nextProps.profile);\r\n this.props.listingActions.fetchAgentClientListings(\"favorites\");\r\n this.props.listingActions.fetchAgentClientListings(\"bookmarks\");\r\n this.props.listingActions.fetchAgentClientListings(\"removed\");\r\n this.props.listingActions.fetchAgentClientListings(\"agentlistings\");\r\n\r\n if(window.sessionStorage.getItem(\"RedirectToHome\")){\r\n window.sessionStorage.removeItem(\"RedirectToHome\");\r\n } \r\n\r\n if(window.sessionStorage.getItem(\"ComingFromCampaign\")){\r\n window.sessionStorage.removeItem(\"ComingFromCampaign\");\r\n this.props.history.push('/onboarding');\r\n document.location.reload();\r\n }\r\n else if(gotoHome){\r\n window.sessionStorage.removeItem(\"ComingFromCampaign\");\r\n if(window.sessionStorage.getItem(\"RedirectLocation\")){ \r\n const redirectUrl = utf8.decode(base64.decode(window.sessionStorage.getItem(\"RedirectLocation\")));\r\n window.sessionStorage.removeItem(\"RedirectLocation\");\r\n this.props.history.push(redirectUrl);\r\n document.location.reload();\r\n }\r\n else{\r\n this.props.history.push('/');\r\n document.location.reload();\r\n }\r\n }\r\n else{\r\n window.sessionStorage.removeItem(\"ComingFromCampaign\");\r\n this.props.history.push('/personalize');\r\n document.location.reload();\r\n }\r\n }\r\n else{\r\n if(nextProps.audience && nextProps.audience.type === \"agent\"){\r\n if (process.env.REACT_APP_AnonymousUserId !== undefined && \r\n process.env.REACT_APP_AnonymousUserId !== null && \r\n process.env.REACT_APP_AnonymousUserId !== \"\" && \r\n nextProps.audience.Id && nextProps.audience.Id !== \"\" && \r\n process.env.REACT_APP_AnonymousUserId.toLowerCase() !== nextProps.audience.Id.toLowerCase()){\r\n this.props.listingActions.fetchAgentClientListings(\"agentlistings\");\r\n window.sessionStorage.setItem(\"RedirectToHome\",true);\r\n }\r\n }\r\n\r\n if(window.sessionStorage.getItem(\"ComingFromCampaign\")){\r\n window.sessionStorage.removeItem(\"ComingFromCampaign\");\r\n }\r\n\r\n if(window.sessionStorage.getItem(\"RedirectToHome\")){\r\n window.sessionStorage.removeItem(\"RedirectToHome\");\r\n if(window.sessionStorage.getItem(\"RedirectLocation\")){ \r\n const redirectUrl = utf8.decode(base64.decode(window.sessionStorage.getItem(\"RedirectLocation\")));\r\n window.sessionStorage.removeItem(\"RedirectLocation\");\r\n this.props.history.push(redirectUrl);\r\n document.location.reload();\r\n }\r\n else {\r\n this.props.history.push('/');\r\n document.location.reload();\r\n }\r\n } \r\n } \r\n }\r\n }\r\n }\r\n\r\n handleInputChange = event => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n\r\n let authType;\r\n if (this.state.authType.toString().toLowerCase() === 'client') {\r\n authType = \"clients\";\r\n }\r\n else {\r\n authType = \"agents\";\r\n }\r\n\r\n //this.props.sessionActions.logout();\r\n window.sessionStorage.setItem(\"RedirectToHome\",true);\r\n this.props.sessionActions.login(authType, {\r\n Application: \"MOBILE\",\r\n Username: this.state.username,\r\n Password: this.state.password,\r\n RememberMe: this.state.rememberMe\r\n });\r\n\r\n \r\n }\r\n\r\n onChangeAuthType = authType => {\r\n this.setState({ authType: authType });\r\n }\r\n\r\n render() {\r\n const { session, isFetchingProfile } = this.props;\r\n\r\n return ( \r\n \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    A new home search experience—starting with what really matters to you.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {session.error && session.error !== \"\" &&
    {session.error}
    }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    Remember me
    \r\n
    \r\n
    \r\n
    Forgot password?
    \r\n
    \r\n
    \r\n
    \r\n {process.env.REACT_APP_AllowAnonymous &&\r\n
    \r\n
    \r\n
    \r\n
    \r\n Register\r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n {\r\n
    \r\n
    \r\n
    Or login with your social
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n session: state.session,\r\n audience: state.session.audience,\r\n profile: state.profile.mine,\r\n isFetchingProfile: state.profile.isFetching\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch),\r\n profileActions: bindActionCreators(profileActions, dispatch),\r\n settingActions: bindActionCreators(settingActions, dispatch),\r\n listingActions: bindActionCreators(listingActions, dispatch),\r\n agentActions: bindActionCreators(agentActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(LoginPage);","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport qs from \"query-string\";\r\nimport DocumentTitle from 'react-document-title';\r\nimport { PageTitle, GetSectionCustomizationOptions } from '../components/util';\r\nimport store from '../store/store';\r\nimport '../scss/_login.scss';\r\nimport * as sessionActions from 'actions/session';\r\nimport * as settingActions from 'actions/settings';\r\nimport * as profileActions from 'actions/profile';\r\nimport * as clientActions from 'actions/clients';\r\nimport * as listingActions from 'actions/listings';\r\nimport * as agentActions from 'actions/agents';\r\nimport { verifyAuthToken } from 'actions/session';\r\n\r\nconst CommonCustomizationOptions = GetSectionCustomizationOptions(\"CommonOptions\");\r\n\r\nclass SSOPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n\r\n state = {\r\n title: 'Login',\r\n SSOAuthDetails: null\r\n }\r\n\r\n componentDidMount() {\r\n if(window.sessionStorage.getItem(\"ComingFromCampaign\")){\r\n window.sessionStorage.removeItem(\"ComingFromCampaign\");\r\n }\r\n const obj = qs.parse(this.props.location.search);\r\n if(obj && obj.t && obj.audienceType && obj.audienceId){\r\n setTimeout(() => {\r\n store.dispatch(verifyAuthToken({\r\n AudienceType: obj.audienceType,\r\n AudienceId: obj.audienceId,\r\n AccessToken: obj.t,\r\n skip: true\r\n })).then(r => {\r\n if (r.response && r.response.AudienceType === \"MLSAGENT\") {\r\n var self = this;\r\n this.props.profileActions.fetchProfile().then((res) => { \r\n self.props.listingActions.fetchAgentClientListings(\"agentlistings\");\r\n });\r\n this.props.settingActions.fetchSettings();\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.FetchPrintPieceUrl){\r\n this.props.settingActions.fetchPrintPieceURL();\r\n }\r\n this.props.settingActions.fetchAuthMechanism();\r\n this.props.clientActions.fetchClients();\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers && this.props.agentActions){\r\n this.props.agentActions.fetchTeamAgents();\r\n }\r\n if(this.props.history) this.props.history.push(this.props.purlPrefix.url + \"/\");\r\n }\r\n }); \r\n },500);\r\n }\r\n else{\r\n var authDt = window.sessionStorage.getItem(\"AuthMechanism\");\r\n if(authDt){\r\n if(window.sessionStorage.getItem(\"ComingForSSO\") || (obj && obj.rm && obj.rm === \"1\")){\r\n window.sessionStorage.removeItem(\"ComingForSSO\");\r\n authDt = JSON.parse(authDt);\r\n if(authDt && authDt.Idp && authDt.Idp !== \"\" && authDt.SAMLRequest && authDt.SAMLRequest !== \"\"){\r\n window.sessionStorage.setItem(\"SubmitSSORequest\", \"true\");\r\n this.props.settingActions.fetchAuthMechanism(); \r\n }\r\n }\r\n else{\r\n if(this.props.history) this.props.history.push(this.props.purlPrefix.url + \"/\");\r\n }\r\n }\r\n else{\r\n if(this.props.history) this.props.history.push(this.props.purlPrefix.url + \"/login\");\r\n }\r\n }\r\n } \r\n\r\n componentWillReceiveProps(nextProps) {\r\n if(this.props.isAuthMechFetching === true && nextProps.isAuthMechFetching === false){\r\n var authDt = window.sessionStorage.getItem(\"AuthMechanism\");\r\n if(authDt){\r\n authDt = JSON.parse(authDt);\r\n if(authDt && authDt.Idp && authDt.Idp !== \"\" && authDt.SAMLRequest && authDt.SAMLRequest !== \"\"){\r\n if(window.sessionStorage.getItem(\"SubmitSSORequest\")){\r\n window.sessionStorage.removeItem(\"SubmitSSORequest\");\r\n this.setState({SSOAuthDetails: authDt}, () => {\r\n setTimeout(() => {\r\n if(this.ssoForm) this.ssoForm.submit();\r\n },500);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const { SSOAuthDetails } = this.state;\r\n if(SSOAuthDetails !== undefined && SSOAuthDetails !== null){\r\n return (\r\n \r\n
    this.ssoForm = ref}>\r\n \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n return ( \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n session: state.session,\r\n audience: state.session.audience,\r\n profile: state.profile.mine,\r\n isFetchingProfile: state.profile.isFetching,\r\n isAuthMechFetching: state.settings.isAuthMechFetching,\r\n purlPrefix: state.session.purlPrefix || { url: ''},\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch),\r\n settingActions: bindActionCreators(settingActions, dispatch),\r\n profileActions: bindActionCreators(profileActions, dispatch),\r\n clientActions: bindActionCreators(clientActions, dispatch),\r\n listingActions: bindActionCreators(listingActions, dispatch),\r\n agentActions: bindActionCreators(agentActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SSOPage);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n//import { ToggleButton, ToggleButtonGroup } from 'react-bootstrap';\r\nimport PropTypes from 'prop-types';\r\n//import logo from '../img/login_logo.png';\r\nimport { Link } from 'react-router-dom';\r\n//import Dialog from 'react-bootstrap-dialog';\r\n//import TermsNConditions from '../components/termsconditions';\r\n//import PrivacyPolicy from '../components/privacypolicy';\r\nimport DocumentTitle from 'react-document-title';\r\nimport { PageTitle, GetSectionCustomizationOptions } from '../components/util';\r\nimport '../scss/_login.scss';\r\n//import LogoNavBar from '../components/logonavbar';\r\n//import SecondaryFooter from 'components/secondaryfooter';\r\n\r\nconst LoginPageCustomizationOptions = GetSectionCustomizationOptions(\"LoginPageOptions\");\r\n\r\nclass ForgotPasswordPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n username: '',\r\n errorMessage: '',\r\n authType: 'Agent',\r\n fetchingResult: false,\r\n title: 'Forgot Password'\r\n };\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.forgotPasswordCall = this.forgotPasswordCall.bind(this);\r\n this.onChangeAuthType = this.onChangeAuthType.bind(this);\r\n //this.openTermsDialog = this.openTermsDialog.bind(this);\r\n //this.openPolicyDialog = this.openPolicyDialog.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (process.env.REACT_APP_AllowAnonymous === \"true\"){\r\n if (!this.props.showHeader) {\r\n this.props.onShowHideHeader(true);\r\n }\r\n }\r\n else {\r\n if (this.props.showHeader) {\r\n this.props.onShowHideHeader(false);\r\n }\r\n }\r\n if (!this.props.showFooter) {\r\n this.props.onShowHideFooter(true);\r\n }\r\n }\r\n\r\n forgotPasswordCall() {\r\n // Call API for open houses\r\n var self = this;\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"accesstokens/\";\r\n\r\n var requestType = {};\r\n // Check if Client or Agent Login \r\n url += \"forgotpassword\";\r\n // if (this.state.authType.toString().toLowerCase() === 'client')\r\n // url += \"clients/forgotpassword\";\r\n // else\r\n // url += \"agents/forgotpassword\";\r\n\r\n requestType.email = this.state.username;\r\n\r\n //If there is default agent then pass default agent id to use default agent specific email template\r\n if (process.env.REACT_APP_DefaultAgentId !== undefined && \r\n process.env.REACT_APP_DefaultAgentId !== null && \r\n process.env.REACT_APP_DefaultAgentId !== \"\")\r\n {\r\n requestType.BrokerAgentId = process.env.REACT_APP_DefaultAgentId;\r\n }\r\n //---\r\n\r\n self.refs.btnSubmit.setAttribute(\"disabled\", \"disabled\");\r\n self.setState({ fetchingResult: true });\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(requestType)\r\n })\r\n .then(response => (response.ok) ? response : response.json())\r\n .then(json => { \r\n if (json.ok) { \r\n if(self.props.showNotification)\r\n {\r\n self.props.showNotification(\r\n \"success\",\r\n \"\",\r\n \"A link to update your password has been emailed. Please check your email.\",\r\n 5000);\r\n }\r\n self.props.history.push(`/`);\r\n }\r\n else\r\n {\r\n var emsg = (json && json[0] && json[0].ErrorMessage) ? json[0].ErrorMessage : \"The username you entered was not found.\";\r\n \r\n // Override API error message for user not found\r\n if (json && json[0] && json[0].ErrorCode && json[0].ErrorCode === \"412\") \r\n {\r\n emsg = \"The username you entered was not found.\"\r\n }\r\n\r\n self.refs.btnSubmit.removeAttribute(\"disabled\");\r\n this.setState({fetchingResult: false, errorMessage: emsg});\r\n }\r\n })\r\n .catch(function (data) {\r\n console.log(data);\r\n self.refs.btnSubmit.removeAttribute(\"disabled\");\r\n var emsg = (data && data[0] && data[0].ErrorMessage) ? data[0].ErrorMessage : \"The username you entered was not found.\";\r\n self.setState({fetchingResult: false, errorMessage: emsg});\r\n });\r\n }\r\n handleInputChange(event) {\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n handleSubmit(event) {\r\n\r\n if(this.state.username === null || this.state.username === '')\r\n {\r\n this.setState({errorMessage: \"Username is required.\"});\r\n }\r\n else\r\n {\r\n this.setState({errorMessage: \"\"});\r\n this.forgotPasswordCall();\r\n }\r\n\r\n event.preventDefault();\r\n return false;\r\n }\r\n onChangeAuthType(authType) {\r\n this.setState({ authType: authType });\r\n }\r\n\r\n /*openTermsDialog() {\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.CancelAction(),\r\n\r\n ]\r\n })\r\n }\r\n openPolicyDialog() {\r\n Dialog.setOptions({\r\n defaultCancelLabel: 'Close'\r\n });\r\n this.refs.dialogRef.show({\r\n body: ,\r\n bsSize: 'large',\r\n actions: [\r\n Dialog.CancelAction(),\r\n\r\n ]\r\n })\r\n }*/\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n {/* !process.env.REACT_APP_AllowAnonymous && */}\r\n
     
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    A new home search experience—starting with what really matters to you.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.state.errorMessage && this.state.errorMessage !== \"\" &&
    {this.state.errorMessage}
    }\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Already have an account? Sign in
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n \r\n
    By signing in/up you agree to the Terms of Use and Privacy Policy
    \r\n
    ©{new Date().getFullYear()} 2FindYourHome. All Rights Reserved.
    \r\n
    \r\n
    \r\n */} \r\n {/**/}\r\n
    \r\n
    \r\n\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n purlPrefix: state.session.purlPrefix || { url: ''}\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n \r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ForgotPasswordPage);","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport DocumentTitle from 'react-document-title';\r\nimport { PageTitle, GetSectionCustomizationOptions, isProfileComplete } from '../components/util';\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport '../scss/_login.scss';\r\nimport * as sessionActions from 'actions/session';\r\nimport * as profileActions from 'actions/profile';\r\nimport * as settingActions from 'actions/settings';\r\nimport * as listingActions from 'actions/listings';\r\n\r\nconst CommonCustomizationOptions = GetSectionCustomizationOptions(\"CommonOptions\");\r\nconst LoginPageCustomizationOptions = GetSectionCustomizationOptions(\"LoginPageOptions\");\r\nconst SITE_KEY = process.env.REACT_APP_GoogleRecaptchaSiteKey;\r\nconst recaptchaRef = React.createRef();\r\n\r\nclass RegisterPage extends Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n title: 'Register',\r\n firstname: '',\r\n lastname: '',\r\n email: '',\r\n phone: '',\r\n errorMessage: '',\r\n isRegistering: false,\r\n responseObj: null,\r\n isProfileFetched: false,\r\n isListingsFetched: false\r\n \r\n }; \r\n }\r\n\r\n componentDidMount() {\r\n if (process.env.REACT_APP_AllowAnonymous === \"true\"){\r\n if (!this.props.showHeader) {\r\n this.props.onShowHideHeader(true);\r\n }\r\n }\r\n else {\r\n if (this.props.showHeader) {\r\n this.props.onShowHideHeader(false);\r\n }\r\n }\r\n if (!this.props.showFooter) {\r\n this.props.onShowHideFooter(true);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.session && nextProps.session.isAuthenticated && !nextProps.isAnonymous) {\r\n if((this.props.profile === undefined || this.props.profile === null) &&\r\n (nextProps.profile === undefined || nextProps.profile === null) &&\r\n !this.state.isProfileFetched){\r\n if(this.props.settingActions){\r\n this.props.settingActions.fetchSettings();\r\n this.props.settingActions.fetchAuthMechanism();\r\n if(CommonCustomizationOptions && CommonCustomizationOptions.FetchPrintPieceUrl){\r\n this.props.settingActions.fetchPrintPieceURL();\r\n }\r\n }\r\n if(this.props.profileActions){\r\n this.props.profileActions.fetchProfile();\r\n }\r\n this.setState({isProfileFetched: true});\r\n }\r\n if(nextProps.profile !== undefined && nextProps.profile !== null){ \r\n if(nextProps.audience && nextProps.audience.type === \"client\"){\r\n if(nextProps.profileActions && !this.state.isListingsFetched) { \r\n nextProps.profileActions.fetchMyAgentProfile();\r\n }\r\n var gotoHome = isProfileComplete(nextProps.profile);\r\n if(!this.state.isListingsFetched) {\r\n this.props.listingActions.fetchAgentClientListings(\"favorites\");\r\n this.props.listingActions.fetchAgentClientListings(\"bookmarks\");\r\n this.props.listingActions.fetchAgentClientListings(\"removed\");\r\n this.props.listingActions.fetchAgentClientListings(\"agentlistings\"); \r\n }\r\n this.setState({isListingsFetched: true});\r\n\r\n if(window.sessionStorage.getItem(\"RedirectToHome\")){\r\n window.sessionStorage.removeItem(\"RedirectToHome\");\r\n } \r\n\r\n if(gotoHome){ \r\n this.props.history.push('/');\r\n document.location.reload(); \r\n }\r\n else{\r\n this.props.history.push('/personalize');\r\n document.location.reload();\r\n }\r\n }\r\n else{\r\n if(nextProps.audience && nextProps.audience.type === \"agent\"){\r\n if (process.env.REACT_APP_AnonymousUserId !== undefined && \r\n process.env.REACT_APP_AnonymousUserId !== null && \r\n process.env.REACT_APP_AnonymousUserId !== \"\" && \r\n nextProps.audience.Id && nextProps.audience.Id !== \"\" && \r\n process.env.REACT_APP_AnonymousUserId.toLowerCase() !== nextProps.audience.Id.toLowerCase()){\r\n if(!this.state.isListingsFetched){\r\n this.props.listingActions.fetchAgentClientListings(\"agentlistings\");\r\n }\r\n window.sessionStorage.setItem(\"RedirectToHome\",true);\r\n this.setState({isListingsFetched: true});\r\n }\r\n }\r\n if(window.sessionStorage.getItem(\"RedirectToHome\")){\r\n window.sessionStorage.removeItem(\"RedirectToHome\");\r\n \r\n this.props.history.push('/');\r\n document.location.reload(); \r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n handleInputChange = (event) => {\r\n const target = event.target;\r\n const value = target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n errorMessage: '',\r\n [name]: value\r\n });\r\n } \r\n\r\n handleSubmit = () => {\r\n const { purlPrefix } = this.props;\r\n const { firstname, lastname, email, phone } = this.state;\r\n \r\n var errorMessage = '';\r\n const recaptchaValue = recaptchaRef.current.getValue();\r\n\r\n if (!firstname || firstname === \"\")\r\n errorMessage = \"First name is required\";\r\n else if (!lastname || lastname === \"\")\r\n errorMessage = \"Last name is required\";\r\n else if (!email || !(/^[\\w-+.]+@([\\w-]+\\.)+[\\w-]{2,4}$/.test(email)))\r\n errorMessage = \"A valid email address is required\"\r\n else if(!recaptchaValue)\r\n errorMessage = \"Oops, you have to check the captcha!\";\r\n\r\n if(errorMessage !== \"\") {\r\n this.setState({errorMessage});\r\n return;\r\n }\r\n \r\n var self = this;\r\n var body = {\r\n Firstname: firstname,\r\n LastName: lastname,\r\n Email: email,\r\n CellPhone: phone\r\n }\r\n var agentId = process.env.REACT_APP_AnonymousUserId.toString(); \r\n //If there is default agent then client should be created under default agent else it should be created under anonymous agent\r\n if (process.env.REACT_APP_DefaultAgentId !== undefined && \r\n process.env.REACT_APP_DefaultAgentId !== null && \r\n process.env.REACT_APP_DefaultAgentId !== \"\")\r\n {\r\n agentId = process.env.REACT_APP_DefaultAgentId.toString();\r\n body.BrokerAgentId = process.env.REACT_APP_DefaultAgentId;\r\n } \r\n if(purlPrefix && purlPrefix.agent && purlPrefix.agent.Id && purlPrefix.agent.Id !== \"\"){\r\n agentId = purlPrefix.agent.Id;\r\n }\r\n const url = window.sessionStorage.getItem(\"RootAPI\") + `agents/${agentId}/clients`; \r\n \r\n self.setState({ isRegistering: true, errorMessage: \"\" });\r\n fetch(url, {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"APIKey\")\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(body)\r\n })\r\n .then(response => {\r\n if (response.ok) return response.json()\r\n //else throw Error(response.statusText)\r\n else return response.json()\r\n })\r\n .then(json => {\r\n var msg = \"Registration failed, please try again later\";\r\n var isSuccess = false;\r\n var responseObj = null;\r\n if(json && json.Audience && json.Audience.Id && json.AccessToken){\r\n msg = \"Your account has been created and you will receive an email shortly. Click Ok to login\";\r\n isSuccess = true;\r\n responseObj = {...json};\r\n }\r\n else {\r\n if(json && json.ErrorMessage && json.ErrorMessage !== \"\"){\r\n msg = json.ErrorMessage;\r\n isSuccess = false;\r\n }\r\n else if(json && json.length > 0 && json[0].ErrorMessage && json[0].ErrorMessage !== \"\"){\r\n msg = json[0].ErrorMessage;\r\n isSuccess = false;\r\n }\r\n }\r\n\r\n if(isSuccess){\r\n //self.redirectTimer = setInterval(self.loginUser, 7000);\r\n self.props.showNotification(\r\n \"success\",\r\n \"\",\r\n msg.replace(\"Client is already added by you\",\"This email is already registered\"),\r\n 5000,\r\n \"Ok\",\r\n this.loginUser\r\n );\r\n }\r\n else {\r\n self.props.showNotification(\"success\", \"\",\r\n msg.replace(\"Client is already added by you\",\"This email is already registered\"),\r\n 5000);\r\n } \r\n self.setState({ showModal: false, isRegistering: false, errorMessage: \"\", responseObj: responseObj });\r\n })\r\n .catch(function (data) {\r\n var msg = \"An error has occured creating your account\";\r\n if(data && data.ErrorMessage && data.ErrorMessage !== \"\"){\r\n msg = data.ErrorMessage;\r\n }\r\n else if(data && data.length > 0 && data[0].ErrorMessage && data[0].ErrorMessage !== \"\"){\r\n msg = data[0].ErrorMessage;\r\n }\r\n self.props.showNotification(\"error\", \"\",\r\n msg.replace(\"Client is already added by you\",\"This email is already registered\"),\r\n 5000);\r\n self.setState({ showRegisterModal : false, isRegistering: false, errorMessage: \"\" });\r\n });\r\n }\r\n\r\n loginUser = () => {\r\n console.log('loginUser');\r\n //clearInterval(this.redirectTimer);\r\n const { responseObj } = this.state;\r\n const { sessionActions } = this.props;\r\n if(sessionActions && responseObj) {\r\n this.setState({isProfileFetched: false, isListingsFetched: false});\r\n sessionActions.manualLogin(responseObj);\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { title, firstname, lastname, email, phone, isRegistering, errorMessage } = this.state;\r\n\r\n return (\r\n \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Register

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {errorMessage && errorMessage !== \"\" &&
    {errorMessage}
    }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {isRegistering ?\r\n (
    ) :\r\n (
    )\r\n }\r\n
    Already have an account? Sign in
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n purlPrefix: state.session.purlPrefix || { url: ''},\r\n session: state.session,\r\n audience: state.session.audience,\r\n profile: state.profile.mine,\r\n isFetchingProfile: state.profile.isFetching,\r\n isAnonymous: state.session.isAnonymous\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sessionActions: bindActionCreators(sessionActions, dispatch),\r\n profileActions: bindActionCreators(profileActions, dispatch),\r\n settingActions: bindActionCreators(settingActions, dispatch),\r\n listingActions: bindActionCreators(listingActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(RegisterPage);","import React from 'react';\r\n\r\nclass Loader extends React.Component{\r\n render(){\r\n let styleOptions = {\r\n width: this.props.width ? this.props.width + \"px\" : \"30px\",\r\n height: this.props.height ? this.props.height + \"px\" : \"30px\"\r\n };\r\n let msg = this.props.message ? (
    {this.props.message}
    ) : \"\";\r\n let cls = this.props.message ? \"col-sm-12 loader-container\" : \"col-sm-12 loader-container\";\r\n\r\n let loaderHtml = this.props.inline ?\r\n (\r\n
    \r\n
    ) :\r\n (
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {msg}\r\n
    \r\n
    \r\n
    )\r\n\r\n return({loaderHtml});\r\n }\r\n}\r\n\r\nexport default Loader;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB2lBMVEUAAAAFCRILER45WJU6WZg7WZg7WZg6WZg5WZgMER4HChIJDRgnPXI5V5c6WJgsQnIJDhgHCRIrPXE6WJc6WJcrQnIMER46Vpc7WZg6WZgMO3A4V5g7WZg6WJc6WZg7WZg7WZg7WZg7WJc7WJc7WZg7WZg7WZg7WZc6WZc7WZg6WZgkOWEXJD0XJDwXIzwYIzwXIz0XIzwmOWE6WZg7WJgvSH4LEh4EBwwXIz07WZg6WJcwR3w7WZgsQ3MHCxI7WZcXIzwXIz07WZg5WJYWIjsIDRcqRHUtRnotR3kuR3kzTYU7WZgxUIQOGykJDRg7WJc7WZgjNVsuQ3k7WZgjNVsvRnktRXgjNVs7WZgvRnk5V5g4Vpc4V5Y6V5YgNFkoPnI6V5c4V5Y6WJcvSH4LER4LER4GChEHCxYMER4UHzQ6V5MuR3kMER46V5cLER46WJcLEh46WZctRXkMEh46WJc6WJc5WJc5V5UjM1oqRG84Vpc6WJc7WZguRXktRng7WZg6WZc6WZg6WZc6WZc6WJcMEh47WZg7WJgvQHwHCxIrQ3M6WJg7WJgsQ3IHCxIrQnE6WJc7WJgtQnQJDhgjQHs7WJc7WJg7WZg6WJg7WJgrSHwHChI7WZj///9v2QZ/AAAAnHRSTlMAAhl40/v934seBQU9rb9QCgI7xNdSF6j+xiNo+YfE8tzNyMnU4/rY9PCmZUM0LzA0O2n46lQVBDbP3UH0eQrNNDXOpxIEIjxER233gwIElvV3IPN0OTt18TuWenp2OBx7e6g3BwgEAggJZTUJfw+TF6swHsF8WlcqFVty5Ts6+PrO33eXHLnWLgRM1eVkCFLI2GcQJpXf/OilNAk7+3cCAAAAAWJLR0SdBrvysQAAAAd0SU1FB+MGDAwIAS9Wym4AAAFTSURBVDjL3dHVUgMxFIDhgwUoVrx4i7s7C8WtuMviXdyluLu752HZDQMMTNPkmv8qJ/PNuUgAwMraxtYOU0P2Do4qkHNydrHASK5uagB3D0+Ww8jLWwU+vkyHscbPHwICMU9BEEzdEqLVhYbpwiMilSkKoikuJjYuPiExKTklVauMaUBx6RmZWUDKziEXFJibB19ZhEJ+AR/UF347KCqmQ01JKTFl5RWVVdVaOjTU1Cqurr7h584sFBrJwiYDZsDmFgJbMSdsY8N2DojkOj43diISBXZ1i2JPL4F9/aIoDgwazMMhoyQZhwkcGZUkaWxcMA8n4HeTU4gPTs9gPjg7R4Hzf+DCIgUumUym5RViVtfk8/oG+8E3eX9mi/ev/zHc5oM7sMsH92AfccEDODxCHPD4BE7PzhETXlxeAaivb1jw9u5emVUPj0/PdIheXt/eAT4AIMDy4gjIQ1QAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMDYtMTJUMTI6MDc6NTgrMDA6MDAtSPd7AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTA2LTEyVDEyOjA3OjU4KzAwOjAwXBVPxwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUI5Mzg0OEI4RDBDMTFFOUJBQUI4NDk0QjZEQkM3MjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUI5Mzg0OEM4RDBDMTFFOUJBQUI4NDk0QjZEQkM3MjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQjkzODQ4OThEMEMxMUU5QkFBQjg0OTRCNkRCQzcyMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQjkzODQ4QThEMEMxMUU5QkFBQjg0OTRCNkRCQzcyMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpJixb0AAAc8SURBVHjazFh5iF1X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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAbCAYAAACeL3bkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkNBQjUxMjNFNDVGMTFFOUE3NTA5RDkyN0IwNzk4QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkNBQjUxMjRFNDVGMTFFOUE3NTA5RDkyN0IwNzk4QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQ0FCNTEyMUU0NUYxMUU5QTc1MDlEOTI3QjA3OThCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQ0FCNTEyMkU0NUYxMUU5QTc1MDlEOTI3QjA3OThCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgdGvmAAABpOSURBVHja7FsHlF3F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\"","module.exports = __webpack_public_path__ + \"static/media/linkedin.bc81dcef.png\";","module.exports = __webpack_public_path__ + \"static/media/youtube.5933151c.png\";","module.exports = __webpack_public_path__ + \"static/media/facebook.bd38a82f.svg\";","module.exports = __webpack_public_path__ + \"static/media/linkedin.583b8562.svg\";","module.exports = __webpack_public_path__ + \"static/media/twitter.40478183.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAArNJREFUeNq8lj1MIlEQx/+smPDRKD14NhQWBEqixrOByuRCYqNBvARrKTEUx0csoCGW0HAJ2hGw1UZNINgZQ20kQi8mioWYvTcvi7dyC/vg1Ekmu9n38Xsz82ZmAR2RZfkb0wjTM6b38r9C3ypMt5nOYFJRQAV5PCF4fGywctp7eXK5ZfpdFFaQP062vxI2Gqq48bPE3ecYFBgF+Zbpu2A/PDwgn8+jWq2i1+uN9M7U1BSWlpaws7OD2dnZweGmwWCYVwML7LE9CKPFZrMZgUAADodjJLDVaqFcLqPb7SKXy2lBfzLob26dlg8ymYy8tbUlPz4+6vrr+flZvr6+5nNDoZCcTqc1by5RpUHL+kJuJMusVqvuzSbL9vb2cHNzg/X1db5WQyiv3Ub2sqI1SjEbdGO73cbR0RHfkC3mMdvc3MTa2hofdzqdYG7D6+vrsLP9IAuFEpRgkUgET09PiEaj3CLmSuzu7qLT6WBjYwMmk0lvmxVp8GYOk8PDQywsLCAej2NxcZErvbtcLhSLRdEiNiOJzqzVavD7/ZCkv0vIfT6fj48Jilsao75qflcfQESEZ9MFOT09fQem95OTE3i9XtFtzgnYFJlJl6LRaCCRSKBer+Py8hLJZBIs/xAMBkWBHQKei8ykFDk4OMD09DT29/eRSqV4Octms5ibmxMFXlAeXmglv9FoxN3dHTwez9s3u92OWCw2ckdaQwcZIscSr2/MVK2YVSoVnneiQnNLpRKWl5c148dYzX7xjrPHL63ibbFYeLnSK95kGcEIOqR4rzLgubo9XVG902pPlGcvLy9C7SkcDsNms2lZt/rWnhSoW4F+tFC45hmw8xVd/17d7T/rj00cpnYv06v/gFUm+ilWrL0dA3Sm9z9qELWYmqeqWfdvc1O5FFQ8jinP9Pb6I8AAy6gVapcCOy8AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/youtubeC.1329c986.png\";","import React, { Component } from 'react';\r\nimport { ToggleButton, ToggleButtonGroup } from 'react-bootstrap';\r\nimport { Helmet } from \"react-helmet\";\r\nimport profilephoto from '../img/default-photo.png';\r\nimport DocumentTitle from 'react-document-title';\r\nimport { PageTitle } from '../components/util';\r\nimport Loader from '../components/loader';\r\n//import AgentListImage from '../img/agent_list.jpg';\r\nimport 'css/Agent_office.css';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { GetMetaTagsProperties, GetSectionCustomizationOptions } from '../components/util';\r\nimport * as agentActions from 'actions/agents';\r\n\r\n//const SiteCustomizationOptions = GetSiteCustomizationOptions();\r\nconst AdminCustomizationOptions = GetSectionCustomizationOptions(\"AdminOptions\");\r\nconst AgentOfficePageCustomizationOptions = GetSectionCustomizationOptions(\"AgentOfficePageOptions\");\r\nconst ProfilePageCustomizationOptions = GetSectionCustomizationOptions(\"ProfilePageOptions\");\r\nconst CommonCustomizationOptions = GetSectionCustomizationOptions(\"CommonOptions\");\r\nconst MetaTagsProperties = GetMetaTagsProperties();\r\n\r\nclass AgentOfficePage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n title: 'Agent/Office Search',\r\n selected: 1,\r\n firstName: '',\r\n lastName: '',\r\n city: '',\r\n zip: '',\r\n results: [],\r\n resultsPage: [],\r\n officeAgents: [],\r\n fetchingResult: false,\r\n message: ''\r\n };\r\n //this.sizePerPage = 27;\r\n this.sizePerPage = (AdminCustomizationOptions && AdminCustomizationOptions.FeaturedAgentsSlotsInManage) ? parseInt(AdminCustomizationOptions.FeaturedAgentsSlotsInManage,10) : 25;\r\n }\r\n\r\n componentDidMount(){\r\n\r\n window.scrollTo(0, 0);\r\n \r\n if (!this.props.showHeader) {\r\n this.props.onShowHideHeader(true);\r\n }\r\n if (!this.props.showFooter) {\r\n this.props.onShowHideFooter(true);\r\n }\r\n\r\n if(AgentOfficePageCustomizationOptions && AgentOfficePageCustomizationOptions.ShowFeaturedAgents){\r\n /* if(CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers && this.props.agentActions){\r\n this.props.agentActions.fetchTeamAgents();\r\n }\r\n else {\r\n this.props.agentActions.fetchFeaturedAgents();\r\n } */\r\n this.props.agentActions.fetchFeaturedAgents();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if(AgentOfficePageCustomizationOptions && AgentOfficePageCustomizationOptions.ShowFeaturedAgents){\r\n if (nextProps.featuredagents && nextProps.featuredagents.length > 0 && this.state.selected === 1 && this.state.results.length === 0) {\r\n this.setState({ results: nextProps.featuredagents, fetchingResult: false }, () => this.onPageChange(1));\r\n }\r\n }\r\n }\r\n\r\n handleTabChange = (selected) => {\r\n this.setState({ selected: selected, results: [], resultsPage:[], message:'', errorMessage: null })\r\n var elements = document.getElementsByTagName(\"input\");\r\n for (var i = 0; i < elements.length; i++) {\r\n if (elements[i].type === \"text\") {\r\n this.setState({ [elements[i].name]: ''})\r\n }\r\n }\r\n if(AgentOfficePageCustomizationOptions && AgentOfficePageCustomizationOptions.ShowFeaturedAgents && (selected === 1)){\r\n /* if(CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers && this.props.agentActions){\r\n this.props.agentActions.fetchTeamAgents();\r\n }\r\n else {\r\n this.props.agentActions.fetchFeaturedAgents();\r\n } */\r\n this.props.agentActions.fetchFeaturedAgents();\r\n }\r\n }\r\n\r\n handleInputChange = (event) => {\r\n const target = event.target;\r\n const value = target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n onKeyPress = (e, office) => {\r\n if(e.which === 13) {\r\n //this.doSearch(e, office);\r\n this.validateInput(e, office);\r\n }\r\n }\r\n\r\n validateInput = (e, office) => {\r\n var flagContinue = false;\r\n if (office) {\r\n if((this.state.officeName && this.state.officeName.trim() !== \"\") ||\r\n (this.state.officeCity && this.state.officeCity.trim() !== \"\") ||\r\n (this.state.officeZip && this.state.officeZip.trim() !== \"\")){\r\n flagContinue = true;\r\n }\r\n }\r\n else { \r\n if((this.state.firstName && this.state.firstName.trim() !== \"\") ||\r\n (this.state.lastName && this.state.lastName.trim() !== \"\") ||\r\n (this.state.city && this.state.city.trim() !== \"\") ||\r\n (this.state.zip && this.state.zip.trim() !== \"\")){\r\n flagContinue = true;\r\n }\r\n }\r\n if(flagContinue){\r\n this.setState({errorMessage: null},() => {\r\n this.doSearch(e, office);\r\n }); \r\n }\r\n else{\r\n this.setState({errorMessage: 'Please fill out one or more search fields'});\r\n }\r\n }\r\n\r\n doSearch = (event, office, officeId) => {\r\n if (!officeId) { // searching for agent or office\r\n this.setState({ fetchingResult: true, results: [], resultsPage:[], message: '' });\r\n }\r\n else if (officeId && (event.target.className === 'fa fa-arrow-down' || \r\n (event.target.hasChildNodes() && event.target.children[0].className === 'fa fa-arrow-down'))) { // collapsing office agents\r\n this.setState({ officeAgents: []})\r\n return;\r\n }\r\n var that = this;\r\n var requestBody = {MemberFirstName: this.state.firstName ? this.state.firstName.trim() : this.state.firstName,\r\n MemberLastName: this.state.lastName ? this.state.lastName.trim() : this.state.lastName,\r\n MemberAddress1: this.state.street ? this.state.street.trim() : this.state.street,\r\n //MemberPostalCode: this.state.zip,\r\n //MemberCity: this.state.city,\r\n OfficePostalCode: this.state.zip ? this.state.zip.trim() : this.state.zip,\r\n OfficeCity: this.state.city ? this.state.city.trim() : this.state.city,\r\n MemberStateOrProvince: this.state.state ? this.state.state.trim() : this.state.state\r\n }\r\n var url = window.sessionStorage.getItem(\"RootAPI\") + \"agents/agentsearch/\";\r\n if (office) {\r\n requestBody = {OfficeName: this.state.officeName ? this.state.officeName.trim() : this.state.officeName,\r\n OfficeCity: this.state.officeCity ? this.state.officeCity.trim() : this.state.officeCity,\r\n OfficePostalCode: this.state.officeZip ? this.state.officeZip.trim() : this.state.officeZip\r\n } \r\n url = window.sessionStorage.getItem(\"RootAPI\") + \"agents/officesearch/\";\r\n }\r\n else if (officeId){\r\n requestBody = { OfficeId: officeId}\r\n }\r\n\r\n fetch(url,\r\n {\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"APIKey\")\r\n },\r\n method: \"POST\",\r\n body: JSON.stringify(requestBody)\r\n })\r\n .then(response => {\r\n if (response.ok) return response.json()\r\n else throw Error(response.statusText)\r\n })\r\n .then(json => {\r\n if (officeId){\r\n that.setState({ officeAgents: json.Clients });\r\n }\r\n else {\r\n var results = office ? json.Offices: json.Clients;\r\n that.setState({ results: results, fetchingResult: false }, () => this.onPageChange(1));\r\n }\r\n })\r\n .catch(function (data) {\r\n console.log(data);\r\n that.setState({ results: [], errorMessage: 'Search failed', fetchingResult: false});\r\n });\r\n\r\n }\r\n\r\n \r\n\r\n \r\n\r\n onPageChange = (page) => {\r\n var pageStart = (page - 1) * this.sizePerPage;\r\n this.setState({ currentPage:page, resultsPage: this.state.results.slice(pageStart, pageStart + this.sizePerPage)});\r\n }\r\n\r\n buildAgentCard = (agent, index) => {\r\n\r\n var lnk = \"#\";\r\n var lnkTget = \"\";\r\n if(agent.MemberMlsId && agent.MemberMlsId !== \"\"){\r\n lnk = this.props.purlPrefix.url + \"/agentprofile/\" + agent.MemberMlsId;\r\n }\r\n else if(agent.URL && agent.URL !== \"\"){\r\n lnk = agent.URL;\r\n lnkTget = \"_blank\";\r\n }\r\n\r\n var ele = (\r\n
    \r\n {(lnkTget !== \"\") ?\r\n
    \r\n \r\n \"\"\r\n \r\n
    :\r\n
    \r\n \"\"\r\n
    \r\n }\r\n
    \r\n {(agent.MemberFullName !== null && agent.MemberFullName.length > 0) ?\r\n
    \r\n {/* (lnkTget !== \"\") ?\r\n \r\n {toCapitalizedWords(agent.MemberFullName.toLowerCase())}\r\n :\r\n {toCapitalizedWords(agent.MemberFullName.toLowerCase())}\r\n */}\r\n {(lnkTget !== \"\") ?\r\n \r\n {agent.MemberFullName}\r\n :\r\n {agent.MemberFullName}\r\n }\r\n
    \r\n : \r\n
    \r\n {/* toCapitalizedWords(agent.MemberFirstName.toLowerCase() + \" \" + agent.MemberLastName.toLowerCase()) */}\r\n {agent.MemberFirstName + \" \" + agent.MemberLastName}\r\n {/* (lnkTget !== \"\") ?\r\n \r\n {toCapitalizedWords(agent.MemberFirstName.toLowerCase() + \" \" + agent.MemberLastName.toLowerCase())}\r\n :\r\n {toCapitalizedWords(agent.MemberFirstName.toLowerCase() + \" \" + agent.MemberLastName.toLowerCase())}\r\n */}\r\n {(lnkTget !== \"\") ?\r\n \r\n {agent.MemberFirstName + \" \" + agent.MemberLastName}\r\n :\r\n {agent.MemberFirstName + \" \" + agent.MemberLastName}\r\n }\r\n
    \r\n }\r\n {(CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers && agent.Designation && agent.Designation !== \"\") &&\r\n
    \r\n
    {agent.Designation}
    \r\n
    \r\n }\r\n {((!CommonCustomizationOptions || !CommonCustomizationOptions.EnableTeamMembers) && (agent.OfficeFullStreetAddress || agent.OfficeName)) &&\r\n
    \r\n
    \r\n
    \r\n {agent.OfficeFullStreetAddress ? toCapitalizedWords(agent.OfficeFullStreetAddress.toLowerCase()) : \"\"}\r\n {(((!agent.OfficeFullStreetAddress || agent.OfficeFullStreetAddress === \"\") && agent.OfficeName && agent.OfficeName !== \"\") ? toCapitalizedWords(agent.OfficeName.toLowerCase()) : \"\")}\r\n
    \r\n
    \r\n }\r\n
    \r\n {(agent.OfficePhone && agent.OfficePhone !== \"\") && }\r\n {(agent.MemberMobilePhone && agent.MemberMobilePhone !== \"\") && }\r\n
    \r\n {(((agent.URL && agent.URL !== \"\") || (CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers)) && agent.MemberEmail && agent.MemberEmail !== \"\") &&\r\n
    \r\n \r\n Email Agent\r\n
    \r\n }\r\n
    \r\n
    \r\n )\r\n\r\n /* if(lnkTget !== \"\") {\r\n return (\r\n
    \r\n \r\n {ele}\r\n \r\n
    \r\n )\r\n }\r\n else{\r\n return ( \r\n
    \r\n \r\n {ele}\r\n \r\n
    \r\n )\r\n } */ \r\n \r\n return ( \r\n
    \r\n {ele}\r\n
    \r\n )\r\n }\r\n \r\n render() {\r\n const {selected, fetchingResult, message, currentPage, results, resultsPage, officeAgents} = this.state\r\n const pageCount = results.length > 0 ? (selected === 2 ? (results[0].OfficeId ? Math.ceil(results.length / this.sizePerPage) : 0) : Math.ceil(results.length / this.sizePerPage)) : 0;\r\n var pages = [];\r\n var iStart = 1;\r\n var iEnd = pageCount;\r\n if(pageCount > 10){\r\n iStart = currentPage;\r\n if((currentPage + 9) <= pageCount){\r\n iEnd = (currentPage + 9);\r\n }\r\n else{\r\n iStart = (pageCount - 9);\r\n }\r\n }\r\n for (var i = iStart; i <= iEnd; i++) {\r\n let ii = i;\r\n pages.push(
  • this.onPageChange(ii)} className={i === currentPage ? 'active page-item' :'page-item'} \r\n title={i}>{i}
  • )\r\n }\r\n const loader = fetchingResult ?
    : \r\n {message}\r\n\r\n var showSearch = true;\r\n if(AgentOfficePageCustomizationOptions && AgentOfficePageCustomizationOptions.HideSearchOnAgentOfficePage){\r\n showSearch = false;\r\n }\r\n\r\n const ogTitle = (MetaTagsProperties && MetaTagsProperties.realtor && MetaTagsProperties.realtor.title) ? MetaTagsProperties.realtor.title : \"\";\r\n const ogDesc = (MetaTagsProperties && MetaTagsProperties.realtor && MetaTagsProperties.realtor.desc) ? MetaTagsProperties.realtor.desc : \"\";\r\n const ogImage = (MetaTagsProperties && MetaTagsProperties.realtor && MetaTagsProperties.realtor.img) ? MetaTagsProperties.realtor.img : \"\";\r\n const ogUrl = window.location.toString().substr(0);\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {showSearch &&\r\n
    \r\n
    \r\n
    \r\n \r\n Agent\r\n Office\r\n \r\n
    \r\n
    \r\n {selected === 1 &&\r\n
    \r\n {this.state.errorMessage && this.state.errorMessage !== \"\" &&\r\n
    \r\n
    {this.state.errorMessage}
    \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n {selected === 2 &&\r\n
    \r\n {this.state.errorMessage && this.state.errorMessage !== \"\" &&\r\n
    \r\n
    {this.state.errorMessage}
    \r\n
    \r\n }\r\n
    \r\n
    \r\n this.onKeyPress(e, true) } className=\"form-control textbox textbox-large\" name=\"officeName\" placeholder=\"Office Name\" onChange={this.handleInputChange} />\r\n
    \r\n
    \r\n this.onKeyPress(e, true) } className=\"form-control textbox textbox-large\" name=\"officeCity\" placeholder=\"City\" onChange={this.handleInputChange} />\r\n
    \r\n
    \r\n this.onKeyPress(e, true) } className=\"form-control textbox textbox-large\" name=\"officeZip\" placeholder=\"Postal code\" onChange={this.handleInputChange} />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n }\r\n {showSearch ?

    Agent /Office

    :\r\n ((selected === 1 && resultsPage.length > 0) ?

    {AgentOfficePageCustomizationOptions.TitleText || \"Featured Agents\"}

    : null)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {selected === 1 && resultsPage.length > 0 &&\r\n resultsPage.map((result, i) => {\r\n return this.buildAgentCard(result, i)\r\n })\r\n }\r\n {/* selected === 1 && resultsPage.length === 0 &&\r\n
    \r\n \"\"\r\n
    \r\n */}\r\n {selected === 2 && resultsPage.length > 0 &&\r\n
    \r\n {resultsPage.map((result, i) => {\r\n if(result.OfficeId){\r\n return (\r\n
    \r\n
    \r\n {result.OfficeName ? toCapitalizedWords(result.OfficeName.toLowerCase()) : \"\"}\r\n
    \r\n
    \r\n
    {result.OfficeFullAddress ? toCapitalizedWords(result.OfficeFullAddress.toLowerCase()) : \"\"}\r\n \r\n \r\n {result.OfficePhone}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {officeAgents.length > 0 && officeAgents[0].OfficeId === result.OfficeId &&\r\n
    \r\n {officeAgents.map((agent, ix) => {\r\n return this.buildAgentCard(agent, ix)\r\n })}\r\n
    \r\n }\r\n
    \r\n ); \r\n }\r\n else{\r\n return null;\r\n }\r\n \r\n })}\r\n
    \r\n }\r\n {(pageCount === 0 || fetchingResult) &&\r\n
    \r\n {loader}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {pageCount > 0 &&\r\n
      \r\n {this.state.currentPage > 1 &&\r\n
    • this.onPageChange(currentPage - 1)} className=\"page-item\" title=\"\">
    • \r\n }\r\n {pages}\r\n {this.state.currentPage < pageCount &&\r\n
    • this.onPageChange(currentPage + 1)} className=\"page-item\" title=\"\">
    • \r\n }\r\n {/*
    • */}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n purlPrefix: state.session.purlPrefix || { url: ''},\r\n //featuredagents: (CommonCustomizationOptions && CommonCustomizationOptions.EnableTeamMembers) ? (state.session.teamagents || []) : (state.session.featuredagents || []),\r\n featuredagents: state.session.featuredagents || [],\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n agentActions: bindActionCreators(agentActions, dispatch)\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AgentOfficePage);\r\n\r\nexport function getProfilePhoto(profile) {\r\n var result = profilephoto;\r\n if (profile) {\r\n //var profileObj = JSON.parse(JSON.stringify(profile));\r\n var profileObj = profile;\r\n if(ProfilePageCustomizationOptions && ProfilePageCustomizationOptions.AllowAgentToUpdateProfile){\r\n if(profileObj && profileObj.UseMemberPhotoURL) {\r\n if(profileObj.MemberPhotoURL !== undefined &&\r\n profileObj.MemberPhotoURL !== null && profileObj.MemberPhotoURL !== \"\") {\r\n result = profileObj.MemberPhotoURL;\r\n }\r\n }\r\n else{\r\n if (profileObj && profileObj.Profile && JSON.parse(profileObj.Profile).ProfileImageName){\r\n result = JSON.parse(profileObj.Profile).ProfileImageName;\r\n }\r\n }\r\n }\r\n else{\r\n if (profileObj.Profile && JSON.parse(profileObj.Profile).ProfileImageName){\r\n result = JSON.parse(profileObj.Profile).ProfileImageName;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport function toCapitalizedWords(name) {\r\n var words = name.match(/[A-Za-z0-9][a-z0-9]*/g) || [];\r\n return words.map(capitalize).join(\" \");\r\n}\r\n\r\nexport function capitalize(word) {\r\n if (word.length === 2) return word.toUpperCase(); // e.g NJ\r\n return word.charAt(0).toUpperCase() + word.substring(1);\r\n} ","module.exports = __webpack_public_path__ + \"static/media/truebytlc-logo.27afb80a.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"themeName\":\"light\"};","import React, { Component } from \"react\";\r\n\r\nexport default function asyncComponent(importComponent) {\r\n class AsyncComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n component: null\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n const { default: component } = await importComponent();\r\n\r\n this.setState({\r\n component: component\r\n });\r\n }\r\n\r\n render() { \r\n const C = this.state.component;\r\n\r\n return C ? : null;\r\n }\r\n }\r\n\r\n return AsyncComponent;\r\n}"],"sourceRoot":""}