{"version":3,"sources":["images/ic_back.svg","images/ic_big_lock.svg","images/btn_log_out.svg","images/ic_arrow_right_blue.svg","images/btn_login.svg","images/btn_send_instructions.svg","images/btn_continue.svg","images/btn_continue_grey.svg","images/btn_get_code.svg","images/btn_save_password.svg","images/btn_sign up.svg","images/btn_finish.svg","images/btn_define_days.svg","images/btn_join.svg","images/btn_join_mob.svg","images/btn_log_in.svg","images/btn_log_in_mob.svg","images/btn_back.svg","images/ic_google play.svg","images/ic_app store.svg","images/ic_close.svg","images/ic_eye_open_gray.svg","images/ic_big_gauge.svg","images/btn_change_password.svg","images/btn_save_blue.svg","images/btn_save_grey.svg","images/btn_cancel_white.svg","images/btn_confirm.svg","images/ic_water_limit.svg","images/ic_vacation.svg","images/ic_big_tap.svg","images/ic_small_calendar.svg","images/ic_location.svg","images/landing_page_image.png","images/landing_page_top.svg","images/bg_wave.svg","images/bg_wave_mob.svg","images/bg_wave_bottom.svg","images/ic_empowerement.svg","images/ic_flexibility.svg","images/ic_custom service.svg","images/ic_safety.svg","images/ic_clarity.svg","images/ic_context.svg","images/ic_bar_chart.svg","images/ic_bar_chart_selected.svg","images/ic_table_chart.svg","images/ic_table_chart_selected.svg","images/printer.svg","images/excel.svg","images/landing_page_top_mob.svg","images/landing_page_image_mob.svg","images/phone-call.svg","images/placeholder.png","images/about_logo.png","images/btn_see_details.svg","images/ic_alerts.svg","images/index.js","globals.js","common/Header/Header.js","common/Footer/Footer.js","managers/PersistenceManager.js","managers/DataManager.js","errors.js","api.js","scenes/register/Register.js","validators.js","utils.js","scenes/common/TermsOfUse.js","components/AppPopup.js","scenes/login/Login.js","scenes/password/ForgotPassword.js","scenes/register/RegisterAccount.js","scenes/register/RegisterPhone.js","scenes/register/RegisterEnterCode.js","scenes/register/RegisterNotFound.js","scenes/register/RegisterFinish.js","scenes/password/ChangePassword.js","scenes/password/EnterCodePassword.js","scenes/settings/Settings.js","scenes/home/MonthlyLimitPopup.js","components/CalendarRangePicker.js","scenes/home/DefineVacationPopup.js","components/Tabs.js","components/MeterChart.js","components/MeterSelection.js","scenes/home/Home.js","const.js","scenes/settings/SettingsChangePassword.js","scenes/settings/SettingsChangePhone.js","scenes/alerts/Alerts.js","scenes/alerts/AlertInfo.js","scenes/home/LandingPage.js","scenes/common/PrivacyPolicy.js","common/ProtectedRoute.js","scenes/contacts/Contacts.js","scenes/about/About.js","scenes/admin_login/AdminLogin.js","App.js","registerServiceWorker.js","index.js","resources/UserGuide.pdf","resources/FAQ.pdf","images/logo_new.svg"],"names":["module","exports","logo","require","icBack","icBigLock","btnLogOut","icArrowRightBlue","btnLogin","btnSendInstructions","btnContinue","btnContinueGrey","btnGetCode","btnSavePassword","btnSignUp","btnFinishAndLogin","btnDefineDays","btnJoin","btnJoinMob","btnLoginWhite","btnLoginWhiteMob","btnBack","btnGooglePlay","btnAppStore","icClose","icOpenEyeGray","icBigGauge","btnChangePassword","btnSaveBlue","btnSaveGrey","btnCancelWhite","btnConfirm","icWaterLimit","icVacation","icFaucet","icSmallCalendar","icLocation","lpImage","lpTopImage","lpLogo","bgWave","bgWaveMob","bgWaveBottom","icEmpowerment","icFlexibility","icCustomerService","icSafety","icClarity","icContext","icBarChart","icBarChartSelected","icTableChart","icTableChartSelected","icPrinter","icExcel","lpTopImageMob","lpImageMob","icPhoneCall","placeholder","aboutLogo","btnSeeDetails","icAlerts","SKY_BLUE","PALE_SKY_BLUE","CAROLINA_BLUE","BABY_BLUE","BABY_BLUE_2","CLEAR_BLUE","CLEAR_BLUE_2","CLEAR_BLUE_3","DODGER_BLUE","DODGER_BLUE_2","DODGER_BLUE_3","DUSK","WHITE_TWO","WHITE_THREE","AZURE","COOL_GRAY","ICE_BLUE","ICE_BLUE_2","BABY_GREEN","SALMON","SILVER","REALLY_LIGHT_BLUE","VIBRANT_BLUE","BROWNISH_GRAY","BLUSH","GRAPEFRUIT","DEVICE_ID","TOKEN","STANDARD_FORMAT","Header","props","matches","_renderMobile","_renderDesktop","className","Link","to","onClick","additionalFunction","style","justifyContent","src","images","width","height","paddingLeft","margin","padding","display","fontSize","position","top","marginTop","React","Component","Footer","alignItems","marginLeft","flex","color","globals","fontWeight","textAlign","flexDirection","backgroundColor","marginRight","alignSelf","href","e","preventDefault","openTerms","openPrivacy","UserGuidePDF","download","FAQPDF","flexWrap","PersistenceManager","key","value","localStorage","setItem","getItem","removeItem","DataManager","locale","IntlProvider","moment","this","meters","units","user","firstName","lastName","accountNumber","phoneNumber","vacation","muni","showAlertBadge","sessionId","isAuthenticated","clearedAlerts","api","undefined","deleteItem","sharedInstance","token","_getFile","url","authorize","callback","console","log","headers","Accept","fetch","method","then","res","blob","_get","status","text","JSON","parse","catch","err","stringify","_post","params","body","errors","_put","_delete","setTokenValue","tokenValue","confirmAlert","alertLogId","getAlertDetails","alertTypeId","getAlerts","unsetAlert","mediaTypeId","setAlert","getAlertSettings","getMe","login","email","password","deviceId","type","pw","osType","app","getMeterBillingCycleDates","meterCount","getAllHourlyConsumption","fromDate","toDate","getAllDailyConsumption","getAllMonthlyConsumption","fromMonth","toMonth","getAllDailyConsumptionExcel","getMeterHourlyConsumption","getMeterDailyConsumption","getMeterMonthlyConsumption","getMeterMonthlyForecast","getMonthlyLimitAllMeters","getMonthlyLimit","getMeters","getMunicipalCustomerService","searchUtilities","term","Register","goToRegisterAccount","history","push","goToRegisterPhone","onChangeUtilityName","event","target","length","setState","utilities","state","searchTerm","onEnter","bind","paddingRight","onChange","map","item","description","float","required","toString","trim","name","match","validateEmail","AlertType","utils","containsNumbers","test","containsNumbersAndPoint","generateId","S4","Math","random","substring","isEmail","candidate","toVacationDateRange","toVacationDate","startDate","endDate","date","dateString","format","toMonthDate","toAlertDate","getBillingCycleDate","ISO_8601","toHomeDisplayDateString","toDisplayDateString","withTime","toDateFromString","toDateString","toDateStringEndMonth","endOf","toISODateString","getYearsBefore","amount","subtract","getDaysBefore","getMonthsBefore","getMonthsBeforeWithDay","getMonth","getEndOfMonthDate","getMonthBillingCycle","getMonthDigit","getMonthDiff","date1","date2","diff","getHour","getDayNumber","getYear","getMonthName","lastMonthCheck","currentDate","consumptionDate","month","year","getChartRangeDates","add","getChartRangeDatesTable","startOfMonth","endOfMonth","getChartYLabelThousands","label","toLowerCase","toFixed","Number","getDayMonth","day","getDay","getDaysInMonth","Date","result","getDate","setDate","isToday","today","isArrAscendingByConsDate","arr","every","x","i","consDate","getMeterDesc","meter","meterSn","fullAddress","findMeter","find","getLargeIconForAlertType","bigIcon","parseInt","icBigTap","icBigVacations","icBigWaterLimit","getSmallIconForAlertType","icon","TermsOfUse","onClose","disabled","border","AppPopup","message","Login","closePopup","errorMessage","onSubmit","from","location","pathname","uniqueId","isLoading","response","error","storeItem","onLogin","isLoggedIn","isSecurePass","bottom","right","left","opacity","validations","validators","toggleSecurePass","marginBottom","loading","contentStyle","borderRadius","open","lockScroll","detail","ForgotPassword","RegisterAccount","fullName","account","code","closeErrorPopup","RegisterPhone","countryCode","languageCode","phone","RegisterEnterCode","RegisterNotFound","align","goBack","RegisterFinish","closePrivacy","closeTerms","confirmEmail","pass","confirmPass","isCharsValid","isNumCharsValid","isSecure","ChangePassword","isSecureNewPass","isSecureConfirmPass","toggleSecureNewPass","toggleSecureConfirmPass","EnterCodePassword","Settings","openChangePhone","onOpenChangePhone","openChangePass","onOpenChangePass","toggleSwitch","sectionIndex","index","alertSettings","nextProps","nextContext","paddingTop","icons","checked","MonthlyLimitPopup","saveMonthlyLimit","monthlyLimit","isNaN","smsAlert","emailAlert","limit","closePopupSave","forEach","alertSetting","CalendarRangePicker","saveDates","handleDayClick","handleDayMouseEnter","handleResetClick","getInitialState","enteredTo","singleDay","isVacation","isMonthSelection","shouldSelectMonth","startOfMonthSelected","billingCycle","isBeforeFirstDay","DateUtils","isDayBefore","isSelectingFirstDay","startOf","modifiers","start","end","disabledDays","before","after","selectedDays","initialMonth","isValid","numberOfMonths","onDayClick","onDayMouseEnter","en","beforeDate","setHours","DefineVacationPopup","_onChangeLimit","consumptionDailyLimit","closeCalendarPicker","openCalendarPicker","saveVacation","parseFloat","vacationID","newVacationId","currentMeter","tomorrowDate","onChooseDate","closeOnDocumentClick","Statistics","data","reduce","min","val","max","a","v","Legend","entries","MeterChart","updateWindowDimensions","options","responsive","maintainAspectRatio","aspectRatio","window","addEventListener","removeEventListener","innerWidth","innerHeight","timeType","selectedMeter","_renderYearChart","_renderNeighborChart","_renderMonthlyChart","presentationMode","_renderDailyChart","_renderHourlyChart","currentYear","allYearsData","yearsConsumptions","prev2YearData","filter","prevYearData","currentYearData","pivot","floor","j","cons","chartOptions","legend","layout","tooltips","callbacks","tooltipItem","round","yLabel","scales","yAxes","ticks","beginAtZero","labels","includes","fontColor","labelOffset","gridLines","stacked","xAxes","barPercentage","monthsShort","canvas","ctx","getContext","gradient1","createLinearGradient","addColorStop","gradient2","gradient3","datasets","pointColor","pointStrokeColor","pointHighlightFill","pointHighlightStroke","data1","data2","neighborData","avgCons","isEmpty","toUpperCase","gradient","chartData","isInteger","hour","dateTime","Array","chartShape","sum","prev","cur","borderBottomColor","borderBottomWidth","isArray","reverse","meterStatusDesc","slice","endIndex","maxRotation","PureComponent","MeterSelection","maxHeight","overflowY","waterMeters","onMeterSelected","Home","getClassName","forecastUsage","selectedChartTimeTypeIndex","isDefault","isCalendarDateSelected","_getDataForMeter","_getDataForAllMeters","onExcel","FileSaver","onPrint","print","chartTypes","splice","isUpdateThisMonth","openMeterSelection","currentMeterVacation","vacations","document","overflow","onTabSelected","openDefineVacation","closeDefineVacation","newVacation","editedVacationIndex","findIndex","newVacations","sort","b","newVacationDate","oldVacationDate","openMonthlyLimit","closeMonthlyLimit","setTimeout","closeMeterSelection","onChartTypeChange","selectedChartTypeIndex","onChartTimeChange","dailyDefaultStartDate","dailyDefaultEndDate","monthlyConsumptions","dailyConsumptions","hourlyConsumptions","consumptionData","billingCycles","billingCycleStart","billingCycleEnd","yesterday","dailyStartDate","dailyEndDate","monthlyDefaultStartDate","monthlyDefaultEndDate","thisMonthUsage","alert","monthlyConsumptionsForNeighborhood","neighborConsumptions","chartTimeTypes","now","billingCycleText","meterDesc","paddingBottom","handleCancelVacation","alerts","resizeMode","alertTypeName","address","alertTime","onOpenAlert","closeCalendar","clearIcon","maxDetail","calendarIcon","maxDate","minDetail","flexShrink","minDate","ref","el","chartRef","isInitial","res2","estimatedConsumption","clearInterval","alertsTimers","logId","onAlerts","setInterval","unitShortName","updatedVacations","SettingsChangePassword","setScreenOrientation","matchMedia","screenOrientation","currentPassword","newPassword","currentPass","SettingsChangePhone","AdditionalPhoneNumber","Alerts","previousAlerts","currentItem","_renderPreviousAlert","_renderAlertInfo","_confirmAlert","alertItem","AlertInfo","utility","isAlertConfirmed","LandingPage","isLandscape","toggleHeader","zIndex","PrivacyPolicy","ProtectedRoute","component","render","rest","Route","Redirect","Contacts","About","AdminLogin","captchaResponse","username","lc","queryString","search","session_id","sitekey","Desktop2","minWidth","maxWidth","Desktop3","Mobile","MobileLand","orientation","App","handleNetworkChange","online","navigator","onLine","showSignUpButton","show","showHeader","onLogout","initLoading","reset","onHomePressed","currentScreen","onSettingsPressed","onAlertsPressed","closeChangePhone","closeChangePass","shouldShowBack","showRightButton","alertsCount","_onRightButtonPressed","objectFit","alignContent","textDecoration","BrowserRouter","minHeight","_renderLoggedInStripMobile","_renderLoggedOutStripMobile","exact","path","_renderLoggedInStripDesktop","_renderLoggedOutStripDesktop","id","withRouter","isLocalhost","Boolean","hostname","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","Root","ReactDOM","getElementById","URL","process","origin","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"2OAAAA,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,mD,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,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","file":"static/js/main.6c0c5e14.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/ic_back.117c4f18.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_big_lock.1ff0a001.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_log_out.9b08adf4.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_arrow_right_blue.2d084155.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_login.9d1ce5d2.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_send_instructions.1fbac702.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_continue.2e531369.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_continue_grey.8c9096aa.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_get_code.93e950b6.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_save_password.878c26fb.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_sign up.77205b3f.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_finish.4bc95a43.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_define_days.4fdbcdf5.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_join.97927b3a.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_join_mob.36c4c4ac.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_log_in.e2eb34c9.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_log_in_mob.0334cc38.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_back.ce8c479a.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_google play.82c56ec4.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_app store.624731ef.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_close.1e5f3ea4.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_eye_open_gray.b1ae694a.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_big_gauge.d07b58d1.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_change_password.feeaf6ea.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_save_blue.f2670a5f.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_save_grey.3cb10259.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_cancel_white.4cdb01e6.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn_confirm.5905acf8.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_water_limit.1695ad14.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_vacation.af6b323d.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_big_tap.eb5cbbad.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_small_calendar.48f87c61.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_location.b185623c.svg\";","module.exports = __webpack_public_path__ + \"static/media/landing_page_image.3863bcd7.png\";","module.exports = __webpack_public_path__ + \"static/media/landing_page_top.2217f348.svg\";","module.exports = __webpack_public_path__ + \"static/media/bg_wave.ac911515.svg\";","module.exports = __webpack_public_path__ + \"static/media/bg_wave_mob.d9359e06.svg\";","module.exports = __webpack_public_path__ + \"static/media/bg_wave_bottom.500a3c6e.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_empowerement.8598dce6.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_flexibility.c3794558.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_custom service.ba97a8e9.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_safety.46b1657a.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_clarity.981b829e.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_context.7609b8eb.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_bar_chart.71a2d24e.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_bar_chart_selected.276de137.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_table_chart.a6e97a8c.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_table_chart_selected.206684bf.svg\";","module.exports = __webpack_public_path__ + \"static/media/printer.e4f184ec.svg\";","module.exports = __webpack_public_path__ + \"static/media/excel.7129d289.svg\";","module.exports = __webpack_public_path__ + \"static/media/landing_page_top_mob.262ecdbd.svg\";","module.exports = __webpack_public_path__ + \"static/media/landing_page_image_mob.c896c0dc.svg\";","module.exports = __webpack_public_path__ + \"static/media/phone-call.fd93e5d1.svg\";","module.exports = __webpack_public_path__ + \"static/media/placeholder.17514b0a.png\";","module.exports = __webpack_public_path__ + \"static/media/about_logo.91b512fc.png\";","module.exports = __webpack_public_path__ + \"static/media/btn_see_details.a08ce182.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_alerts.5862afed.svg\";","export default {\n logo: require('./logo_new.svg'),\n icBack: require('./ic_back.svg'),\n icBigLock: require('./ic_big_lock.svg'),\n btnLogOut: require('./btn_log_out.svg'),\n icArrowRightBlue: require('./ic_arrow_right_blue.svg'),\n btnLogin: require('./btn_login.svg'),\n btnSendInstructions: require('./btn_send_instructions.svg'),\n btnContinue: require('./btn_continue.svg'),\n btnContinueGrey: require('./btn_continue_grey.svg'),\n btnGetCode: require('./btn_get_code.svg'),\n btnSavePassword: require('./btn_save_password.svg'),\n btnSignUp: require('./btn_sign up.svg'),\n btnFinishAndLogin: require('./btn_finish.svg'),\n btnDefineDays: require('./btn_define_days.svg'),\n btnJoin: require('./btn_join.svg'),\n btnJoinMob: require('./btn_join_mob.svg'),\n btnLoginWhite: require('./btn_log_in.svg'),\n btnLoginWhiteMob: require('./btn_log_in_mob.svg'),\n btnBack: require('./btn_back.svg'),\n btnGooglePlay: require('./ic_google play.svg'),\n btnAppStore: require('./ic_app store.svg'),\n icClose: require('./ic_close.svg'),\n icOpenEyeGray: require('./ic_eye_open_gray.svg'),\n icBigGauge: require('./ic_big_gauge.svg'),\n btnChangePassword: require('./btn_change_password.svg'),\n btnSaveBlue: require('./btn_save_blue.svg'),\n btnSaveGrey: require('./btn_save_grey.svg'),\n btnCancelWhite: require('./btn_cancel_white.svg'),\n btnConfirm: require('./btn_confirm.svg'),\n icWaterLimit: require('./ic_water_limit.svg'),\n icVacation: require('./ic_vacation.svg'),\n icFaucet: require('./ic_big_tap.svg'),\n icSmallCalendar: require('./ic_small_calendar.svg'),\n icLocation: require('./ic_location.svg'),\n lpImage: require('./landing_page_image.png'),\n lpTopImage: require('./landing_page_top.svg'),\n lpLogo: require('./logo_new.svg'),\n bgWave: require('./bg_wave.svg'),\n bgWaveMob: require('./bg_wave_mob.svg'),\n bgWaveBottom: require('./bg_wave_bottom.svg'),\n icEmpowerment: require('./ic_empowerement.svg'),\n icFlexibility: require('./ic_flexibility.svg'),\n icCustomerService: require('./ic_custom service.svg'),\n icSafety: require('./ic_safety.svg'),\n icClarity: require('./ic_clarity.svg'),\n icContext: require('./ic_context.svg'),\n icBarChart: require('./ic_bar_chart.svg'),\n icBarChartSelected: require('./ic_bar_chart_selected.svg'),\n icTableChart: require('./ic_table_chart.svg'),\n icTableChartSelected: require('./ic_table_chart_selected.svg'),\n icPrinter: require('./printer.svg'),\n icExcel: require('./excel.svg'),\n lpTopImageMob: require('./landing_page_top_mob.svg'),\n lpImageMob: require('./landing_page_image_mob.svg'),\n icPhoneCall: require('./phone-call.svg'),\n placeholder: require('./placeholder.png'),\n aboutLogo: require('./about_logo.png'),\n btnSeeDetails: require('./btn_see_details.svg'),\n icAlerts: require('./ic_alerts.svg'),\n};\n","import React from \"react\";\n\nexport default {\n // BASE_URL: 'https://test-api.harmonyencoremdm.com',\n // BASE_URL: 'https://api.harmonyencoremdm.com',\n // BASE_URL: 'https://customerportal-test-api.harmonyencoremdm.com',\n BASE_URL: 'https://customerportal-api.harmonyencoremdm.com',\n\n\n // BASE_URL: 'https://staging-api.harmonyencoremdm.com',\n IOS_LINK: 'https://apps.apple.com/il/app/my-water-advisor-2-0/id1483040979',\n ANDROID_LINK: 'https://play.google.com/store/apps/details?id=com.globalbit.mwa&hl=en',\n COLOR: {\n SKY_BLUE: '#66c0ff',\n PALE_SKY_BLUE: '#c2e8ff',\n CAROLINA_BLUE: '#8abeff',\n BABY_BLUE: '#a6deff',\n BABY_BLUE_2: '#b0cdff',\n CLEAR_BLUE: '#2b8fff',\n CLEAR_BLUE_2: '#2d7bfb',\n CLEAR_BLUE_3: '#2b74fa',\n DODGER_BLUE: '#3eb3f9',\n DODGER_BLUE_2: '#3eb2fa',\n DODGER_BLUE_3: '#5781ff',\n DUSK: '#46557a',\n WHITE_TWO: '#fafafa',\n WHITE_THREE: '#d9d9d9',\n AZURE: '#27aeff',\n COOL_GRAY: '#999ea8',\n ICE_BLUE: '#eaf4ff',\n ICE_BLUE_2: '#f7faff',\n BABY_GREEN: '#81fc95',\n SALMON: '#ff7a7a',\n SILVER: '#d0d5d9',\n REALLY_LIGHT_BLUE: '#d4efff',\n VIBRANT_BLUE: '#003fff',\n BROWNISH_GRAY: '#726e6e',\n BLUSH: '#fff1f1',\n GRAPEFRUIT: '#ff4f4f'\n },\n STORAGE: {\n DEVICE_ID: \"DEVICE_ID\",\n TOKEN: \"TOKEN\"\n },\n METER_DEFAULT_ADDRESS: '-',\n DATE: {\n STANDARD_FORMAT: \"YYYY-MM-DDTHH:mm:ss.SSSZ\"\n },\n MOBILE_WIDTH: 767,\n RECAPTCHA_SECRET: '6LdsMHoUAAAAAHkjJYCrUvaD5g-kD-xFPcIJgKkd',\n RECAPTCHA_SITE_KEY: '6Lfs5bwZAAAAAEz9WxZCLyxITDG322nhWi-ANOrm',\n APP_ID: '3a869241-d476-40f6-a923-d789d63db11d'\n}\n","import React from 'react';\nimport './Header.css';\nimport images from \"../../images\";\nimport globals from \"../../globals\";\nimport {Mobile} from \"../../App\";\nimport {Link} from \"react-router-dom\";\n\nexport default class Header extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n );\n }\n\n _renderDesktop() {\n return (\n
\n this.props.additionalFunction && this.props.additionalFunction()}\n >\n
\n \n
\n \n
\n
My Water Advisor
®
\n
Online\n access to Your World of Water™
\n
\n
\n );\n }\n\n _renderMobile() {\n return (\n
\n
\n \n
\n
\n
My Water Advisor
®
\n
Online\n access to Your World of Water™
\n
\n
\n );\n }\n}\n","import React from 'react';\nimport './Footer.css';\nimport images from '../../images';\nimport globals from '../../globals';\nimport MediaQuery from 'react-responsive';\nimport { Desktop, Mobile } from '../../App';\nimport { Link } from 'react-router-dom';\nimport UserGuidePDF from '../../resources/UserGuide.pdf';\nimport FAQPDF from '../../resources/FAQ.pdf';\n\nexport default class Footer extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n );\n }\n\n _renderDesktop() {\n return (\n
\n \n \n All rights reserves ©2018 My Water Advisor\n \n
\n \n \n About us\n \n \n {\n e.preventDefault();\n this.props.openTerms();\n }}\n >\n Terms of use\n \n \n {\n e.preventDefault();\n this.props.openPrivacy();\n }}\n >\n Privacy policy\n \n \n \n Contact\n \n \n \n User Guide\n \n \n \n FAQ\n \n \n \n \n
My Water Advisor
\n
 ®
\n \n \n );\n }\n\n _renderMobile() {\n return (\n
\n \n \n
\n My Water Advisor\n
\n
 ®
\n
\n \n \n About us\n \n \n {\n e.preventDefault();\n this.props.openTerms();\n }}\n >\n Terms of use\n \n \n {\n e.preventDefault();\n this.props.openPrivacy();\n }}\n >\n Privacy policy\n \n \n \n Contact\n \n \n \n User Guide\n \n \n \n FAQ\n \n \n
\n \n All rights reserves ©2018 My Water Advisor\n \n
\n \n );\n }\n}\n","export default class PersistenceManager {\n static storeItem(key, value) {\n localStorage.setItem(key, value);\n }\n\n static getItem(key) {\n return localStorage.getItem(key);\n }\n\n static deleteItem(key) {\n localStorage.removeItem(key)\n }\n}","/*\n * genady.mironenko@aradtec.com / 1qazxsw2\n * */\n\nimport moment from 'moment';\nimport { IntlProvider } from 'react-intl';\nimport * as api from '../api';\nimport PersistenceManager from './PersistenceManager';\nimport globals from '../globals';\n\nexport default class DataManager {\n static sharedInstance =\n this.sharedInstance == null ? new DataManager() : this.sharedInstance;\n\n constructor() {\n const locale = IntlProvider.locale;\n moment.locale(locale);\n\n this.meters = [];\n this.units = 'gallons';\n this.user = { firstName: '', lastName: '', accountNumber: '', phoneNumber: '' };\n this.vacation = null;\n this.muni = null;\n this.showAlertBadge = false;\n this.sessionId = '';\n this.isAuthenticated = false;\n this.clearedAlerts = [];\n }\n\n reset() {\n api.setTokenValue(undefined);\n\n PersistenceManager.deleteItem(globals.STORAGE.TOKEN);\n\n this.meters = [];\n this.units = 'gallons';\n this.user = { firstName: '', lastName: '', accountNumber: '' };\n this.vacation = null;\n this.muni = null;\n this.showAlertBadge = false;\n this.sessionId = '';\n this.isAuthenticated = false;\n }\n}\n","export default {\n 1: \"GeneralError\",\n\n //data errors between 5000 to 5500\n 5000: \"InvalidModel\",\n 5010: \"InvalidPasswordConfirmation\",\n 5060: \"InvalidCredentials\",\n 5020: \"InvalidLanguageCode\",\n 5030: \"WrondDatesRange\",\n 5040: \"InvalidMeterCount\",\n 5050: \"InvalidEmail\",\n 5070: \"InvalidResetToken\",\n\n //////////////////////////////////////\n 5450: \"DataCollectorRegistrationError\",\n 5451: \"DataCollectorAuthenicationError\",\n 5452: \"DataCollectorLogError\",\n\n //user account errors between 10000 and 10500\n 10000: \"LoginError\",\n 10002: \"UserDoesNotExistsInCache\",\n 10010: \"ParsingPhoneNumberError\",\n 10020: \"InvalidPhoneNumber\",\n 10030: \"ConsumerNotFound\",\n 10040: \"ConsumerRegistered\",\n 10050: \"ConsumerMunicipalDoesNotExists\",\n 10060: \"ConsumerMetersNotFound\",\n 10070: \"ConsumerRegistrationDetailsNotFoundInRedis\",\n 10080: \"EmailInUseAlready\",\n 10090: \"CannotCreateUser\",\n 10100: \"WrongRegistrationCode\",\n 10110: \"UnspportedClientType\",\n 10120: \"PasswordNotMeetMinimalRequirements\",\n 10130: \"UserNotRegistered\",\n 10140: \"UnsupportedPhoneNumberType\",\n 10150: \"CannotFindUserWithProvidedEmail\",\n 10160: \"NoDataAvailable\",\n 10170: \"CantRetrieveAccountNumber\",\n 10180: \"PasswordExpired\",\n 10190: \"ResetPasswordTokenExpired\",\n 10200: \"UnableToResetPassword\",\n 10210: \"PasswordIsEqualToOneOfPrevious\",\n 10220: \"InactiveUser\",\n 10230: \"RegistrationCodeWasNotValidated\",\n 10240: \"AccountBlocked\",\n /////////////////////////////////////////////\n\n 10404: \"DataNotFound\",\n\n ////////////////////////////////////////////\n\n 401: \"UnauthorizedRequest\",\n\n 500: \"InternalServerError\"\n}","import globals from './globals';\nimport DataManager from \"./managers/DataManager\";\nimport errors from \"./errors\";\n\nexport let token = undefined;\n\nconst _getFile = (url, authorize, callback) => {\n console.log('token', token);\n\n const headers = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n };\n\n if (authorize) headers['x-access-token'] = token;\n\n fetch(url, {\n method: 'GET',\n headers: headers\n })\n // .then(async res => {\n // let text = (await res.text()).toString();\n // text = text.replaceAll(',0', ', ');\n // console.log('res', text);\n\n // const csvFile = new Blob([text], {type: 'text/csv'});\n // return csvFile;\n // })\n .then(res => res.blob())\n .then(blob => callback(blob, null));\n};\n\nconst _get = (url, authorize, callback) => {\n let headers = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n };\n\n if (authorize) headers['x-access-token'] = token;\n\n fetch(url, {\n method: 'GET',\n headers: headers\n })\n .then(res => {\n const statusCode = res.status;\n if (statusCode === 401) {\n DataManager.sharedInstance.isAuthenticated = false;\n }\n //return res.json();\n return res.text().then(function (text) {\n return text ? JSON.parse(text) : {}\n }).catch(err => {\n return err;\n });\n })\n .then((res, err) => {\n console.log(\n url +\n ' ' +\n 'response: ' +\n JSON.stringify(res) +\n '\\nerror: ' +\n err\n );\n\n // if (res.error) {\n // const errorCode = res.code;\n // res.error = errors[errorCode];\n // }\n\n callback(res, err);\n }).catch(err => {\n if (callback)\n callback(null, err);\n\n });\n};\n\nconst _post = (url, params, authorize, callback) => {\n let headers = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n };\n\n if (authorize) {\n headers['x-access-token'] = token;\n } else {\n headers['x-app-id'] = globals.APP_ID;\n }\n\n fetch(url, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify(params)\n })\n .then(res => {\n const statusCode = res.status;\n if (statusCode === 401) {\n DataManager.sharedInstance.isAuthenticated = false;\n }\n\n //return res.json()\n return res.text().then(function (text) {\n return text ? JSON.parse(text) : {}\n }).catch(err => {\n return err;\n });\n })\n .then((res, err) => {\n console.log(\n url +\n ' ' +\n 'response: ' +\n JSON.stringify(res) +\n '\\nerror: ' +\n err\n );\n\n // if (res.error) {\n // const errorCode = res.code;\n // res.error = errors[errorCode];\n // }\n\n if (typeof res?.errors !== 'undefined') {\n err = 'Unknown error has occurred.';\n }\n\n callback(res, err);\n }).catch(err => {\n if (callback)\n callback(null, err);\n });\n};\n\nconst _put = (url, params, authorize, callback) => {\n const headers = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n };\n\n if (authorize) headers['x-access-token'] = token;\n\n fetch(url, {\n method: 'PUT',\n headers: headers,\n body: JSON.stringify(params)\n })\n .then(res => {\n const statusCode = res.status;\n if (statusCode === 401) {\n DataManager.sharedInstance.isAuthenticated = false;\n }\n\n return res.text().then(function (text) {\n return text ? JSON.parse(text) : {}\n }).catch(err => {\n return err;\n });\n })\n .then((res, err) => {\n console.log(\n url +\n ' ' +\n 'response: ' +\n JSON.stringify(res) +\n '\\nerror: ' +\n err\n );\n\n // if (res.error) {\n // const errorCode = res.code;\n // res.error = errors[errorCode];\n // }\n\n callback(res, err);\n })\n .catch(err => {\n if (callback)\n callback(null, err);\n });\n};\n\nconst _delete = (url, params, authorize, callback) => {\n let headers = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n };\n\n if (authorize) headers['x-access-token'] = token;\n\n fetch(url, {\n method: 'DELETE',\n headers: headers,\n body: JSON.stringify(params)\n })\n .then(res => {\n const statusCode = res.status;\n if (statusCode === 401) {\n DataManager.sharedInstance.isAuthenticated = false;\n }\n\n return res.text().then(function (text) {\n return text ? JSON.parse(text) : {}\n }).catch(err => {\n return err;\n });\n })\n .then((res, err) => {\n console.log(\n url +\n ' ' +\n 'response: ' +\n JSON.stringify(res) +\n '\\nerror: ' +\n err\n );\n\n // if (res.error) {\n // const errorCode = res.code;\n // res.error = errors[errorCode];\n // }\n\n callback(res, err);\n })\n .catch(err => {\n if (callback) callback(null, err);\n });\n};\n\nexport const setTokenValue = tokenValue => {\n token = tokenValue;\n};\n\n//Push\nexport const sendDeviceToken = (deviceId, token, callback) => {\n let url = `${\n globals.BASE_URL\n }/communication/mobiledevices/pushprovidertoken`;\n console.log(url);\n\n const params = {\n deviceId: deviceId,\n pushProviderToken: token,\n pushProviderId: 1\n };\n\n _post(url, params, true, callback);\n};\n\n//Vacations\nexport const deleteVacation = (vacationID, callback) => {\n let url = `${globals.BASE_URL}/consumer/vacations/${vacationID}`;\n console.log(url);\n\n _delete(url, {}, true, callback);\n};\n\nexport const editVacation = (\n vacationID,\n startDate,\n endDate,\n consumptionDailyLimit,\n meterCount,\n callback\n) => {\n let url = `${globals.BASE_URL}/consumer/vacations/`;\n console.log(url);\n\n const params = {\n vacationID: vacationID,\n startDate: startDate,\n endDate: endDate,\n consumptionDailyLimit: consumptionDailyLimit,\n meterCount: meterCount\n };\n\n _put(url, params, true, callback);\n};\n\nexport const addVacation = (\n startDate,\n endDate,\n consumptionDailyLimit,\n meterCount,\n callback\n) => {\n let url = `${globals.BASE_URL}/consumer/vacations/`;\n console.log(url);\n\n const params = {\n vacationID: 0,\n startDate: startDate,\n endDate: endDate,\n consumptionDailyLimit: consumptionDailyLimit,\n meterCount: meterCount\n };\n\n _post(url, params, true, callback);\n};\n\nexport const getVacations = callback => {\n let url = `${globals.BASE_URL}/consumer/vacations/`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\n//Alerts\nexport const confirmAlert = (alertLogId, callback) => {\n let url = `${globals.BASE_URL}/consumer/myalerts/confirm/${alertLogId}`;\n console.log(url);\n\n _post(url, {}, true, callback);\n};\n\nexport const getAlertDetails = (alertTypeId, alertLogId, callback) => {\n let url = `${\n globals.BASE_URL\n }/consumer/myalerts/${alertLogId}/${alertTypeId}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getAlerts = callback => {\n let url = `${globals.BASE_URL}/consumer/myalerts`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\n//Alerts settings\nexport const unsetAlert = (alertTypeId, mediaTypeId, callback) => {\n let url = `${globals.BASE_URL}/consumer/myalerts/settings/${alertTypeId}`;\n console.log(url);\n\n const params = [mediaTypeId];\n\n _delete(url, params, true, callback);\n};\n\nexport const setAlert = (alertTypeId, mediaTypeId, callback) => {\n let url = `${globals.BASE_URL}/consumer/myalerts/settings/${alertTypeId}`;\n console.log(url);\n\n const params = [mediaTypeId];\n\n _put(url, params, true, callback);\n};\n\nexport const getAlertSettings = callback => {\n let url = `${globals.BASE_URL}/consumer/myalerts/settings`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getMe = callback => {\n let url = `${globals.BASE_URL}/consumer/me`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const adminLogin = (email, password, captchaResponse, callback) => {\n let url = `${globals.BASE_URL}/account/login`;\n console.log(url);\n\n const params = {\n username: email,\n password,\n lc: 'en-US',\n captchaResponse\n };\n\n _post(url, params, false, callback);\n};\n\nexport const login = (email, password, deviceId, callback) => {\n let url = `${globals.BASE_URL}/consumer/login`;\n console.log(url);\n\n const params = {\n email: email,\n type: 1,\n pw: password,\n deviceId: deviceId,\n osType: 3,\n app: \"3a869241-d476-40f6-a923-d789d63db11d\",\n\n };\n\n console.log('login params', params);\n\n _post(url, params, false, callback);\n};\n\nexport const getAvgHouseHoldsConsumption = (fromDate, toDate, callback) => {\n let url = `${\n globals.BASE_URL\n }/consumption/avghouseholds/${fromDate}/${toDate}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\n// /v1/meters/billing-cycles\nexport const getAllMetersBillingCycleDates = (callback) => {\n let url = `${globals.BASE_URL}/v1.1/meters/billing-cycles`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getMeterBillingCycleDates = (meterCount, callback) => {\n let url = `${globals.BASE_URL}/meters/${meterCount}/billing-cycles?cycles=current,previous`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getAllHourlyConsumption = (fromDate, toDate, callback) => {\n let url = `${globals.BASE_URL}/consumption/hourly/${fromDate}/${toDate}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getAllDailyConsumption = (fromDate, toDate, callback) => {\n let url = `${globals.BASE_URL}/consumption/daily/${fromDate}/${toDate}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getAllDailyConsumptionBasedOnBillingCycle = (callback) => {\n let url = `${globals.BASE_URL}/consumption/daily/lastbillingcycle`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getAllMonthlyConsumption = (fromMonth, toMonth, callback) => {\n let url = `${globals.BASE_URL}/v1.1/consumption/monthly/${fromMonth}/${toMonth}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getAllHourlyConsumptionExcel = (meterCount, fromDate, toDate, callback) => {\n let url = `${\n globals.BASE_URL\n }/consumption/hourlyExcel/${meterCount !== null ? meterCount + '/' : ''}${fromDate}/${toDate}`;\n console.log(url);\n\n _getFile(url, true, callback);\n};\n\nexport const getAllDailyConsumptionExcelBasedOnBillingCycle = (meterCount, callback) => {\n let url = `${\n globals.BASE_URL\n }/consumption/dailyExcel/${meterCount !== null ? meterCount + '/' : ''}lastbillingcycle`;\n console.log(url);\n\n _getFile(url, true, callback);\n};\n\nexport const getAllDailyConsumptionExcel = (meterCount, fromDate, toDate, callback) => {\n let url = `${\n globals.BASE_URL\n }/consumption/dailyExcel/${meterCount !== null ? meterCount + '/' : ''}${fromDate}/${toDate}`;\n console.log(url);\n\n _getFile(url, true, callback);\n};\n\nexport const getAllMonthlyConsumptionExcel = (meterCount, fromMonth, toMonth, callback) => {\n let url = `${\n globals.BASE_URL\n }/consumption/monthlyExcel/${meterCount !== null ? meterCount + '/' : ''}${fromMonth}/${toMonth}`;\n console.log(url);\n\n _getFile(url, true, callback);\n};\n\nexport const getAllMonthlyForecast = callback => {\n let url = `${globals.BASE_URL}/v1/consumption/forecast`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getMeterHourlyConsumption = (\n meterCount,\n fromDate,\n toDate,\n callback\n) => {\n let url = `${\n globals.BASE_URL\n }/consumption/hourly/${meterCount}/${fromDate}/${toDate}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getMeterDailyConsumption = (\n meterCount,\n fromDate,\n toDate,\n callback\n) => {\n let url = `${\n globals.BASE_URL\n }/consumption/daily/${meterCount}/${fromDate}/${toDate}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\n\nexport const getMeterDailyConsumptionBasedOnBillingCycle = (\n meterCount,\n callback\n) => {\n let url = `${\n globals.BASE_URL\n }/consumption/daily/lastbillingCycle/${meterCount}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getMeterMonthlyConsumption = (\n meterCount,\n fromMonth,\n toMonth,\n callback\n) => {\n let url = `${\n globals.BASE_URL\n }/v1.1/consumption/monthly/${meterCount}/${fromMonth}/${toMonth}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getMeterMonthlyForecast = (meterCount, callback) => {\n let url = `${globals.BASE_URL}/v1/consumption/forecast/${meterCount}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const setMonthlyLimit = (limit, meterCount, callback) => {\n // settings/monthlylimit/{meterCount}/{limit}\n let url = `${globals.BASE_URL}/v1.1/consumer/settings/monthlylimit/${meterCount}/${limit}`;\n console.log(url);\n\n _post(url, {}, true, callback);\n};\n\nexport const getMonthlyLimitAllMeters = (callback) => {\n let url = `${globals.BASE_URL}/v1.1/consumer/settings/monthlylimit`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getMonthlyLimit = (meterCount, callback) => {\n // \"settings/monthlylimit/{meterCount}\n let url = `${globals.BASE_URL}/v1.1/consumer/settings/monthlylimit/${meterCount}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const deleteMonthlyLimit = (meterCount, callback) => {\n let url = `${globals.BASE_URL}/v1.1/consumer/settings/monthlylimit/${meterCount}`;\n console.log(url);\n\n _delete(url, {}, true, callback);\n};\n\nexport const getMeasurementUnits = callback => {\n let url = `${globals.BASE_URL}/municipals/h1/measurmentunits`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const getMeters = callback => {\n let url = `${globals.BASE_URL}/consumer/meters`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const finishRecovery = (code, password, callback) => {\n let url = `${globals.BASE_URL}/consumer/password/recovery/finish`;\n console.log(url);\n\n const params = {\n code: code,\n password: password\n };\n\n _post(url, params, false, callback);\n};\n\nexport const validateRecoveryCode = (code, callback) => {\n let url = `${globals.BASE_URL}/consumer/password/recovery/codevalidation`;\n console.log(url);\n\n const params = {\n code: code\n };\n\n _post(url, params, false, callback);\n};\n\nexport const recoverPassword = (email, callback) => {\n let url = `${globals.BASE_URL}/consumer/password/recovery`;\n console.log(url);\n\n const params = {\n email: email\n };\n\n _post(url, params, false, callback);\n};\n\nexport const getMunicipalCustomerService = callback => {\n let url = `${globals.BASE_URL}/municipals/municipalCustomerService`;\n console.log(url);\n\n _get(url, true, callback);\n};\n\nexport const searchUtilities = (term, callback) => {\n let url = `${globals.BASE_URL}/municipals/h1/search/${term}`;\n console.log(url);\n\n _get(url, false, callback);\n};\n\nexport const logout = callback => {\n let url = `${globals.BASE_URL}/consumer/logout`;\n console.log(url);\n\n _post(url, {}, true, callback);\n};\n\nexport const registerPhone = (\n countryCode,\n phoneNumber,\n languageCode,\n callback\n) => {\n let url = `${globals.BASE_URL}/consumer/register/phone`;\n console.log(url);\n\n const params = {\n countryCode: countryCode, //972\n phoneNumber: phoneNumber, //0544310754\n languageCode: languageCode\n };\n\n _post(url, params, false, callback);\n};\n\nexport const registerAccount = (fullName, accountNumber, callback) => {\n let url = `${globals.BASE_URL}/consumer/register/account`;\n console.log(url);\n\n const params = {\n fullName: fullName,\n accountNumber: accountNumber\n };\n\n _post(url, params, false, callback);\n};\n\nexport const registerFinish = (sessionId, email, password, code, callback) => {\n let url = `${globals.BASE_URL}/consumer/register/finish`;\n console.log(url);\n\n let params = {\n sessionId: sessionId,\n email: email,\n password: password,\n type: 1\n };\n\n if (code) params.code = code;\n\n _post(url, params, false, callback);\n};\n\nexport const validateRegisterCode = (sessionId, code, callback) => {\n let url = `${globals.BASE_URL}/consumer/register/codevalidation`;\n console.log(url);\n\n const params = {\n sessionId: sessionId,\n code: code\n };\n\n _post(url, params, false, callback);\n};\n\nexport const updatePhoneNumber = (\n countryCode,\n phoneNumber,\n languageCode,\n callback\n) => {\n const url = `${globals.BASE_URL}/consumer/phone`;\n console.log(url);\n\n const params = {\n countryCode: countryCode, //972\n phoneNumber: phoneNumber, //0544310754\n languageCode: languageCode\n };\n\n _put(url, params, true, callback);\n};\n\nexport const changePassword = (currentPassword, newPassword, callback) => {\n const url = `${globals.BASE_URL}/consumer/password/change`;\n\n const body = {\n currentPassword,\n newPassword\n };\n\n _put(url, body, true, callback);\n};\n\n//Admin\nexport const getLoginCredentials = (key,callback) => {\n let url = `${globals.BASE_URL}/consumer/login-credentials/${key}`;\n console.log(url);\n\n _get(url, true, callback);\n};\n","import React from 'react';\nimport './Register.css';\nimport images from '../../images';\nimport '../../App.css';\nimport * as api from \"../../api\";\nimport globals from \"../../globals\";\nimport {Desktop, Mobile} from \"../../App\";\n\nexport default class Register extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n searchTerm: '',\n utilities: []\n }\n }\n\n componentWillMount() {\n if (this.props.onEnter)\n this.props.onEnter(false);\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n

Join My Water Advisor

\n
\n \n \n
\n

Need\n help? Call your utility office

\n

Your water utility name can be found\n in the monthly water bill

\n \n \n
\n {this.state.utilities.map(item => {\n return
\n

{item.description}

\n

{item.phoneNumber}

\n
\n })}\n
\n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n

Join My Water Advisor

\n
\n \n \n
\n

Need\n help? Call your utility office

\n

Your water utility name can be found\n in the monthly water bill

\n \n \n
\n {this.state.utilities.map(item => {\n return
\n

{item.description}

\n

{item.phoneNumber}

\n
\n })}\n
\n
\n
\n );\n }\n\n goToRegisterAccount = () => {\n this.props.history.push('/register/account');\n };\n\n goToRegisterPhone = () => {\n this.props.history.push('/register/phone');\n };\n\n onChangeUtilityName = (event) => {\n //this.state.searchTerm = value;\n const term = event.target.value;\n if (term.length >= 2) {\n api.searchUtilities(term, (res, err) => {\n if (!err) {\n this.setState({utilities: res});\n }\n })\n } else if (term.length === 0) {\n this.setState({utilities: []});\n }\n };\n}\n","import validator from \"validator\";\nimport React from 'react';\n\nexport const required = (value, props) => {\n if (!value.toString().trim().length) {\n // We can return string or jsx as the 'error' prop for the validated Component\n return {props.name} is required.\n }\n};\n\nconst validateEmail = (email) => {\n return email.match(\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n );\n };\n\nexport const email = (value) => {\n // if (!validator.isEmail(value)) {\n if (!validateEmail(value)) {\n return {value} is not a valid email.\n }\n};\n\nexport const lt = (value, props) => {\n // get the maxLength from component's props\n if (!value.toString().trim().length > props.maxLength) {\n // Return jsx\n return The value exceeded {props.maxLength} symbols.\n }\n};\n\nexport const password = (value, props, components) => {\n // NOTE: Tricky place. The 'value' argument is always current component's value.\n // So in case we're 'changing' let's say 'password' component - we'll compare it's value with 'confirm' value.\n // But if we're changing 'confirm' component - the condition will always be true\n // If we need to always compare own values - replace 'value' with components.password[0].value and make some magic with error rendering.\n if (value !== components['confirm'][0].value) { // components['password'][0].value !== components['confirm'][0].value\n // 'confirm' - name of input\n // components['confirm'] - array of same-name components because of checkboxes and radios\n return Passwords are not equal.\n }\n};","import moment from 'moment';\nimport globals from './globals';\nimport images from './images';\nimport { IntlProvider } from 'react-intl';\n\nexport const AlertType = {\n SUSPECTED_LEAK: 23,\n MONTHLY_CONS_LIMIT: 1002,\n DAILY_USAGE_VACATION: 1001\n};\n\nconst utils = {\n containsNumbers(value) {\n const re = /^[0-9\\b]+$/;\n return re.test(value);\n },\n\n containsNumbersAndPoint(value) {\n const re = /^[0-9]*\\.?[0-9]*$/;\n return re.test(value);\n },\n\n generateId() {\n const S4 = () => {\n return (((1 + Math.random()) * 0x10000) | 0)\n .toString(16)\n .substring(1);\n };\n return (\n S4() +\n S4() +\n '-' +\n S4() +\n '-' +\n S4() +\n '-' +\n S4() +\n '-' +\n S4() +\n S4() +\n S4()\n );\n },\n\n isEmail(candidate) {\n // let reg = /^[\\w._-]+[+]?[\\w._-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$/;\n let reg = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n return reg.test(candidate);\n },\n\n toVacationDateRange(vacation) {\n if (vacation === '') return null;\n\n return `${this.toVacationDate(\n vacation.startDate\n )} - ${this.toVacationDate(vacation.endDate)}`;\n },\n\n toVacationDate(date) {\n if (date === '') return '';\n\n const dateString = moment(date).format('ddd, MMM DD');\n console.log('toVacationDate', dateString);\n return dateString;\n },\n\n toMonthDate(date) {\n if (date === '') return '';\n\n const dateString = moment(date).format('MMM, YYYY');\n // console.log(dateString);\n return dateString;\n },\n\n toAlertDate(date) {\n if (date === '') return '';\n\n const dateString = moment(date).format('MMMM DD, YYYY, hh:mm');\n // console.log(dateString);\n return dateString;\n },\n\n getBillingCycleDate(date) {\n const dateString = moment(date, moment.ISO_8601).format('MM-DD-YYYY');\n // console.log(dateString);\n return dateString;\n },\n\n toHomeDisplayDateString(date) {\n if (date === '') return '';\n\n const dateString = moment(date).format('MMM DD, YYYY');\n // console.log(dateString);\n return dateString;\n },\n\n toDisplayDateString(date, withTime) {\n if (date === '') return '';\n\n const dateString = moment(date).format(\n `MM/DD/YYYY${withTime ? ' HH:mm' : ''}`\n );\n // console.log(dateString);\n return dateString;\n },\n\n toDateFromString(dateString) {\n const date = moment(dateString, 'YYYY-MM-DD').toDate();\n return date;\n },\n\n toDateString(date) {\n if (date === '') return '';\n\n const dateString = moment(date).format('YYYY-MM-DD');\n // console.log(dateString);\n return dateString;\n },\n\n toDateStringEndMonth(date) {\n if (date === '') return '';\n\n const dateString = moment(date).endOf('month').format('YYYY-MM-DD');\n // console.log(dateString);\n return dateString;\n },\n\n toISODateString(date) {\n const dateString = moment(date, moment.ISO_8601);\n // console.log(dateString);\n return dateString;\n },\n\n getYearsBefore(date, amount) {\n const monthString = moment(date)\n .subtract(amount, 'years')\n .format('YYYY');\n // console.log(monthString);\n return monthString;\n },\n\n getDaysBefore(date, amount) {\n const monthString = moment(date)\n .subtract(amount, 'days')\n .format('YYYY-MM-DD');\n // console.log(monthString);\n return monthString;\n },\n\n getMonthsBefore(date, amount) {\n const monthString = moment(date)\n .subtract(amount, 'months')\n .format('YYYY-MM');\n // console.log(monthString);\n return monthString;\n },\n\n getMonthsBeforeWithDay(date, amount) {\n const monthString = moment(date)\n .subtract(amount, 'months')\n .format('YYYY-MM-DD');\n return monthString;\n },\n\n getMonth(date) {\n const monthString = moment(date).format('YYYY-MM');\n // console.log(monthString);\n return monthString;\n },\n\n getEndOfMonthDate(date) {\n return moment(date).endOf(\"month\").locale('en').format(\"YYYY-MM-DD\");\n },\n\n getMonthBillingCycle(date) {\n const monthString = moment(date).format('YYYY-DD');\n // console.log(monthString);\n return monthString;\n },\n\n getMonthDigit(date) {\n const monthString = moment(date).format('MM');\n // console.log(monthString);\n return monthString;\n },\n\n getMonthDiff(date1, date2) {\n let diff = moment(date2).diff(moment(date1), 'months', true);\n return diff + 1;\n },\n\n getHour(date) {\n const monthName = moment(date, moment.ISO_8601).format('HH');\n // console.log(monthName);\n return monthName;\n },\n\n getDayNumber(date) {\n const monthName = moment(date, moment.ISO_8601).format('DD');\n // console.log(monthName);\n return monthName;\n },\n\n getYear(date) {\n const monthName = moment(date, moment.ISO_8601).format('YYYY');\n // console.log(monthName);\n return monthName;\n },\n\n getMonthName(date) {\n const monthName = moment(date, moment.ISO_8601).format('MMM');\n // console.log(monthName);\n return monthName;\n },\n\n lastMonthCheck(date) {\n const currentDate = moment();\n const consumptionDate = moment(date);\n // console.log(`getChartRangeDates ${currentDate} ${consumptionDate}`);\n\n if (currentDate.month() === consumptionDate.month() && currentDate.year() === consumptionDate.year()){\n return true;\n }\n\n return false;\n },\n\n getChartRangeDates(date) {\n const startOfMonth = moment(date, moment.ISO_8601).format('MMM DD');\n const endOfMonth = moment(date, moment.ISO_8601).add(1, 'M').subtract(1, \"days\").format('MMM DD');\n\n return [startOfMonth + ' -', endOfMonth + ' '];\n },\n\n getChartRangeDatesTable(date) {\n const startOfMonth = moment(date, moment.ISO_8601).format('MM/DD/YYYY');\n const endOfMonth = moment(date, moment.ISO_8601).add(1, 'M').subtract(1, \"days\").format('MM/DD/YYYY');\n\n return [`${startOfMonth} - ${endOfMonth}`];\n },\n\n getChartYLabelThousands(label, units) {\n if (label === 0) return `0 ${units.toLowerCase()}`;\n\n if (label < 10) {\n return `${label?.toFixed(3)}`;\n } else if (Number(label) === label && label % 1 === 0) {\n return label / 1000 + \"k\";\n } else {\n return (label / 1000)?.toFixed(3) + \"k\";\n }\n },\n\n getDayMonth(date) {\n const day = moment(date).format('DD');\n const month = moment(date).format('MM');\n // console.log(day);\n\n return `${month}/${day}`;\n },\n\n getDay(date) {\n const day = moment(date, moment.ISO_8601).date();\n // console.log(day);\n return day;\n },\n\n getDaysInMonth(year, month) {\n const date = new Date(year, month - 1, 1);\n const result = [];\n while (date.getMonth() === month - 1) {\n result.push(`${date.getDate()}`);\n date.setDate(date.getDate() + 1);\n }\n return result;\n },\n\n isToday(date) {\n const today = new Date();\n return (\n utils.getYear(date) === utils.getYear(today) &&\n utils.getMonth(date) === utils.getMonth(today) &&\n utils.getDayMonth(date) === utils.getDayMonth(today)\n );\n },\n\n isArrAscendingByConsDate(arr) {\n return arr.every(function(x, i) {\n return i === 0 || x.consDate >= arr[i - 1].consDate;\n });\n },\n\n getMeterDesc(meter) {\n return `${meter.meterSn}, ${\n meter.fullAddress\n ? meter.fullAddress\n : globals.METER_DEFAULT_ADDRESS\n }`;\n },\n\n findMeter(meterCount, meters) {\n const result = meters.find(item => meterCount == item.meterCount)\n console.log(result)\n return `${result?.meterSn}, ${\n result?.fullAddress\n ? result?.fullAddress\n : globals.METER_DEFAULT_ADDRESS\n }`;\n },\n\n getLargeIconForAlertType(alertTypeId) {\n let bigIcon = '';\n switch (parseInt(alertTypeId)) {\n case AlertType.SUSPECTED_LEAK:\n bigIcon = images.icBigTap;\n break;\n case AlertType.DAILY_USAGE_VACATION:\n bigIcon = images.icBigVacations;\n break;\n case AlertType.MONTHLY_CONS_LIMIT:\n bigIcon = images.icBigWaterLimit;\n break;\n }\n\n return bigIcon;\n },\n\n getSmallIconForAlertType(alertTypeId) {\n console.log(`getSmallIconForAlertType ${alertTypeId}`);\n let icon = '';\n switch (parseInt(alertTypeId)) {\n case AlertType.SUSPECTED_LEAK:\n icon = images.icFaucet;\n break;\n case AlertType.DAILY_USAGE_VACATION:\n icon = images.icVacation;\n break;\n case AlertType.MONTHLY_CONS_LIMIT:\n icon = images.icWaterLimit;\n break;\n }\n\n return icon;\n }\n};\n\nexport default utils;\n","import React from 'react';\nimport './TermsOfUse.css';\nimport images from '../../images';\nimport '../../App.css';\nimport { Desktop, Mobile } from '../../App';\n\nexport default class TermsOfUse extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n this.props.onClose()}\n >\n \n \n

Terms of Use

\n

\n My Water Advisor Website Terms of Use\n

\n
\n Acceptance of the Terms of Use\n
\n
\n \n {`Last Modified: 03.21.23\n\nThese terms of use are entered into by and between You and Master Meter, Inc. (\"Company\", \"we\" or \"us\"). The following terms and conditions (collectively, these \"Terms of Use\"), govern your access to and use of My Water Advisor.com, including any content, functionality and services offered on or through a guest or a registered user.\n\nPlease read the Terms of Use carefully before you start to use the Website. By using the Website or by clicking to accept or agree to the Terms of Use when this option is made available to you, you accept and agree to be bound and abide by these Terms of Use and our Privacy Policy, found at the bottom of website ( https://mywateradvisor2.com ), incorporated herein by reference. If you do not want to agree to these Terms of Use or the Privacy Policy, you must not access or use the Website.\n\nThis Website is offered and available to users who are 18 years of age or older. By using this Website, you represent and warrant that you are of legal age to form a binding contract with the Company and meet all of the foregoing eligibility requirements. If you do not meet all of these requirements, you must not access or use the Website.\n\nChanges to the Terms of Use\nWe may revise and update these Terms of Use from time to time in our sole discretion. All changes are effective immediately when we post them, and apply to all access to and use of the Website thereafter. However, any changes to the dispute resolution provisions set forth in Governing Law and Jurisdiction will not apply to any disputes for which the parties have actual notice prior to the date the change is posted on the Website.\n\nYour continued use of the Website following the posting of revised Terms of Use means that you accept and agree to the changes. You are expected to check this page from time to time so you are aware of any changes, as they are binding on you.\n\nAccessing the Website and Account Security\nWe reserve the right to withdraw or amend this Website, and any service or material we provide on the Website, in our sole discretion without notice. We will not be liable if for any reason all or any part of the Website is unavailable at any time or for any period. From time to time, we may restrict access to some parts of the Website, or the entire Website, to users, including registered users.\n\n You are responsible for:\n• Making all arrangements necessary for you to have access to the Website.\n• Ensuring that all persons who access the Website through your internet connection are aware of these Terms of Use and comply with them.\n\nTo access the Website or some of the resources it offers, you may be asked to provide certain registration details or other information. It is a condition of your use of the Website that all the information you provide on the Website is correct, current and complete. You agree that all information you provide to register with this Website or otherwise, including but not limited to through the use of any interactive features on the Website, is governed by our Privacy Policy, found at the bottom of website ( https://mywateradvisor2.com ) , and you consent to all actions we take with respect to your information consistent with our Privacy Policy.\n\nIf you choose, or are provided with, a user name, password or any other piece of information as part of our security procedures, you must treat such information as confidential, and you must not disclose it to any other person or entity. You also acknowledge that your account is personal to you and agree not to provide any other person with access to this Website or portions of it using your user name, password or other security information. You agree to notify us immediately of any unauthorized access to or use of your user name or password or any other breach of security. You also agree to ensure that you exit from your account at the end of each session. You should use particular caution when accessing your account from a public or shared computer so that others are not able to view or record your password or other personal information.\n\nWe have the right to disable any user name, password or other identifier, whether chosen by you or provided by us, at any time in our sole discretion for any or no reason, including if, in our opinion, you have violated any provision of these Terms of Use.\n\nIntellectual Property Rights\nThe Website and its entire contents, features and functionality (including but not limited to all information, software, text, displays, images, video and audio, and the design, selection and arrangement thereof), are owned by the Company, its licensors or other providers of such material and are protected by United States and international copyright, trademark, patent, trade secret and other intellectual property or proprietary rights laws.\n\nThese Terms of Use permit you to use the Website for your personal, non-commercial use only. You must not reproduce, distribute, modify, create derivative works of, publicly display, publicly perform, republish, download, store or transmit any of the material on our Website, except as follows:\n •Your computer may temporarily store copies of such materials in RAM incidental to your accessing and viewing those materials.\n• You may store files that are automatically cached by your Web browser for display enhancement purposes.\n• You may print or download one copy of a reasonable number of pages of the Website for your own personal, non-commercial use and not for further reproduction, publication or distribution.\n• If we provide desktop, mobile or other applications for download, you may download a single copy to your computer or mobile device solely for your own personal, non-commercial use, provided you agree to be bound by our end user license agreement for such applications.\n\nYou must not:\n• Modify copies of any materials from this site.\n• Delete or alter any copyright, trademark or other proprietary rights notices from copies of materials from this site.\n\nYou must not access or use for any commercial purposes any part of the Website or any services or materials available through the Website.\n\nIf you print, copy, modify, download or otherwise use or provide any other person with access to any part of the Website in breach of the Terms of Use, your right to use the Website will cease immediately and you must, at our option, return or destroy any copies of the materials you have made. No right, title or interest in or to the Website or any content on the Website is transferred to you, and all rights not expressly granted are reserved by the Company. Any use of the Website not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate copyright, trademark and other laws.\n\nTrademarks\nThe Company name, the terms and all related names, logos, product and service names, designs and slogans are trademarks of the Company or its affiliates or licensors. You must not use such marks without the prior written permission of the Company. All other names, logos, product and service names, designs and slogans on this Website are the trademarks of their respective owners.\n\n\n\n\nProhibited Uses\nYou may use the Website only for lawful purposes and in accordance with these Terms of Use. You agree not to use the Website:\n• In any way that violates any applicable federal, state, local or international law or regulation (including, without limitation, any laws regarding the export of data or software to and from the US or other countries).\n• For the purpose of exploiting, harming or attempting to exploit or harm minors in any way by exposing them to inappropriate content, asking for personally identifiable information or otherwise.\n• To send, knowingly receive, upload, download, use or re-use any material which does not comply with the Content Standards set out in these Terms of Use.\n• To impersonate or attempt to impersonate the Company, a Company employee, another user or any other person or entity (including, without limitation, by using e-mail addresses associated with any of the foregoing).\n• To engage in any other conduct that restricts or inhibits anyone's use or enjoyment of the Website, or which, as determined by us, may harm the Company or users of the Website or expose them to liability.\nAdditionally, you agree not to:\n\n• Use the Website in any manner that could disable, overburden, damage, or impair the site or interfere with any other party's use of the Website, including their ability to engage in real time activities through the Website.\n• Use any robot, spider or other automatic device, process or means to access the Website for any purpose, including monitoring or copying any of the material on the Website.\n• Use any manual process to monitor or copy any of the material on the Website or for any other unauthorized purpose without our prior written consent.\n• Use any device, software or routine that interferes with the proper working of the Website.\n• Introduce any viruses, trojan horses, worms, logic bombs or other material which is malicious or technologically harmful.\n• Attempt to gain unauthorized access to, interfere with, damage or disrupt any parts of the Website, the server on which the Website is stored, or any server, computer or database connected to the Website.\n• Attack the Website via a denial-of-service attack or a distributed denial-of-service attack.\n• Otherwise attempt to interfere with the proper working of the Website.\n\n\nReliance on Information Posted\n\nThe information presented on or through the Website is made available solely for general information purposes. We do not warrant the accuracy, completeness or usefulness of this information. Any reliance you place on such information is strictly at your own risk. We disclaim all liability and responsibility arising from any reliance placed on such materials by you or any other visitor to the Website, or by anyone who may be informed of any of its contents.\n\nChanges to the Website\n\nWe may update the content on this Website from time to time, but its content is not necessarily complete or up-to-date. Any of the material on the Website may be out of date at any given time, and we are under no obligation to update such material.\n\nInformation About You and Your Visits to the Website\n\nAll information we collect on this Website is subject to our Privacy Policy found at the bottom of website ( https://mywateradvisor2.com ). By using the Website, you consent to all actions taken by us with respect to your information in compliance with the Privacy Policy.\n\nLinks from the Website\n\nIf the Website contains links to other sites and resources provided by third parties, these links are provided for your convenience only. This includes links contained in advertisements, including banner advertisements and sponsored links. We have no control over the contents of those sites or resources, and accept no responsibility for them or for any loss or damage that may arise from your use of them. If you decide to access any of the third party websites linked to this Website, you do so entirely at your own risk and subject to the terms and conditions of use for such websites.\n\nGeographic Restrictions\n\nThe owner of the Website is based in the state of Texas in the United States. We provide this Website for use only by persons located in the United States. We make no claims that the Website or any of its content is accessible or appropriate outside of the United States. Access to the Website may not be legal by certain persons or in certain countries. If you access the Website from outside the United States, you do so on your own initiative and are responsible for compliance with local laws.\n\nDisclaimer of Warranties\n\nYou understand that we cannot and do not guarantee or warrant that files available for downloading from the internet or the Website will be free of viruses or other destructive code. You are responsible for implementing sufficient procedures and checkpoints to satisfy your particular requirements for anti-virus protection and accuracy of data input and output, and for maintaining a means external to our site for any reconstruction of any lost data. WE WILL NOT BE LIABLE FOR ANY LOSS OR DAMAGE CAUSED BY A DISTRIBUTED DENIAL-OF-SERVICE ATTACK, VIRUSES OR OTHER TECHNOLOGICALLY HARMFUL MATERIAL THAT MAY INFECT YOUR COMPUTER EQUIPMENT, COMPUTER PROGRAMS, DATA OR OTHER PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE OR TO YOUR DOWNLOADING OF ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITE LINKED TO IT.\n\n YOUR USE OF THE WEBSITE, ITS CONTENT AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE IS AT YOUR OWN RISK. THE WEBSITE, ITS CONTENT AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE ARE PROVIDED ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS, WITHOUT ANY WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE COMPANY NOR ANY PERSON ASSOCIATED WITH THE COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY OR AVAILABILITY OF THE WEBSITE. WITHOUT LIMITING THE FOREGOING, NEITHER THE COMPANY NOR ANYONE ASSOCIATED WITH THE COMPANY REPRESENTS OR WARRANTS THAT THE WEBSITE, ITS CONTENT OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE WILL BE ACCURATE, RELIABLE, ERROR-FREE OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.\n\nTHE COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR PARTICULAR PURPOSE.\n\nTHE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.\n\nLimitation on Liability\n\nIN NO EVENT WILL THE COMPANY, ITS AFFILIATES OR THEIR LICENSORS, SERVICE PROVIDERS, EMPLOYEES, AGENTS, OFFICERS OR DIRECTORS BE LIABLE FOR DAMAGES OF ANY KIND, UNDER ANY LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH YOUR USE, OR INABILITY TO USE, THE WEBSITE, ANY WEBSITES LINKED TO IT, ANY CONTENT ON THE WEBSITE OR SUCH OTHER WEBSITES OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE OR SUCH OTHER WEBSITES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING, EMOTIONAL DISTRESS, LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA, AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT OR OTHERWISE, EVEN IF FORESEEABLE.\n\nTHE FOREGOING DOES NOT AFFECT ANY LIABILITY WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.\n\nIndemnification\n\nYou agree to defend, indemnify and hold harmless the Company, its affiliates, licensors and service providers, and its and their respective officers, directors, employees, contractors, agents, licensors, suppliers, successors and assigns from and against any claims, liabilities, damages, judgments, awards, losses, costs, expenses or fees (including reasonable attorneys' fees) arising out of or relating to your violation of these Terms of Use or your use of the Website, including, but not limited to, your User Contributions, any use of the Website's content, services and products other than as expressly authorized in these Terms of Use or your use of any information obtained from the Website.\n\nGoverning Law and Jurisdiction\n\nAll matters relating to the Website and these Terms of Use and any dispute or claim arising therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be governed by and construed in accordance with the internal laws of the State of Texas without giving effect to any choice or conflict of law provision or rule (whether of the State of Texas or any other jurisdiction).\n\nArbitration\n\nAt Company's sole discretion, it may require You to submit any disputes arising from the use of these Terms of Use or the Website, including disputes arising from or concerning their interpretation, violation, invalidity, non-performance, or termination, to final and binding arbitration under the Rules of Arbitration of the American Arbitration Association applying Texas law.\n\nLimitation on Time to File Claims\n\nANY CAUSE OF ACTION OR CLAIM YOU MAY HAVE ARISING OUT OF OR RELATING TO THESE TERMS OF USE OR THE WEBSITE MUST BE COMMENCED WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES, OTHERWISE, SUCH CAUSE OF ACTION OR CLAIM IS PERMANENTLY BARRED.\n\nWaiver and Severability\n\nNo waiver of by the Company of any term or condition set forth in these Terms of Use shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of the Company to assert a right or provision under these Terms of Use shall not constitute a waiver of such right or provision.\n\nIf any provision of these Terms of Use is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of the Terms of Use will continue in full force and effect.\n\nEntire Agreement\n\nThe Terms of Use and our Privacy Policy constitute the sole and entire agreement between you and Master Meter, Inc. with respect to the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website.`}\n \n
\n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n this.props.onClose()}\n >\n \n \n

Terms of Use

\n

\n My Water Advisor Website Terms of Use\n

\n

Acceptance of the Terms of Use

\n
\n \n {`Last Modified: 03.21.23\n\nThese terms of use are entered into by and between You and Master Meter, Inc. (\"Company\", \"we\" or \"us\"). The following terms and conditions (collectively, these \"Terms of Use\"), govern your access to and use of My Water Advisor.com, including any content, functionality and services offered on or through a guest or a registered user.\n\nPlease read the Terms of Use carefully before you start to use the Website. By using the Website or by clicking to accept or agree to the Terms of Use when this option is made available to you, you accept and agree to be bound and abide by these Terms of Use and our Privacy Policy, found at the bottom of website ( https://mywateradvisor2.com ), incorporated herein by reference. If you do not want to agree to these Terms of Use or the Privacy Policy, you must not access or use the Website.\n\nThis Website is offered and available to users who are 18 years of age or older. By using this Website, you represent and warrant that you are of legal age to form a binding contract with the Company and meet all of the foregoing eligibility requirements. If you do not meet all of these requirements, you must not access or use the Website.\n\nChanges to the Terms of Use\nWe may revise and update these Terms of Use from time to time in our sole discretion. All changes are effective immediately when we post them, and apply to all access to and use of the Website thereafter. However, any changes to the dispute resolution provisions set forth in Governing Law and Jurisdiction will not apply to any disputes for which the parties have actual notice prior to the date the change is posted on the Website.\n\nYour continued use of the Website following the posting of revised Terms of Use means that you accept and agree to the changes. You are expected to check this page from time to time so you are aware of any changes, as they are binding on you.\n\nAccessing the Website and Account Security\nWe reserve the right to withdraw or amend this Website, and any service or material we provide on the Website, in our sole discretion without notice. We will not be liable if for any reason all or any part of the Website is unavailable at any time or for any period. From time to time, we may restrict access to some parts of the Website, or the entire Website, to users, including registered users.\n\n You are responsible for:\n• Making all arrangements necessary for you to have access to the Website.\n• Ensuring that all persons who access the Website through your internet connection are aware of these Terms of Use and comply with them.\n\nTo access the Website or some of the resources it offers, you may be asked to provide certain registration details or other information. It is a condition of your use of the Website that all the information you provide on the Website is correct, current and complete. You agree that all information you provide to register with this Website or otherwise, including but not limited to through the use of any interactive features on the Website, is governed by our Privacy Policy, found at the bottom of website ( https://mywateradvisor2.com ) , and you consent to all actions we take with respect to your information consistent with our Privacy Policy.\n\nIf you choose, or are provided with, a user name, password or any other piece of information as part of our security procedures, you must treat such information as confidential, and you must not disclose it to any other person or entity. You also acknowledge that your account is personal to you and agree not to provide any other person with access to this Website or portions of it using your user name, password or other security information. You agree to notify us immediately of any unauthorized access to or use of your user name or password or any other breach of security. You also agree to ensure that you exit from your account at the end of each session. You should use particular caution when accessing your account from a public or shared computer so that others are not able to view or record your password or other personal information.\n\nWe have the right to disable any user name, password or other identifier, whether chosen by you or provided by us, at any time in our sole discretion for any or no reason, including if, in our opinion, you have violated any provision of these Terms of Use.\n\nIntellectual Property Rights\nThe Website and its entire contents, features and functionality (including but not limited to all information, software, text, displays, images, video and audio, and the design, selection and arrangement thereof), are owned by the Company, its licensors or other providers of such material and are protected by United States and international copyright, trademark, patent, trade secret and other intellectual property or proprietary rights laws.\n\nThese Terms of Use permit you to use the Website for your personal, non-commercial use only. You must not reproduce, distribute, modify, create derivative works of, publicly display, publicly perform, republish, download, store or transmit any of the material on our Website, except as follows:\n •Your computer may temporarily store copies of such materials in RAM incidental to your accessing and viewing those materials.\n• You may store files that are automatically cached by your Web browser for display enhancement purposes.\n• You may print or download one copy of a reasonable number of pages of the Website for your own personal, non-commercial use and not for further reproduction, publication or distribution.\n• If we provide desktop, mobile or other applications for download, you may download a single copy to your computer or mobile device solely for your own personal, non-commercial use, provided you agree to be bound by our end user license agreement for such applications.\n\nYou must not:\n• Modify copies of any materials from this site.\n• Delete or alter any copyright, trademark or other proprietary rights notices from copies of materials from this site.\n\nYou must not access or use for any commercial purposes any part of the Website or any services or materials available through the Website.\n\nIf you print, copy, modify, download or otherwise use or provide any other person with access to any part of the Website in breach of the Terms of Use, your right to use the Website will cease immediately and you must, at our option, return or destroy any copies of the materials you have made. No right, title or interest in or to the Website or any content on the Website is transferred to you, and all rights not expressly granted are reserved by the Company. Any use of the Website not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate copyright, trademark and other laws.\n\nTrademarks\nThe Company name, the terms and all related names, logos, product and service names, designs and slogans are trademarks of the Company or its affiliates or licensors. You must not use such marks without the prior written permission of the Company. All other names, logos, product and service names, designs and slogans on this Website are the trademarks of their respective owners.\n\n\n\n\nProhibited Uses\nYou may use the Website only for lawful purposes and in accordance with these Terms of Use. You agree not to use the Website:\n• In any way that violates any applicable federal, state, local or international law or regulation (including, without limitation, any laws regarding the export of data or software to and from the US or other countries).\n• For the purpose of exploiting, harming or attempting to exploit or harm minors in any way by exposing them to inappropriate content, asking for personally identifiable information or otherwise.\n• To send, knowingly receive, upload, download, use or re-use any material which does not comply with the Content Standards set out in these Terms of Use.\n• To impersonate or attempt to impersonate the Company, a Company employee, another user or any other person or entity (including, without limitation, by using e-mail addresses associated with any of the foregoing).\n• To engage in any other conduct that restricts or inhibits anyone's use or enjoyment of the Website, or which, as determined by us, may harm the Company or users of the Website or expose them to liability.\nAdditionally, you agree not to:\n\n• Use the Website in any manner that could disable, overburden, damage, or impair the site or interfere with any other party's use of the Website, including their ability to engage in real time activities through the Website.\n• Use any robot, spider or other automatic device, process or means to access the Website for any purpose, including monitoring or copying any of the material on the Website.\n• Use any manual process to monitor or copy any of the material on the Website or for any other unauthorized purpose without our prior written consent.\n• Use any device, software or routine that interferes with the proper working of the Website.\n• Introduce any viruses, trojan horses, worms, logic bombs or other material which is malicious or technologically harmful.\n• Attempt to gain unauthorized access to, interfere with, damage or disrupt any parts of the Website, the server on which the Website is stored, or any server, computer or database connected to the Website.\n• Attack the Website via a denial-of-service attack or a distributed denial-of-service attack.\n• Otherwise attempt to interfere with the proper working of the Website.\n\n\nReliance on Information Posted\n\nThe information presented on or through the Website is made available solely for general information purposes. We do not warrant the accuracy, completeness or usefulness of this information. Any reliance you place on such information is strictly at your own risk. We disclaim all liability and responsibility arising from any reliance placed on such materials by you or any other visitor to the Website, or by anyone who may be informed of any of its contents.\n\nChanges to the Website\n\nWe may update the content on this Website from time to time, but its content is not necessarily complete or up-to-date. Any of the material on the Website may be out of date at any given time, and we are under no obligation to update such material.\n\nInformation About You and Your Visits to the Website\n\nAll information we collect on this Website is subject to our Privacy Policy found at the bottom of website ( https://mywateradvisor2.com ). By using the Website, you consent to all actions taken by us with respect to your information in compliance with the Privacy Policy.\n\nLinks from the Website\n\nIf the Website contains links to other sites and resources provided by third parties, these links are provided for your convenience only. This includes links contained in advertisements, including banner advertisements and sponsored links. We have no control over the contents of those sites or resources, and accept no responsibility for them or for any loss or damage that may arise from your use of them. If you decide to access any of the third party websites linked to this Website, you do so entirely at your own risk and subject to the terms and conditions of use for such websites.\n\nGeographic Restrictions\n\nThe owner of the Website is based in the state of Texas in the United States. We provide this Website for use only by persons located in the United States. We make no claims that the Website or any of its content is accessible or appropriate outside of the United States. Access to the Website may not be legal by certain persons or in certain countries. If you access the Website from outside the United States, you do so on your own initiative and are responsible for compliance with local laws.\n\nDisclaimer of Warranties\n\nYou understand that we cannot and do not guarantee or warrant that files available for downloading from the internet or the Website will be free of viruses or other destructive code. You are responsible for implementing sufficient procedures and checkpoints to satisfy your particular requirements for anti-virus protection and accuracy of data input and output, and for maintaining a means external to our site for any reconstruction of any lost data. WE WILL NOT BE LIABLE FOR ANY LOSS OR DAMAGE CAUSED BY A DISTRIBUTED DENIAL-OF-SERVICE ATTACK, VIRUSES OR OTHER TECHNOLOGICALLY HARMFUL MATERIAL THAT MAY INFECT YOUR COMPUTER EQUIPMENT, COMPUTER PROGRAMS, DATA OR OTHER PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE OR TO YOUR DOWNLOADING OF ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITE LINKED TO IT.\n\n YOUR USE OF THE WEBSITE, ITS CONTENT AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE IS AT YOUR OWN RISK. THE WEBSITE, ITS CONTENT AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE ARE PROVIDED ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS, WITHOUT ANY WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE COMPANY NOR ANY PERSON ASSOCIATED WITH THE COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY OR AVAILABILITY OF THE WEBSITE. WITHOUT LIMITING THE FOREGOING, NEITHER THE COMPANY NOR ANYONE ASSOCIATED WITH THE COMPANY REPRESENTS OR WARRANTS THAT THE WEBSITE, ITS CONTENT OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE WILL BE ACCURATE, RELIABLE, ERROR-FREE OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.\n\nTHE COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR PARTICULAR PURPOSE.\n\nTHE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.\n\nLimitation on Liability\n\nIN NO EVENT WILL THE COMPANY, ITS AFFILIATES OR THEIR LICENSORS, SERVICE PROVIDERS, EMPLOYEES, AGENTS, OFFICERS OR DIRECTORS BE LIABLE FOR DAMAGES OF ANY KIND, UNDER ANY LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH YOUR USE, OR INABILITY TO USE, THE WEBSITE, ANY WEBSITES LINKED TO IT, ANY CONTENT ON THE WEBSITE OR SUCH OTHER WEBSITES OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE OR SUCH OTHER WEBSITES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING, EMOTIONAL DISTRESS, LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA, AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT OR OTHERWISE, EVEN IF FORESEEABLE.\n\nTHE FOREGOING DOES NOT AFFECT ANY LIABILITY WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.\n\nIndemnification\n\nYou agree to defend, indemnify and hold harmless the Company, its affiliates, licensors and service providers, and its and their respective officers, directors, employees, contractors, agents, licensors, suppliers, successors and assigns from and against any claims, liabilities, damages, judgments, awards, losses, costs, expenses or fees (including reasonable attorneys' fees) arising out of or relating to your violation of these Terms of Use or your use of the Website, including, but not limited to, your User Contributions, any use of the Website's content, services and products other than as expressly authorized in these Terms of Use or your use of any information obtained from the Website.\n\nGoverning Law and Jurisdiction\n\nAll matters relating to the Website and these Terms of Use and any dispute or claim arising therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be governed by and construed in accordance with the internal laws of the State of Texas without giving effect to any choice or conflict of law provision or rule (whether of the State of Texas or any other jurisdiction).\n\nArbitration\n\nAt Company's sole discretion, it may require You to submit any disputes arising from the use of these Terms of Use or the Website, including disputes arising from or concerning their interpretation, violation, invalidity, non-performance, or termination, to final and binding arbitration under the Rules of Arbitration of the American Arbitration Association applying Texas law.\n\nLimitation on Time to File Claims\n\nANY CAUSE OF ACTION OR CLAIM YOU MAY HAVE ARISING OUT OF OR RELATING TO THESE TERMS OF USE OR THE WEBSITE MUST BE COMMENCED WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES, OTHERWISE, SUCH CAUSE OF ACTION OR CLAIM IS PERMANENTLY BARRED.\n\nWaiver and Severability\n\nNo waiver of by the Company of any term or condition set forth in these Terms of Use shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of the Company to assert a right or provision under these Terms of Use shall not constitute a waiver of such right or provision.\n\nIf any provision of these Terms of Use is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of the Terms of Use will continue in full force and effect.\n\nEntire Agreement\n\nThe Terms of Use and our Privacy Policy constitute the sole and entire agreement between you and Master Meter, Inc. with respect to the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website.`}\n \n
\n
\n );\n }\n}\n","import React from 'react';\nimport './AppPopup.css';\nimport images from '../images';\nimport { Desktop, Mobile } from '../App';\n\nexport default class AppPopup extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n this.props.onClose()}\n >\n \n \n

My Water Advisor

\n

{this.props.message}

\n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n this.props.onClose()}\n >\n \n \n
My Water Advisor
\n

{this.props.message}

\n
\n );\n }\n}\n","import React from 'react';\nimport images from '../../images';\nimport '../../App.css';\nimport './Login.css';\nimport { Link } from 'react-router-dom';\nimport validator from 'validator';\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport * as validators from '../../validators';\nimport * as api from '../../api';\nimport utils from '../../utils';\nimport PersistenceManager from '../../managers/PersistenceManager';\nimport globals from '../../globals';\nimport { Desktop, Mobile } from '../../App';\nimport { ClipLoader } from 'react-spinners';\nimport DataManager from '../../managers/DataManager';\nimport Popup from \"reactjs-popup\";\nimport TermsOfUse from \"../common/TermsOfUse\";\nimport AppPopup from \"../../components/AppPopup\";\n\nclass Login extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n email: '',\n password: '',\n isLoggedIn: false,\n isSecurePass: true,\n isLoading: false,\n errorMessage: null\n };\n }\n\n componentWillMount() {\n if (this.props.onEnter) this.props.onEnter(true);\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n \n {this.state.isLoading && (\n \n )}\n \n Log In\n
\n
\n
\n

\n REGISTERED E-MAIL\n

\n \n this.setState({ email: event.target.value })\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex'\n }}\n />\n
\n
\n

\n WATER ADVISOR PASSWORD\n

\n \n \n this.setState({\n password: event.target.value\n })\n }\n type={\n this.state.isSecurePass\n ? 'password'\n : 'text'\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex'\n }}\n />\n this.toggleSecurePass(event)}\n >\n \n \n
\n \n \n \n \n \n \n \n I forgot my password\n \n \n \n \n \n );\n }\n\n _renderDesktop() {\n return (\n \n {/* this.msg = a} {...this.alertOptions} />*/}\n {this.state.isLoading && (\n \n )}\n

Log In

\n
\n
\n

\n REGISTERED E-MAIL\n

\n \n this.setState({ email: event.target.value })\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex'\n }}\n />\n
\n
\n

\n WATER ADVISOR PASSWORD\n

\n \n \n this.setState({\n password: event.target.value\n })\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex'\n }}\n />\n this.toggleSecurePass(event)}\n >\n \n \n
\n \n \n \n \n \n \n \n I forgot my password\n
\n \n
\n \n \n \n \n );\n }\n\n closePopup = () => {\n this.setState({errorMessage: null});\n };\n\n toggleSecurePass(event) {\n event.preventDefault();\n if (event.detail !== 0) {\n this.setState({isSecurePass: !this.state.isSecurePass});\n }\n }\n\n onSubmit = event => {\n event.preventDefault();\n\n const { from } = this.props.location.state || {\n from: { pathname: '/home' }\n };\n const { email, password } = this.state;\n\n const uniqueId = utils.generateId();\n this.setState({ isLoading: true });\n api.login(email, password, uniqueId, (response, error) => {\n this.setState({ isLoading: false });\n if (error) {\n console.log('Unknown error has occurred.');\n this.setState({errorMessage: 'Unknown error has occurred.'});\n // this.msg.show('Unknown error has occurred.', {\n // time: 2000,\n // type: 'info'\n // })\n } else {\n if (response.error) {\n console.log(response.error);\n this.setState({errorMessage: response.error});\n // this.msg.show('Unknown error has occurred.', {\n // time: 2000,\n // type: 'info'\n // })\n } else {\n const token = response.token;\n console.log('token = ' + token);\n api.setTokenValue(token);\n DataManager.sharedInstance.isAuthenticated = true;\n\n PersistenceManager.storeItem(globals.STORAGE.TOKEN, token);\n\n this.setState({ isLoading: true });\n api.getMe((res, err) => {\n this.setState({ isLoading: false });\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n DataManager.sharedInstance.user = res;\n DataManager.sharedInstance.isAuthenticated = true;\n\n this.props.history.push(from.pathname);\n this.props.onLogin();\n }\n }\n });\n }\n }\n });\n };\n}\n\nexport default (Login)\n","import React from 'react';\nimport images from \"../../images\";\nimport {Link} from \"react-router-dom\";\nimport './ForgotPassword.css';\nimport {Desktop, Mobile} from \"../../App\";\nimport * as validators from \"../../validators\";\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport * as api from \"../../api\";\nimport DataManager from \"../../managers/DataManager\";\nimport Popup from \"reactjs-popup\";\nimport AppPopup from \"../../components/AppPopup\";\n\nclass ForgotPassword extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n email: '',\n errorMessage: null\n }\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n

Change Password

\n

Enter your e-mail below and we will\n send you the instructions on how to reset your password

\n
\n
\n this.setState({email: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex'}}>\n \n
\n
\n \n
\n
\n Cancel\n \n \n \n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n

Change Password

\n

Enter your e-mail below and we will\n send you the instructions on how to reset your password

\n
\n
\n this.setState({email: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex'}}>\n \n
\n
\n \n
\n \n \n \n \n Cancel\n
\n );\n }\n\n closePopup() {\n this.setState({errorMessage: null});\n }\n\n onSubmit = (event) => {\n event.preventDefault();\n\n //this.setState({isLoading: true});\n api.recoverPassword(this.state.email, (res, error) => {\n //this.setState({isLoading: false});\n if (error) {\n this.setState({errorMessage: 'Password recovery failed.'});\n } else {\n if (res.error) {\n this.setState({errorMessage: res.error});\n } else {\n this.props.history.push(`/password/code`);\n }\n }\n })\n\n };\n}\n\nexport default (ForgotPassword)","import React from 'react';\nimport images from '../../images';\nimport '../../App.css';\nimport './RegisterAccount.css';\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport * as validators from '../../validators';\nimport * as api from '../../api';\nimport DataManager from '../../managers/DataManager';\nimport { Desktop, Mobile } from '../../App';\nimport Popup from \"reactjs-popup\";\nimport AppPopup from \"../../components/AppPopup\";\n\nclass RegisterAccount extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n fullName: '',\n account: '',\n errorMessage: null\n };\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n \n

\n Join My Water Advisor\n

\n
\n
\n \n ACCOUNT NUMBER AS IT APPEARS ON YOUR BILL\n \n \n this.setState({ account: event.target.value })\n }\n value={this.state.account}\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16,\n marginLeft: 20,\n marginRight: 20,\n marginTop: 20\n }}\n />\n
\n
\n \n FULL NAME AS IT APPEARS ON YOUR BILL\n \n \n this.setState({ fullName: event.target.value })\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16,\n marginLeft: 20,\n marginRight: 20\n }}\n />\n
\n \n \n \n \n \n \n \n \n \n \n );\n }\n\n _renderDesktop() {\n return (\n \n

Join My Water Advisor

\n
\n
\n

\n ACCOUNT NUMBER AS IT APPEARS ON YOUR BILL\n

\n \n this.setState({ account: event.target.value })\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16\n }}\n />\n
\n
\n

\n FULL NAME AS IT APPEARS ON YOUR BILL\n

\n \n this.setState({ fullName: event.target.value })\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16\n }}\n />\n
\n \n \n \n \n \n \n \n \n \n \n );\n }\n\n closeErrorPopup() {\n this.setState({errorMessage: null});\n }\n\n onSubmit = event => {\n event.preventDefault();\n\n //this.setState({isLoading: true});\n api.registerAccount(\n this.state.fullName,\n this.state.account,\n (response, error) => {\n //this.setState({isLoading: false});\n if (error) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (response.error) {\n //Error\n if (response.code === 10030) {\n this.props.history.push(\n '/register/account/not_found'\n );\n } else {\n this.setState({errorMessage: response.error});\n }\n } else {\n DataManager.sharedInstance.sessionId =\n response.sessionId;\n this.props.history.push('/register/finish');\n }\n }\n }\n );\n };\n}\n\nexport default (RegisterAccount)","import React from 'react';\nimport images from \"../../images\";\nimport '../../App.css';\nimport './RegisterPhone.css';\nimport * as api from \"../../api\";\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport * as validators from '../../validators';\nimport DataManager from \"../../managers/DataManager\";\nimport {Desktop, Mobile} from \"../../App\";\nimport AppPopup from \"../../components/AppPopup\";\nimport Popup from \"reactjs-popup\";\n\nclass RegisterPhone extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n phone: '',\n errorMessage: null\n }\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n

Join My Water Advisor

\n

Enter the primary cell\n phone number registered with your utility or service\n provider.

\n
\n
\n

+1 US

\n this.setState({phone: event.target.value})}\n value={this.state.phone}\n className=\"phoneInput country\"\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n border: 0,\n backgroundColor: 'transparent'\n }}>\n \n
\n
\n \n
\n
\n \n \n \n
\n );\n }\n\n\n _renderDesktop() {\n return (\n
\n

Join My Water Advisor

\n

Enter the primary cell phone number registered with your utility or service\n provider.

\n
\n
\n

+1 US

\n this.setState({phone: event.target.value})}\n value={this.state.phone}\n className=\"phoneInput country\"\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n border: 0,\n backgroundColor: 'transparent'\n }}>\n \n
\n
\n \n
\n
\n \n \n \n
\n );\n }\n\n closeErrorPopup() {\n this.setState({errorMessage: null});\n }\n\n onSubmit = (event) => {\n event.preventDefault();\n\n const {phone} = this.state;\n\n api.registerPhone('1', phone, 'en', (response, error) => {\n if (error) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (response.error) {\n if (response.code === 10030)\n this.props.history.push('/register/phone/not_found');\n else\n this.setState({errorMessage: response.error});\n } else {\n const sessionId = response.sessionId;\n DataManager.sharedInstance.sessionId = sessionId;\n this.props.history.push(`/register/code/${this.state.phone}`);\n }\n }\n });\n }\n}\n\nexport default (RegisterPhone)","import React from 'react';\nimport images from \"../../images\";\nimport './RegisterEnterCode.css';\nimport '../../App.css';\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport * as validators from '../../validators';\nimport * as api from \"../../api\";\nimport DataManager from \"../../managers/DataManager\";\nimport {Desktop, Mobile} from \"../../App\";\nimport AppPopup from \"../../components/AppPopup\";\nimport Popup from \"reactjs-popup\";\n\nclass RegisterEnterCode extends React.Component {\n constructor(props) {\n super(props);\n\n const {phone} = props.match.params;\n\n this.state = {\n phone: phone,\n code: '',\n errorMessage: null\n }\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n

Join My Water Advisor

\n

Enter the code that was sent via SMS to number

\n
\n this.setState({code: event.target.value})}\n className=\"codeInput rectangle\" value={this.state.code}\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n border: 0,\n backgroundColor: 'transparent'\n }}>\n \n
\n \n
\n
\n \n \n \n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n

Join My Water Advisor

\n

Enter the code that was sent via SMS to number

\n

{this.state.phone}

\n
\n
\n this.setState({code: event.target.value})}\n className=\"codeInput rectangle\" value={this.state.code}\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n border: 0,\n backgroundColor: 'transparent'\n }}>\n \n
\n
\n \n
\n
\n \n \n \n
\n );\n }\n\n closeErrorPopup() {\n this.setState({errorMessage: null});\n }\n\n onSubmit = (event) => {\n event.preventDefault();\n\n if (this.state.code !== '') {\n const sessionId = DataManager.sharedInstance.sessionId;\n\n api.validateRegisterCode(sessionId, this.state.code, (response, error) => {\n //this.setState({isLoading: false});\n if (error) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (response.error) {\n this.setState({errorMessage: response.error});\n } else {\n //Success\n this.props.history.push('/register/finish', {\n sessionId: sessionId,\n code: this.state.code\n });\n }\n }\n });\n }\n }\n}\n\nexport default (RegisterEnterCode)","import React from 'react';\nimport globals from \"../../globals\";\nimport * as api from \"../../api\";\nimport './RegisterNotFound.css';\nimport {Link} from \"react-router-dom\";\nimport images from \"../../images\";\nimport {Desktop, Mobile} from \"../../App\";\n\nexport default class RegisterNotFound extends React.Component {\n constructor(props) {\n super(props);\n\n this.type = props.match.params.type;\n\n this.state = {\n utilities: []\n }\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n

Join My Water Advisor

\n
\n

{this.type === 'phone' ? 'Phone number' : 'Account'} was not\n found

\n

Please try\n another {this.type === 'phone' ? 'phone number' : 'account'} or registering with {this.type === 'phone' ? 'account' : 'phone number'}\n

\n \n
\n

Need\n help? Call your utility office

\n

Your water utility name can be\n found\n in the monthly water bill

\n \n \n
\n {this.state.utilities.map(item => {\n return
\n

{item.description}

\n

{item.phoneNumber}

\n
\n })}\n
\n
);\n }\n\n _renderDesktop() {\n return (\n
\n

Join My Water Advisor

\n
\n

{this.type === 'phone' ? 'Phone number' : 'Account'} was not\n found

\n

Please try\n another {this.type === 'phone' ? 'phone number' : 'account'} or registering with {this.type === 'phone' ? 'account' : 'phone number'}\n

\n \n
\n

Need\n help? Call your utility office

\n

Your water utility name can be found\n in the monthly water bill

\n \n \n
\n {this.state.utilities.map(item => {\n return
\n

{item.description}

\n

{item.phoneNumber}

\n
\n })}\n
\n
);\n }\n\n onChangeUtilityName = (event) => {\n const term = event.target.value;\n if (term.length >= 2) {\n api.searchUtilities(term, (res, err) => {\n if (!err) {\n this.setState({utilities: res});\n }\n })\n } else if (term.length === 0) {\n this.setState({utilities: []});\n }\n };\n}","import React from 'react';\nimport {Desktop, Mobile} from \"../../App\";\nimport './RegisterFinish.css';\nimport * as api from \"../../api\";\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport * as validators from '../../validators';\nimport DataManager from \"../../managers/DataManager\";\nimport images from \"../../images\";\nimport {Link} from \"react-router-dom\";\nimport Popup from \"reactjs-popup\";\nimport TermsOfUse from \"../common/TermsOfUse\";\nimport PersistenceManager from \"../../managers/PersistenceManager\";\nimport utils from \"../../utils\";\nimport globals from \"../../globals\";\nimport AppPopup from \"../../components/AppPopup\";\n\nclass RegisterFinish extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n email: '',\n confirmEmail: '',\n pass: '',\n confirmPass: '',\n isSecure: true,\n openTerms: false,\n openPrivacy: false,\n isNumCharsValid: true,\n isCharsValid: true,\n errorMessage: null\n }\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n

Join My Water Advisor

\n
\n
\n

PROVIDE A VALID E-MAIL

\n this.setState({email: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n
\n
\n

REPEAT E-MAIL

\n this.setState({confirmEmail: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n
\n
\n

CHOOSE A NEW PASSWORD TO USE

\n
\n this.setState({pass: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n \n
\n
\n

Must contain numbers and\n characters

\n

Must\n contain 8 characters or\n more

\n
\n

TYPE THE PASSWORD AGAIN

\n
\n this.setState({confirmPass: event.target.value})}\n value={this.state.confirmPass}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n \n
\n
\n
\n

By signing up, you agree to Terms\n of Use and Privacy Policy

\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n

Join My Water Advisor

\n
\n
\n

PROVIDE A VALID E-MAIL

\n this.setState({email: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n
\n
\n

REPEAT E-MAIL

\n this.setState({confirmEmail: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n
\n
\n

CHOOSE A NEW PASSWORD TO USE

\n
\n this.setState({pass: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n \n
\n
\n

Must\n contain numbers and\n characters

\n

Must\n contain 8 characters or\n more

\n
\n

TYPE THE PASSWORD AGAIN

\n
\n this.setState({confirmPass: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n \n
\n
\n
\n

By signing up, you agree to Terms\n of Use and Privacy Policy

\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n );\n }\n\n openPrivacy = () => {\n this.setState({openPrivacy: true});\n };\n\n closePrivacy = () => {\n this.setState({openPrivacy: false});\n };\n\n openTerms = () => {\n this.setState({openTerms: true});\n };\n\n closeTerms = () => {\n this.setState({openTerms: false});\n };\n\n closePopup = () => {\n this.setState({errorMessage: null});\n };\n\n onSubmit = (event) => {\n event.preventDefault();\n\n const sessionId = DataManager.sharedInstance.sessionId;\n const {code} = this.props.match.params;\n const {email, confirmEmail, pass, confirmPass} = this.state;\n if (pass !== confirmPass) {\n this.setState({errorMessage: 'Passwords do not match.'});\n } else if (email !== confirmEmail) {\n this.setState({errorMessage: 'Emails do not match.'});\n } else {\n //const isCharsValid = /^\\w+$/.test(pass);\n const isCharsValid = /^(?=.*[a-zA-Z])(?=.*[0-9])/.test(pass);\n const isNumCharsValid = pass.length >= 8;\n\n this.setState({isCharsValid: isCharsValid});\n this.setState({isNumCharsValid: isNumCharsValid});\n\n if (isCharsValid && isNumCharsValid) {\n //Success\n //this.setState({isLoading: true});\n api.registerFinish(sessionId, email, pass, code, (response, error) => {\n //this.setState({isLoading: false});\n if (error) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (response.error) {\n this.setState({errorMessage: response.error});\n } else {\n //Success\n const uniqueId = utils.generateId();\n api.login(email, pass, uniqueId, (response, error) => {\n if (error) {\n console.log('Unknown error has occurred.');\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (response.error) {\n console.log(response.error);\n this.setState({errorMessage: response.error});\n } else {\n const token = response.token;\n console.log('token = ' + token);\n api.setTokenValue(token);\n\n PersistenceManager.storeItem(globals.STORAGE.TOKEN, token);\n\n this.props.history.push('/home');\n this.props.onLogin();\n }\n }\n });\n\n }\n }\n })\n }\n }\n\n };\n\n toggleSecurePass(event) {\n event.preventDefault();\n if (event.detail !== 0) {\n this.setState({ isSecure: !this.state.isSecure });\n }\n }\n}\n\nexport default (RegisterFinish)","import React from 'react';\nimport * as validators from \"../../validators\";\nimport images from \"../../images\";\nimport './ChangePassword.css';\nimport '../../App.css';\nimport * as api from \"../../api\";\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport {Desktop, Mobile} from \"../../App\";\nimport DataManager from \"../../managers/DataManager\";\nimport Popup from \"reactjs-popup\";\nimport AppPopup from \"../../components/AppPopup\";\n\nclass ChangePassword extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n pass: '',\n confirmPass: '',\n isSecureNewPass: true,\n isSecureConfirmPass: true,\n errorMessage: null\n };\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n

Change Password

\n
\n
\n

CHOOSE A PASSWORD YOU WISH TO\n USE

\n
\n this.setState({pass: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n \n
\n
\n
\n

TYPE THE PASSWORD AGAIN

\n
\n this.setState({confirmPass: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n

Change Password

\n
\n
\n

CHOOSE A PASSWORD YOU WISH TO USE

\n
\n this.setState({pass: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n \n
\n
\n
\n

TYPE THE PASSWORD AGAIN

\n
\n this.setState({confirmPass: event.target.value})}\n style={{paddingLeft: 10, paddingRight: 10, display: 'flex', fontSize: 16}}>\n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n );\n }\n\n closePopup() {\n this.setState({errorMessage: null});\n }\n\n toggleSecureNewPass(event) {\n event.preventDefault();\n this.setState({isSecureNewPass: !this.state.isSecureNewPass});\n };\n\n toggleSecureConfirmPass(event) {\n event.preventDefault();\n this.setState({isSecureConfirmPass: !this.state.isSecureConfirmPass});\n };\n\n onSubmit = (event) => {\n event.preventDefault();\n\n const {pass, confirmPass} = this.state;\n if (pass !== confirmPass) {\n this.setState({errorMessage: 'Passwords do not match.'});\n } else {\n //const isCharsValid = /^\\w+$/.test(pass);\n const isCharsValid = /^(?=.*[a-zA-Z])(?=.*[0-9])/.test(pass);\n const isNumCharsValid = pass.length >= 8;\n\n // this.setState({isCharsValid: isCharsValid});\n // this.setState({isNumCharsValid: isNumCharsValid});\n\n if (isCharsValid && isNumCharsValid) {\n //Success\n const {code} = this.props.match.params;\n //this.setState({isLoading: true});\n api.finishRecovery(code, pass, (response, error) => {\n //this.setState({isLoading: false});\n if (error) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (response.error) {\n //Error\n this.setState({errorMessage: response.error});\n } else {\n //Success\n this.setState({errorMessage: 'Password was reset successfully.'});\n //DataManager.sharedInstance.onEnter();\n\n this.props.history.push('/login');\n }\n }\n });\n } else {\n this.setState({errorMessage: 'Password must contain numbers and letters.\\nPassword must contain 8 characters or more.'});\n }\n }\n };\n}\n\nexport default (ChangePassword)","import React from 'react';\nimport * as api from \"../../api\";\nimport DataManager from \"../../managers/DataManager\";\nimport * as validators from \"../../validators\";\nimport images from \"../../images\";\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport {Desktop, Mobile} from \"../../App\";\nimport Popup from \"reactjs-popup\";\nimport AppPopup from \"../../components/AppPopup\";\n\nclass EnterCodePassword extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n code: '',\n errorMessage: null\n }\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n

Change Password

\n

Enter the code that was sent via email.

\n
\n this.setState({code: event.target.value})}\n className=\"codeInput rectangle rectangleMobile\" value={this.state.code}\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n border: 0,\n backgroundColor: 'transparent'\n }}>\n \n
\n \n
\n
\n \n \n \n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n

Change Password

\n

Enter the code that was sent via email.

\n

{this.state.phone}

\n
\n
\n this.setState({code: event.target.value})}\n className=\"codeInput rectangle\" value={this.state.code}\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n border: 0,\n backgroundColor: 'transparent'\n }}>\n \n
\n
\n \n
\n
\n \n \n \n
\n );\n }\n\n closeErrorPopup() {\n this.setState({errorMessage: null});\n }\n\n onSubmit = (event) => {\n event.preventDefault();\n\n //this.setState({isLoading: true});\n if (this.state.code !== '') {\n api.validateRecoveryCode(this.state.code, (res, error) => {\n console.log(res, error);\n //this.setState({isLoading: false});\n if (error) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (res.error) {\n this.setState({errorMessage: res.error});\n } else {\n this.props.history.push(`/password/change/${this.state.code}`);\n }\n }\n });\n }\n }\n}\n\nexport default (EnterCodePassword)","import React from 'react';\nimport './Settings.css';\nimport {Desktop, Mobile} from \"../../App\";\nimport Toggle from 'react-toggle';\nimport * as api from \"../../api\";\nimport {AlertType} from \"../../utils\";\nimport DataManager from \"../../managers/DataManager\";\nimport images from \"../../images\";\nimport globals from \"../../globals\";\nimport {Link} from \"react-router-dom\";\n\nexport default class Settings extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n alertSettings: [[false, false], [false, false], [false, false]],\n user: DataManager.sharedInstance.user,\n // user: {firstName: 'Steve', lastName: 'Davis', accountNumber: '1234567'},\n meters: DataManager.sharedInstance.meters\n };\n\n this.toggleSwitch = this.toggleSwitch.bind(this);\n }\n\n componentWillMount() {\n api.getMeters((res, err) => {\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n DataManager.sharedInstance.meters = this.meters;\n this.setState({meters: res});\n }\n }\n });\n\n api.getAlertSettings((res, err) => {\n //this.setState({isLoading: false});\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n if (res.length > 0) {\n let alertSettings = this.state.alertSettings;\n res.map(({alertTypeId, mediaTypeId}) => {\n switch (alertTypeId) {\n case AlertType.SUSPECTED_LEAK: {\n alertSettings[0][mediaTypeId === 1 ? 0 : 1] = true;\n break;\n }\n case AlertType.MONTHLY_CONS_LIMIT: {\n alertSettings[1][mediaTypeId === 1 ? 0 : 1] = true;\n break;\n }\n case AlertType.DAILY_USAGE_VACATION: {\n alertSettings[2][mediaTypeId === 1 ? 0 : 1] = true;\n break;\n }\n }\n });\n\n this.setState({alertSettings});\n }\n }\n }\n });\n }\n\n componentWillReceiveProps(nextProps, nextContext) {\n console.log('here');\n this.setState({user: DataManager.sharedInstance.user});\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderDesktop() {\n return (\n
\n
\n
Set Real-Time Alerts according to your preferences
\n
\n
\n
Alerts
\n
Suspected Leak
\n
Billing Cycle Consumption Limit
\n
Daily Usage During Vacation\n
\n
\n
\n
Email alert
\n
\n this.toggleSwitch(0, 0)}/>\n
\n
\n this.toggleSwitch(1, 0)}/>\n
\n
\n this.toggleSwitch(2, 0)}/>\n
\n
\n
\n
SMS alert
\n
\n this.toggleSwitch(0, 1)} disabled={!this.state?.user?.phoneNumber?.phoneNumber} />\n
\n
\n this.toggleSwitch(1, 1)} disabled={!this.state?.user?.phoneNumber?.phoneNumber} />\n
\n
\n this.toggleSwitch(2, 1)} style={{marginTop: 8}} disabled={!this.state?.user?.phoneNumber?.phoneNumber} />\n
\n
\n
\n

\n

\n
\n \n
My Water Meters
\n
\n
\n {this.state.meters && this.state.meters.map(item => {\n console.log('this.state.meters', this.state.meters);\n return \n

{item.meterSn}

\n

{item.fullAddress ? item.fullAddress : globals.METER_DEFAULT_ADDRESS}

\n
\n })}\n
\n
\n
\n
\n
\n
\n
\n
Name
\n
Account Number
\n
Phone Number
\n
\n
\n {this.state.user.firstName} {this.state.user.lastName}
\n
{this.state.user.accountNumber}
\n
{this.state.user.phoneNumber ? `${this.state.user.phoneNumber.countryCode}-${this.state.user.phoneNumber.phoneNumber}` : ''}
\n
\n
\n
a
\n
a
\n Edit\n
\n
\n \n
\n \n \n );\n }\n\n _renderMobile() {\n return (\n
\n

Set Real-Time Alerts according to your\n preferences

\n
\n
\n
Alerts\n
\n
Suspected\n Leak\n
\n
Monthly\n Consumption\n Limit\n
\n
Daily Usage\n Vacation\n
\n
\n
\n
Email alert
\n
\n this.toggleSwitch(0, 0)}/>\n
\n
\n this.toggleSwitch(1, 0)}/>\n
\n
\n this.toggleSwitch(2, 0)}/>\n
\n
\n
\n
SMS alert
\n
\n this.toggleSwitch(0, 1)}/>\n
\n
\n this.toggleSwitch(1, 1)}/>\n
\n
\n this.toggleSwitch(2, 1)} style={{marginTop: 8}}/>\n
\n
\n
\n

\n

\n
\n \n
My Water Meters
\n
\n
\n {this.state.meters.map(item => {\n return \n
{item.meterSn}
\n
{item.fullAddress ? item.fullAddress : globals.METER_DEFAULT_ADDRESS}
\n
\n })}\n
\n
\n
\n
\n
\n
Name
\n
Account Number
\n
Phone Number
\n
\n
\n {this.state.user.firstName} {this.state.user.lastName}
\n
{this.state.user.accountNumber}
\n
{this.state.user.phoneNumber ? `${this.state.user.phoneNumber.countryCode}-${this.state.user.phoneNumber.phoneNumber}` : ''}
\n
\n
\n
a
\n
a
\n Edit\n
\n
\n \n \n \n );\n }\n\n openChangePhone = () => {\n this.props.onOpenChangePhone();\n };\n\n openChangePass = () => {\n this.props.onOpenChangePass();\n };\n\n toggleSwitch = (sectionIndex, index) => {\n const value = !this.state.alertSettings[sectionIndex][index];\n const alertSettings = this.state.alertSettings;\n alertSettings[sectionIndex][index] = value;\n this.setState({alertSettings});\n\n let alertTypeId;\n switch (sectionIndex) {\n case 0:\n alertTypeId = AlertType.SUSPECTED_LEAK;\n break;\n case 1:\n alertTypeId = AlertType.MONTHLY_CONS_LIMIT;\n break;\n case 2:\n alertTypeId = AlertType.DAILY_USAGE_VACATION;\n break;\n }\n\n const mediaTypeId = index === 0 ? 1 : 3;\n if (value) {\n api.setAlert(alertTypeId, mediaTypeId, (res, err) => {\n\n });\n } else {\n api.unsetAlert(alertTypeId, mediaTypeId, (res, err) => {\n\n });\n }\n\n };\n}\n","import React from \"react\";\nimport \"./MonthlyLimitPopup.css\";\nimport images from \"../../images\";\nimport \"../../App.css\";\nimport { Desktop, Mobile } from \"../../App\";\nimport Toggle from \"react-toggle\";\nimport * as validators from \"../../validators\";\nimport DataManager from \"../../managers/DataManager\";\nimport { AlertType } from \"../../utils\";\nimport * as api from \"../../api\";\nimport Popup from \"reactjs-popup\";\nimport AppPopup from \"../../components/AppPopup\";\n\nclass MonthlyLimitPopup extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n smsAlert: false,\n emailAlert: false,\n monthlyLimit: this.props.monthlyLimit ? this.props.monthlyLimit : \"\",\n errorMessage: null,\n };\n }\n componentWillMount() {\n api.getAlertSettings((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n if (res.length > 0) {\n let emailAlert = false;\n let smsAlert = false;\n\n res.forEach((alertSetting) => {\n if (alertSetting.alertTypeId === AlertType.MONTHLY_CONS_LIMIT) {\n alertSetting.mediaTypeId === 1\n ? (emailAlert = true)\n : (smsAlert = true);\n }\n });\n\n this.setState({ emailAlert, smsAlert });\n }\n }\n }\n });\n }\n\n render() {\n return (\n
\n \n {(matches) => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n const units = DataManager.sharedInstance.units;\n return (\n \n

\n Set Billing Cycle Consumption Limit\n

\n \n \n this.setState({ monthlyLimit: event.target.value })\n }\n type=\"text\"\n className=\"borderRect\"\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: \"flex\",\n fontSize: 16,\n textAlign: \"center\",\n }}\n value={this.state.monthlyLimit}\n >\n
\n {units}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n _renderDesktop() {\n const units = DataManager.sharedInstance.units;\n return (\n \n

\n Set Billing Cycle Consumption Limit\n

\n \n {\n if (\n !event.target.value ||\n event.target.value.match(/^\\d{1,}(\\.\\d{0,4})?$/)\n ) {\n this.setState({ monthlyLimit: event.target.value });\n }\n }}\n type=\"text\"\n className=\"borderRect\"\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: \"flex\",\n fontSize: 16,\n textAlign: \"center\",\n }}\n value={this.state.monthlyLimit}\n >\n
\n {units}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n saveMonthlyLimit = () => {\n if (this.state.monthlyLimit === \"\") {\n return;\n }\n\n if (isNaN(this.state.monthlyLimit)) {\n this.setState({ errorMessage: \"Invalid monthly limit set\" });\n return;\n }\n\n if (this.state.smsAlert) {\n api.setAlert(AlertType.MONTHLY_CONS_LIMIT, 3, (res, err) => {});\n } else {\n api.unsetAlert(AlertType.MONTHLY_CONS_LIMIT, 3, (res, err) => {});\n }\n\n if (this.state.emailAlert) {\n api.setAlert(AlertType.MONTHLY_CONS_LIMIT, 1, (res, err) => {});\n } else {\n api.unsetAlert(AlertType.MONTHLY_CONS_LIMIT, 1, (res, err) => {});\n }\n\n if (this.state.monthlyLimit === \"\") {\n //deleteMonthlyLimit\n api.deleteMonthlyLimit(this.props.meterCount, (res, err) => {\n if (err) {\n console.log(\"setMonthlyLimit, \" + err);\n }\n });\n } else {\n console.log(\"setMonthlyLimit\", this.state.monthlyLimit);\n api.setMonthlyLimit(\n this.state.monthlyLimit,\n this.props.meterCount,\n (res, err) => {\n if (err) {\n console.log(\"setMonthlyLimit, \" + err);\n }\n }\n );\n }\n\n this.closePopupSave(this.state.monthlyLimit);\n };\n\n closePopupSave = (monthlyLimit) => {\n this.props.onClose(monthlyLimit);\n };\n\n closePopup = () => {\n this.props.onClose();\n };\n\n closeErrorPopup = () => {\n this.setState({ errorMessage: null });\n };\n\n _toggleSMSAlertSwitch(smsAlert) {\n this.setState({ smsAlert });\n }\n\n _toggleEmailAlertSwitch(emailAlert) {\n this.setState({ emailAlert });\n }\n}\n\nexport default MonthlyLimitPopup;\n","/* eslint-disable */\nimport React from 'react';\nimport Helmet from 'react-helmet';\nimport DayPicker, {DateUtils} from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport moment from \"moment\";\nimport en from 'date-fns/locale/en-US';\n\nimport images from \"../images\";\nimport {Mobile} from \"../App\";\n\nexport default class CalendarRangePicker extends React.Component {\n constructor(props) {\n super(props);\n this.handleDayClick = this.handleDayClick.bind(this);\n this.handleDayMouseEnter = this.handleDayMouseEnter.bind(this);\n this.handleResetClick = this.handleResetClick.bind(this);\n this.state = this.getInitialState();\n }\n\n getInitialState() {\n return {\n from: this.props.startDate,\n to: this.props.endDate,\n enteredTo: this.props.endDate, // Keep track of the last day for mouseEnter.\n singleDay: this.props.singleDay,\n isVacation: this.props.isVacation,\n isMonthSelection: this.props.isMonthSelection,\n shouldSelectMonth: true,\n startOfMonthSelected: false,\n fromMonth: null,\n billingCycle: this.props.billingCycle\n };\n }\n\n isSelectingFirstDay(from, to, day) {\n const isBeforeFirstDay = from && DateUtils.isDayBefore(day, from);\n const isRangeSelected = from && to;\n return !from || isBeforeFirstDay || isRangeSelected;\n }\n\n handleDayClick(day) {\n const {from, to, singleDay, isVacation} = this.state;\n\n if (isVacation && day <= new Date())\n return;\n\n if (singleDay) {\n this.setState({\n from: day,\n to: null,\n enteredTo: null\n });\n return;\n }\n\n // if (from && to && day >= from && day <= to) {\n // this.handleResetClick();\n // return;\n // }\n\n if (this.isSelectingFirstDay(from, to, day)) {\n this.setState({\n from: day,\n to: null,\n enteredTo: null\n });\n\n if (this.state.isMonthSelection && this.state.shouldSelectMonth) {\n if (!this.state.startOfMonthSelected) {\n //Selecting 'from' month\n const startOfMonth = moment(day).startOf('month').toDate();\n this.setState({\n startOfMonthSelected: !this.state.startOfMonthSelected,\n shouldSelectMonth: false,\n fromMonth: startOfMonth\n }, () => {\n const endOfMonth = moment(day).endOf('month').toDate();\n //const nextMonth = moment(day).add(1, 'month').toDate();\n //this.handleDayClick(nextMonth);\n\n this.handleDayClick(startOfMonth);\n this.handleDayClick(startOfMonth);\n this.handleDayClick(endOfMonth);\n });\n } else {\n //Selecting 'to' month\n const startOfMonth = this.state.fromMonth;\n this.setState({\n startOfMonthSelected: !this.state.startOfMonthSelected,\n shouldSelectMonth: false,\n fromMonth: null\n }, () => {\n const endOfMonth = moment(day).endOf('month').toDate();\n\n this.handleDayClick(startOfMonth);\n this.handleDayClick(startOfMonth);\n this.handleDayClick(endOfMonth);\n });\n }\n\n } else if (!this.state.shouldSelectMonth) {\n this.setState({shouldSelectMonth: true});\n }\n\n } else {\n this.setState({\n to: day,\n enteredTo: day,\n });\n\n if (this.state.isMonthSelection && !this.state.shouldSelectMonth) {\n this.setState({shouldSelectMonth: true});\n }\n }\n }\n\n handleDayMouseEnter(day) {\n const {from, to, singleDay} = this.state;\n if (singleDay)\n return;\n\n if (!this.isSelectingFirstDay(from, to, day)) {\n this.setState({\n enteredTo: day,\n });\n }\n }\n\n handleResetClick() {\n this.setState(this.getInitialState());\n }\n\n closePopup = () => {\n this.props.onClose();\n };\n\n saveDates = () => {\n this.props.onClose(this.state.from, this.state.to);\n };\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n const {from, to, enteredTo, singleDay, isVacation} = this.state;\n const modifiers = {start: from, end: enteredTo};\n const disabledDays = isVacation ? {before: new Date()} : {after: this.state.isMonthSelection\n ? moment().subtract(1, 'months').startOf('month')\n : new Date()};\n console.log(disabledDays)\n const selectedDays = [from, {from, to: enteredTo}];\n return (\n
\n \n
\n \n \n
\n \n \n \n
\n );\n }\n\n _renderDesktop() {\n const {from, to, enteredTo, singleDay, isVacation} = this.state;\n const modifiers = {start: from, end: enteredTo};\n let beforeDate = new Date();\n beforeDate.setDate(beforeDate.getDate() + 1);\n beforeDate.setHours(0, 0, 0);\n const disabledDays = isVacation ? {before: beforeDate} : {after: \n this.state.isMonthSelection\n ? moment().subtract(2, 'months').startOf('month')\n : new Date()};\n console.log('disabledDays', disabledDays)\n const selectedDays = [from, {from, to: enteredTo}];\n return (\n
\n \n\n
\n \n \n \n
\n \n \n \n
\n );\n }\n}\n","import './DefineVacationPopup.css';\nimport utils, {AlertType} from '../../utils';\nimport * as api from '../../api';\nimport DataManager from '../../managers/DataManager';\nimport moment from 'moment';\nimport {Desktop, Mobile} from '../../App';\nimport images from '../../images';\nimport Toggle from 'react-toggle';\nimport React from 'react';\nimport globals from '../../globals';\nimport CalendarRangePicker from '../../components/CalendarRangePicker';\nimport Popup from 'reactjs-popup';\nimport AppPopup from \"../../components/AppPopup\";\n\nclass DefineVacationPopup extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n smsAlert: false,\n emailAlert: false,\n consumptionDailyLimit: this.props.vacation?.consumptionDailyLimit ?? '',\n startDate: this.props.vacation?.startDate,\n endDate: this.props.vacation?.endDate,\n openCalendarPicker: false,\n errorMessage: null\n };\n\n this.vacationID = this.props.vacation?.vacationID;\n\n this.meterCount = this.props.currentMeter\n ? this.props.currentMeter\n : '';\n }\n\n componentWillMount() {\n //this.setState({isLoading: true});\n\n let tomorrowDate = new Date();\n tomorrowDate.setDate(tomorrowDate.getDate() + 1);\n\n if (typeof this.props.vacation?.startDate === 'undefined') {\n this.setState({\n startDate: tomorrowDate,\n endDate: tomorrowDate\n });\n }\n\n api.getAlertSettings((res, err) => {\n //this.setState({isLoading: false});\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n if (res.length > 0) {\n let emailAlert = false;\n let smsAlert = false;\n\n for (let alertSetting of res) {\n if (\n alertSetting.alertTypeId ===\n AlertType.DAILY_USAGE_VACATION\n ) {\n alertSetting.mediaTypeId === 0\n ? (emailAlert = true)\n : (smsAlert = true);\n }\n }\n\n this.setState({emailAlert, smsAlert});\n }\n }\n }\n });\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n const units = DataManager.sharedInstance.units;\n return (\n \n

\n Define usage limit while away\n

\n \n
\n
Daily usage limit
\n \n \n this._onChangeLimit(event.target.value)\n }\n type=\"text\"\n className=\"borderRectVacation\"\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16,\n marginTop: 8,\n // textAlign: 'center'\n }}\n value={this.state.consumptionDailyLimit}\n />\n \n {units}\n
\n \n \n \n
\n Vacation dates\n
\n \n \n
From
\n \n \n \n \n \n \n
To
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n );\n }\n\n _renderDesktop() {\n console.log('this.state.consumptionDailyLimit', this.state.consumptionDailyLimit);\n const units = DataManager.sharedInstance.units;\n\n let tomorrowDate = new Date();\n tomorrowDate.setDate(tomorrowDate.getDate() + 1);\n return (\n \n

\n Define usage limit while away\n

\n \n \n
Daily usage limit
\n \n \n this._onChangeLimit(event.target.value)\n }\n type=\"text\"\n className=\"vacationInput\"\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n width: '85%',\n fontSize: 16,\n borderRadius: 0\n // textAlign: 'center'\n }}\n value={this.state.consumptionDailyLimit}\n />\n \n {units}\n \n \n
{typeof this.state.consumptionDailyLimit !== 'undefined' && parseFloat(this.state.consumptionDailyLimit) === 0 ? 'You need to choose more than 0 gallons' : ''}
\n \n \n
Vacation dates
\n \n \n
From
\n \n \n \n \n \n \n \n
To
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n );\n }\n\n closeErrorPopup = () => {\n this.setState({errorMessage: null});\n };\n\n _onChangeLimit = limit => {\n if (limit === '' || utils.containsNumbersAndPoint(limit))\n this.setState({consumptionDailyLimit: limit});\n };\n\n closeCalendarPicker = (startDate, endDate) => {\n this.setState({\n openCalendarPicker: false,\n startDate: startDate ? startDate : this.state.startDate,\n endDate: endDate ? endDate : this.state.endDate\n });\n };\n\n closePopupSave = vacation => {\n this.props.onClose(vacation);\n };\n\n closePopup = () => {\n this.props.onClose();\n };\n\n saveVacation = () => {\n if (isNaN(this.state.consumptionDailyLimit) || this.state.consumptionDailyLimit === '' || parseFloat(this.state.consumptionDailyLimit) <= 0) {\n this.setState({errorMessage: 'Invalid daily limit set'});\n return;\n }\n\n if (\n !this.state.startDate ||\n this.state.startDate === '' ||\n !this.state.endDate ||\n this.state.endDate === ''\n ) {\n this.setState({errorMessage: 'Invalid start/end date set'});\n return;\n }\n\n if (this.vacationID) {\n //Edit\n if (this.state.smsAlert) {\n api.setAlert(\n AlertType.DAILY_USAGE_VACATION,\n 3,\n (res, err) => {\n }\n );\n } else {\n api.unsetAlert(\n AlertType.DAILY_USAGE_VACATION,\n 3,\n (res, err) => {\n }\n );\n }\n\n if (this.state.emailAlert) {\n api.setAlert(\n AlertType.DAILY_USAGE_VACATION,\n 1,\n (res, err) => {\n }\n );\n } else {\n api.unsetAlert(\n AlertType.DAILY_USAGE_VACATION,\n 1,\n (res, err) => {\n }\n );\n }\n\n api.editVacation(\n this.vacationID,\n moment(this.state.startDate).format(\n globals.DATE.STANDARD_FORMAT\n ),\n moment(this.state.endDate).format(globals.DATE.STANDARD_FORMAT),\n this.state.consumptionDailyLimit,\n this.meterCount.meterCount,\n (res, err) => {\n if (err) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (res.error) {\n this.setState({errorMessage: res.error});\n } else {\n DataManager.sharedInstance.vacation = {\n startDate: this.state.startDate,\n endDate: this.state.endDate,\n vacationID: this.vacationID,\n consumptionDailyLimit: this.state\n .consumptionDailyLimit,\n meterCount: this.meterCount.meterCount\n };\n\n this.closePopupSave(\n DataManager.sharedInstance.vacation\n );\n }\n }\n }\n );\n } else {\n //Create\n if (this.state.smsAlert) {\n api.setAlert(\n AlertType.DAILY_USAGE_VACATION,\n 3,\n (res, err) => {\n }\n );\n } else {\n api.unsetAlert(\n AlertType.DAILY_USAGE_VACATION,\n 3,\n (res, err) => {\n }\n );\n }\n\n if (this.state.emailAlert) {\n api.setAlert(\n AlertType.DAILY_USAGE_VACATION,\n 1,\n (res, err) => {\n }\n );\n } else {\n api.unsetAlert(\n AlertType.DAILY_USAGE_VACATION,\n 1,\n (res, err) => {\n }\n );\n }\n api.addVacation(\n moment(this.state.startDate).format(\n globals.DATE.STANDARD_FORMAT\n ),\n moment(this.state.endDate).format(globals.DATE.STANDARD_FORMAT),\n this.state.consumptionDailyLimit,\n this.meterCount.meterCount,\n (res, err) => {\n this.setState({isLoading: false});\n if (err) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (res.error) {\n this.setState({errorMessage: res.error});\n } else {\n const vacationID = res.newVacationId;\n DataManager.sharedInstance.vacation = {\n startDate: this.state.startDate,\n endDate: this.state.endDate,\n vacationID: vacationID,\n consumptionDailyLimit: this.state\n .consumptionDailyLimit,\n meterCount: this.meterCount.meterCount\n };\n\n this.closePopupSave(\n DataManager.sharedInstance.vacation\n );\n }\n }\n }\n );\n }\n };\n\n onChooseDate() {\n this.setState({openCalendarPicker: true});\n // this.props.navigation.navigate('CalendarRangePicker', {\n // startDate: this.state.startDate, endDate: this.state.endDate,\n // onDateSelected: (startDate, endDate) => this.setState({startDate, endDate})\n // });\n }\n\n _toggleSMSAlertSwitch(smsAlert) {\n this.setState({smsAlert});\n }\n\n _toggleEmailAlertSwitch(emailAlert) {\n this.setState({emailAlert});\n }\n}\n\nexport default (DefineVacationPopup)","import React from 'react';\nimport globals from \"../globals\";\n\nexport default class Tabs extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedIndex: 0\n }\n }\n\n render() {\n const {items, style} = this.props;\n return (\n
\n {items.map((item, index) => {\n return (\n \n );\n })}\n
\n );\n }\n\n _onChange = (index) => {\n if (index === this.state.selectedIndex) return;\n this.setState({selectedIndex: index});\n this.props.onTabSelected(index);\n };\n}","import React, { PureComponent } from \"react\";\nimport globals from \"../globals\";\nimport utils from \"../utils\";\nimport { Bar } from \"react-chartjs-2\";\nimport moment from \"moment\";\nimport DataManager from \"../managers/DataManager\";\nimport { Mobile, Mobile2, Desktop, Desktop2, Desktop3 } from \"../App\";\n\nconst Statistics = ({ data }) => {\n return (\n \n {(matches) => {\n if (matches)\n return (\n \n \n \n Minimum\n \n \n {data\n ?.reduce((min, val) => (val < min ? val : min), data[0])\n .toFixed(0)}\n \n \n \n \n Maximum\n \n \n {data\n ?.reduce((max, val) => (val > max ? val : max), data[0])\n .toFixed(0)}\n \n \n \n \n Average\n \n \n {(data?.reduce((a, v) => a + v) / data?.length).toFixed(0)}\n \n \n \n \n Total\n \n \n {data?.reduce((a, v) => a + v).toFixed(0)}\n \n \n \n );\n else\n return (\n \n \n \n Minimum\n \n \n {data\n ?.reduce((min, val) => (val < min ? val : min), data[0])\n .toFixed(0)}\n \n \n \n \n Maximum\n \n \n {data\n ?.reduce((max, val) => (val > max ? val : max), data[0])\n .toFixed(0)}\n \n \n \n \n Average\n \n \n {(data?.reduce((a, v) => a + v) / data?.length).toFixed(0)}\n \n \n \n \n Total\n \n \n {data?.reduce((a, v) => a + v).toFixed(0)}\n \n \n \n );\n }}\n \n );\n};\n\nconst Legend = ({ entries }) => {\n return (\n \n {entries?.map((item, index) => {\n return (\n \n \n \n {item?.text}\n \n \n );\n })}\n \n );\n};\n\nexport default class MeterChart extends PureComponent {\n constructor(props) {\n super(props);\n\n this.state = { width: 0, height: 0 };\n this.updateWindowDimensions = this.updateWindowDimensions.bind(this);\n\n this.options = {\n responsive: true,\n maintainAspectRatio: true,\n aspectRatio: 2,\n };\n }\n\n // componentDidUpdate(prevProps, prevState) {\n // console.log('componentDidUpdate prevProps', prevProps);\n // console.log('componentDidUpdate this.props', this.props);\n // if (prevProps.type !== this.props.type || prevProps.timeType !== this.props.timeType) {\n // const {type, timeType, units, selectedMeter} = this.props;\n // if (type === 0) {\n // //My consumptions\n // switch (timeType) {\n // case 0:\n // return this._renderMonthlyChart(units);\n // case 1:\n // return this._renderDailyChart(units);\n // case 2:\n // return this._renderHourlyChart(units);\n // }\n // } else if (type === 1) {\n // if (selectedMeter) {\n // //Year\n // return this._renderYearChart(units);\n // } else {\n // //Neighbor\n // return this._renderNeighborChart(units);\n // }\n\n // } else {\n // //Year\n // return this._renderYearChart(units);\n // }\n // }\n // }\n\n componentDidMount() {\n this.updateWindowDimensions();\n window.addEventListener(\"resize\", this.updateWindowDimensions);\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWindowDimensions);\n }\n\n updateWindowDimensions() {\n this.setState({ width: window.innerWidth, height: window.innerHeight });\n }\n\n render() {\n const { type, timeType, units, selectedMeter } = this.props;\n if (type === 0) {\n //My consumptions\n switch (timeType) {\n case 0:\n return this._renderMonthlyChart(units, this.props.presentationMode);\n case 1:\n console.log(\"selectedMeter\", selectedMeter);\n return this._renderDailyChart(units, selectedMeter);\n case 2:\n return this._renderHourlyChart(units);\n }\n } else if (type === 1) {\n if (selectedMeter) {\n //Year\n return this._renderYearChart(units);\n } else {\n //Neighbor\n return this._renderNeighborChart(units);\n }\n } else {\n //Year\n return this._renderYearChart(units);\n }\n }\n\n _renderYearChart(units) {\n const currentYear = utils.getYear(new Date());\n\n const allYearsData = this.props.yearsConsumptions;\n console.log(\"currentYear\", currentYear);\n console.log(\"allYearsData\", allYearsData);\n console.log(\"_renderYearChart props\", this.props);\n const prev2YearData =\n allYearsData && allYearsData.length > 0\n ? allYearsData?.filter(\n (item) =>\n utils.getYear(item.consDate) ===\n utils.getYearsBefore(currentYear, 2)\n )\n : [];\n const prevYearData =\n allYearsData && allYearsData.length > 0\n ? allYearsData?.filter(\n (item) =>\n utils.getYear(item.consDate) ===\n utils.getYearsBefore(currentYear, 1)\n )\n : [];\n const currentYearData =\n allYearsData && allYearsData.length > 0\n ? allYearsData?.filter(\n (item) => utils.getYear(item.consDate) === currentYear\n )\n : [];\n\n let isEmpty = true;\n\n if (currentYearData && currentYearData.length > 0) {\n const pivot = Math.floor(currentYearData.length / 2);\n\n for (\n let i = 0, j = currentYearData.length - 1;\n i < pivot, j >= pivot;\n i++, j--\n ) {\n if (currentYearData[i].cons > 0 || currentYearData[j].cons > 0) {\n isEmpty = false;\n break;\n }\n }\n }\n\n const chartOptions = {\n legend: {\n display: false,\n },\n layout: {\n padding: {\n bottom: 100,\n },\n },\n tooltips: {\n callbacks: {\n label: (tooltipItem, data) => {\n // data for manipulation\n return Math.round(tooltipItem?.yLabel);\n },\n },\n },\n responsive: true,\n maintainAspectRatio: true,\n scales: {\n yAxes: [\n {\n ticks: {\n beginAtZero: true,\n min: 0,\n //max: 100000,\n callback: function (label, index, labels) {\n console.log(label);\n let isTooLong = false;\n if (label.toString().includes(\".000\")) {\n label = label?.toFixed(4);\n isTooLong = true;\n }\n return label === 0\n ? `0 ${units.toLowerCase()}`\n : Number(label) === label && label % 1 === 0\n ? label / 1000 + \"k\"\n : (label / 1000)?.toFixed(4) + \"k\";\n },\n fontColor: \"#999ea8\",\n labelOffset: 20,\n },\n gridLines: {\n color: \"rgba(223,223,223, 0.4)\",\n },\n stacked: false,\n },\n ],\n xAxes: [\n {\n barPercentage: 1,\n ticks: {\n beginAtZero: true,\n labelOffset: 0,\n callback: function (label, index, labels) {\n if (\n currentYearData &&\n currentYearData.length > 0 &&\n index < currentYearData.length\n ) {\n // const date = utils\n // .getMonthName(\n // currentYearData[index].consDate\n // )\n // .toUpperCase();\n const date = moment(currentYearData[index]?.consDate)?.format(\n \"MMM\"\n );\n console.log(`date ${date}`);\n return date;\n } else if (\n prevYearData &&\n prevYearData.length > 0 &&\n index < prevYearData.length\n ) {\n // const date = utils\n // .getMonthName(\n // prevYearData[index].consDate\n // )\n // .toUpperCase();\n\n const date = moment(prevYearData[index]?.consDate)?.format(\n \"MMM\"\n );\n console.log(`date ${date}`);\n return date;\n } else if (\n prev2YearData &&\n prev2YearData.length > 0 &&\n index < prev2YearData.length\n ) {\n const date = moment(prev2YearData[index]?.consDate)?.format(\n \"MMM\"\n );\n console.log(`date ${date}`);\n return date;\n }\n },\n fontColor: \"#999ea8\",\n },\n stacked: false,\n gridLines: {\n display: false,\n },\n },\n ],\n },\n };\n\n const labels = moment.monthsShort(\"-MMM-\");\n\n const data = (canvas) => {\n const ctx = canvas.getContext(\"2d\");\n const gradient1 = ctx.createLinearGradient(0, 0, 0, 200);\n gradient1.addColorStop(0, \"#3eb3f9\");\n gradient1.addColorStop(1, \"#2b74fa\");\n\n const gradient2 = ctx.createLinearGradient(0, 0, 0, 200);\n gradient2.addColorStop(0, \"#1fede0\");\n gradient2.addColorStop(1, \"#18b6c0\");\n\n const gradient3 = ctx.createLinearGradient(0, 0, 0, 200);\n gradient3.addColorStop(0, \"#c6c6c6\");\n gradient3.addColorStop(1, \"#8d8d8d\");\n return {\n labels: labels,\n datasets: [\n {\n label: `${moment().year()}`,\n backgroundColor: gradient1,\n pointColor: \"#fff\",\n pointStrokeColor: \"#2b74fa\",\n pointHighlightFill: \"#fff\",\n pointHighlightStroke: \"#2b74fa\",\n data:\n currentYearData && currentYearData.length > 0\n ? currentYearData?.map((item) => item.cons)\n : [],\n },\n {\n label: `${moment().year() - 1}`,\n backgroundColor: gradient2,\n pointColor: \"#fff\",\n pointStrokeColor: \"#2b74fa\",\n pointHighlightFill: \"#fff\",\n pointHighlightStroke: \"#2b74fa\",\n data:\n prevYearData && prevYearData.length > 0\n ? prevYearData?.map((item) => item.cons)\n : [],\n },\n {\n label: `${moment().year() - 2}`,\n backgroundColor: gradient3,\n pointColor: \"#fff\",\n pointStrokeColor: \"#2b74fa\",\n pointHighlightFill: \"#fff\",\n pointHighlightStroke: \"#2b74fa\",\n data:\n prev2YearData && prev2YearData.length > 0\n ? prev2YearData?.map((item) => item.cons)\n : [],\n },\n ],\n };\n };\n\n return (\n
\n \n \n
\n );\n }\n\n _renderNeighborChart(units) {\n const data1 = this.props.data;\n const data2 =\n this.props.neighborData && this.props.neighborData.length > 0\n ? this.props.neighborData?.map((item) => item?.avgCons)\n : [];\n\n console.log(\"_renderNeighborChart data1\", data1);\n console.log(\"_renderNeighborChart data2\", data2);\n\n let isEmpty = true;\n\n if (data1 && data1.length > 0) {\n const pivot = Math.floor(data1.length / 2);\n\n for (let i = 0, j = data1.length - 1; i < pivot, j >= pivot; i++, j--) {\n if (data1[i].cons > 0 || data1[j].cons > 0) {\n isEmpty = false;\n break;\n }\n }\n }\n\n const chartOptions = {\n legend: {\n display: false,\n },\n layout: {\n padding: {\n bottom: 100,\n },\n },\n responsive: true,\n maintainAspectRatio: true,\n tooltips: {\n callbacks: {\n label: (tooltipItem, data) => {\n // data for manipulation\n return Math.round(tooltipItem?.yLabel);\n },\n },\n },\n scales: {\n yAxes: [\n {\n ticks: {\n beginAtZero: true,\n max: !isEmpty ? undefined : 60000,\n callback: function (label, index, labels) {\n return label === 0\n ? `0 ${units.toLowerCase()}`\n : label / 1000 + \"k\";\n },\n fontColor: \"#999ea8\",\n labelOffset: 20,\n },\n gridLines: {\n color: \"rgba(223,223,223, 0.4)\",\n },\n stacked: false,\n },\n ],\n xAxes: [\n {\n barPercentage: 1,\n ticks: {\n beginAtZero: true,\n callback: function (label, index, labels) {\n if (data1 && data1.length > 0 && data1[index]?.consDate) {\n const date = utils\n .getMonthName(data1[index]?.consDate)\n .toUpperCase();\n return date;\n }\n },\n fontColor: \"#999ea8\",\n },\n gridLines: {\n display: false,\n },\n stacked: false,\n },\n ],\n },\n };\n\n //let labels = moment.monthsShort('-MMM-');\n let labels = [];\n const startMonth = utils.getMonthDigit(data1[0]?.consDate);\n const endMonth = utils.getMonthDigit(data1[data1.length - 1]?.consDate);\n console.log(\"DATA!!!!!!!!!!!!!!!!!!!!!\", data1);\n for (\n let i = 0;\n i <\n utils.getMonthDiff(data1[0]?.consDate, data1[data1.length - 1]?.consDate);\n i++\n ) {\n labels.push(utils.getMonthName(data1[i]?.consDate));\n }\n\n // if (startMonth && endMonth) {\n // labels = labels.slice(startMonth-1, endMonth);\n // }\n\n const data = (canvas) => {\n const ctx = canvas.getContext(\"2d\");\n const gradient = ctx.createLinearGradient(0, 0, 0, 200);\n gradient.addColorStop(0, \"#3eb3f9\");\n gradient.addColorStop(1, \"#2b74fa\");\n\n return {\n labels: labels,\n datasets: [\n {\n label: \"My usage\",\n backgroundColor: gradient,\n pointColor: \"#fff\",\n pointStrokeColor: \"#2b74fa\",\n pointHighlightFill: \"#fff\",\n pointHighlightStroke: \"#2b74fa\",\n data:\n data1 && data1.length > 0\n ? data1?.map((item) => (item?.cons ? item.cons : \"No Data\"))\n : [],\n },\n {\n label: \"Household average usage\",\n backgroundColor: \"#d9d9d9\",\n pointColor: \"#fff\",\n pointStrokeColor: \"#2b74fa\",\n pointHighlightFill: \"#fff\",\n pointHighlightStroke: \"#2b74fa\",\n data: data2,\n },\n ],\n };\n };\n\n return (\n
\n \n \n
\n );\n }\n\n _renderHourlyChart(units) {\n const chartData = this.props.data;\n let isEmpty = true;\n\n if (chartData && chartData.length > 0) {\n const pivot = Math.floor(chartData.length / 2);\n\n for (\n let i = 0, j = chartData.length - 1;\n i < pivot, j >= pivot;\n i++, j--\n ) {\n if (chartData[i].cons > 0 || chartData[j].cons > 0) {\n isEmpty = false;\n break;\n }\n }\n }\n\n const chartOptions = {\n legend: {\n display: false,\n },\n layout: {\n padding: {\n bottom: 100,\n },\n },\n responsive: true,\n maintainAspectRatio: true,\n tooltips: {\n callbacks: {\n label: (tooltipItem, data) => {\n // data for manipulation\n return Math.round(tooltipItem.yLabel);\n },\n },\n },\n scales: {\n yAxes: [\n {\n ticks: {\n beginAtZero: true,\n max: !isEmpty ? undefined : 160,\n callback: function (label, index, labels) {\n return label === 0\n ? `0 ${units.toLowerCase()}`\n : Number.isInteger(label)\n ? label\n : label?.toFixed(1);\n },\n fontColor: \"#999ea8\",\n labelOffset: 20,\n },\n gridLines: {\n color: \"rgba(223,223,223, 0.4)\",\n },\n },\n ],\n xAxes: [\n {\n barPercentage: 0.4,\n labelOffset: 0,\n ticks: {\n beginAtZero: true,\n callback: function (label, index, labels) {\n if (chartData && chartData.length > 0) {\n const hour = utils\n .getHour(chartData[index]?.dateTime)\n .toUpperCase();\n if (hour === \"12\") {\n return \"12PM\";\n } else if (hour === \"00\") {\n return \"12AM\";\n } else {\n return hour % 12;\n }\n }\n },\n fontColor: \"#999ea8\",\n },\n stacked: false,\n gridLines: {\n display: false,\n },\n },\n ],\n },\n };\n\n let labels = Array(24);\n for (let i = 0; i < 24; i++) labels[i] = i;\n\n const data = (canvas) => {\n const ctx = canvas.getContext(\"2d\");\n const gradient = ctx.createLinearGradient(0, 0, 0, 200);\n gradient.addColorStop(0, \"#3eb3f9\");\n gradient.addColorStop(1, \"#2b74fa\");\n\n return {\n labels: labels,\n datasets: [\n {\n backgroundColor: gradient,\n pointColor: \"#fff\",\n pointStrokeColor: \"#2b74fa\",\n pointHighlightFill: \"#fff\",\n pointHighlightStroke: \"#2b74fa\",\n data:\n chartData && chartData.length > 0\n ? chartData?.map((item) => item?.cons && item?.cons?.toFixed(2))\n : [],\n },\n ],\n };\n };\n\n const chartShape = this.props.chartShape;\n const sum =\n chartData && chartData.length > 0\n ? chartData?.reduce(function (prev, cur) {\n return prev + cur.cons;\n }, 0)\n : 0;\n\n return chartShape === \"bar\" ? (\n
\n \n {chartData && chartData.length > 0 && (\n (item?.cons ? item?.cons : 0))}\n />\n )}\n
\n ) : (\n
    \n
    \n \n \n Data\n
    \n \n Consumption\n \n \n {chartData &&\n chartData?.map((item) => {\n return (\n \n \n \n {utils.toDisplayDateString(item?.dateTime, true)}\n \n \n \n {item?.cons?.toFixed(2)}\n \n \n \n \n );\n })}\n
    \n \n \n Total\n
    \n \n \n {sum?.toFixed(2)}\n \n \n \n \n \n
\n );\n }\n\n _renderDailyChart(units, selectedMeter) {\n let chartData = !Array.isArray(this.props.data) ? [] : this.props.data;\n let isEmpty = true;\n\n // if (typeof chartData === 'object') {\n // chartData = [];\n // chartData.push(this.props.data);\n // }\n\n console.log(\n \"_renderDailyChart data\",\n JSON.stringify(chartData),\n chartData && chartData.length > 0\n );\n\n if (chartData && chartData.length > 0) {\n //if (!utils.isToday(chartData[0].consDate)) {\n if (utils.isArrAscendingByConsDate(chartData)) {\n chartData.reverse();\n }\n\n chartData = this.props.data.filter((item, index) => index < 90);\n\n //if (utils.isToday(chartData[0].consDate)) {\n if (!utils.isArrAscendingByConsDate(chartData)) {\n chartData.reverse();\n }\n\n const pivot = Math.floor(chartData?.length / 2);\n\n for (\n let i = 0, j = chartData.length - 1;\n i < pivot, j >= pivot;\n i++, j--\n ) {\n if (chartData[i].cons > 0 || chartData[j].cons > 0) {\n isEmpty = false;\n break;\n }\n }\n }\n\n const chartOptions = {\n legend: {\n display: false,\n },\n layout: {\n padding: {\n bottom: 100,\n },\n },\n tooltips: {\n callbacks: {\n label: (tooltipItem, data) => {\n // data for manipulation\n return Math.round(tooltipItem?.yLabel);\n },\n },\n },\n responsive: true,\n maintainAspectRatio: true,\n scales: {\n yAxes: [\n {\n ticks: {\n beginAtZero: true,\n max: !isEmpty ? undefined : 2000,\n callback: function (label, index, labels) {\n if (label < 1 && label !== 0) {\n return label.toFixed(1);\n }\n\n return label === 0 ? `0 ${units.toLowerCase()}` : label;\n },\n fontColor: \"#999ea8\",\n labelOffset: 20,\n },\n gridLines: {\n color: \"rgba(223,223,223, 0.4)\",\n },\n },\n ],\n xAxes: [\n {\n barPercentage: 0.4,\n labelOffset: 0,\n ticks: {\n beginAtZero: true,\n callback: function (label, index, labels) {\n if (chartData && chartData.length > 0) {\n if (chartData[index] && chartData[index]?.consDate) {\n const date = utils\n .getDayMonth(chartData[index]?.consDate)\n .toUpperCase();\n return date;\n }\n }\n },\n fontSize: 10,\n fontColor: \"#999ea8\",\n },\n stacked: false,\n gridLines: {\n display: false,\n },\n },\n ],\n },\n };\n\n const labels =\n chartData && chartData.length > 0\n ? chartData?.map((item) => utils.getDayMonth(item?.consDate))\n : [];\n\n const chartShape = this.props.chartShape;\n const sum =\n chartData && chartData.length > 0\n ? chartData.reduce(function (prev, cur) {\n return prev + cur.cons;\n }, 0)\n : 0;\n\n const data = (canvas) => {\n const ctx = canvas.getContext(\"2d\");\n const gradient = ctx.createLinearGradient(0, 0, 0, 200);\n gradient.addColorStop(0, \"#3eb3f9\");\n gradient.addColorStop(1, \"#2b74fa\");\n\n return {\n labels: labels,\n datasets: [\n {\n backgroundColor: gradient,\n pointColor: \"#fff\",\n pointStrokeColor: \"#2b74fa\",\n pointHighlightFill: \"#fff\",\n pointHighlightStroke: \"#2b74fa\",\n data:\n chartData && chartData.length > 0\n ? chartData?.map((item) => item?.cons && item?.cons?.toFixed(2))\n : [],\n },\n ],\n };\n };\n\n return (\n \n {(matches) => {\n if (matches)\n return (\n \n \n {chartData && chartData.length > 0 && (\n \n item?.cons ? item.cons : 0\n )}\n />\n )}\n \n );\n else\n return chartShape === \"bar\" ? (\n
\n \n {chartData && chartData.length > 0 && (\n \n item?.cons ? item.cons : 0\n )}\n />\n )}\n
\n ) : (\n
    \n \n \n \n Data\n \n \n Consumption\n \n {selectedMeter && (\n \n Alerts\n \n )}\n \n {chartData &&\n chartData?.map((item) => {\n return (\n \n \n \n {utils.toDisplayDateString(item?.consDate)}\n \n \n \n {item?.cons?.toFixed(2)}\n \n \n {selectedMeter && (\n \n {item?.meterStatusDesc}\n \n )}\n \n \n );\n })}\n
    \n \n \n Total\n
    \n \n {sum?.toFixed(2)}\n \n {selectedMeter && (\n \n )}\n \n \n \n
\n );\n }}\n
\n );\n }\n\n _renderMonthlyChart(units, presentationMode) {\n let chartData = this.props.data.slice();\n const startDate = this.props.startDate;\n const endDate = this.props.endDate;\n let isEmpty = true;\n let startMonth = null;\n let endMonth = null;\n\n if (chartData && chartData.length > 0) {\n let startIndex = 0;\n let endIndex = chartData.length - 1;\n\n startMonth = utils.getMonthDigit(chartData[0]?.consDate);\n endMonth = utils.getMonthDigit(chartData[chartData.length - 1]?.consDate);\n\n chartData = chartData.slice(startIndex, endIndex + 1);\n }\n\n if (chartData && chartData.length > 0) {\n const pivot = Math.floor(chartData.length / 2);\n\n for (\n let i = 0, j = chartData.length - 1;\n i < pivot, j >= pivot;\n i++, j--\n ) {\n if (chartData[i].cons > 0 || chartData[j].cons > 0) {\n isEmpty = false;\n break;\n }\n }\n }\n\n console.log(\"chartData\", this.props.data, presentationMode);\n\n let labelOffset = 45;\n if (this.state.width >= 1350) {\n labelOffset = 45;\n } else if (this.state.width >= 1170) {\n labelOffset = 43;\n } else if (this.state.width >= 970) {\n labelOffset = 37;\n } else if (this.state.width >= 770) {\n labelOffset = 32;\n }\n\n let chartOptions = {\n legend: {\n display: false,\n },\n layout: {\n padding: {\n bottom: 100,\n },\n },\n responsive: true,\n maintainAspectRatio: true,\n tooltips: {\n callbacks: {\n label: (tooltipItem, data) => {\n // data for manipulation\n return Math.round(tooltipItem?.yLabel);\n },\n },\n },\n // return label === 0 ? `0 ${units.toLowerCase()}` : label;\n scales: {\n yAxes: [\n {\n ticks: {\n beginAtZero: true,\n max: !isEmpty ? undefined : 60000,\n callback: function (label, index, labels) {\n return utils.getChartYLabelThousands(label, units);\n },\n fontColor: \"#999ea8\",\n labelOffset: 20,\n },\n gridLines: {\n color: \"rgba(223,223,223, 0.4)\",\n },\n },\n ],\n xAxes: [\n {\n barPercentage: 0.4,\n ticks: {\n beginAtZero: true,\n // offset: true,\n // padding: 20,\n // 770 - 32\n // 970 - 37\n // 1170 - 43\n // 1350 - 45\n maxRotation: 0,\n\n // this.state.width * 0.033333\n // labelOffset: labelOffset,\n callback: function (label, index, labels) {\n if (chartData && chartData.length > 0) {\n if (chartData[index] && chartData[index].consDate) {\n if (presentationMode === \"DateRange\") {\n const date = utils.getChartRangeDates(chartData[index]?.consDate);\n // console.log(`date ${date}`);\n return date;\n } else {\n const date = moment(chartData[index]?.consDate).format(\n \"MMM\"\n );\n // console.log(`date ${date}`);\n return date;\n }\n }\n }\n },\n fontColor: \"#999ea8\",\n },\n stacked: false,\n gridLines: {\n display: false,\n },\n },\n ],\n },\n };\n\n let labels = []; //moment.monthsShort(\"-MMM-\");\n for (let i = 0; i < chartData.length; i++) {\n labels.push(moment(chartData[i]?.consDate).format(\"MMM\"));\n }\n\n const data = (canvas) => {\n const ctx = canvas.getContext(\"2d\");\n const gradient = ctx.createLinearGradient(0, 0, 0, 200);\n gradient.addColorStop(0, \"#3eb3f9\");\n gradient.addColorStop(1, \"#2b74fa\");\n\n return {\n labels: labels,\n datasets: [\n {\n backgroundColor: gradient,\n pointColor: \"#fff\",\n pointStrokeColor: \"#2b74fa\",\n pointHighlightFill: \"#fff\",\n pointHighlightStroke: \"#2b74fa\",\n data:\n chartData && chartData.length > 0\n ? chartData?.map((item) => item?.cons && item?.cons?.toFixed(2))\n : [],\n },\n ],\n };\n };\n\n const chartShape = this.props.chartShape;\n const sum =\n chartData && chartData.length > 0\n ? chartData?.reduce(function (prev, cur) {\n return prev + cur.cons;\n }, 0)\n : 0;\n\n return (\n \n {(matches) => {\n if (matches)\n return (\n \n \n {chartData && chartData.length > 0 && (\n \n item?.cons ? item.cons : 0\n )}\n />\n )}\n \n );\n else\n return chartShape === \"bar\" ? (\n
\n \n {chartData && chartData.length > 0 && (\n \n item?.cons ? item.cons : 0\n )}\n />\n )}\n
\n ) : (\n
    \n \n \n \n Data\n \n \n \n Consumption\n \n \n \n {chartData?.map((item) => {\n return (\n \n \n \n {(presentationMode === \"DateRange\") ? utils.getChartRangeDatesTable(item?.consDate) : utils.toDisplayDateString(item?.consDate)}\n \n \n \n {item?.cons ? item?.cons?.toFixed(2) : 0}\n \n \n \n \n );\n })}\n\n \n \n Total\n \n \n \n {sum?.toFixed(2)}\n \n \n \n \n
\n );\n }}\n
\n );\n }\n}\n","import React from \"react\";\nimport globals from \"../globals\";\nimport utils from \"../utils\";\nimport images from \"../images\";\nimport { Mobile } from \"../App\";\n\nexport default class MeterSelection extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n \n {(matches) => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n
\n \n
\n Choose Water Meter\n
\n this.props.onClose()}\n style={{ backgroundColor: \"transparent\" }}\n >\n \n \n
\n \n
\n {this.props.waterMeters.map((item) => {\n return (\n
\n this.props.onMeterSelected(item)}\n style={{\n color: globals.COLOR.DUSK,\n fontSize: 14,\n backgroundColor: \"transparent\",\n }}\n >\n {utils.getMeterDesc(item)}\n \n
\n );\n })}\n
\n this.props.onMeterSelected(null)}\n >\n
\n All water meters\n
\n \n
\n \n );\n }\n\n _renderDesktop() {\n return (\n
\n \n
\n Choose Water Meter\n
\n this.props.onClose()}\n style={{ backgroundColor: \"transparent\" }}\n >\n \n \n
\n \n
\n {this.props.waterMeters.map((item) => {\n return (\n
\n this.props.onMeterSelected(item)}\n style={{ color: globals.COLOR.DUSK, fontSize: 14 }}\n >\n {utils.getMeterDesc(item)}\n \n
\n );\n })}\n
\n this.props.onMeterSelected(null)}\n >\n
\n All water meters\n
\n \n \n );\n }\n}\n","import React from \"react\";\nimport DatePicker from \"react-date-picker\";\nimport \"./Home.css\";\nimport utils from \"../../utils\";\nimport * as api from \"../../api\";\nimport DataManager from \"../../managers/DataManager\";\nimport moment from \"moment\";\nimport { Desktop, Mobile } from \"../../App\";\nimport Popup from \"reactjs-popup\";\nimport MonthlyLimitPopup from \"./MonthlyLimitPopup\";\nimport images from \"../../images\";\nimport DefineVacationPopup from \"./DefineVacationPopup\";\nimport Tabs from \"../../components/Tabs\";\nimport globals from \"../../globals\";\nimport MeterChart from \"../../components/MeterChart\";\nimport MeterSelection from \"../../components/MeterSelection\";\nimport CalendarRangePicker from \"../../components/CalendarRangePicker\";\nimport * as FileSaver from \"file-saver\";\nimport PersistenceManager from \"../../managers/PersistenceManager\";\nimport { ALERTS_INTERVAL } from \"../../const\";\nimport AppPopup from \"../../components/AppPopup\";\n\nimport \"./DatePicker.css\";\n\nconst MONTH_COUNT = 12;\n\nclass Home extends React.Component {\n constructor(props) {\n super(props);\n\n this.today = new Date();\n\n this.state = {\n isLoading: false,\n startDate: moment(this.today).subtract(MONTH_COUNT, \"months\"), //1\n endDate: this.today,\n dailyStartDate: moment().subtract(31, \"days\"),\n dailyEndDate: moment(),\n monthlyDefaultStartDate: moment(this.today).subtract(MONTH_COUNT, \"months\"),\n monthlyDefaultEndDate: this.today,\n dailyDefaultStartDate: moment(this.today).subtract(1, \"months\"),\n dailyDefaultEndDate: this.today,\n currentMeter: null,\n thisMonthUsage: \"\", //'',\n forecastUsage: \"\", //'',\n monthlyLimit: \"\",\n units: \"\", //'',\n alert: undefined,\n openMonthlyLimit: false,\n openDefineVacation: false,\n openMeterSelection: false,\n openCalendarPicker: false,\n selectedChartTypeIndex: 0,\n selectedChartTimeTypeIndex: 0,\n dailyConsumptions: [],\n monthlyConsumptions: [],\n monthlyConsumptionsForNeighborhood: [],\n hourlyConsumptions: [],\n yearsConsumptions: [],\n neighborConsumptions: [],\n chartShape: \"bar\",\n errorMessage: null,\n isDefault: true,\n billingCycles: [\n { type: \"current\", billingCycleStart: \"\", billingCycleEnd: \"\" },\n {\n type: \"previous\",\n billingCycleStart: \"\",\n billingCycleEnd: \"\",\n },\n ],\n chartTypes: [],\n isCalendarDateSelected: false,\n };\n\n this.meters = [];\n\n // this.chartTypes = [\n // // 'WATER CONSUMPTION',\n // // 'ME VS. SIMILAR HOUSEHOLDS',\n // // 'COMPARE TO PREVIOUS YEAR'\n // ];\n\n this.chartTimeTypes = [\"Billing Month\", \"Daily\", \"Hourly\"];\n }\n\n getClassName = () => {\n return this.state.monthlyLimit\n ? this.state.monthlyLimit < this.state.forecastUsage\n ? \"endOfMonthForecastValue OverLimit\"\n : \"endOfMonthForecastValue Limit\"\n : \"endOfMonthForecastValue\";\n };\n\n _renderDesktop() {\n let { billingCycleStart, billingCycleEnd } = this.state.billingCycles[0];\n\n const startDate = moment(billingCycleStart).format(\"MM-DD-YYYY\");\n const endDate = moment(billingCycleEnd).subtract(1, \"days\").format(\"MM-DD-YYYY\");\n\n console.log(\n `billingCycleStart ${billingCycleStart} billingCycleEnd ${billingCycleEnd} DIFF ${moment(\n billingCycleStart\n ).diff(moment.now(), \"months\")}`\n );\n\n let billingCycleText =\n billingCycleStart && billingCycleEnd\n ? `Billing Cycle Date: ${startDate} - ${endDate}`\n : \"\";\n\n let meterDesc = \"\";\n if (!this.state.currentMeter) {\n meterDesc = `All Water Meters (${this.meters.length})`;\n } else {\n const meter = this.state.currentMeter;\n meterDesc = utils.getMeterDesc(meter);\n }\n\n let chartData;\n switch (this.state.selectedChartTypeIndex) {\n case 0: {\n //My\n switch (this.state.selectedChartTimeTypeIndex) {\n case 0:\n //Month\n chartData = this.state.monthlyConsumptions;\n break;\n case 1:\n //Day\n chartData = this.state.dailyConsumptions;\n break;\n case 2:\n //Hourly\n chartData = this.state.hourlyConsumptions;\n break;\n }\n break;\n }\n case 1: {\n //Neighbor\n chartData = this.state.monthlyConsumptionsForNeighborhood;\n break;\n }\n case 2: {\n //Year\n chartData = this.state.monthlyConsumptionsForNeighborhood;\n break;\n }\n }\n\n console.log(\"RERENDER\");\n\n return (\n
\n
\n \n \n \n
\n Water Usage for Billing Cycle\n
\n
\n \n \n this.setState(\n { openMeterSelection: true },\n () => (document.body.style.overflow = \"hidden\")\n )\n }\n >\n \n Water Meter\n
\n \n \n \n {meterDesc}\n \n \n \n \n\n \n\n \n \n \n
Current Billing Cycle
\n \n this.state.monthlyLimit\n ? \"monthlyLimitValueLabel\"\n : this.state.thisMonthUsage !== \"No Data\"\n ? \"thisMonthValueGreen\"\n : \"thisMonthValue\"\n }\n >\n {this.state.thisMonthUsage}\n \n {this.state.thisMonthUsage !== \"No Data\" && (\n \n {this.state.units.toLowerCase()}\n \n )}\n \n \n \n
\n End of Billing Cycle Forecast\n
\n \n
\n {this.state.forecastUsage}\n
\n \n {this.state.units.toLowerCase()}\n \n \n \n \n \n\n {this.state.monthlyLimit ? (\n \n
Billing Cycle Limit:
\n
\n {this.state.monthlyLimit}\n
\n {this.state.currentMeter === null ? (\n \n (Please select a specific meter to update billing cycle\n limit)\n \n ) : (\n \n Update\n \n )}\n \n ) : this.state.currentMeter === null ? (\n \n (Please select a specific meter to update billing cycle limit)\n \n ) : (\n \n Set Billing Cycle Limit\n \n )}\n \n
{billingCycleText}
\n \n \n\n \n \n {console.log(this.state?.vacations)}\n \n Get informed about water consumption while away from home\n \n {this.state.vacation ? (\n \n {this.state?.currentMeterVacation && (\n
\n {utils.toVacationDate(\n this.state.currentMeterVacation.startDate\n )}{\" \"}\n -{\" \"}\n {utils.toVacationDate(\n this.state.currentMeterVacation.endDate\n )}\n
\n )}\n {this.state?.currentMeterVacation ? (\n
\n \n Update\n \n \n Cancel vacation\n \n
\n ) : (\n <>\n {this.state?.currentMeter && (\n \n \n \n )}\n \n )}\n \n ) : (\n <>\n {this.state?.currentMeter && (\n \n \n \n )}\n \n )}\n {!this.state?.currentMeter && (\n \n Please select a specific meter to update the usage during\n vacation alert\n \n )}\n {!this.state?.currentMeter && this.state.vacation ? (\n \n {utils.toVacationDate(this.state.vacation.startDate)} -{\" \"}\n {utils.toVacationDate(this.state.vacation.endDate)}\n
\n Water Meter:{\" \"}\n {utils.findMeter(\n this.state.vacation?.meterCount,\n this.meters\n )}\n \n ) : (\n <>\n )}\n {!this.state?.currentMeter &&\n this.state?.vacations?.length > 1 ? (\n \n Additional vacation dates exist, select a specific meter to\n show\n \n ) : null}\n \n \n \n {this.state.alerts &&\n this.state.alerts.map((item) => {\n return (\n \n \n \n \n
\n
{item.alertTypeName}
\n
{`${item.meterSn}, ${\n item.address\n ? item.address\n : globals.METER_DEFAULT_ADDRESS\n }`}
\n
\n \n \n \n
\n {utils.toAlertDate(item.alertTime)}\n
\n this.onOpenAlert(item)}\n >\n \n \n \n \n \n \n );\n })}\n \n {this.state.chartTypes.map((item, index) => {\n return (\n this.onChartTypeChange(index)}\n style={{\n display: \"flex\",\n width: \"100%\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"stretch\",\n padding: 0,\n }}\n >\n \n {item}\n \n \n \n );\n })}\n \n \n {this.state.selectedChartTypeIndex === 0 && (\n \n \n {this.chartTimeTypes.map((item, index) => {\n return (\n this.onChartTimeChange(index)}\n >\n \n {item}\n \n \n );\n })}\n \n \n \n
\n {this.state.selectedChartTimeTypeIndex !== 2\n ? \"From\"\n : \"\\n\"}\n
\n {this.state.selectedChartTimeTypeIndex === 0 ? (\n {\n this.closeCalendarPicker(\n startDate,\n !this.state.selectedChartTimeTypeIndex\n ? moment(this.state.endDate).diff(\n startDate,\n \"months\"\n ) > MONTH_COUNT\n ? moment(startDate).add(MONTH_COUNT, \"month\")\n : moment(this.state.endDate).diff(\n startDate,\n \"months\"\n ) < 0\n ? startDate\n : this.state.endDate\n : moment(this.state.dailyEndDate).diff(\n startDate,\n \"days\"\n ) > 30\n ? moment(startDate).add(31, \"days\")\n : moment(this.state.dailyEndDate).diff(\n startDate,\n \"days\"\n ) < 0\n ? startDate\n : this.state.dailyEndDate\n );\n }}\n closeCalendar={false}\n clearIcon={null}\n maxDetail={\n !this.state.selectedChartTimeTypeIndex\n ? \"year\"\n : \"month\"\n }\n format={\n !this.state.selectedChartTimeTypeIndex\n ? \"yyyy,MMM\"\n : \"yyyy,MMM, d\"\n }\n value={utils.toDateFromString(\n !this.state.selectedChartTimeTypeIndex\n ? this.state.startDate\n : this.state.dailyStartDate\n )}\n calendarIcon={}\n maxDate={\n this.state.billingCycles[0].billingCycleStart !== \"\" &&\n moment(\n this.state.billingCycles[0].billingCycleStart\n ).diff(moment.now()) <= 0\n ? new Date(\n this.state.billingCycles[0].billingCycleStart\n )\n : new Date()\n }\n minDetail={\"year\"}\n />\n ) : (\n \n \n \n {this.state.selectedChartTimeTypeIndex === 0\n ? utils.toMonthDate(this.state.startDate)\n : this.state.selectedChartTimeTypeIndex === 1\n ? !this.state.isCalendarDateSelected\n ? utils.toVacationDate(\n this.state.billingCycles[0]?.billingCycleStart\n )\n : utils.toVacationDate(this.state.startDate)\n : utils.toVacationDate(this.state.endDate)}\n \n \n )}\n \n {this.state.selectedChartTimeTypeIndex !== 2 && (\n \n
To
\n {this.state.selectedChartTimeTypeIndex === 0 ? (\n {\n this.closeCalendarPicker(\n !this.state.selectedChartTimeTypeIndex\n ? moment(endDate).diff(\n this.state.startDate,\n \"months\"\n ) > MONTH_COUNT\n ? moment(endDate).subtract(MONTH_COUNT, \"month\")\n : this.state.startDate\n : moment(endDate).diff(\n this.state.dailyStartDate,\n \"days\"\n ) > 30\n ? moment(endDate).subtract(31, \"days\")\n : this.state.dailyStartDate,\n endDate\n );\n }}\n clearIcon={null}\n maxDetail={\n !this.state.selectedChartTimeTypeIndex\n ? \"year\"\n : \"month\"\n }\n format={\n !this.state.selectedChartTimeTypeIndex\n ? \"yyyy,MMM\"\n : \"yyyy,MMM, d\"\n }\n value={utils.toDateFromString(\n !this.state.selectedChartTimeTypeIndex\n ? this.state.endDate\n : this.state.dailyEndDate\n )}\n calendarIcon={}\n // maxDate={new Date()}\n maxDate={\n this.state.billingCycles[0].billingCycleStart !==\n \"\" &&\n moment(\n this.state.billingCycles[0].billingCycleStart\n ).diff(moment.now()) <= 0\n ? new Date(\n this.state.billingCycles[0].billingCycleStart\n )\n : new Date()\n }\n minDate={utils.toDateFromString(\n !this.state.selectedChartTimeTypeIndex\n ? this.state.startDate\n : this.state.dailyStartDate\n )}\n minDetail={\"year\"}\n />\n ) : (\n \n \n \n {this.state.selectedChartTimeTypeIndex === 0\n ? utils.toMonthDate(this.state.endDate)\n : utils.toVacationDate(this.state.endDate)}\n \n \n )}\n \n )}\n \n \n )}\n {this.state.selectedChartTypeIndex === 0 && (\n \n \n \n \n \n \n \n \n \n \n )}\n (this.chartRef = el)}\n neighborData={this.state.neighborConsumptions}\n type={this.state.selectedChartTypeIndex}\n timeType={this.state.selectedChartTimeTypeIndex}\n data={chartData}\n yearsConsumptions={this.state.yearsConsumptions}\n style={{ marginTop: 16 }}\n chartShape={this.state.chartShape}\n presentationMode={this.state.presentationMode}\n />\n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n {/* this.printButtonRef}*/}\n {/*content={() => this.chartRef}*/}\n {/*/>*/}\n \n );\n }\n\n closeErrorPopup() {\n this.setState({ errorMessage: null });\n }\n\n onChooseDate() {\n this.setState({ openCalendarPicker: true });\n }\n\n closeCalendarPicker = (startDate, endDate) => {\n // 0 - months, 1 - days, 2 - hours\n const { currentMeter, selectedChartTimeTypeIndex } = this.state;\n\n if (selectedChartTimeTypeIndex === 2 && startDate) {\n endDate = startDate;\n }\n\n let isDefault = this.state.isDefault;\n if (isDefault && startDate && endDate) {\n isDefault = false;\n }\n\n if (selectedChartTimeTypeIndex) {\n this.setState(\n {\n isDefault,\n openCalendarPicker: false,\n isCalendarDateSelected: true,\n startDate: startDate\n ? startDate\n : utils.toDateString(this.state.startDate),\n endDate: endDate\n ? moment.min(moment(this.today), moment(endDate))\n : utils.toDateString(this.state.endDate),\n },\n () => {\n currentMeter\n ? this._getDataForMeter(currentMeter, false)\n : this._getDataForAllMeters(false);\n }\n );\n } else {\n this.setState(\n {\n openCalendarPicker: false,\n isCalendarDateSelected: true,\n startDate: moment(startDate).locale('en').format(\"YYYY-MM-DD\"),\n endDate: utils.getEndOfMonthDate(endDate),\n },\n () => {\n currentMeter\n ? this._getDataForMeter(currentMeter, false)\n : this._getDataForAllMeters(false);\n }\n );\n }\n };\n\n onExcel = () => {\n if (this.state.selectedChartTimeTypeIndex === 0) {\n //Monthly\n api.getAllMonthlyConsumptionExcel(\n this.state?.currentMeter?.meterCount ?? null,\n utils.toDateString(this.state?.startDate) ?? utils.getMonthsBefore(this.state.endDate, MONTH_COUNT),\n utils.toDateStringEndMonth(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n FileSaver.saveAs(res, \"monthly_consumption.csv\");\n }\n }\n }\n );\n } else if (this.state.selectedChartTimeTypeIndex === 1) {\n //Daily\n if (this.state.isDefault) {\n const startDate = moment().format(\"MM-01-YYYY\");\n const endDate = moment().format(\"MM-DD-YYYY\");\n api.getAllDailyConsumptionExcel(\n this.state?.currentMeter?.meterCount ?? null,\n startDate,\n endDate,\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n FileSaver.saveAs(res, \"daily_consumption.csv\");\n }\n }\n }\n );\n } else {\n api.getAllDailyConsumptionExcel(\n this.state?.currentMeter?.meterCount ?? null,\n utils.toDateString(this.state.startDate),\n utils.toDateString(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n FileSaver.saveAs(res, \"daily_consumption.csv\");\n }\n }\n }\n );\n }\n } else {\n //Hourly\n api.getAllHourlyConsumptionExcel(\n this.state?.currentMeter?.meterCount ?? null,\n utils.getDaysBefore(this.state.endDate),\n utils.toDateString(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n FileSaver.saveAs(res, \"hourly_consumption.csv\");\n }\n }\n }\n );\n }\n };\n\n onPrint = () => {\n window.print();\n };\n\n onMeterSelected = (meter) => {\n let chartTypes = [\"WATER CONSUMPTION\", \"COMPARE TO PREVIOUS YEAR\"];\n if (!meter) {\n chartTypes.splice(1, 0, \"ME VS. SIMILAR HOUSEHOLDS\");\n }\n meter\n ? this._getDataForMeter(meter)\n : this._getDataForAllMeters({ isUpdateThisMonth: true });\n this.setState({\n openMeterSelection: false,\n currentMeter: meter,\n chartTypes,\n currentMeterVacation:\n this.state.vacations?.find(\n (item) => item.meterCount == meter?.meterCount\n ) || null,\n });\n document.body.style.overflow = \"unset\";\n };\n\n onTabSelected = (index) => {};\n\n openDefineVacation = () => {\n this.setState({ openDefineVacation: true });\n };\n\n closeDefineVacation = (vacation) => {\n console.log(\"closeDefineVacation\", vacation);\n if (vacation) {\n let newVacation = vacation;\n const editedVacationIndex = this.state.vacations?.findIndex(\n (item) => item?.vacationID === vacation?.vacationID\n );\n if (\n this.state?.vacation?.vacationID === vacation?.vacationID &&\n editedVacationIndex > -1 &&\n this.state?.vacations\n ) {\n const newVacations = this.state?.vacations?.map((item) =>\n item.vacationID !== vacation.vacationID ? item : vacation\n );\n newVacations.sort(\n (a, b) => new Date(a.startDate) - new Date(b.startDate)\n );\n newVacation = newVacations[0];\n } else if (this.state?.vacations && editedVacationIndex === -1) {\n const newVacations = [...this.state.vacations, vacation];\n newVacations.sort(\n (a, b) => new Date(a.startDate) - new Date(b.startDate)\n );\n newVacation = newVacations[0];\n }\n this.setState(\n {\n openDefineVacation: false,\n // vacation: newVacation,\n currentMeterVacation: vacation,\n vacations:\n editedVacationIndex > -1 && this.state?.vacations\n ? this.state?.vacations?.map((item) =>\n item.vacationID !== vacation.vacationID ? item : vacation\n )\n : this.state?.vacations\n ? [...this.state.vacations, vacation]\n : [vacation],\n },\n () => console.log(\"done\")\n );\n\n if (\n typeof this.state.vacation !== \"undefined\" &&\n this.state.vacation !== null\n ) {\n console.log(\"vacation\", vacation);\n console.log(\"this.state.vacation\", this.state.vacation);\n\n let newVacationDate = moment(vacation.startDate); //now\n let oldVacationDate = moment(this.state.vacation.startDate);\n\n console.log(\n newVacationDate,\n oldVacationDate,\n newVacationDate.diff(oldVacationDate, \"minutes\")\n );\n\n if (newVacationDate.diff(oldVacationDate, \"minutes\") < 0) {\n this.setState({ vacation: newVacation });\n }\n } else {\n this.setState({ vacation: newVacation });\n }\n } else {\n this.setState({\n openDefineVacation: false,\n });\n }\n };\n\n openMonthlyLimit = () => {\n this.setState({ openMonthlyLimit: true });\n };\n\n getMonthlyLimit = () => {\n if (this.state.currentMeter === null) {\n api.getMonthlyLimitAllMeters((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"getMonthlyLimitAllMeters\", res);\n this.setState({\n monthlyLimit: res.limit && res.limit !== \"null\" ? res.limit : 0,\n });\n }\n }\n });\n } else {\n api.getMonthlyLimit(this.state.currentMeter.meterCount, (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"api.getMonthlyLimit\", res);\n this.setState({\n monthlyLimit: res.limit && res.limit !== \"null\" ? res.limit : 0,\n });\n }\n }\n });\n }\n };\n\n closeMonthlyLimit = (monthlyLimit) => {\n if (monthlyLimit !== undefined) {\n if (monthlyLimit === \"\") {\n this.setState({ openMonthlyLimit: false, monthlyLimit: null });\n } else {\n this.setState({ openMonthlyLimit: false });\n }\n } else {\n this.setState({\n openMonthlyLimit: false,\n // monthlyLimit: this.state.monthlyLimit,\n });\n }\n\n setTimeout(() => this.getMonthlyLimit(), 1000);\n };\n\n closeMeterSelection = () => {\n this.setState({ openMeterSelection: false });\n document.body.style.overflow = \"unset\";\n };\n\n onChartTypeChange = (index) => {\n this.setState({ selectedChartTypeIndex: index });\n };\n\n onChartTimeChange = (index) => {\n console.log(\"onChartTimeChange\");\n const startDate =\n index === 0\n ? moment(this.today).subtract(MONTH_COUNT, \"months\")\n : this.state.dailyDefaultStartDate;\n const endDate = index === 0 ? this.today : this.state.dailyDefaultEndDate;\n const monthlyConsumptions =\n index === 0 ? [] : this.state.monthlyConsumptions;\n const dailyConsumptions = index === 1 ? [] : this.state.dailyConsumptions;\n const hourlyConsumptions = index === 2 ? [] : this.state.hourlyConsumptions;\n\n this.setState(\n {\n selectedChartTimeTypeIndex: index,\n startDate,\n endDate,\n monthlyConsumptions,\n dailyConsumptions,\n hourlyConsumptions,\n },\n () => {\n if (index === 0) {\n //monthly\n if (this.state.currentMeter !== null) {\n api.getMeterMonthlyConsumption(\n this.state.currentMeter.meterCount,\n utils.getMonthsBeforeWithDay(this.state.endDate, MONTH_COUNT),\n moment().format(\"MM-DD-YYYY\"),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"thisMonthUsage\", res);\n this.setState({\n monthlyConsumptions: res.consumptionData,\n presentationMode: res.presentationMode,\n });\n }\n }\n }\n );\n } else {\n api.getAllMonthlyConsumption(\n utils.getMonthsBeforeWithDay(this.state.endDate, MONTH_COUNT),\n moment().format(\"MM-DD-YYYY\"),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"getAllMonthlyConsumption 1\");\n this.setState({\n monthlyConsumptions: res.consumptionData,\n presentationMode: res.presentationMode,\n });\n }\n }\n }\n );\n }\n } else if (index === 1) {\n //daily\n if (this.meters.length === 1) {\n let { billingCycleStart, billingCycleEnd } =\n this.state.billingCycles[0];\n const startDate = moment(billingCycleStart).format(\"MM-DD-YYYY\");\n const endDate = moment().format(\"MM-DD-YYYY\");\n api.getMeterDailyConsumption(\n this.state.currentMeter.meterCount,\n startDate,\n endDate,\n (res, err) => {\n console.log(res);\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\n \"res getMeterDailyConsumption\",\n res,\n startDate,\n endDate\n );\n if (res && res.length > 0) {\n const dailyDefaultStartDate = moment(res[0].consDate);\n const dailyDefaultEndDate = moment(\n res[res.length - 1].consDate\n );\n console.log(\"dailyConsumptions 11\", res);\n this.setState({\n dailyConsumptions: res,\n dailyDefaultStartDate,\n dailyDefaultEndDate,\n });\n } else {\n console.log(\"dailyConsumptions 11\", res);\n this.setState({ dailyConsumptions: res });\n }\n }\n }\n }\n );\n } else {\n if (this.state.currentMeter !== null) {\n let { billingCycleStart, billingCycleEnd } =\n this.state.billingCycles[0];\n const startDate = moment(billingCycleStart).format(\"MM-DD-YYYY\");\n const endDate = moment().format(\"MM-DD-YYYY\");\n api.getMeterDailyConsumption(\n this.state.currentMeter.meterCount,\n startDate,\n endDate,\n (res, err) => {\n console.log(res);\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\n \"res getMeterDailyConsumption\",\n res,\n startDate,\n endDate\n );\n if (res && res.length > 0) {\n const dailyDefaultStartDate = moment(res[0].consDate);\n const dailyDefaultEndDate = moment(\n res[res.length - 1].consDate\n );\n console.log(\"dailyConsumptions 11\", res);\n this.setState({\n dailyConsumptions: res,\n dailyDefaultStartDate,\n dailyDefaultEndDate,\n });\n } else {\n console.log(\"dailyConsumptions 11\", res);\n this.setState({ dailyConsumptions: res });\n }\n }\n }\n }\n );\n } else {\n let { billingCycleStart, billingCycleEnd } =\n this.state.billingCycles[0];\n const startDate = moment(billingCycleStart).format(\"MM-DD-YYYY\");\n const endDate = moment().format(\"MM-DD-YYYY\");\n\n api.getAllDailyConsumption(startDate, endDate, (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n if (res && res.length > 0) {\n const dailyDefaultStartDate = moment(res[0].consDate);\n const dailyDefaultEndDate = moment(\n res[res.length - 1].consDate\n );\n console.log(\"dailyConsumptions 11\", res);\n this.setState({\n dailyConsumptions: res,\n dailyDefaultStartDate,\n dailyDefaultEndDate,\n });\n } else {\n console.log(\"dailyConsumptions 11\", res);\n this.setState({ dailyConsumptions: res });\n }\n }\n }\n });\n }\n }\n } else {\n //hourly\n const yesterday = moment().subtract(1, \"day\");\n this.setState({\n startDate: yesterday,\n endDate: yesterday,\n });\n\n api.getAllHourlyConsumption(\n utils.getDaysBefore(yesterday),\n utils.toDateString(yesterday),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.setState({ hourlyConsumptions: res });\n }\n }\n }\n );\n }\n }\n );\n };\n\n _getDataForAllMeters({ isUpdateThisMonth = true, isInitial = false }) {\n console.log(\"_getDataForAllMeters\");\n console.log(\"isUpdateThisMonth\");\n\n api.getAllMetersBillingCycleDates((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"getAllMetersBillingCycleDates, billingCycles\", res);\n {\n this.setState({ billingCycles: res }); // startDate: res[0].billingCycleStart\n\n if (isUpdateThisMonth) {\n console.log(\n \"thisMonthUsage billingCycles original dates\",\n res[0].billingCycleStart,\n res[0].billingCycleEnd\n );\n console.log(\n \"thisMonthUsage billingCycles\",\n utils.getMonth(res[0].billingCycleStart),\n utils.getMonth(res[0].billingCycleEnd)\n );\n api.getAllMonthlyConsumption(\n utils.toDateString(res[0].billingCycleStart), // toDateString\n // utils.toDateString(res[0].billingCycleEnd),\n moment().format(\"YYYY-MM-DD\"),\n (res2, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res2.error) {\n console.log(res2.error);\n } else {\n console.log(\n \"thisMonthUsage billingCycles\",\n JSON.stringify(res2)\n );\n console.log(\"getAllMonthlyConsumption 2\");\n this.setState({\n thisMonthUsage:\n Array.isArray(res2.consumptionData) &&\n typeof res2.consumptionData[\n res2.consumptionData.length - 1\n ] !== \"undefined\" &&\n typeof res2.consumptionData[\n res2.consumptionData.length - 1\n ].cons !== \"undefined\" &&\n res2.consumptionData[res2.consumptionData.length - 1]\n .cons !== null\n ? res2.consumptionData[\n res2.consumptionData.length - 1\n ].cons?.toFixed(0)\n : \"No Data\",\n });\n }\n }\n }\n );\n }\n\n api.getAllMonthlyConsumption(\n // utils.getMonthsBefore(this.state.endDate, 36),\n utils.getMonthsBeforeWithDay(new Date(), MONTH_COUNT),\n moment().format(\"YYYY-MM-DD\"),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"getAllMonthlyConsumption 4\");\n this.setState({\n // yearsConsumptions: res.consumptionData,\n presentationMode: res.presentationMode,\n });\n \n if (isInitial) {\n this.setState({\n monthlyConsumptions: res.consumptionData,\n monthlyConsumptionsForNeighborhood: res.consumptionData,\n });\n }\n }\n }\n }\n );\n\n if (!isInitial) {\n api.getAllMonthlyConsumption(\n utils.toDateString(this.state.startDate),\n utils.toDateString(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"getAllMonthlyConsumption 3\");\n this.setState({\n monthlyConsumptions: res.consumptionData,\n presentationMode: res.presentationMode,\n });\n }\n }\n }\n );\n }\n }\n }\n }\n });\n\n api.getMonthlyLimitAllMeters((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"getMonthlyLimitAllMeters\", res);\n this.setState({\n monthlyLimit: res.limit && res.limit !== \"null\" ? res.limit : 0,\n });\n }\n }\n });\n\n api.getAllHourlyConsumption(\n utils.getDaysBefore(this.state.endDate),\n utils.toDateString(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.setState({ hourlyConsumptions: res });\n }\n }\n }\n );\n\n //Get monthly forecast\n api.getAllMonthlyForecast((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"forecastUsage\", res);\n this.setState({\n forecastUsage: res.estimatedConsumption?.toFixed(0),\n });\n }\n }\n });\n\n //Get daily consumption\n if (this.state.isDefault) {\n const startDate = moment().format(\"MM-01-YYYY\");\n const endDate = moment().format(\"MM-DD-YYYY\");\n api.getAllDailyConsumptionBasedOnBillingCycle((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"dailyConsumptions 3\", res);\n this.setState({ dailyConsumptions: res });\n }\n }\n });\n } else {\n console.log(this.state.startDate);\n console.log(this.state.endDate);\n api.getAllDailyConsumption(\n utils.toDateString(this.state.startDate),\n utils.toDateString(this.state.endDate),\n (res, err) => {\n console.log(res);\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"dailyConsumptions 5\", res);\n this.setState({ dailyConsumptions: res });\n }\n }\n }\n );\n }\n\n //Get all years consumption\n api.getAllMonthlyConsumption(\n utils.getMonthsBefore(new Date(), 36),\n utils.getMonth(new Date()),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.setState({\n yearsConsumptions: res.consumptionData,\n });\n }\n }\n }\n );\n }\n\n _getDataForMeter(meter, isUpdateThisMonth = true) {\n api.getMeterBillingCycleDates(meter.meterCount, (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"_getDataForMeter, billingCycles\", res);\n this.setState({ billingCycles: res });\n\n if (isUpdateThisMonth) {\n api.getMeterMonthlyConsumption(\n meter.meterCount,\n utils.toDateString(res[0].billingCycleStart), // toDateString\n // utils.toDateString(res[0].billingCycleEnd),\n moment().format(\"YYYY-MM-DD\"),\n (res2, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res2.error) {\n console.log(res2.error);\n } else {\n console.log(\"getMeterMonthlyConsumption\", res2);\n console.log(\n \"getMeterMonthlyConsumption\",\n Array.isArray(res2.consumptionData) &&\n res2.consumptionData[res2.consumptionData.length - 1] &&\n res2.consumptionData[res2.consumptionData.length - 1]\n .cons\n );\n this.setState({\n thisMonthUsage:\n Array.isArray(res2.consumptionData) &&\n typeof res2.consumptionData[\n res2.consumptionData.length - 1\n ] !== \"undefined\" &&\n typeof res2.consumptionData[\n res2.consumptionData.length - 1\n ].cons !== \"undefined\" &&\n res2.consumptionData[res2.consumptionData.length - 1]\n .cons !== null\n ? res2.consumptionData[\n res2.consumptionData.length - 1\n ].cons?.toFixed(0)\n : \"No Data\",\n presentationMode: res2.presentationMode,\n });\n }\n }\n }\n );\n }\n\n api.getMeterMonthlyConsumption(\n meter.meterCount,\n utils.toDateString(this.state.startDate),\n utils.toDateString(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.setState({\n monthlyConsumptions: res.consumptionData,\n presentationMode: res.presentationMode,\n });\n }\n }\n }\n );\n\n if (this.state.isDefault) {\n api.getMeterDailyConsumption(\n meter.meterCount,\n utils.toDateString(res[0].billingCycleStart), // toDateString\n moment().format(\"YYYY-MM-DD\"),\n (res, err) => {\n console.log(res);\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"dailyConsumptions 1\", res);\n this.setState({ dailyConsumptions: res });\n }\n }\n }\n );\n } else {\n api.getMeterDailyConsumption(\n meter.meterCount,\n utils.toDateString(this.state.startDate),\n utils.toDateString(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"dailyConsumptions 2\", res);\n this.setState({ dailyConsumptions: res });\n }\n }\n }\n );\n }\n }\n }\n });\n\n api.getMonthlyLimit(meter.meterCount, (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.setState({\n monthlyLimit: res.limit && res.limit !== \"null\" ? res.limit : 0,\n });\n }\n }\n });\n\n api.getMeterHourlyConsumption(\n meter.meterCount,\n utils.getDaysBefore(this.state.endDate),\n utils.toDateString(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.setState({ hourlyConsumptions: res });\n }\n }\n }\n );\n\n api.getMeterMonthlyForecast(meter.meterCount, (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n console.log(\"forecastUsage\", res);\n this.setState({\n forecastUsage: res.estimatedConsumption?.toFixed(0),\n });\n }\n }\n });\n\n api.getMeterMonthlyConsumption(\n meter.meterCount,\n utils.getMonthsBefore(new Date(), 36),\n utils.getMonth(new Date()),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.setState({ yearsConsumptions: res.consumptionData });\n }\n }\n }\n );\n }\n\n componentWillUnmount() {\n clearInterval(this.alertsTimers);\n }\n\n componentWillMount() {\n console.log(\"cwm\");\n\n //Get consumer vacations\n api.getVacations((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n if (res.length > 0) {\n res.sort((a, b) => new Date(a.startDate) - new Date(b.startDate));\n const vacation = res[0];\n DataManager.sharedInstance.vacation = vacation;\n this.setState({\n vacation,\n vacations: res,\n });\n }\n }\n }\n\n //Get consumer meters\n api.getMeters((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.meters = res;\n DataManager.sharedInstance.meters = this.meters;\n\n console.log(\"get all meters\", res);\n\n if (this.meters.length === 1) {\n //Only one meter exists\n this._getDataForMeter(this.meters[0], true);\n this.setState({\n currentMeter: this.meters[0],\n chartTypes: [\"WATER CONSUMPTION\", \"COMPARE TO PREVIOUS YEAR\"],\n currentMeterVacation: this.state.vacations?.find(\n (item) => item.meterCount == this.meters[0].meterCount\n ),\n });\n } else {\n this._getDataForAllMeters({ isInitial: true });\n\n this.setState({\n currentMeter: null,\n chartTypes: [\n \"WATER CONSUMPTION\",\n \"ME VS. SIMILAR HOUSEHOLDS\",\n \"COMPARE TO PREVIOUS YEAR\",\n ],\n currentMeterVacation: null,\n });\n }\n }\n }\n });\n\n this.setState({\n isLoading: true,\n startDate: utils.toDateString(this.state.startDate),\n endDate: utils.toDateString(this.state.endDate),\n vacation: DataManager.sharedInstance.vacation\n ? DataManager.sharedInstance.vacation\n : null,\n });\n\n api.getAlerts((res, err) => {\n if (err) {\n this.setState({ errorMessage: \"Unknown error has occurred.\" });\n } else {\n if (res.error) {\n } else {\n let alerts = res.filter(\n (item) =>\n DataManager.sharedInstance.clearedAlerts.filter(\n (alert) => alert.logId === item.logId\n ).length === 0\n );\n this.props.onAlerts(alerts.length);\n this.setState({ alerts });\n }\n }\n });\n this.alertsTimers = setInterval(() => {\n api.getAlerts((res, err) => {\n if (err) {\n console.log(\"setInterval error Home.js\");\n } else {\n if (res.error) {\n } else {\n let alerts = res.filter(\n (item) =>\n DataManager.sharedInstance.clearedAlerts.filter(\n (alert) => alert.logId === item.logId\n ).length === 0\n );\n this.props.onAlerts(alerts.length);\n this.setState({ alerts });\n }\n }\n });\n }, ALERTS_INTERVAL);\n\n //Get municipal customer service info\n api.getMunicipalCustomerService((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n DataManager.sharedInstance.muni = res;\n }\n }\n });\n\n // //Get neighbors consumption\n api.getAvgHouseHoldsConsumption(\n utils.getMonthsBefore(this.state.endDate, MONTH_COUNT),\n utils.getMonth(this.state.endDate),\n (res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n this.setState({ neighborConsumptions: res });\n }\n }\n }\n );\n\n //Get measurement usings\n api.getMeasurementUnits((res, err) => {\n if (err) {\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n DataManager.sharedInstance.units = res.unitShortName;\n this.setState({ units: res.unitShortName });\n }\n }\n });\n });\n }\n\n _renderMobile() {\n let meterDesc = \"\";\n if (!this.state.currentMeter) {\n meterDesc = `All Water Meters (${this.meters.length})`;\n } else {\n const meter = this.state.currentMeter;\n meterDesc = utils.getMeterDesc(meter);\n }\n\n let { billingCycleStart, billingCycleEnd } = this.state.billingCycles[0];\n\n // 04-01-2022 - 04-30-2022\n const startDate = moment(billingCycleStart).format(\"MM-DD-YYYY\");\n const endDate = moment(billingCycleEnd).subtract(1, \"days\").format(\"MM-DD-YYYY\");\n\n console.log(\n `billingCycleStart ${billingCycleStart} billingCycleEnd ${billingCycleEnd}`\n );\n\n let billingCycleText =\n billingCycleStart && billingCycleEnd\n ? `Billing Cycle Date: ${startDate} - ${endDate}`\n : \"\";\n\n let chartData;\n switch (this.state.selectedChartTypeIndex) {\n case 0: {\n //My\n switch (this.state.selectedChartTimeTypeIndex) {\n case 0:\n //Month\n chartData = this.state.monthlyConsumptions;\n break;\n case 1:\n //Day\n chartData = this.state.dailyConsumptions;\n break;\n case 2:\n //Hourly\n chartData = this.state.hourlyConsumptions;\n break;\n }\n break;\n }\n case 1: {\n //Neighbor\n chartData = this.state.monthlyConsumptionsForNeighborhood;\n break;\n }\n case 2: {\n //Year\n chartData = this.state.monthlyConsumptionsForNeighborhood;\n break;\n }\n }\n return (\n
\n \n \n \n
\n Water Usage for Billing Cycle\n
\n {/*
\n {billingCycleText}\n
*/}\n
\n \n this.setState(\n { openMeterSelection: true },\n () => (document.body.style.overflow = \"hidden\")\n )\n }\n >\n \n Water Meter\n \n \n {meterDesc}\n \n \n \n\n \n\n \n \n \n
Current Billing Cycle
\n \n this.state.monthlyLimit\n ? \"monthlyLimitValueLabel monthlyLimitValueLabelMob\"\n : \"thisMonthValue thisMonthValueMob\"\n }\n >\n {this.state.thisMonthUsage}\n \n {this.state.thisMonthUsage !== \"No Data\" && (\n \n {this.state.units.toLowerCase()}\n \n )}\n \n \n \n
\n End of Billing Cycle Forecast\n
\n \n
\n {this.state.forecastUsage}\n
\n \n {this.state.units.toLowerCase()}\n \n \n \n \n \n\n {this.state.monthlyLimit ? (\n \n
Billing Cycle Limit:
\n
{this.state.monthlyLimit}
\n {this.state.currentMeter === null ? (\n <>\n
\n
\n (Please select a specific meter to update billing cycle\n limit)\n
\n \n ) : (\n \n Update\n \n )}\n \n ) : this.state.currentMeter === null ? (\n \n (Please select a specific meter to update billing cycle limit)\n \n ) : (\n \n Set Billing Cycle Limit\n \n )}\n\n \n
{billingCycleText}
\n \n\n \n \n \n Get informed about water consumption while away from home\n \n {this.state.vacation ? (\n \n {this.state?.currentMeterVacation && (\n
\n {utils.toVacationDate(\n this.state.currentMeterVacation.startDate\n )}{\" \"}\n - {utils.toVacationDate(this.state.vacation.endDate)}\n
\n )}\n\n {this.state?.currentMeterVacation ? (\n
\n \n Update\n \n \n Cancel vacation\n \n
\n ) : (\n <>\n {this.state?.currentMeter && (\n \n \n \n )}\n \n )}\n \n ) : (\n <>\n {this.state?.currentMeter && (\n \n \n \n )}\n \n )}\n {!this.state?.currentMeter && (\n \n Please select a specific meter to update the usage during\n vacation alert\n \n )}\n {!this.state?.currentMeter && this.state.vacation ? (\n \n {utils.toVacationDate(this.state.vacation.startDate)} -{\" \"}\n {utils.toVacationDate(this.state.vacation.endDate)}\n
\n Water Meter:{\" \"}\n {utils.findMeter(\n this.state.vacation?.meterCount,\n this.meters\n )}\n \n ) : (\n <>\n )}\n {!this.state?.currentMeter &&\n this.state?.vacations?.length > 1 ? (\n \n Additional vacation dates exist, select a specific meter to\n show\n \n ) : null}\n \n \n {this.state.alerts &&\n this.state.alerts.map((item) => {\n return (\n \n \n \n \n
\n
\n {item.alertTypeName}\n
\n
{`${item.meterSn}, ${\n item.address\n ? item.address\n : globals.METER_DEFAULT_ADDRESS\n }`}
\n
\n \n \n \n
\n {utils.toAlertDate(item.alertTime)}\n
\n this.onOpenAlert(item)}\n >\n \n \n \n \n \n \n );\n })}\n \n {this.state.chartTypes.map((item, index) => {\n return (\n this.onChartTypeChange(index)}\n style={{\n display: \"flex\",\n width: \"100%\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: \"transparent\",\n }}\n >\n \n {item}\n \n \n \n );\n })}\n \n \n {this.state.selectedChartTypeIndex === 0 && (\n \n \n {this.chartTimeTypes.map((item, index) => {\n return (\n this.onChartTimeChange(index)}\n >\n \n {item}\n \n \n );\n })}\n \n \n \n
\n {this.state.selectedChartTimeTypeIndex !== 2\n ? \"From\"\n : \"\\n\"}\n
\n \n \n \n {utils.toVacationDate(this.state.startDate)}\n \n \n \n {this.state.selectedChartTimeTypeIndex !== 2 && (\n \n
To
\n \n \n \n {utils.toVacationDate(this.state.endDate)}\n \n \n \n )}\n \n \n )}\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n );\n }\n\n onOpenAlert(item) {\n this.props.history.push({\n pathname: `/alerts/${item.logId}`,\n state: { alert: item },\n });\n }\n\n handleCancelVacation() {\n const { currentMeterVacation, vacations, vacation } = this.state;\n const updatedVacations = vacations?.filter(\n (item) => item.vacationID !== currentMeterVacation.vacationID\n );\n if (currentMeterVacation) {\n api.deleteVacation(currentMeterVacation.vacationID, (res, err) => {\n if (err) {\n console.log(err);\n console.log(\"Unknown error has occurred.\");\n } else {\n if (res.error) {\n this.setState({ errorMessage: res.error });\n } else {\n this.setState({\n currentMeterVacation: null,\n vacations: updatedVacations,\n vacation:\n currentMeterVacation.vacationID === vacation.vacationID\n ? updatedVacations\n ? updatedVacations[0]\n : null\n : vacation,\n });\n }\n }\n });\n }\n }\n\n render() {\n return (\n
\n \n {(matches) => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n}\n\nexport default Home;\n","export const ALERTS_INTERVAL = 1000 * 3600;","import React from 'react';\nimport './SettingsChangePassword.css';\nimport images from '../../images';\nimport '../../App.css';\nimport * as validators from '../../validators';\nimport * as api from '../../api';\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport globals from '../../globals';\nimport PersistenceManager from '../../managers/PersistenceManager';\nimport { Mobile } from '../../App';\nimport Popup from \"reactjs-popup\";\nimport AppPopup from \"../../components/AppPopup\";\n\nclass SettingsChangePassword extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n currentPass: '',\n pass: '',\n confirmPass: '',\n isSecurePass: true,\n isSecureNewPass: true,\n isSecureConfirmPass: true,\n screenOrientation: window.matchMedia(\"(orientation: portrait)\").matches ? 'portrait' : 'landscape',\n errorMessage: null\n };\n }\n\n componentDidMount() {\n window.addEventListener('orientationchange', this.setScreenOrientation);\n }\n\n componentWillUnmount() {\n window.removeEventListener('orientationchange', this.setScreenOrientation);\n }\n\n setScreenOrientation = () => {\n if (window.matchMedia(\"(orientation: portrait)\").matches) {\n console.log('orientation: portrait');\n this.setState({\n screenOrientation: 'portrait'\n });\n }\n\n if (window.matchMedia(\"(orientation: landscape)\").matches) {\n console.log('orientation: landscape');\n this.setState({\n screenOrientation: 'landscape'\n });\n }\n };\n\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n \n \n \n

\n Change Password\n

\n \n
\n
\n

\n YOUR CURRENT PASSWORD\n

\n \n \n this.setState({\n currentPass: event.target.value\n })\n }\n type={\n this.state.isSecurePass\n ? 'password'\n : 'text'\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16\n }}\n />\n this.toggleSecurePass(event)}\n >\n \n \n
\n \n
\n

\n CHOOSE A PASSWORD YOU WISH TO USE\n

\n \n \n this.setState({ pass: event.target.value })\n }\n type={\n this.state.isSecureNewPass\n ? 'password'\n : 'text'\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16,\n marginTop: '2%'\n }}\n />\n \n this.toggleSecureNewPass(event)\n }\n >\n \n \n
\n \n \n Must contain numbers and letters\n \n \n Must contain 8 characters or more\n \n
\n

\n TYPE THE PASSWORD AGAIN\n

\n
\n \n this.setState({\n confirmPass: event.target.value\n })\n }\n value={this.state.confirmPass}\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16\n }}\n />\n \n this.toggleSecureConfirmPass(event)\n }\n >\n \n \n
\n
\n {this.state.screenOrientation === 'landscape' ?\n \n \n \n \n \n \n \n \n :\n \n \n \n \n \n \n \n \n }\n \n \n \n \n \n );\n }\n\n _renderDesktop() {\n return (\n \n
\n \n

\n Change Password\n

\n
\n
\n
\n

\n YOUR CURRENT PASSWORD\n

\n \n \n this.setState({\n currentPass: event.target.value\n })\n }\n type={\n this.state.isSecurePass\n ? 'password'\n : 'text'\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16\n }}\n />\n this.toggleSecurePass(event)}\n >\n \n \n
\n \n
\n

\n CHOOSE A PASSWORD YOU WISH TO USE\n

\n \n \n this.setState({ pass: event.target.value })\n }\n type={\n this.state.isSecureNewPass\n ? 'password'\n : 'text'\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16\n }}\n />\n \n this.toggleSecureNewPass(event)\n }\n >\n \n \n
\n \n \n Must contain numbers and letters\n \n \n Must contain 8 characters or more\n \n
\n

\n TYPE THE PASSWORD AGAIN\n

\n
\n \n this.setState({\n confirmPass: event.target.value\n })\n }\n value={this.state.confirmPass}\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n fontSize: 16\n }}\n />\n \n this.toggleSecureConfirmPass(event)\n }\n >\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n closeErrorPopup() {\n this.setState({errorMessage: null});\n }\n\n toggleSecurePass(event) {\n event.preventDefault();\n if (event.detail !== 0) {\n this.setState({isSecurePass: !this.state.isSecurePass});\n }\n }\n\n toggleSecureNewPass(event) {\n event.preventDefault();\n this.setState({ isSecureNewPass: !this.state.isSecureNewPass });\n }\n\n toggleSecureConfirmPass(event) {\n event.preventDefault();\n this.setState({ isSecureConfirmPass: !this.state.isSecureConfirmPass });\n }\n\n onSubmit = event => {\n event.preventDefault();\n\n if (this.state.pass !== this.state.confirmPass) {\n this.setState({errorMessage: 'Passwords do not match.'});\n } else {\n //const isCharsValid = /^\\w+$/.test(pass);\n const pass = this.state.pass;\n const isCharsValid = /^(?=.*[a-zA-Z])(?=.*[0-9])/.test(pass);\n const isNumCharsValid = pass.length >= 8;\n\n if (isCharsValid && isNumCharsValid) {\n api.changePassword(\n this.state.currentPass,\n this.state.pass,\n res => {\n if (res.error) {\n this.setState({errorMessage: res.error});\n } else {\n this.setState({errorMessage: 'Password changed successfully'});\n\n this.closePopup();\n }\n }\n );\n } else {\n this.setState({errorMessage: 'Password must contain numbers and letters.\\nPassword must contain 8 characters or more.'});\n }\n }\n };\n\n closePopup = () => {\n this.props.onClose();\n };\n}\n\nexport default (SettingsChangePassword)","import React from 'react';\nimport './SettingsChangePassword.css';\nimport images from '../../images';\nimport * as api from '../../api';\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport * as validators from '../../validators';\nimport { Mobile } from '../../App';\nimport DataManager from \"../../managers/DataManager\";\nimport AppPopup from \"../../components/AppPopup\";\nimport Popup from \"reactjs-popup\";\n\nclass SettingsChangePhone extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n phone: '',\n errorMessage: null\n };\n }\n\n componentDidMount() {\n if (DataManager?.sharedInstance?.user?.phoneNumber !== null) {\n this.setState({\n phone: DataManager?.sharedInstance?.user?.phoneNumber?.AdditionalPhoneNumber ?? DataManager?.sharedInstance?.user?.phoneNumber?.phoneNumber,\n });\n }\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n \n

\n Enter a cell phone number to receive SMS alerts\n

\n
\n \n

+1(US)

\n \n this.setState({ phone: event.target.value })\n }\n value={this.state.phone}\n className=\"phoneInput country\"\n style={{\n marginLeft: 10,\n marginRight: 10,\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n border: 0,\n backgroundColor: 'transparent'\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n _renderDesktop() {\n return (\n \n

\n Enter a cell phone number to receive SMS alerts\n

\n
\n \n \n +1 US\n \n \n this.setState({ phone: event.target.value })\n }\n value={this.state.phone}\n className=\"phoneInput country\"\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex',\n border: 0,\n backgroundColor: 'transparent'\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n closeErrorPopup() {\n this.setState({errorMessage: null});\n }\n\n onSubmit = event => {\n event.preventDefault();\n\n const { phone } = this.state;\n\n api.updatePhoneNumber('1', phone, 'en', (response, error) => {\n if (error) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (response.error) {\n this.setState({errorMessage: response.error});\n } else {\n console.log(response);\n\n api.getMe((res, err) => {\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n DataManager.sharedInstance.user = res;\n }\n }\n\n this.closePopup();\n });\n\n //this.closePopup();\n }\n }\n });\n };\n\n closePopup = () => {\n this.props.onClose();\n };\n}\n\nexport default (SettingsChangePhone)","import React from 'react';\nimport * as api from '../../api';\nimport {Desktop, Mobile} from '../../App';\nimport './Alerts.css';\nimport utils from '../../utils';\nimport globals from '../../globals';\nimport images from '../../images';\nimport DataManager from '../../managers/DataManager';\nimport {ClipLoader} from \"react-spinners\";\nimport {ALERTS_INTERVAL} from \"../../const\";\nimport Popup from \"reactjs-popup\";\nimport AppPopup from \"../../components/AppPopup\";\n\n/*\n{\n \"meterCount\": 37706,\n \"description\": 'description',\n \"notificationType\": null,\n \"alertTypeName\": \"Leak\",\n \"alertTypeId\": \"23\",\n \"alertTime\": \"2017-07-26T17:40:22\",\n \"logId\": \"232199\"\n }\n*/\n\nclass Alerts extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n previousAlerts: [],\n currentItem: null,\n isLoading: false,\n description: DataManager.sharedInstance.muni && DataManager.sharedInstance.muni.description ? DataManager.sharedInstance.muni.description : '',\n phoneNumber: DataManager.sharedInstance.muni && DataManager.sharedInstance.muni.phoneNumber ? DataManager.sharedInstance.muni.phoneNumber : '',\n errorMessage: null,\n alert\n };\n }\n\n componentWillMount() {\n //Get municipal customer service info\n api.getMunicipalCustomerService((res, err) => {\n //this._checkFirstDataFetchCounter();\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n DataManager.sharedInstance.muni = res;\n this.setState({description: DataManager.sharedInstance.muni.description, phoneNumber: DataManager.sharedInstance.muni.phoneNumber})\n }\n }\n });\n\n api.getAlerts((res, err) => {\n if (err) {\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (res.error) {\n this.setState({errorMessage: res.error});\n } else {\n this.props.onAlerts(res.length);\n this.setState({previousAlerts: res});\n }\n }\n });\n this.alertsTimers = setInterval(() => {\n api.getAlerts((res, err) => {\n if (err) {\n // this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (res.error) {\n console.log('setInterval error Alerts.js', res.error);\n this.setState({errorMessage: res.error});\n } else {\n this.props.onAlerts(res.length);\n this.setState({previousAlerts: res});\n }\n }\n });\n }, ALERTS_INTERVAL);\n }\n\n getAlertDetails = (item) => {\n this.setState({alert: item});\n api.getAlertDetails(\n item.alertTypeId,\n item.logId,\n (res, err) => {\n if (err) {\n this.setState({errorMessage: 'Cannot load alert details.'});\n } else {\n if (res.error) {\n this.setState({errorMessage: 'Cannot load alert details.'});\n } else if (res.length > 0) {\n const icon = item.icon;\n res[0].icon = icon;\n this.setState({alert: res[0]});\n }\n }\n },\n );\n }\n\n componentWillUnmount() {\n clearInterval(this.alertsTimers);\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderNewAlert(item) {\n let icon = utils.getSmallIconForAlertType(item.alertTypeId);\n let bigIcon = utils.getLargeIconForAlertType(item.alertTypeId);\n\n item.icon = icon;\n\n return (\n \n {matches => {\n if (matches)\n return (\n \n this.props.history.push({\n pathname: `/alerts/${item.logId}`,\n state: {alert: item}\n })\n }\n style={{\n flexDirection: 'column',\n display: 'flex',\n backgroundColor: globals.COLOR.BLUSH,\n paddingLeft: 20,\n marginTop: 2,\n paddingTop: 8\n }}\n >\n \n \n
\n
\n {item.alertTypeName}\n
\n
{`${\n item.meterSn\n }, ${\n item.address\n ? item.address\n : globals.METER_DEFAULT_ADDRESS\n }`}
\n
\n {utils.toAlertDate(item.alertTime)}\n
\n
\n \n \n \n );\n else\n return (\n {\n this.getAlertDetails(item);\n this.setState({currentItem: item})\n }\n \n }\n style={{\n flexDirection: 'column',\n display: 'flex',\n backgroundColor: globals.COLOR.BLUSH,\n paddingLeft: 20,\n marginTop: 2,\n paddingTop: 8\n }}\n >\n \n \n
\n
\n {item.alertTypeName}\n
\n
{`${\n item.meterSn\n }, ${\n item.address\n ? item.address\n : globals.METER_DEFAULT_ADDRESS\n }`}
\n
\n {utils.toAlertDate(item.alertTime)}\n
\n
\n \n \n \n );\n }}\n
\n );\n }\n\n _renderPreviousAlert(item) {\n let icon = utils.getSmallIconForAlertType(item.alertTypeId);\n let bigIcon = utils.getLargeIconForAlertType(item.alertTypeId);\n\n item.icon = bigIcon;\n\n return (\n \n {matches => {\n if (matches) {\n return (\n \n this.props.history.push({\n pathname: `/alerts/${item.logId}`,\n state: {alert: item}\n })\n }\n style={{\n flexDirection: 'column',\n display: 'flex',\n backgroundColor: 'white',\n paddingLeft: 20,\n marginTop: 2,\n paddingTop: 8,\n paddingBottom: 0\n }}\n >\n \n {this.state.isLoading && (\n \n )}\n \n \n
\n {item.alertTypeName}\n
\n
{`${\n item.meterSn\n }, ${\n item.address\n ? item.address\n : globals.METER_DEFAULT_ADDRESS\n }`}
\n
\n {utils.toAlertDate(item.alertTime)}\n
\n \n \n \n \n );\n } else {\n return (\n {\n this.getAlertDetails(item);\n this.setState({currentItem: item})\n }\n \n }\n style={{\n flexDirection: 'column',\n display: 'flex',\n backgroundColor: 'white',\n paddingLeft: 20,\n marginTop: 2,\n paddingTop: 8,\n paddingBottom: 0\n }}\n >\n \n \n \n
\n {item.alertTypeName}\n
\n
{`${\n item.meterSn\n }, ${\n item.address\n ? item.address\n : globals.METER_DEFAULT_ADDRESS\n }`}
\n
\n {utils.toAlertDate(item.alertTime)}\n
\n \n \n \n \n );\n }\n }}\n
\n );\n }\n\n _renderDesktop() {\n return (\n \n {this.state.isLoading && (\n \n )}\n
Real Time Alerts
\n \n \n {/*
*/}\n {/*

New

*/}\n {/*
*/}\n {/*{this.state.newAlerts.map(item => {*/}\n {/*return this._renderNewAlert(item);*/}\n {/*})}*/}\n {/*
*/}\n \n

Alerts

\n \n {this.state.previousAlerts.map(item => {\n return this._renderPreviousAlert(item);\n })}\n
\n \n {this.state.currentItem &&\n this._renderAlertInfo(this.state.currentItem)}\n \n {this.state.isLoading &&
\n \n
}\n \n \n \n \n );\n }\n\n closePopup() {\n this.setState({errorMessage: null});\n }\n\n _renderMobile() {\n return (\n \n
\n Real Time Alerts\n
\n \n {/*
*/}\n {/*

New

*/}\n {/*
*/}\n {/*{this.state.newAlerts.map(item => {*/}\n {/*return this._renderNewAlert(item);*/}\n {/*})}*/}\n {/*
*/}\n \n

Alerts

\n \n {this.state.previousAlerts.map(item => {\n return this._renderPreviousAlert(item);\n })}\n
\n \n \n \n \n \n \n );\n }\n\n _renderAlertInfo(item) {\n let icon = utils.getSmallIconForAlertType(item.alertTypeId);\n return (\n \n \n \n \n \n {item.alertTypeName}\n \n \n
\n {utils.toAlertDate(item.alertTime)}\n
\n \n
\n Water Meter: {item.meterSn}\n
\n
\n {item.address\n ? item.address\n : globals.METER_DEFAULT_ADDRESS}\n
\n \n {this.state.alert.description ? this.state.alert.description : ''}\n \n
\n Call us if you need any help\n
\n \n
{this.state.description}
\n
\n
{this.state.phoneNumber}
\n
\n this._confirmAlert(item)}\n style={{\n alignSelf: 'flex-start',\n backgroundColor: 'transparent',\n marginLeft: -28,\n }}\n >\n \n \n \n \n \n \n );\n }\n\n _confirmAlert(alertItem) {\n this.setState({isLoading: true});\n api.confirmAlert(alertItem.logId, (res, err) => {\n //this.setState({isLoading: false});\n if (err) {\n this.setState({isLoading: false});\n this.setState({errorMessage: 'Could not confirm alert'});\n } else {\n if (res.error) {\n this.setState({isLoading: false});\n this.setState({errorMessage: res.error});\n } else {\n api.getAlerts((res, err) => {\n if (err) {\n this.setState({isLoading: false});\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n this.setState({isLoading: false});\n if (res.error) {\n this.setState({errorMessage: res.error});\n } else {\n console.log('previousAlerts', res);\n this.setState({errorMessage: 'Alert confirmed successfully'});\n this.setState({previousAlerts: res, currentItem: null});\n }\n }\n });\n }\n }\n });\n }\n}\n\nexport default (Alerts)","import React from 'react';\nimport './AlertInfo.css';\nimport images from '../../images';\nimport globals from '../../globals';\nimport utils from '../../utils';\nimport * as api from '../../api';\nimport { Mobile } from '../../App';\nimport DataManager from '../../managers/DataManager';\nimport AppPopup from \"../../components/AppPopup\";\nimport Popup from \"reactjs-popup\";\n\nclass AlertInfo extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n errorMessage: '',\n alert: this.props.location.state.alert,\n };\n }\n\n componentWillMount() {\n api.getAlertDetails(\n this.state.alert.alertTypeId,\n this.state.alert.logId,\n (res, err) => {\n if (err) {\n this.setState({errorMessage: 'Cannot load alert details.'});\n } else {\n if (res.error) {\n this.setState({errorMessage: 'Cannot load alert details.'});\n } else if (res.length > 0) {\n const icon = this.state.alert.icon;\n res[0].icon = icon;\n this.setState({alert: res[0]});\n }\n }\n },\n );\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n const { alert } = this.props.location.state;\n const utility = DataManager.sharedInstance.muni\n ? DataManager.sharedInstance.muni\n : { description: '', phoneNumber: '' };\n // const utility = {description: 'test', phoneNumber: '12345678'};\n\n return (\n \n \n this.props.history.goBack()}\n style={{\n marginLeft: 10,\n flexDirection: 'row',\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n backgroundColor: 'transparent'\n }}\n >\n \n \n Back\n \n \n \n Report\n \n
\n
\n \n {alert.alertTypeName}\n \n \n {utils.toAlertDate(alert.alertTime)}\n \n \n Water Meter: {alert.meterSn}\n \n
\n {alert.address\n ? alert.address\n : globals.METER_DEFAULT_ADDRESS}\n
\n \n {this.state.alert.description ? this.state.alert.description : ''}\n \n \n Call us if you need any help\n \n
\n {utility.description}\n
\n
\n {utility.phoneNumber}\n
\n this._confirmAlert(alert)}\n style={{\n alignSelf: 'center',\n backgroundColor: 'transparent',\n marginBottom: 100\n }}\n >\n \n \n \n \n \n \n );\n }\n\n\n\n _renderDesktop() {\n const { alert } = this.props.location.state;\n const utility = DataManager.sharedInstance.muni\n ? DataManager.sharedInstance.muni\n : { description: '', phoneNumber: '' };\n // const utility = {description: 'test', phoneNumber: '12345678'};\n\n return (\n \n \n this.props.history.goBack()}\n style={{\n marginLeft: 10,\n flexDirection: 'row',\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n backgroundColor: 'transparent'\n }}\n >\n \n \n Back\n \n \n \n Report\n \n
\n
\n \n {alert.alertTypeName}\n \n \n {utils.toAlertDate(alert.alertTime)}\n \n \n Water Meter: {alert.meterSn}\n \n
\n {alert.address\n ? alert.address\n : globals.METER_DEFAULT_ADDRESS}\n
\n \n {this.state.alert.description ? this.state.alert.description : ''}\n \n \n Call us if you need any help\n \n
\n {utility.description}\n
\n
\n {utility.phoneNumber}\n
\n this._confirmAlert(alert)}\n style={{\n alignSelf: 'center',\n backgroundColor: 'transparent'\n }}\n >\n \n \n \n \n \n \n );\n }\n\n closePopup() {\n let isAlertConfirmed = (this.state.errorMessage === 'Alert confirmed successfully') ? true : false;\n this.setState({errorMessage: null}, () => {\n if (isAlertConfirmed) {\n setTimeout(() => {\n this.props.history.goBack();\n }, 100); \n }\n });\n }\n\n _confirmAlert(alertItem) {\n //this.setState({isLoading: true});\n api.confirmAlert(alertItem.logId, (res, err) => {\n //this.setState({isLoading: false});\n if (err) {\n this.setState({errorMessage: 'Could not confirm alert'});\n } else {\n if (res.error) {\n this.setState({errorMessage: res.error});\n } else {\n this.setState({errorMessage: 'Alert confirmed successfully'});\n }\n }\n });\n }\n}\n\nexport default (AlertInfo)","import React from 'react';\nimport images from '../../images';\nimport './LandingPage.css';\nimport { Link } from 'react-router-dom';\nimport globals from '../../globals';\nimport {Mobile, MobileLand} from '../../App';\n\nexport default class LandingPage extends React.Component {\n constructor(props) {\n super(props);\n this.isLandscape = false;\n }\n\n componentWillMount() {\n this.props.toggleHeader(false);\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) {\n this.isLandscape = true;\n return this._renderMobile();\n } else {\n return \n {matches => {\n if (matches) {\n this.isLandscape = false;\n return this._renderMobile();\n } else return this._renderDesktop();\n }}\n \n }\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n \n \n \n \n
\n
My Water Advisor
®
\n \n Online access to Your World of Water™\n
\n \n \n \n
\n Monitor your water consumption with real time data, alerts\n and analytics\n
\n \n \n \n \n \n \n \n \n \n \n
\n Empowerment\n
\n
\n Knowledge of how and when we use water empower’s\n conservation\n
\n \n \n \n
\n Clarity\n
\n
\n Better understand how much water is used for gardening\n or other activities\n
\n \n \n \n
\n Context\n
\n
\n Compare ones usage against similar households for a\n more effective conservation program\n
\n \n \n \n
\n Safety\n
\n
\n Monitor unexpected or unauthorized usage while away on\n vacation\n
\n \n \n \n
\n Clarity\n
\n
\n Better understand how much water is used for gardening\n or other activities\n
\n \n \n \n
\n Context\n
\n
\n Compare ones usage against similar households for a\n more effective conservation program\n
\n \n \n Also Available for IOS and Android\n \n \n window.open(globals.IOS_LINK, '_blank')}\n >\n \n \n \n window.open(globals.ANDROID_LINK, '_blank')\n }\n >\n \n \n \n
\n \n
\n \n
\n \n
\n
My Water Advisor
®
\n \n Online access to Your World of Water™\n \n \n \n );\n }\n\n _renderDesktop() {\n return (\n \n
\n
\n \n \n
\n \n
\n
\n
My Water Advisor
®
\n \n Online access to Your World of Water™\n
\n
\n
\n \n \n \n \n Monitor your water consumption with real time data,\n alerts and analytics\n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n \n \n Empowerment\n \n \n Knowledge of how and when we use water empower’s\n conservation\n \n \n \n \n \n Flexibility\n \n \n Apps available for both Apple iOS and Android, and\n cloud-based browser desktop access\n \n \n \n \n \n Customer service\n \n \n Set budget alerts to end month-end high billing\n surprises\n \n \n \n \n \n \n \n Safety\n \n \n Monitor unexpected or unauthorized usage while away\n on vacation\n \n \n \n \n \n Clarity\n \n \n Better understand how much water is used for\n gardening or other activities\n \n \n \n \n \n Context\n \n \n Compare ones usage against similar households for\n a more effective conservation program\n \n \n \n \n \n \n \n Also Available for IOS and Android\n \n \n window.open(globals.IOS_LINK, '_blank')}\n >\n \n \n \n window.open(globals.ANDROID_LINK, '_blank')\n }\n >\n \n \n \n \n
\n \n
\n
My Water Advisor
®
\n \n Online access to Your World of Water™\n \n \n \n );\n }\n\n componentWillUnmount() {\n this.props.toggleHeader(true);\n }\n}\n","import React from 'react';\nimport './PrivacyPolicy.css';\nimport images from \"../../images\";\nimport '../../App.css';\nimport {Desktop, Mobile} from \"../../App\";\n\nexport default class PrivacyPolicy extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches)\n return this._renderMobile();\n else\n return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n
\n \n

Privacy Policy

\n
Application Privacy Statement
\n
\n \n
\n
\n );\n }\n\n\n _renderDesktop() {\n return (\n
\n \n

Privacy Policy

\n
Application Privacy Statement
\n
\n \n
\n
\n );\n }\n}","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport DataManager from '../managers/DataManager';\n\nconst ProtectedRoute = ({ component: Component, render, ...rest }) => (\n \n DataManager.sharedInstance.isAuthenticated ? (\n typeof render === 'function' ? (\n render(props)\n ) : (\n \n )\n ) : (\n \n )\n }\n />\n);\n\nexport default ProtectedRoute;\n","import React, { Component } from 'react';\nimport './Contacts.css';\nimport images from '../../images';\nimport { Mobile } from '../../App';\nimport DataManager from \"../../managers/DataManager\";\nimport * as api from \"../../api\";\n\nexport default class Contacts extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n description: DataManager.sharedInstance.muni && DataManager.sharedInstance.muni.description ? DataManager.sharedInstance.muni.description : '',\n phoneNumber: DataManager.sharedInstance.muni && DataManager.sharedInstance.muni.phoneNumber ? DataManager.sharedInstance.muni.phoneNumber : ''\n }\n }\n\n componentWillMount() {\n //Get municipal customer service info\n api.getMunicipalCustomerService((res, err) => {\n //this._checkFirstDataFetchCounter();\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n DataManager.sharedInstance.muni = res;\n this.setState({description: DataManager.sharedInstance.muni.description, phoneNumber: DataManager.sharedInstance.muni.phoneNumber})\n }\n }\n });\n }\n\n render() {\n return (\n \n {matches => (\n \n
\n
Contact
\n

\n {this.state.description}\n

\n
\n
\n \n

{this.state.phoneNumber}

\n
\n
\n
\n \n )}\n
\n );\n }\n\n};","import React from 'react';\nimport { Mobile } from '../../App';\nimport './About.css';\nimport images from '../../images';\n\nconst About = () => {\n return (\n \n {matches => (\n \n
\n
About Master Meter
\n

v1.0

\n
\n

\n At Master Meter, we are focused on the future of water management.\n Everything we do is designed to help our utility customers reduce costs, \n improve efficiencies, and promote water stewardship through empowering conservation.

\n\n Master Meter is a study in innovation. Our parent company, Israel-based Arad\n Group, is located in the world’s most robust center of resource management \n technology development. With few natural resources, Israel has positioned \n itself as a global leader in desalination, micro-irrigation, water management\n software, advanced meter infrastructure, solar power, pipe rehabilitation, and \n more. Albert Einstein famously noted, “Necessity is the mother of all \n invention.” Our customers enjoy a real advantage in working with the very \n best technologies available today.

\n\n Our Sonata and Octave smart water meters are based on solid-state\n technology and leverage the most innovative science to ensure that your\n water meters stay accurate. Over 6 million Dialog® 3G AMR, Allegro Mobile,\n and Allegro AMI Under- the-Glass (UTGTM) endpoints are in use today, making\n our networking solutions a tried and trusted technology for remotely\n communicating consumption and performance alert information.

\n\n Whether you’re serving small rural populations or major metropolitan areas,\n delivering water only or provisioning combination utilities, Master Meter is your\n partner to deliver game changing results across Finance, Customer Service,\n and Utility Operations. Master Meter’s vast sales presence and partner\n network ensure a personalized, attentive service to ensure your specific\n needs are met, and your expectations exceeded. Contact us today to\n determine which smart water metering solution is right for you.\n

\n
\n \n
\n
\n
\n \n )}\n
\n );\n};\n\nexport default About;\n","import React from 'react';\nimport images from '../../images';\nimport '../../App.css';\nimport './AdminLogin.css';\nimport {Link} from 'react-router-dom';\nimport validator from 'validator';\nimport Input from 'react-validation/build/input';\nimport Form from 'react-validation/build/form';\nimport Button from 'react-validation/build/button';\nimport * as validators from '../../validators';\nimport * as api from '../../api';\nimport utils from '../../utils';\nimport PersistenceManager from '../../managers/PersistenceManager';\nimport globals from '../../globals';\nimport {Desktop, Mobile} from '../../App';\nimport {ClipLoader} from 'react-spinners';\nimport DataManager from '../../managers/DataManager';\nimport Popup from \"reactjs-popup\";\nimport AppPopup from \"../../components/AppPopup\";\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport queryString from 'query-string';\n\n//genichm@gmail.com / 123qwe!@#\nclass AdminLogin extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n email: '',\n password: '',\n isLoading: false,\n errorMessage: null,\n isSecurePass: true,\n captchaResponse: null\n };\n }\n\n componentWillMount() {\n if (this.props.onEnter) this.props.onEnter(true);\n\n let params = queryString.parse(this.props.location.search);\n if (params && params.session_id) {\n this.setState({sessionId: params.session_id})\n }\n }\n\n render() {\n return (\n
\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n
\n );\n }\n\n _renderMobile() {\n return (\n \n {this.state.isLoading && (\n \n )}\n \n Admin Log In\n \n
\n
\n

\n USERNAME\n

\n \n this.setState({email: event.target.value})\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex'\n }}\n />\n
\n
\n

\n PASSWORD\n

\n \n \n this.setState({\n password: event.target.value\n })\n }\n type={\n this.state.isSecurePass\n ? 'password'\n : 'text'\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex'\n }}\n />\n this.toggleSecurePass(event)}\n >\n \n \n
\n \n \n \n \n \n \n \n I forgot my password\n \n \n \n \n \n );\n }\n\n _renderDesktop() {\n return (\n \n {/* this.msg = a} {...this.alertOptions} />*/}\n {this.state.isLoading && (\n \n )}\n

Admin Log In

\n
\n
\n

\n USERNAME\n

\n \n this.setState({email: event.target.value})\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex'\n }}\n />\n
\n
\n

\n PASSWORD\n

\n \n \n this.setState({\n password: event.target.value\n })\n }\n style={{\n paddingLeft: 10,\n paddingRight: 10,\n display: 'flex'\n }}\n />\n this.toggleSecurePass(event)}\n >\n \n \n
\n \n \n \n \n \n \n \n {\n console.log('reCaptcha = ' + captchaResponse);\n this.setState({captchaResponse})\n }}\n />\n
\n \n
\n \n \n \n \n );\n }\n\n closePopup = () => {\n this.setState({errorMessage: null});\n };\n\n toggleSecurePass(event) {\n event.preventDefault();\n if (event.detail !== 0) {\n this.setState({isSecurePass: !this.state.isSecurePass});\n }\n }\n\n onSubmit = event => {\n event.preventDefault();\n\n const {from} = this.props.location.state || {\n from: {pathname: '/home'}\n };\n const {email, password, captchaResponse} = this.state;\n\n this.setState({isLoading: true});\n api.adminLogin(email, password, captchaResponse, (response, error) => {\n this.setState({isLoading: false});\n if (error) {\n console.log('Unknown error has occurred.');\n this.setState({errorMessage: 'Unknown error has occurred.'});\n } else {\n if (response.error) {\n console.log(response.error);\n this.setState({errorMessage: response.error});\n } else {\n const token = response.token;\n api.setTokenValue(token);\n\n this.setState({isLoading: true});\n api.getLoginCredentials(this.state.sessionId, (response, error) => {\n this.setState({isLoading: false});\n\n if (error) {\n console.log('Unknown error has occurred.');\n this.setState({errorMessage: 'Unknown error has occurred.'});\n // this.msg.show('Unknown error has occurred.', {\n // time: 2000,\n // type: 'info'\n // })\n } else {\n if (response.error) {\n console.log(response.error);\n this.setState({errorMessage: response.error});\n } else {\n const token = response.token;\n console.log('token = ' + token);\n api.setTokenValue(token);\n DataManager.sharedInstance.isAuthenticated = true;\n\n PersistenceManager.storeItem(globals.STORAGE.TOKEN, token);\n\n this.setState({isLoading: true});\n api.getMe((res, err) => {\n this.setState({isLoading: false});\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n } else {\n DataManager.sharedInstance.user = res;\n DataManager.sharedInstance.isAuthenticated = true;\n\n this.props.history.push(from.pathname);\n this.props.onLogin();\n }\n }\n });\n }\n }\n }\n );\n }\n }\n });\n }\n}\n\nexport default (AdminLogin)\n","import React, {Component} from 'react';\nimport './App.css';\nimport Header from './common/Header/Header';\nimport Footer from './common/Footer/Footer';\nimport Responsive from 'react-responsive';\nimport {Link, BrowserRouter, Route, withRouter} from 'react-router-dom';\nimport Register from './scenes/register/Register';\nimport images from './images';\nimport globals from './globals';\nimport Login from './scenes/login/Login';\nimport ForgotPassword from './scenes/password/ForgotPassword';\nimport RegisterAccount from './scenes/register/RegisterAccount';\nimport RegisterPhone from './scenes/register/RegisterPhone';\nimport RegisterEnterCode from './scenes/register/RegisterEnterCode';\nimport RegisterNotFound from './scenes/register/RegisterNotFound';\nimport Popup from 'reactjs-popup';\nimport TermsOfUse from './scenes/common/TermsOfUse';\nimport RegisterFinish from './scenes/register/RegisterFinish';\nimport ChangePassword from './scenes/password/ChangePassword';\nimport EnterCodePassword from './scenes/password/EnterCodePassword';\nimport DataManager from './managers/DataManager';\nimport Settings from './scenes/settings/Settings';\n// import 'react-s-alert/dist/s-alert-default.css';\nimport Home from './scenes/home/Home';\nimport SettingsChangePassword from './scenes/settings/SettingsChangePassword';\nimport SettingsChangePhone from './scenes/settings/SettingsChangePhone';\nimport Alerts from './scenes/alerts/Alerts';\nimport AlertInfo from './scenes/alerts/AlertInfo';\nimport * as api from './api';\nimport PersistenceManager from './managers/PersistenceManager';\nimport LandingPage from './scenes/home/LandingPage';\nimport PrivacyPolicy from './scenes/common/PrivacyPolicy';\nimport ProtectedRoute from './common/ProtectedRoute';\nimport Contacts from './scenes/contacts/Contacts';\nimport About from './scenes/about/About';\nimport { compose } from 'recompose'\nimport AppPopup from \"./components/AppPopup\";\nimport AdminLogin from \"./scenes/admin_login/AdminLogin\";\n\nexport const Desktop = props => ;\nexport const Desktop2 = props => ;\nexport const Desktop3 = props => ;\nexport const Tablet = props => (\n \n);\nexport const Mobile = props => ;\nexport const Mobile2 = props => ;\nexport const MobileLand = props => ;\nexport const Default = props => ;\n\nclass App extends React.Component {\n constructor(props) {\n super(props);\n\n // this.location = props.history.location.pathname;\n this.state = {\n openTerms: false,\n openPrivacy: false,\n openChangePass: false,\n openChangePhone: false,\n isLoggedIn: false,\n currentScreen: 0,\n user: DataManager.sharedInstance.user,\n shouldShowBack: true,\n showHeader: true,\n showRightButton: true,\n showSignUpButton: false,\n initLoading: true,\n alertsCount: 0,\n errorMessage: null,\n online: window.navigator.onLine\n };\n }\n\n componentDidMount() {\n window.addEventListener('offline', this.handleNetworkChange);\n window.addEventListener('online', this.handleNetworkChange);\n }\n \n componentWillUnmount() {\n window.removeEventListener('offline', this.handleNetworkChange);\n window.removeEventListener('online', this.handleNetworkChange);\n }\n \n handleNetworkChange = () => {\n this.setState({ online: window.navigator.onLine });\n }\n\n render() {\n const {initLoading} = this.state;\n\n if (initLoading) {\n return
;\n }\n\n return (\n \n {matches => {\n if (matches) return this._renderMobile();\n else return this._renderDesktop();\n }}\n \n );\n }\n\n componentDidMount() {\n DataManager.sharedInstance.onEnter = this.onEnter;\n\n const token = PersistenceManager.getItem(globals.STORAGE.TOKEN);\n\n if (token) {\n api.setTokenValue(token);\n\n if (this.props.location.pathname === '/settings')\n this.setState({currentScreen: 1});\n else if (this.props.location.pathname === '/alerts')\n this.setState({currentScreen: 2});\n\n api.getMe((res, err) => {\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n\n if (res.code === 401) {\n PersistenceManager.deleteItem(\n globals.STORAGE.TOKEN\n );\n this.setState({errorMessage: res.error});\n }\n\n this.setState({\n initLoading: false\n });\n } else {\n DataManager.sharedInstance.user = res;\n DataManager.sharedInstance.isAuthenticated = true;\n\n this.setState({\n isLoggedIn: true,\n initLoading: false,\n user: res\n });\n }\n }\n });\n } else {\n this.setState({\n initLoading: false\n });\n }\n }\n\n _onRightButtonPressed() {\n this.setState({showSignUpButton: !this.state.showSignUpButton});\n }\n\n _renderLoggedOutStripDesktop() {\n if (this.state.showHeader)\n return (\n \n this._onRightButtonPressed()}\n >\n \n {/**/}\n \n
\n );\n else {\n return null;\n }\n }\n\n _renderLoggedOutStripMobile() {\n if (this.state.showHeader)\n return (\n \n this._onRightButtonPressed()}\n >\n \n {/**/}\n \n \n );\n else {\n return null;\n }\n }\n\n _renderLoggedInStripDesktop() {\n return (\n \n \n \n \n HOME\n \n {this.state.currentScreen === 0 && (\n \n )}\n \n \n this.onSettingsPressed()}\n >\n SETTINGS\n \n {this.state.currentScreen === 1 && (\n \n )}\n \n \n this.onAlertsPressed()}\n >\n ALERTS\n \n {this.state.currentScreen === 2 && (\n \n )}\n \n {this.state.alertsCount > 0 &&\n
\n
\n \n
{this.state.alertsCount}\n
\n
\n
\n }\n \n \n
\n

\n Welcome {this.state.user.firstName}{' '}\n {this.state.user.lastName}\n

\n \n \n \n
\n \n );\n }\n\n _renderLoggedInStripMobile() {\n return (\n \n \n

\n Welcome {this.state.user.firstName}{' '}\n {this.state.user.lastName}\n

\n \n \n \n \n \n \n \n HOME\n \n {this.state.currentScreen === 0 && (\n \n )}\n \n \n this.onSettingsPressed()}\n >\n SETTINGS\n \n {this.state.currentScreen === 1 && (\n \n )}\n \n \n this.onAlertsPressed()}\n >\n ALERTS\n \n {this.state.currentScreen === 2 && (\n \n )}\n \n {this.state.alertsCount > 0 &&\n
\n
\n \n
{this.state.alertsCount}\n
\n
\n
\n }\n \n \n );\n }\n\n _renderMobile() {\n return (\n \n \n {(!this.state.online) && (\n
No internet connection\n
\n )}\n {this.state.showHeader &&
}\n {this.state.isLoggedIn\n ? this._renderLoggedInStripMobile()\n : this._renderLoggedOutStripMobile()}\n\n (\n \n )}\n />\n (\n \n )}\n />\n \n \n \n \n \n \n \n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n (\n this.setState({alertsCount})}/>\n )} />\n (\n this.setState({alertsCount})}/>\n )}\n />\n\n \n\n {/**/}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n closeErrorPopup() {\n this.setState({errorMessage: null});\n }\n\n _renderDesktop() {\n return (\n \n \n {/*
*/}\n {(!this.state.online) && (\n
No internet connection\n
\n )}\n {this.state.showHeader &&
}\n {this.state.isLoggedIn\n ? this._renderLoggedInStripDesktop()\n : this._renderLoggedOutStripDesktop()}\n\n \n {/**/}\n {/**/}\n {/**/}\n {/**/}\n (\n \n )}\n />\n (\n {\n this.onLogin();\n this.setState({showRightButton: true});\n }}\n onEnter={() => {\n this.setState({showRightButton: false});\n this.onEnter();\n }}\n />\n )}\n />\n (\n \n )}\n />\n \n \n \n \n \n \n \n \n (\n \n )}\n />\n \n \n (\n this.setState({alertsCount})}/>\n )} />\n (\n \n )}\n />\n (\n this.setState({alertsCount})}/>\n )}\n />\n \n\n {/**/}\n {/**/}\n {/**/}\n
\n\n {/**/}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n }\n\n onEnter = showSignUpButton => {\n this.setState({showSignUpButton});\n };\n\n toggleHeader = show => {\n let isLoggedIn = this.state.isLoggedIn;\n if (!show) isLoggedIn = false;\n this.setState({showHeader: show, isLoggedIn});\n };\n\n onLogout = () => {\n api.logout((res, err) => {\n if (err) {\n console.log('Unknown error has occurred.');\n } else {\n if (res.error) {\n console.log(res.error);\n\n if (res.code === 401) {\n PersistenceManager.deleteItem(\n globals.STORAGE.TOKEN\n );\n this.setState({errorMessage: res.error});\n }\n\n this.setState({\n initLoading: false\n });\n } else {\n DataManager.sharedInstance.reset();\n this.setState({isLoggedIn: false, user: null});\n }\n }\n });\n };\n\n onLogin = () => {\n this.setState({\n isLoggedIn: true,\n user: DataManager.sharedInstance.user\n });\n };\n\n onHomePressed = () => {\n if (this.state.currentScreen === 0) return;\n\n this.setState({currentScreen: 0});\n };\n\n onSettingsPressed = () => {\n if (this.state.currentScreen === 1) return;\n\n this.setState({currentScreen: 1});\n };\n\n onAlertsPressed = () => {\n if (this.state.currentScreen === 2) return;\n\n this.setState({currentScreen: 2});\n };\n\n openChangePhone = () => {\n this.setState({openChangePhone: true});\n };\n\n closeChangePhone = () => {\n this.setState({openChangePhone: false});\n };\n\n openChangePass = () => {\n this.setState({openChangePass: true});\n };\n\n closeChangePass = () => {\n this.setState({openChangePass: false});\n };\n\n closeTerms = () => {\n this.setState({openTerms: false});\n };\n\n openTerms = () => {\n this.setState({openTerms: true});\n };\n\n closePrivacy = () => {\n this.setState({openPrivacy: false});\n };\n\n openPrivacy = () => {\n this.setState({openPrivacy: true});\n };\n}\n\nexport default withRouter(App);\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React, {Component} from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\nimport AlertTemplate from 'react-alert-template-basic';\nimport {BrowserRouter} from \"react-router-dom\";\n\nconst alertOptions = {\n offset: 30,\n position: 'top center',\n time: 5000,\n type: 'error',\n transition: 'scale',\n icon: \n};\n\nclass Root extends Component {\n render() {\n return (\n \n \n \n )\n }\n}\n\n\nReactDOM.render(, document.getElementById('root'));\nregisterServiceWorker();\n","module.exports = __webpack_public_path__ + \"static/media/UserGuide.2bb747de.pdf\";","module.exports = __webpack_public_path__ + \"static/media/FAQ.a3a9395a.pdf\";","module.exports = __webpack_public_path__ + \"static/media/logo_new.87dd9adc.svg\";"],"sourceRoot":""}