{"version":3,"sources":["../node_modules/sass sync","constants/actionTypes.js","redux/reducers.js","redux/auth/authReducer.js","redux/clients/clientReducer.js","redux/users/userReducer.js","redux/services/serviceReducer.js","redux/workEntries/workEntryReducer.js","redux/config/configReducer.js","constants/appConstants.js","util/auth.js","util/httpService.js","api/login.js","redux/auth/authAction.js","redux/auth/authSaga.js","api/client.js","redux/clients/clientSaga.js","redux/clients/clientActions.js","api/user.js","redux/users/userSaga.js","redux/users/userActions.js","api/maps.js","util/util.js","api/clientService.js","redux/services/serviceSaga.js","redux/services/serviceActions.js","api/workEntry.js","redux/workEntries/workEntryAction.js","redux/workEntries/workEntrySaga.js","api/report.js","redux/reports/reportSaga.js","redux/store.js","redux/sagas.js","components/shared/date-picker/datePickerComponent.jsx","components/shared/date-picker/timePickerComponent.jsx","components/shared/form-fields/formFields.jsx","components/login/loginValidator.js","components/login/loginForm.jsx","components/shared/footer/footer.jsx","constants/user.js","components/login/login.jsx","components/reset-password/verify-email/verifyEmailForm.jsx","util/url.js","util/notificationManager.js","components/reset-password/verify-email/verifyEmail.jsx","components/reset-password/resetPasswordForm.jsx","components/reset-password/resetPassword.jsx","components/shared/header/header.jsx","components/shared/data-grid/pagination/pagination.jsx","components/shared/data-grid/data-grid.jsx","components/shared/data-grid/custom-cells/basic-cell.jsx","components/shared/data-grid/custom-headers/basic-header.jsx","components/shared/data-grid/custom-cells/view.jsx","util/deviceType.js","components/clients/clientCard.jsx","redux/config/configAction.js","components/clients/clients.jsx","components/shared/data-grid/custom-cells/actions.jsx","components/staff/staffCard.jsx","components/shared/data-grid/custom-cells/resetPassword.jsx","components/shared/popup-modal/popUpModal.jsx","components/shared/password-validations/validations-box.jsx","components/staff/ResetPasswordForm.jsx","components/staff/staff.jsx","components/staff/supportCard.jsx","components/support-cordinator/support-cordinator.jsx","components/work-entries/weCard.jsx","components/shared/data-grid/custom-cells/select-cell.jsx","components/shared/searchable-dropdown/index.js","components/work-entries/workEntries.jsx","components/reports/filters/workEntryFilter.jsx","components/reports/filters/staffFilter.jsx","components/reports/filters/contactsFilter.jsx","components/reports/filters/SCFilter.jsx","components/shared/data-grid/custom-cells/report-cell.jsx","components/reports/report-views/allContactReport.jsx","components/reports/report-views/notesReport.jsx","components/shared/data-grid/custom-headers/report-header.jsx","components/reports/report-views/promiseBillingReport.jsx","components/reports/report-views/scSummaryReports.jsx","components/reports/report-views/staffBillingReport.jsx","components/reports/report-views/staffSummaryReport.jsx","components/reports/report-views/staffAllocationSummary.jsx","components/reports/report-views/MonthlyClientServiceSummary.jsx","components/reports/report-views/ClientServiceSummary.jsx","components/reports/report-views/reportView.jsx","components/reports/filters/staffAllocationFilter.jsx","components/reports/filters/MonthlyClientServiceSummaryFilter.jsx","components/reports/billingReport.jsx","components/services/serviceCard.jsx","api/service.js","components/clients/create-client/create-client-form/clientValidator.js","components/services/service-create/create.jsx","components/services/services.jsx","components/shared/side-navigation/menu.js","components/reports/report-views/serviceSummary/pagination.jsx","components/reports/report-views/serviceSummary/serviceSummaryMobile.jsx","components/reports/report-views/serviceSummary/serviceDataTable.jsx","components/reports/report-views/serviceSummary/serviceSummary.jsx","components/shared/data-grid/table.jsx","components/staff/staffPayCard.jsx","components/reports/report-views/staffReports.jsx","components/shared/side-navigation/menuReports.js","components/shared/side-navigation/side-navigation.jsx","components/clients/create-client/create-client-form/clientInfo.jsx","components/shared/map-container/clickableMapContainer.jsx","components/clients/create-client/create-client-form/clientAddressInfo.jsx","components/shared/alert-box/confirmation-box/confirmation-box.jsx","components/staff/create-staff/create-staff-form/files.jsx","components/clients/create-client/create-client-form/createClientForm.jsx","components/clients/create-client/createClient.jsx","components/clients/client-details/basicInformation.jsx","components/clients/client-details/clientServiceInfo.jsx","components/shared/data-grid/custom-cells/staffAssign.jsx","components/shared/dual-list-box/dual-list-box.jsx","components/clients/client-details/staffAllocation.jsx","components/clients/client-details/serviceDetails.jsx","components/clients/client-details/clientDetails.jsx","components/staff/staff-type/staffType.jsx","components/staff/create-staff/create-staff-form/staffValidator.js","components/staff/create-staff/create-staff-form/memberInformation.jsx","components/staff/create-staff/create-staff-form/staffAddressInfo.jsx","components/staff/create-staff/create-staff-form/systemInfo.jsx","components/staff/create-staff/create-staff-form/createStaffForm.jsx","components/staff/create-staff/createStaff.jsx","components/work-entries/create-timesheet/create-timesheet-form/workEntryValidator.js","components/shared/signature-pad/index.js","components/work-entries/create-timesheet/create-timesheet-form/details.jsx","components/work-entries/create-timesheet/create-timesheet-form/createTimeSheetForm.jsx","components/work-entries/create-timesheet/createTimeSheet.jsx","components/profile/change-password/changePassword.jsx","components/profile/profile.jsx","components/shared/protected-route/protectedRoute.jsx","components/staff/staff-details/staff-details.jsx","components/support-cordinator/create-sc/create-sc-form/staffValidator.js","components/support-cordinator/create-sc/create-sc-form/memberInformation.jsx","components/support-cordinator/create-sc/create-sc-form/staffAddressInfo.jsx","components/support-cordinator/create-sc/create-sc-form/createSC.jsx","components/support-cordinator/create-sc/createSC.jsx","components/support-cordinator/SC-details/SC-details.jsx","components/work-entries/work-entry-details/workEntryDetails.jsx","components/shared/data-grid/custom-cells/status-cell.jsx","components/shared/data-grid/custom-cells/link-cell.jsx","components/visits/visitCard.jsx","components/shared/data-grid/custom-cells/clockInOut.jsx","components/visits/update-visit/update-visit.jsx","components/visits/visits.jsx","api/visits.js","components/shared/map-container/mapContainer.jsx","components/visits/create-visit/start-visit.jsx","components/visits/create-visit/visit-init.jsx","components/visits/visit-progress/complete-visit.jsx","components/visits/visit-progress/abandon-visit.jsx","components/visits/visit-progress/visit-progress.jsx","components/faq/faq-box.jsx","components/faq/faq.jsx","components/shared/data-grid/custom-cells/clicable-cell.jsx","components/services/services-import/staff-allocation.jsx","components/services/services-import/confirm.jsx","components/services/services-import/import.jsx","components/login/PasswordForm.jsx","components/login/ForceChangePassword.jsx","containers/appContainer.jsx","components/shared/loader/loaderData.js","components/shared/loader/loader.jsx","components/two-factor-authentication/verify-otp.jsx","components/two-factor-authentication/save-browser.jsx","App.js","serviceWorker.js","index.js"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","module","exports","id","USER","CLIENT","SERVICE","WORK_ENTRY","REPORTS","CONFIG","rootReducer","combineReducers","form","formReducer","plugin","addClient","state","action","type","response","auth","arguments","length","undefined","data","otpVerified","error","confirmEmail","email","confirmEmailSuccess","confirmEmailFail","verifyTokenSuccess","verifyTokenFail","changePasswordSuccess","changePasswordFail","verifyToken","token","resendOtp","otpEmail","client","createSuccess","createFail","updateSuccess","updateFail","getAllSuccess","getAllFail","user","getSCSuccess","getSCFail","updateSCSuccess","updateSCFail","createSCSuccess","createSCFail","service","workEntry","visitStatus","visitDuration","duration","visit","config","clientSearch","serviceSearch","staffSearch","scSearch","weSearch","reportSearch","BASE_URL","VISIT_URL","ALERT_TYPES","s3config","bucketName","dirName","region","accessKeyId","secretAccessKey","s3Url","REPORT_TYPES","RECORD_TYPES","value","DATE_TIME_FORMAT","FUNDING_SOURCE_TYPE","WAIVER_TYPES","STAFF_STATUS","ADMIN_VERIFICATION","VISIT_STATUS","GOOGLE","DATEFILTEROPTIONS","COUNTIES","STATES_LIST","WE_ACTIONS","setAuthData","authData","window","localStorage","setItem","JSON","stringify","getAuthData","getItem","checkAuthStatus","status","location","pathname","href","getToken","parse","get","getAuth","getLoginTokenArray","loginTokenArray","async","url","options","trackPromise","axios","concat","post","body","put","loginUser","userName","password","loginToken","broswer_id","verifyOTPApi","otp","resendOTPApi","confirmResetEmail","resetObject","changePassword","saveBrowserApiCall","browserId","userEmail","browser","channel","userId","browser_id","user_id","loginSuccess","resendOtpRes","resetOtpReset","watchLogin","takeEvery","username","call","handleLogin","authResponse","watchConfirmEmail","payload","handleConfirmEmail","authToken","resetPasswordResponse","watchVerifyToken","handleVerifyToken","watchChangePassword","handleChangePassword","changePasswordResponse","watchVerifyOtp","handleOTPVerification","otpEntered","watchVerifyResendOtp","handleResendOtp","watchTrustBrowserApiCall","trustData","handleTrustBrowser","trim","toLowerCase","existingLoginTokenArray","c","i","push","setLoginTokenArray","createClient","headers","Authorization","_","updateClient","getAllClients","pageNumber","pageSize","filter","searchParams","getClientById","clientId","getAllClientsList","watchCreateClient","clientData","handleCreateClient","watchUpdateClient","handleUpdateClient","watchGetAllClient","handleGetAllClient","clients","createUser","updateUser","getAllUsers","userType","getAllUsersByType","getUserById","getSCById","getAllUsersList","createSC","updateSC","getSCs","resetStaffPassword","watchCreateUser","userData","handleCreateUser","watchUpdateUser","handleUpdateUser","watchGetAllUser","handleGetAllUser","users","watchCreateSC","handleCreateSC","watchUpdateSC","handleUpdateSC","watchGetAllSC","handleGetAllSCs","geoCodeAddress","address","externalAPIGet","getUserStatus","getTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","formatDateTime","dateObj","format","moment","tz","formatSSN","v","ssnValue","replace","base64url","source","encodedSource","CryptoJS","enc","Base64","createClientService","updateClientService","getClientServiceById","requestId","getClientServiceByClientId","watchCreateClientService","serviceData","handleCreateClientService","watchUpdateClientService","handleUpdateClientService","createWorkEntry","updateWorkEntry","getAllWorkEntries","entryType","staff","fromDate","toDate","dateRangeOption","getAllWorkEntriesByUserId","getWorkEntryById","workEntryId","getAllWorkEntriesSuccess","getAllWorkEntriesFail","resetGetAllWorkEntries","setVisitStatus","setVisitDetails","resetVisitDetails","watchCreateWorkEntry","workEntryData","handleCreateWorkEntry","watchUpdateWorkEntry","handleUpdateWorkEntry","watchGetAllWorkEntry","handleGetAllWorkEntry","workEntries","watchGetAllWorkEntryByUserId","handleGetAllWorkEntryByUserId","generateReport","reportType","startDate","endDate","responseType","FileDownload","getReportName","generateStaffReport","generateWorkEntryReport","adminVerification","dateFilterOption","staffId","serviceId","isValid","watchGenerateReport","reportData","handleGenerateReport","watchGenerateStaffReport","handleGenerateStaffReport","watchGenerateWorkEntryReport","handleGenerateWorkEntryReport","sagaMiddleware","createSagaMiddleware","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","middlewares","thunk","store","createStore","reducers","applyMiddleware","run","all","DatePickerComponent","React","Component","constructor","props","super","handleChange","date","this","setState","onChange","Date","render","createElement","DatePicker","selected","placeholderText","className","showYearDropdown","dateFormat","minDate","maxDate","disabled","TimePickerComponent","setUTCHours","showTimeSelect","showTimeSelectOnly","timeIntervals","timeCaption","maxTime","minTime","inputField","_ref","input","placeholder","autocomplete","meta","touched","max","minVal","pattern","required","onTextValueChange","onKeyPress","Object","assign","maxLength","min","autoComplete","src","alt","textField","_ref4","selectField","_ref5","key","text","renderDatePicker","_ref6","componentOnChange","fieldOnchange","datePickerOnChange","renderTimePicker","_ref7","selectedDate","start","end","isBefore","now","setHours","getTime","style","marginLeft","marginRight","phoneNumberField","_ref8","PhoneInput","country","inputClass","disableCountryCode","enableAreaCodes","onlyCountries","marginTop","SSNTNField","_ref9","replaceAll","onBlur","onFocus","validateEmail","isEmpty","test","validateEmailSC","validatePassword","validateChangePassword","validateConfirmPassword","validatePasswordFormat","validateSSN","ssn","LoginForm","onShowPassword","showPassword","handleSubmit","loginError","checkIsRememberMe","onForgotPassword","Form","onSubmit","Field","name","component","validate","position","top","right","onClick","cursor","authForm","reduxForm","Footer","backgroundColor","getUTCFullYear","USER_TYPES","Login","componentWillReceiveProps","nextProps","history","isNull","isEqual","httpStatusCode","passwordResetRequired","createNotification","message","onLogin","values","dispatch","tokenToReturn","getSpecificLoginToken","login","onCheckRememberMe","event","isRememberMe","target","checked","alertType","alertMessage","NotificationManager","info","success","warning","left","AuthForm","withRouter","connect","VerifyEmailForm","isLinkSent","resendToken","newOtpSend","enteredOtp","onOTPChange","wrongOtp","sendNewOtp","color","fontSize","marginBottom","display","paddingTop","paddingBottom","justifyContent","textAlign","alignSelf","alignItems","OtpInput","isInputNum","inputStyle","height","width","numInputs","separator","paddingRight","VerifyForm","getQueryParameter","URLSearchParams","search","VerifyEmail","isInvalid","confirmationEmail","isUndefined","emailInvalidError","emailInvalid","resendLink","emailVerify","verifyEmail","resetToken","tokenInvalid","componentDidMount","isVerifyToken","nextContext","ResetPasswordForm","onShowConfirmationPassword","showConfirmationPassword","isResetPasswordError","changePasswordError","ChangePasswordForm","ResetPassword","resetPassword","confirmationPassword","Header","isAuthenticated","data-widget","role","Profile","Dropdown","logOut","onProfileClick","showDropDown","onProfileSettingsClick","onFAQClick","handleClickOutside","initials","firstName","charAt","lastName","toUpperCase","data-toggle","viewBox","d","x","y","classNames","show","padding","paddingLeft","onClickOutside","Pagination","onPageSizeChange","checkPreviousDisabled","previousPageNumber","checkNextDisabled","total","onPageChange","onPageNumberChange","recordCount","map","record","active","DataGrid","parseInt","page","ReactTable","getTdProps","rowInfo","onRowClick","index","columns","defaultPageSize","showPagination","resizable","sortable","getNoDataProps","margin","fontFamily","zIndex","label","paginationLabel","BasicCell","BasicHeader","header","View","actionId","md","mobileDetect","navigator","userAgent","isMobileDevice","phone","ClientCard","onDetails","city","saveClientSearchChanges","searchParam","saveServicesSearchChanges","saveStaffSearchChanges","saveSCSearchChanges","saveWESearchChanges","selectedStaff","selectedService","activeTabIndex","Clients","onCreateNewClient","onEdit","onSearch","onPressEnter","keyCode","onFilterChange","onStatusChange","selectedClient","totalClients","searchConfig","startCase","accessor","Cell","row","original","bind","onKeyDown","clientsError","Actions","StaffCard","PopUpModal","modalClassName","size","tabIndex","aria-labelledby","aria-hidden","onClose","icon","title","children","ValidationsBox","dirty","validLength","validCharacters","validNumbers","validSpecialCharacters","onPasswordChange","validPassword","isValidPassword","onCloseModal","Staff","onCreateNewStaff","onResetPassword","openModal","selectedUser","getUserType","recordType","newPassword","then","res","seletedUser","totalUsers","staffType","usersError","SupportCard","wordBreak","companyName","SupportCoordinator","scId","mobile","flexDirection","flexWrap","flex","WECard","we","staffName","clientName","elapsedTime","usedUnits","gross","net","startTime","endTime","SelectCell","SearchableDropdown","dropdownOpen","selectedValue","filteredOptions","valueIdentifier","filterOptions","onOptionSelect","option","keyIdentifier","onDropAction","focus","includes","defaultValue","selectedOption","ref","ip","onMouseDown","WorkEntries","from","utc","to","onCreateNewWorkEntry","onDateRangeChange","onStaffChange","onServiceChange","onFromDateChange","onToDateChange","onTabChange","tab","selectedWorkEntryId","totalWorkEntries","usersList","servicesList","setDate","getDate","statusList","entryId","entryName","elapsedHours","toFixed","unitsUsed","grossAmount","netAmount","serviceCode","getAllServices","getAllStaff","getClientServicesList","catch","err","console","log","splice","border","workEntryError","WorkEntryFilters","onReviewStatusChange","onClientChange","StaffFilter","year","ContactsFilter","SCFilter","ReportCell","AllContactsReportView","mapRecords","reports","report","familyContactEmail","billingCity","NoteReportView","accName","wName","sName","serviceName","sTime","serviceStartTime","eTime","serviceEndTime","billingState","modDate","updatedDate","notes","DataTableReportHeader","PromiseBillingReportView","records","clientIds","getUniqueIds","arr","r","groupByService","serviceIds","serviceRequestId","reviewed","mci","createdDate","eHours","parseFloat","units","gValue","nValue","ids","uniqBy","Math","floor","reportStats","stats","totalUnits","totalGross","totalNet","SCSummaryReportView","company","StaffBillingReportView","staffIds","StaffSummaryReportView","billingStreet","StaffAllocationReportView","isClientView","reportOption","beginDate","serviceStartDate","serviceEndDate","sort","a","b","localeCompare","forEach","element","clientColumns","staffColumns","MonthlyClientServiceSummary","initialReportData","defaultCols","_ref2","_ref3","_ref10","_ref11","_ref12","setReportData","useState","months","setMonths","setColumns","useEffect","monthsList","mappedData","monthlyUsage","individualName","county","procedureCode","unitCost","UnitCost","unitsAuthorized","remaining","percentage","Percentage","Target","month","newCols","monthCols","generateMonthCol","_ref13","ClientServiceSummary","setData","services","ReportView","StaffAllocationFilter","MonthlyClientServiceSummaryFilter","onChangeFromDate","onChangeToDate","maxEnd","setMaxEnd","today","endYear","getMonth","getFullYear","BillingReport","onReportSelect","currentYear","currentMonth","showViewer","onGenerateReport","recordStatus","reviewStatus","offset","limit","getReportData","getClientServiceSummaryData","getWorkEntryReport","onFileDownload","generateClientServiceSummaryReport","isWorkEntryReport","onStartDateChange","ContactsReport","mapStateToProps","ServiceCard","createService","specialCharRegEx","zipRegEx","validateClientFirstName","hasSpecialCharacters","validateClientMiddleName","validateClientLastName","validateClientServiceName","validateClientServiceCode","validateClientServiceStartDate","validateClientServiceEndDate","validateClientServiceUnitRate","validateNumericFieldValues","validateClientServiceUnitsAuthorized","validateClientServiceUnitLength","validateFamilyContactEmail","validateMobileNumber","validateRequiredFields","validateMCI","validateZIPCode","zip","ServiceCreateUpdate","noValidate","isDegreeRequired","onDegreeRequired","isOverlappable","onOverlapable","isEdit","serviceCreateUpdateForm","enableReinitialize","keepDirtyOnReinitialize","Services","onCreateNewService","onImportServices","open","getServiceById","serviceDescription","description","serviceUnitRate","unitRate","serviceUnitLength","unitLength","degreeRequired","selectedServiceId","initialValues","handleServiceAddUpdate","updateService","totalServices","val","isSideBarNavigation","authUsers","selectedIcon","WorkEntry","Reports","itemsPerPage","totalItems","currentPage","onPageClick","totalPages","ceil","getPageRange","startPage","endPage","Array","number","ServiceSummaryMobile","item","serviceUnitsAuthorized","unitsUtilized","unitsRemaining","ServiceDataTable","serviceIsNegetiveUnitsAllowed","ServiceSummary","setServices","setCurrentPage","searchValue","setSearchValue","indexOfLastItem","indexOfFirstItem","filteredServices","entries","reduce","result","servicesArray","filteredArray","currentItems","slice","fetch","timezone","getServiceSummary","temp","objet","div","Fragment","handlePageClick","Table","processedData","isVisible","newData","textOverflow","overflow","handleClick","fontWeight","letterSpacing","lineHeight","contentStyle","StaffPayCard","setValue","showCalender","showChart","buttonBackground","getStaffPayReport","obj","staffReports","SideNavigation","onMenuChange","selectedMenu","expanded","boxShadow","data-accordion","document","classList","toggle","contains","remove","add","menuItems","menuReports","ClientInfo","checkOtherWaiverType","waiver","isSetWaiverType","w","showOtherWaiver","waiverType","checkOtherFundingSource","fundingSource","isSetFundingSource","showOtherFundingSource","waiwer","onWaiverChange","onWaiwerChange","onFundingSourceChange","validatemiddlename","variable_to_test","isAuthorized","sc","bs","customWaiver","customFunding","supportCoordinatorsList","supportCoordinator","onSupportCoordinatorSelect","behavioralSpecialistsList","behavioralSpecialist","onBehavioralSpecialistSelect","onCountrySelect","phoneNumber","clientStatus","ClickableMapContainer","lat","lng","some","updateMap","encodeURI","geoLocation","coordinates","mapClicked","mapProps","clickEvent","latLng","Map","google","zoom","initialCenter","center","disableDefaultUI","Marker","GoogleApiWrapper","apiKey","ClientAddressInfo","fetchCoords","street","geometry","coords","onLatLongChange","geoCoords","streetChange","cityChange","stateChange","onBillingStateChange","countryChange","billingCountry","latitude","longitude","ConfirmationBox","onConfirm","Files","handleFileChange","directoryName","ReactS3Client","S3","file","uploadInput","files","fileParts","split","fileName","fileType","newFileName","showLoader","uploadFile","documentKey","onFileUpload","getElementById","getFileType","getFileName","substring","removeImage","onRemoveImage","getFileIcon","onTrashClick","fileList","rel","htmlFor","CreateClientForm","initialize","clientInfoAuthorized","onClientInfoAuthorized","countryList","goBack","preventDefault","clientForm","CreateClient","routeToClient","mapClient","toISOString","dob","isEditMode","selectedClientId","createClientSuccess","reset","createClientFail","updateClientSuccess","updateClientFail","middleName","mpi","diagnosticCode","supportCoordinatorId","behavioralSpecialistId","goalsOutcomes","billingZIP","serviceAccount","memo","isAllowedNegativeUnits","serviceIsAuthorized","isServiceInfoAuthorized","isDatesConfirmed","isConfirmedDates","deleted","checkOtherFundingSourceType","serviceFileList","getSCList","onConfirmDates","AllowNegativeUnits","onServiceInfoAuthorized","clone","o","BasicInformation","getFullName","onProfileLinkClick","onScProfileLink","ClientServiceInfo","serviceForm","StaffAllocationAction","DualListBox","availableOptions","allOptions","selectedOptions","pullAll","onSelectAvailableOption","markedOptions","markedAvailableOptions","onSelectSelectedOption","markedSelectedOptions","onOptionsSelect","onOptionDeselect","StaffAllocation","pullAllBy","filteredAvailableOptions","filteredSelectedOptions","availableFilter","find","chosenFilter","onChosenFilterChange","onAvailableFilterChange","assignedStaff","onUpdate","ServiceDetails","createClientServiceSuccess","clientServices","newService","serviceStartDateDisplay","serviceEndDateDisplay","orderBy","onClientServicesUpdate","createClientServiceFail","updateClientServiceSuccess","updatedService","newServicesList","updateClientServiceFail","onStaffAssign","openAllocationModal","onStaffAllocationUpdate","updateStaffAllocation","addServiceRequests","mapService","onServiceSelect","onRemoveFile","selectedServiceRequest","openDeleteModal","onUnitLengthChange","isChecked","clientDetails","isArray","handleTabStateChanged","onOpenModal","StaffType","onContinue","userRoleGroup","roleGroupId","recordTypes","unshift","characterRegEx","validateFirstName","validateLastName","validateMiddleName","validateSalutation","validateSuffix","validateUserPercentage","MemberInformation","showEmail","staffStatus","credentials","onCredentialsSelect","hasRelevantDegree","onHasRelevantDegree","StaffAddressInfo","SystemInfo","onIsAuthorized","CreateStaffForm","roleGroupList","onRoleGroupChange","staffForm","CreateStaff","routeToStaff","mapUser","hireDate","selectedUserId","createUserSuccess","createUserFail","updateUserSuccess","updateUserFail","reportTo","salutation","suffix","ssn_tin","getSSN","toLocaleString","percentagePaid","orgAuthentication","getALlRoleGroupList","rg","validateStaffMember","validateClient","validateClientServiceStartTime","validateClientServiceEndTime","SignaturePad","showSignaturePad","signature","SignatuerPadWidth","initialLoad","signaturePad","getTrimmedCanvas","toDataURL","updateWidthSize","addEventListener","innerWidth","borderWidth","borderStyle","borderColor","borderRadius","SignatureCanvas","penColor","canvasProps","onEnd","clear","maxWidth","Details","onStartTimeSet","onStartDateSet","onEndDateSet","staffOptions","clientOptions","serviceOptions","onUserChange","goalsAndOutcomes","progress","onChangeProgress","onAdminVerification","onSignatureChange","onCancelClick","timeSheetForm","CreateTimeSheetForm","loadClientServices","loadClient","mapWorkEntry","toString","serviceStartLongitude","serviceStartLatitude","serviceEndLongitude","serviceEndLatitude","createWorkEntrySuccess","createWorkEntryFail","updateWorkEntrySuccess","updateWorkEntryFail","getHours","getMinutes","getSeconds","staffVerification","thirdPartyVerification","onLocationUpdate","geolocation","onThirdPartyVerification","onStaffVerification","CreateTimeSheet","activeTab","ChangePassword","currentPasswordShow","newPasswordShow","confirmPasswordShow","isSamePasswordError","onPasswordValueChange","samePasswordValueChange","changePasswordForm","currentPassword","confirmPassword","oldPassword","updateUserPassword","minHeight","ProtectedRoute","rest","Route","Redirect","StaffDetails","selectedStaffId","onChangePassword","showPasswordError","toNumber","staffDetails","cred","autofilled","CreateSC","entity","SCDetails","WorkEntryDetails","getService","cs","onLoadWorkEntryHistory","openNoteHistory","getWorkEntryHistoryById","workEntryHistory","formatDate","simpleDate","momentDate","hour","weekDay","day","clientService","_this$state$workEntry","serviceRequest","serviceElapsedTime","lastEdit","updatedBy","diff","updated_on","subtract","calendar","fontStyle","recordHistory","entry","_entry$serviceRequest","_entry$serviceRequest2","_entry$recordedBy","_entry$recordedBy2","_entry$recordedBy3","_entry$recordedBy4","gridTemplateColumns","recordAction","recordActionDate","recordedBy","StatusCell","isMobile","tablet","ClassNames","LinkCell","VisitCard","clockIn","clockOut","clockInDate","clockOutDate","ClockInOut","UpdateVisit","Visits","selectedVisit","updateVisit","updateVisitNote","visitInProgress","getAssignedClientsList","getInProgressVisits","MapContainer","StartVisit","VisitInit","onStartVisit","startVisit","setSeconds","viewMap","ShowMoreText","lines","more","less","anchorClass","truncatedEndingComponent","textDecoration","CompleteVisit","AbandonVisit","VisitProgress","manipulateVisit","onAbandonedVisit","abandonVisit","onAbandonVisitModal","onCompleteVisit","completeVisit","onCompleteVisitModal","getVisitDuration","hours","minuites","seconds","calculateVisitDuration","startedTime","setInterval","notesText","FAQBox","isOpen","question","isTextAnswer","answer","FAQ","faqList","faq","ClickableCell","ConfirmNewService","allServices","staffAllocationData","serviceDetails","setServiceDetails","setServiceRequest","authorizedDate","recipientId","setIsAllowedNegativeUnits","s","service_code","servReq","individual_name","recipient_id","toTitleCase","service_start_date","service_end_date","date_last_authorized","units_authorized","utilized_units","word","join","ImportServices","onServiceAdd","newServicesColumn","onStaffAllocation","updatedServicesColumn","setUsersList","setAllServices","setFile","missingClients","setMissingClients","missingServices","setMissingServices","setOpenModal","newServices","setNewServives","updatedServices","setUpdatedServives","reload","setReload","setOpenAllocationModal","none","setNone","openConfirmModal","setOpenConfirmModal","serviceInitialData","setServiceInitialData","setStaffAllocationData","importedData","setImportedData","processFile","formData","FormData","append","processImportFile","splitData","alert","mc","missing_clients","ms","missing_services","ns","new_services","us","updated_services","resetServiceDetails","service_name","unit_cost","serv","cleanServiceData","FileUploader","multiple","types","exportToExcel","font","bold","alignment","horizontal","worksheet","XLSX","json_to_sheet","sheet_add_aoa","h","origin","sheet_add_json","skipHeader","cellAddress","encode_cell","wpx","workbook","book_new","book_append_sheet","wbout","bookType","buf","ArrayBuffer","view","Uint8Array","charCodeAt","blob","Blob","saveAs","filteredData","importService","PasswordForm","handleForm","resetForm","ForceChangePassword","AppContainer","exact","path","Dashboard","ClientDetails","visits","StaffReports","VisitStart","LoadingIndicator","promiseInProgress","usePromiseTracker","defaultOptions","loop","autoplay","animationData","rendererSettings","preserveAspectRatio","Lottie","VerifyOTP","wrongOtpSend","EnterOtpForm","SaveBrowser","onNoPress","navigateToPage","onYesPress","browserName","encodedHeader","Utf8","alg","typ","createdAt","getMilliseconds","unsignedToken","HmacSHA256","creteJwtToken","trustBrowserApiCall","App","Provider","BrowserRouter","Switch","NotificationContainer","Boolean","hostname","match","ReactDOM","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.c4e9b403.chunk.js","sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 661;","export const USER = {\n  LOGIN: \"USER_LOGIN\",\n  LOGIN_SUCCESS: \"USER_LOGIN_SUCCESS\",\n  LOGIN_FAIL: \"USER_LOGIN_FAIL\",\n  LOGIN_RESET: \"LOGIN_RESET\",\n  CONFIRM_EMAIL: \"CONFIRM_EMAIL\",\n  CONFIRM_EMAIL_SUCCESS: \"CONFIRM_EMAIL_SUCCESS\",\n  CONFIRM_EMAIL_FAIL: \"CONFIRM_EMAIL_FAIL\",\n  RESET_CONFIRM_EMAIL: \"RESET_CONFIRM_EMAIL\",\n  VERIFY_TOKEN: \"VERIFY_TOKEN\",\n  VERIFY_TOKEN_SUCCESS: \"VERIFY_TOKEN_SUCCESS\",\n  VERIFY_TOKEN_FAIL: \"VERIFY_TOKEN_FAIL\",\n  RESET_VERIFY_TOKEN: \"RESET_VERIFY_TOKEN\",\n  CHANGE_PASSWORD: \"CHANGE_PASSWORD\",\n  CHANGE_PASSWORD_SUCCESS: \"CHANGE_PASSWORD_SUCCESS\",\n  CHANGE_PASSWORD_FAIL: \"CHANGE_PASSWORD_FAIL\",\n  RESET_CHANGE_PASSWORD: \"RESET_CHANGE_PASSWORD\",\n  SAVE_VERIFY_TOKEN: \"SAVE_VERIFY_TOKEN\",\n  CREATE_USER: \"CREATE_USER\",\n  CREATE_USER_SUCCESS: \"CREATE_USER_SUCCESS\",\n  CREATE_USER_FAIL: \"CREATE_USER_FAIL\",\n  RESET_CREATE_USER: \"RESET_CREATE_USER\",\n  GET_USERS: \"GET_USERS\",\n  GET_USERS_SUCCESS: \"GET_USERS_SUCCESS\",\n  GET_USERS_FAIL: \"GET_USERS_FAIL\",\n  RESET_GET_USERS: \"RESET_GET_USERS\",\n  UPDATE_USER: \"UPDATE_USER\",\n  UPDATE_USER_SUCCESS: \"UPDATE_USER_SUCCESS\",\n  UPDATE_USER_FAIL: \"UPDATE_USER_FAIL\",\n  RESET_UPDATE_USER: \"RESET_UPDATE_USER\",\n  GET_USERS_BY_TYPE: \"GET_USERS_BY_TYPE\",\n  GET_USERS_BY_TYPE_SUCCESS: \"GET_USERS_BY_TYPE_SUCCESS\",\n  GET_USERS_BY_TYPE_FAIL: \"GET_USERS_BY_TYPE_FAIL\",\n  RESET_GET_USERS_BY_TYPE: \"RESET_GET_USERS_BY_TYPE\",\n  GET_SCS: \"GET_SCS\",\n  GET_SCS_SUCCESS: \"GET_SCS_SUCCESS\",\n  GET_SCS_FAIL: \"GET_SCS_FAIL\",\n  RESET_SCS: \"RESET_SCS\",\n  CREATE_SC: \"CREATE_SC\",\n  CREATE_SC_SUCCESS: \"CREATE_SC_SUCCESS\",\n  CREATE_SC_FAIL: \"CREATE_SC_FAIL\",\n  RESET_SC_USER: \"RESET_SC_USER\",\n  UPDATE_SC: \"UPDATE_SC\",\n  UPDATE_SC_SUCCESS: \"UPDATE_SC_SUCCESS\",\n  UPDATE_SC_FAIL: \"UPDATE_SC_FAIL\",\n  RESET_UPDATE_SC: \"RESET_UPDATE_SC\",\n  VERIFY_OTP: \"VERIFY_OTP\",\n  OTP_VERIFICATION_SUCESS: \"OTP_VERIFICATION_SUCESS\",\n  OTP_VERIFICATION_FAILURE: \"OTP_VERIFICATION_FAILURE\",\n  RESEND_OTP: \"RESEND_OTP\",\n  RESEND_OTP_RES: \"RESEND_OTP_RES\",\n  TRUST_BROWSER: \"TRUST_BROWSER\",\n  RESET_OTP_RESENT: \"RESET_OTP_RESENT\",\n\n  SAVE_OTP_EMAIL: \"SAVE_OTP_EMAIL\",\n};\n\nexport const CLIENT = {\n  CREATE_CLIENT: \"CREATE_CLIENT\",\n  CREATE_CLIENT_SUCCESS: \"CREATE_CLIENT_SUCCESS\",\n  CREATE_CLIENT_FAIL: \"CREATE_CLIENT_FAIL\",\n  RESET_CREATE_CLIENT: \"RESET_CREATE_CLIENT\",\n  GET_CLIENTS: \"GET_CLIENTS\",\n  GET_CLIENTS_SUCCESS: \"GET_CLIENTS_SUCCESS\",\n  GET_CLIENTS_FAIL: \"GET_CLIENTS_FAIL\",\n  RESET_GET_CLIENTS: \"RESET_GET_CLIENTS\",\n  UPDATE_CLIENT: \"UPDATE_CLIENT\",\n  UPDATE_CLIENT_SUCCESS: \"UPDATE_CLIENT_SUCCESS\",\n  UPDATE_CLIENT_FAIL: \"UPDATE_CLIENT_FAIL\",\n  RESET_UPDATE_CLIENT: \"RESET_UPDATE_CLIENT\",\n};\n\nexport const SERVICE = {\n  CREATE_CLIENT_SERVICE: \"CREATE_CLIENT_SERVICE\",\n  CREATE_CLIENT_SERVICE_SUCCESS: \"CREATE_CLIENT_SERVICE_SUCCESS\",\n  CREATE_CLIENT_SERVICE_FAIL: \"CREATE_CLIENT_SERVICE_FAIL\",\n  RESET_CREATE_CLIENT_SERVICE: \"RESET_CREATE_CLIENT_SERVICE\",\n  UPDATE_CLIENT_SERVICE: \"UPDATE_CLIENT_SERVICE\",\n  UPDATE_CLIENT_SERVICE_SUCCESS: \"UPDATE_CLIENT_SERVICE_SUCCESS\",\n  UPDATE_CLIENT_SERVICE_FAIL: \"UPDATE_CLIENT_SERVICE_FAIL\",\n  RESET_UPDATE_CLIENT_SERVICE: \"RESET_UPDATE_CLIENT_SERVICE\",\n};\n\nexport const WORK_ENTRY = {\n  CREATE_WORK_ENTRY: \"CREATE_WORK_ENTRY\",\n  CREATE_WORK_ENTRY_SUCCESS: \"CREATE_WORK_ENTRY_SUCCESS\",\n  CREATE_WORK_ENTRY_FAIL: \"CREATE_WORK_ENTRY_FAIL\",\n  RESET_CREATE_WORK_ENTRY: \"RESET_CREATE_WORK_ENTRY\",\n  GET_WORK_ENTRIES: \"GET_WORK_ENTRIES\",\n  GET_WORK_ENTRIES_SUCCESS: \"GET_WORK_ENTRIES_SUCCESS\",\n  GET_WORK_ENTRIES_FAIL: \"GET_WORK_ENTRIES_FAIL\",\n  RESET_GET_WORK_ENTRIES: \"RESET_GET_WORK_ENTRIES\",\n  UPDATE_WORK_ENTRY: \"UPDATE_WORK_ENTRY\",\n  UPDATE_WORK_ENTRY_SUCCESS: \"UPDATE_WORK_ENTRY_SUCCESS\",\n  UPDATE_WORK_ENTRY_FAIL: \"UPDATE_WORK_ENTRY_FAIL\",\n  RESET_UPDATE_WORK_ENTRY: \"RESET_UPDATE_WORK_ENTRY\",\n  GET_WORK_ENTRIES_BY_USER_ID: \"GET_WORK_ENTRIES_BY_USER_ID\",\n  GET_WORK_ENTRIES_BY_USER_ID_SUCCESS: \"GET_WORK_ENTRIES_BY_USER_ID_SUCCESS\",\n  GET_WORK_ENTRIES_BY_USER_ID_FAIL: \"GET_WORK_ENTRIES_BY_USER_ID_FAIL\",\n  RESET_GET_WORK_ENTRIES_BY_USER_ID: \"RESET_GET_WORK_ENTRIES_BY_USER_ID\",\n  SET_VISIT_STATUS: \"SET_VISIT_STATUS\",\n  SET_VISIT_DETAILS: \"SET_VISIT_DETAILS\",\n  RESET_VISIT: \"RESET_VISIT\",\n};\n\nexport const REPORTS = {\n  GENERATE_REPORT: \"GENERATE_REPORT\",\n  GENERATE_STAFF_REPORT: \"GENERATE_STAFF_REPORT\",\n  GENERATE_WORK_ENTRY_REPORT: \"GENERATE_WORK_ENTRY_REPORT\",\n  GENERATE_REPORT_SUCCESS: \"GENERATE_REPORT_SUCCESS\",\n  GENERATE_REPORT_ERROR: \"GENERATE_REPORT_ERROR\",\n};\n\nexport const CONFIG = {\n  SAVE_CLIENT_SEARCH: \"SAVE_CLIENT_SEARCH\",\n  SAVE_SERVICE_SEARCH: \"SAVE_SERVICE_SEARCH\",\n  SAVE_STAFF_SEARCH: \"SAVE_STAFF_SEARCH\",\n  SAVE_SC_SEARCH: \"SAVE_SC_SEARCH\",\n  SAVE_WE_SEARCH: \"SAVE_WE_SEARCH\",\n  SAVE_REPORT_SEARCH: \"SAVE_REPORT_SEARCH\",\n  RESET_SEARCH_CONFIGS: \"RESET_SEARCH_CONFIGS\",\n};\n","import { combineReducers } from \"redux\";\nimport { reducer as formReducer } from \"redux-form\";\nimport { authReducer } from \"./auth/authReducer\";\nimport { clientReducer } from \"./clients/clientReducer\";\nimport { CLIENT, SERVICE, USER } from \"../constants/actionTypes\";\nimport { userReducer } from \"./users/userReducer\";\nimport { serviceReducer } from \"./services/serviceReducer\";\nimport { workEntryReducer } from \"./workEntries/workEntryReducer\";\nimport { configReducer } from \"./config/configReducer\";\n\nconst rootReducer = combineReducers({\n  form: formReducer.plugin({\n    addClient: (state, action) => {\n      switch (action.type) {\n        case CLIENT.CREATE_CLIENT_SUCCESS:\n          return action.response;\n        case USER.CREATE_USER_SUCCESS:\n          return action.response;\n        case SERVICE.CREATE_CLIENT_SERVICE_SUCCESS:\n          return action.response;\n        default:\n          return state;\n      }\n    },\n  }),\n  auth: authReducer,\n  client: clientReducer,\n  user: userReducer,\n  service: serviceReducer,\n  workEntry: workEntryReducer,\n  config: configReducer,\n});\n\nexport default rootReducer;\n","import { USER } from \"../../constants/actionTypes\";\n\nexport const authReducer = (state = {}, action) => {\n  switch (action.type) {\n    case USER.LOGIN_SUCCESS:\n      return { ...state, data: action.auth, otpVerified: null };\n    case USER.LOGIN_FAIL:\n      return { ...state, error: action.error };\n    case USER.LOGIN_RESET:\n      return { ...state, error: null, data: null };\n    case USER.CONFIRM_EMAIL:\n      return { ...state, confirmEmail: action.confirmEmail.email };\n    case USER.CONFIRM_EMAIL_SUCCESS:\n      return { ...state, confirmEmailSuccess: action.response };\n    case USER.CONFIRM_EMAIL_FAIL:\n      return { ...state, confirmEmailFail: action.error };\n    case USER.RESET_CONFIRM_EMAIL:\n      return { ...state, confirmEmailFail: null, confirmEmailSuccess: null };\n    case USER.VERIFY_TOKEN_SUCCESS:\n      return { ...state, verifyTokenSuccess: action.response };\n    case USER.VERIFY_TOKEN_FAIL:\n      return { ...state, verifyTokenFail: action.error };\n    case USER.RESET_VERIFY_TOKEN:\n      return { ...state, verifyTokenFail: null, verifyTokenSuccess: null };\n    case USER.CHANGE_PASSWORD_SUCCESS:\n      return { ...state, changePasswordSuccess: action.response };\n    case USER.CHANGE_PASSWORD_FAIL:\n      return { ...state, changePasswordFail: action.error };\n    case USER.SAVE_VERIFY_TOKEN:\n      return { ...state, verifyToken: action.token };\n    case USER.RESET_CHANGE_PASSWORD:\n      return {\n        ...state,\n        changePasswordSuccess: null,\n        changePasswordFail: null,\n        verifyToken: null,\n      };\n\n    case USER.OTP_VERIFICATION_SUCESS:\n      return { ...state, resendOtp: false, otpVerified: true };\n\n    case USER.OTP_VERIFICATION_FAILURE:\n      return { ...state, resendOtp: false, otpVerified: false };\n\n    case USER.RESEND_OTP_RES:\n      return { ...state, otpVerified: false, resendOtp: action.data };\n\n    case USER.RESET_OTP_RESENT:\n      return { ...state, otpVerified: null, resendOtp: null };\n\n    case USER.SAVE_OTP_EMAIL:\n      return { ...state, otpEmail: action.email };\n\n    default:\n      return state;\n  }\n};\n","import {CLIENT} from \"../../constants/actionTypes\";\n\nexport const clientReducer = (state = {}, action) => {\n    switch (action.type) {\n        case CLIENT.CREATE_CLIENT_SUCCESS:\n            return {...state, createSuccess: action.response};\n        case CLIENT.CREATE_CLIENT_FAIL:\n            return {...state, createFail: action.error};\n        case CLIENT.RESET_CREATE_CLIENT:\n            return {...state, createSuccess: null, createFail: null};\n        case CLIENT.UPDATE_CLIENT_SUCCESS:\n            return {...state, updateSuccess: action.response};\n        case CLIENT.UPDATE_CLIENT_FAIL:\n            return {...state, updateFail: action.error};\n        case CLIENT.RESET_UPDATE_CLIENT:\n            return {...state, updateFail: null, updateSuccess: null};\n        case CLIENT.GET_CLIENTS_SUCCESS:\n            return {...state, getAllSuccess: action.response};\n        case CLIENT.GET_CLIENTS_FAIL:\n            return {...state, getAllFail: action.error};\n        case CLIENT.RESET_GET_CLIENTS:\n            return {...state, getAllSuccess: null, getAllFail: null};\n        default:\n            return state;\n    }\n};","import { USER } from \"../../constants/actionTypes\";\n\nexport const userReducer = (state = {}, action) => {\n  switch (action.type) {\n    case USER.CREATE_USER_SUCCESS:\n      return { ...state, createSuccess: action.response };\n    case USER.CREATE_USER_FAIL:\n      return { ...state, createFail: action.error };\n    case USER.RESET_CREATE_USER:\n      return { ...state, createSuccess: null, createFail: null };\n    case USER.UPDATE_USER_SUCCESS:\n      return { ...state, updateSuccess: action.response };\n    case USER.UPDATE_USER_FAIL:\n      return { ...state, updateFail: action.error };\n    case USER.RESET_UPDATE_USER:\n      return { ...state, updateFail: null, updateSuccess: null };\n    case USER.GET_USERS_SUCCESS:\n      return { ...state, getAllSuccess: action.response };\n    case USER.GET_USERS_FAIL:\n      return { ...state, getAllFail: action.error };\n    case USER.RESET_GET_USERS:\n      return { ...state, getAllSuccess: null, getAllFail: null };\n    case USER.GET_USERS_BY_TYPE_SUCCESS:\n      return { ...state, getAllSuccess: action.response };\n    case USER.GET_USERS_BY_TYPE_FAIL:\n      return { ...state, getAllFail: action.error };\n    case USER.RESET_GET_USERS_BY_TYPE:\n      return { ...state, getAllSuccess: null, getAllFail: null };\n    case USER.GET_SCS_SUCCESS:\n      return { ...state, getSCSuccess: action.response };\n    case USER.GET_SCS_FAIL:\n      return { ...state, getSCFail: action.error };\n    case USER.RESET_SCS:\n      return { ...state, getSCSuccess: null, getSCFail: null };\n    case USER.UPDATE_SC_SUCCESS:\n      return { ...state, updateSCSuccess: action.response };\n    case USER.UPDATE_SC_FAIL:\n      return { ...state, updateSCFail: action.error };\n    case USER.RESET_UPDATE_SC:\n      return { ...state, updateSCFail: null, updateSCSuccess: null };\n    case USER.CREATE_SC_SUCCESS:\n      return { ...state, createSCSuccess: action.response };\n    case USER.CREATE_SC_FAIL:\n      return { ...state, createSCFail: action.error };\n    case USER.RESET_SC_USER:\n      return { ...state, createSCSuccess: null, createSCFail: null };\n    default:\n      return state;\n  }\n};\n","import { SERVICE } from \"../../constants/actionTypes\";\n\nexport const serviceReducer = (state = {}, action) => {\n  switch (action.type) {\n    case SERVICE.CREATE_CLIENT_SERVICE_SUCCESS:\n      return { ...state, createSuccess: action.response };\n    case SERVICE.CREATE_CLIENT_SERVICE_FAIL:\n      return { ...state, createFail: action.error };\n    case SERVICE.RESET_CREATE_CLIENT_SERVICE:\n      return { ...state, createSuccess: null, createFail: null };\n    case SERVICE.UPDATE_CLIENT_SERVICE_SUCCESS:\n      return { ...state, updateSuccess: action.response };\n    case SERVICE.UPDATE_CLIENT_SERVICE_FAIL:\n      return { ...state, updateFail: action.error };\n    case SERVICE.RESET_UPDATE_CLIENT_SERVICE:\n      return { ...state, updateFail: null, updateSuccess: null };\n    default:\n      return state;\n  }\n};\n","import {WORK_ENTRY} from \"../../constants/actionTypes\";\n\nexport const workEntryReducer = (state = {}, action) => {\n    switch (action.type) {\n        case WORK_ENTRY.CREATE_WORK_ENTRY_SUCCESS:\n            return {...state, createSuccess: action.response};\n        case WORK_ENTRY.CREATE_WORK_ENTRY_FAIL:\n            return {...state, createFail: action.error};\n        case WORK_ENTRY.RESET_CREATE_WORK_ENTRY:\n            return {...state, createSuccess: null, createFail: null};\n        case WORK_ENTRY.UPDATE_WORK_ENTRY_SUCCESS:\n            return {...state, updateSuccess: action.response};\n        case WORK_ENTRY.UPDATE_WORK_ENTRY_FAIL:\n            return {...state, updateFail: action.error};\n        case WORK_ENTRY.RESET_UPDATE_WORK_ENTRY:\n            return {...state, updateFail: null, updateSuccess: null};\n        case WORK_ENTRY.GET_WORK_ENTRIES_SUCCESS:\n            return {...state, getAllSuccess: action.response};\n        case WORK_ENTRY.GET_WORK_ENTRIES_FAIL:\n            return {...state, getAllFail: action.error};\n        case WORK_ENTRY.RESET_GET_WORK_ENTRIES:\n            return {...state, getAllSuccess: null, getAllFail: null};\n        case WORK_ENTRY.GET_WORK_ENTRIES_BY_USER_ID_SUCCESS:\n            return {...state, getAllSuccess: action.response};\n        case WORK_ENTRY.GET_WORK_ENTRIES_BY_USER_ID_FAIL:\n            return {...state, getAllFail: action.error};\n        case WORK_ENTRY.RESET_GET_WORK_ENTRIES_BY_USER_ID:\n            return {...state, getAllSuccess: null, getAllFail: null};\n        case WORK_ENTRY.SET_VISIT_STATUS:\n            return {...state, visitStatus: action.visitStatus, visitDuration: action.duration};\n        case WORK_ENTRY.SET_VISIT_DETAILS:\n            return {...state, visit: action.visit};\n        case WORK_ENTRY.RESET_VISIT:\n            return {...state, visit: null, visitDuration: null, visitStatus: null};\n        default:\n            return state;\n    }\n};\n","import {CONFIG} from \"../../constants/actionTypes\";\n\nexport const configReducer = (state = {}, action) => {\n    switch (action.type) {\n        case CONFIG.SAVE_CLIENT_SEARCH:\n            return {...state, clientSearch: action.config};\n        case CONFIG.SAVE_SERVICE_SEARCH:\n            return {...state, serviceSearch: action.config};\n        case CONFIG.SAVE_STAFF_SEARCH:\n            return {...state, staffSearch: action.config};\n        case CONFIG.SAVE_SC_SEARCH:\n            return {...state, scSearch: action.config};\n        case CONFIG.SAVE_WE_SEARCH:\n            return {...state, weSearch: action.config};\n        case CONFIG.SAVE_REPORT_SEARCH:\n            return {...state, reportSearch: action.config};\n        case CONFIG.RESET_SEARCH_CONFIGS:\n            return {...state, clientSearch: null, staffSearch: null, scSearch: null, weSearch: null, reportSearch: null};\n        default:\n            return state;\n    }\n};\n","export const BASE_URL = \"https://api.hcbsbillingsolutions.com/api/v1\"; // prod\n// export const BASE_URL = \"https://hcbsapi.venturit.org/api/v1\"; // uat\n// export const BASE_URL = \"https://hcbsapi-dev.venturit.org/api/v1\"; // dev\n// export const BASE_URL = \"http://localhost:4600/api/v1\";\nexport const LOGIN_URL = \"/user/login\";\nexport const SIGN_UP_URL = \"/user/accept\";\nexport const CHANGE_PASSWORD = \"/user/password\";\nexport const UPDATE_USER_PASSWORD = \"/user/password/update\";\nexport const RESET_PASSWORD_URL = \"/user/password/reset\";\nexport const VERIFY_TOKEN_URL = \"/user/password/verify_token\";\nexport const CLIENT_URL = \"/client\";\nexport const VISIT_URL = \"/work_entry/visit\";\nexport const USER_URL = \"/user\";\nexport const ROLE_URL = \"/role\";\nexport const SC = \"/sc\";\nexport const SERVICE_URL = \"/service\";\nexport const CLIENT_SERVICE_REQUEST_URL = \"/client_service\";\nexport const WORK_ENTRY_URL = \"/work_entry\";\nexport const REPORT_URL = \"/reports/export\";\nexport const GET_REPORT_URL = \"/reports\";\nexport const SC_LIST = \"/sc_list\";\n\nexport const VERIFY_OTP_URL = \"/verifyotp\";\nexport const RESEND_OTP_URL = \"/resendotp\";\n\nexport const TRUST_BROWSER_URL = \"/trustbrowser\";\n\nexport const ALERT_TYPES = {\n  INFO: \"info\",\n  SUCCESS: \"success\",\n  WARNING: \"warning\",\n  ERROR: \"error\",\n};\n\nexport const s3config = {\n  bucketName: \"hcbs-dev\",\n  dirName: \"\" /* optional */,\n  region: \"us-east-1\",\n  accessKeyId: \"AKIARWBSUU4D7HHMDZTZ\",\n  secretAccessKey: \"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\",\n  s3Url: \"https://hcbs-dev.s3.amazonaws.com\" /* optional */,\n};\n\nexport const REPORT_TYPES = {\n  STAFF_PAY: \"staff_pay\",\n  STAFF_REPORT: \"staff_billing\",\n  PROMISE_BILLING_REPORT: \"promise_billing\",\n  NOTES_REPORT: \"notes\",\n  CLIENT_SUMMARY: \"client_summary\",\n  SC_SUMMARY: \"sc_summary\",\n  STAFF_SUMMARY: \"staff_summary\",\n  STAFF_ALLOCATION_SUMMARY: \"staff_allocation\",\n  MONTHLY_CLIENT_SERVICE_SUMMARY: \"monthly_client_service_summary\",\n  CLIENT_SERVICE_SUMMARY: \"client_service_summary\"\n};\n\nexport const RECORD_TYPES = [\n  {\n    type: \"Super Admin\",\n    value: 0,\n  },\n  {\n    type: \"Admin\",\n    value: 1,\n  },\n  {\n    type: \"Staff\",\n    value: 2,\n  },\n  {\n    type: \"Behavioral Specialist\",\n    value: 3,\n  },\n  {\n    type: \"Support Coordinator\",\n    value: 4,\n  },\n  {\n    type: \"Customer\",\n    value: 5,\n  },\n  {\n    type: \"Family Contact\",\n    value: 6,\n  },\n  {\n    type: \"Other\",\n    value: 7,\n  },\n];\n\nexport const DATE_FORMAT = \"MM/DD/YYYY\";\nexport const DATE_TIME_FORMAT = \"MM/DD/YYYY hh:mm a\";\n\nexport const FUNDING_SOURCE_TYPE = [\n  {\n    type: \"Select Funding Source\",\n    value: \"\",\n  },\n  {\n    type: \"ODP\",\n    value: \"ODP\",\n  },\n  {\n    type: \"ODP 2\",\n    value: \"ODP 2\",\n  },\n  {\n    type: \"OLTL\",\n    value: \"OLTL\",\n  },\n  {\n    type: \"Private Pay\",\n    value: \"Private Pay\",\n  },\n  {\n    type: \"Keystone (Managed Care)\",\n    value: \"Keystone (Managed Care)\",\n  },\n  {\n    type: \"Aetna (Managed Care)\",\n    value: \"Aetna (Managed Care)\",\n  },\n  {\n    type: \"Molina (Managed Care)\",\n    value: \"Molina (Managed Care)\",\n  },\n  {\n    type: \"Other\",\n    value: \"Other\",\n  },\n];\nexport const WAIVER_TYPES = [\n  {\n    type: \"Select Waiver Type\",\n    value: \"\",\n  },\n  {\n    type: \"PF/D\",\n    value: \"PF/D\",\n  },\n  {\n    type: \"Consolidated\",\n    value: \"Consolidated\",\n  },\n  {\n    type: \"OBRA\",\n    value: \"OBRA\",\n  },\n  {\n    type: \"Independence\",\n    value: \"Independence\",\n  },\n  {\n    type: \"BAS\",\n    value: \"BAS\",\n  },\n  {\n    type: \"Com Care\",\n    value: \"Com Care\",\n  },\n  {\n    type: \"Private Pay\",\n    value: \"Private Pay\",\n  },\n  {\n    type: \"Managed Care\",\n    value: \"Managed Care\",\n  },\n  {\n    type: \"Community Living Waiver\",\n    value: \"Community Living Waiver\",\n  },\n  {\n    type: \"Other\",\n    value: \"Other\",\n  },\n];\n\nexport const STAFF_STATUS = {\n  ALL: \"all\",\n  ACTIVE: \"active\",\n  INACTIVE: \"inactive\",\n};\n\nexport const ADMIN_VERIFICATION = {\n  ALL: \"all\",\n  REVIEWED: \"reviewed\",\n  NOT_REVIEWED: \"not_reviewed\",\n};\n\nexport const VISIT_STATUS = {\n  IN_PROGRESS: 6,\n  ABANDONED: 7,\n  COMPLETED: 8,\n};\n\nexport const GOOGLE = {\n  MAPS_API: `https://maps.googleapis.com/maps/api/geocode/json`,\n  MAPS_API_KEY: \"AIzaSyA_Hvp6IEFJ58uo6ARrGRmaLLB04JPCmsM\",\n};\n\nexport const DATEFILTEROPTIONS = {\n  CREATED: 1,\n  WESTART: 2,\n  WEEND: 3,\n  STAFF_ALLOCATION: 4,\n  CLIENT_ALLOCATION: 5,\n};\n\nexport const COUNTIES = [\n  { type: \"Philadelphia\", value: \"Philadelphia\" },\n  { type: \"Chester\", value: \"Chester\" },\n  { type: \"Delaware\", value: \"Delaware\" },\n  { type: \"Lancaster\", value: \"Lancaster\" },\n  { type: \"Montgomery\", value: \"Montgomery\" },\n  { type: \"Berks\", value: \"Berks\" },\n  { type: \"Bucks\", value: \"Bucks\" },\n];\n\nexport const STATES_LIST = [\n  { type: \"Alabama\", value: \"AL\" },\n  { type: \"Alaska\", value: \"AK\" },\n  { type: \"Arizona\", value: \"AZ\" },\n  { type: \"Arkansas\", value: \"AR\" },\n  { type: \"California\", value: \"CA\" },\n  { type: \"Colorado\", value: \"CO\" },\n  { type: \"Connecticut\", value: \"CT\" },\n  { type: \"Delaware\", value: \"DE\" },\n  { type: \"Florida\", value: \"FL\" },\n  { type: \"Georgia\", value: \"GA\" },\n  { type: \"Hawaii\", value: \"HI\" },\n  { type: \"Idaho\", value: \"ID\" },\n  { type: \"Illinois\", value: \"IL\" },\n  { type: \"Indiana\", value: \"IN\" },\n  { type: \"Iowa\", value: \"IA\" },\n  { type: \"Kansas\", value: \"KS\" },\n  { type: \"Kentucky\", value: \"KY\" },\n  { type: \"Louisiana\", value: \"LA\" },\n  { type: \"Maine\", value: \"ME\" },\n  { type: \"Maryland\", value: \"MD\" },\n  { type: \"Massachusetts\", value: \"MA\" },\n  { type: \"Michigan\", value: \"MI\" },\n  { type: \"Minnesota\", value: \"MN\" },\n  { type: \"Mississippi\", value: \"MS\" },\n  { type: \"Missouri\", value: \"MO\" },\n  { type: \"Montana\", value: \"MT\" },\n  { type: \"Nebraska\", value: \"NE\" },\n  { type: \"Nevada\", value: \"NV\" },\n  { type: \"New Hampshire\", value: \"NH\" },\n  { type: \"New Jersey\", value: \"NJ\" },\n  { type: \"New Mexico\", value: \"NM\" },\n  { type: \"New York\", value: \"NY\" },\n  { type: \"North Carolina\", value: \"NC\" },\n  { type: \"North Dakota\", value: \"ND\" },\n  { type: \"Ohio\", value: \"OH\" },\n  { type: \"Oklahoma\", value: \"OK\" },\n  { type: \"Oregon\", value: \"OR\" },\n  { type: \"Pennsylvania\", value: \"PA\" },\n  { type: \"Rhode Island\", value: \"RI\" },\n  { type: \"South Carolina\", value: \"SC\" },\n  { type: \"South Dakota\", value: \"SD\" },\n  { type: \"Tennessee\", value: \"TN\" },\n  { type: \"Texas\", value: \"TX\" },\n  { type: \"Utah\", value: \"UT\" },\n  { type: \"Vermont\", value: \"VT\" },\n  { type: \"Virginia\", value: \"VA\" },\n  { type: \"Washington\", value: \"WA\" },\n  { type: \"West Virginia\", value: \"WV\" },\n  { type: \"Wisconsin\", value: \"WI\" },\n  { type: \"Wyoming\", value: \"WY\" },\n  { type: \"American Samoa\", value: \"AS\" },\n  { type: \"District of Columbia\", value: \"DC\" },\n  { type: \"Federated States of Micronesia\", value: \"FM\" },\n  { type: \"Guam\", value: \"GU\" },\n  { type: \"Marshall Islands\", value: \"MH\" },\n  { type: \"Northern Mariana Islands\", value: \"MP\" },\n  { type: \"Palau\", value: \"PW\" },\n  { type: \"Puerto Rico\", value: \"PR\" },\n  { type: \"Virgin Islands\", value: \"VI\" },\n];\n\nexport const WE_ACTIONS = {\n  Created : 1,\n  Updated : 2\n}\n","import { get } from \"lodash\";\n\nexport function setAuthData(authData) {\n  window.localStorage.setItem(\"authData\", JSON.stringify(authData));\n}\n\nexport function getAuthData() {\n  return window.localStorage.getItem(\"authData\");\n}\n\nexport function checkAuthStatus(status) {\n  if (status === 401 && window.location.pathname != \"/login\") {\n    window.localStorage.setItem(\"authData\", null)\n    window.location.href=\"/login\"\n  }\n}\n\nexport function getToken() {\n  const authData = JSON.parse(getAuthData());\n  return get(authData, \"token\", null);\n}\n\nexport function getAuth() {\n  const authData = getAuthData();\n  return JSON.parse(authData);\n}\n\nexport function isStaffUser() {\n  const authData = getAuth();\n  return authData.userType === 2;\n}\n\nexport function setOtpData(otpData) {\n  window.localStorage.setItem(\"otpData\", JSON.stringify(otpData));\n}\n\nexport function setLoginToken(token) {\n  window.localStorage.setItem(\"loginToken\", JSON.stringify(token));\n}\n\nexport function getLoginToken() {\n  const loginToken = window.localStorage.getItem(\"loginToken\");\n  return JSON.parse(loginToken);\n}\n\nexport function setLoginTokenArray(token, email) {\n  email = email.trim().toLowerCase();\n  let existingLoginTokenArray = getLoginTokenArray();\n  if (existingLoginTokenArray != null) {\n    let c = 0;\n    for (let i = 0; i < existingLoginTokenArray.length; i++) {\n      if (existingLoginTokenArray[i].email == email) {\n        existingLoginTokenArray[i].token = token;\n        c++;\n      }\n    }\n    if (c == 0) {\n      existingLoginTokenArray.push({\n        email,\n        token,\n      });\n    }\n  } else {\n    existingLoginTokenArray = [];\n    existingLoginTokenArray.push({\n      email,\n      token,\n    });\n  }\n  window.localStorage.setItem(\n    \"loginTokenArray\",\n    JSON.stringify(existingLoginTokenArray)\n  );\n}\n\nexport function getLoginTokenArray() {\n  const loginTokenArray = window.localStorage.getItem(\"loginTokenArray\");\n  return JSON.parse(loginTokenArray);\n}\n\nexport function getSpecificLoginToken(email) {\n  let existingLoginTokenArray = getLoginTokenArray();\n\n  if (existingLoginTokenArray != null) {\n    let tokenToReturn = \"\";\n    for (let i = 0; i < existingLoginTokenArray.length; i++) {\n      if (existingLoginTokenArray[i].email == email) {\n        tokenToReturn = existingLoginTokenArray[i].token;\n      }\n    }\n    return tokenToReturn;\n  } else return null;\n}\n","import * as axios from \"axios\";\nimport { BASE_URL } from \"../constants/appConstants\";\nimport { trackPromise } from \"react-promise-tracker\";\nimport { checkAuthStatus} from \"./auth\";\n\nexport async function get(url, options = {}) {\n  try {\n    const response = await trackPromise(\n      axios.get(`${BASE_URL}${url}`, options)\n    );\n    return response;\n  } catch (e) {\n    checkAuthStatus(e.response.status);\n    throw e;\n  }\n}\n\nexport async function post(url, body, options = {}) {\n  try {\n    const response = await trackPromise(\n      axios.post(`${BASE_URL}${url}`, body, options)\n    );\n\n    return response;\n  } catch (e) {\n    checkAuthStatus(e.response.status);\n    throw e;\n  }\n}\n\nexport async function put(url, body, options = {}) {\n  try {\n    const response = await trackPromise(\n      axios.put(`${BASE_URL}${url}`, body, options)\n    );\n    return response;\n  } catch (e) {\n    checkAuthStatus(e.response.status);\n    throw e;\n  }\n}\n\nexport async function del(url, body) {\n  try {\n    const response = await trackPromise(\n      axios.delete(`${BASE_URL}${url}`, body)\n    );\n    return response;\n  } catch (e) {\n    checkAuthStatus(e.response.status);\n    throw e;\n  }\n}\nexport async function externalAPIGet(url, options = {}) {\n  try {\n    const response = await trackPromise(axios.get(url, options));\n    return response;\n  } catch (e) {\n    checkAuthStatus(e.response.status);\n    throw e;\n  }\n}\n","import { post, put } from \"../util/httpService\";\nimport {\n  LOGIN_URL,\n  RESEND_OTP_URL,\n  RESET_PASSWORD_URL,\n  TRUST_BROWSER_URL,\n  VERIFY_OTP_URL,\n  VERIFY_TOKEN_URL,\n} from \"../constants/appConstants\";\nimport { get } from \"lodash\";\nexport async function loginUser(userName, password, loginToken) {\n  try {\n    const response = await post(\n      LOGIN_URL,\n      { email: userName, password: password, broswer_id: loginToken },\n      {}\n    );\n\n    return get(response, \"data\", {});\n  } catch (e) {\n    throw get(e, \"response\", {});\n  }\n}\n\nexport async function verifyOTPApi(otp, email) {\n  try {\n    const response = await post(\n      VERIFY_OTP_URL,\n      { otp: otp + \"\", email: email + \"\" },\n      {}\n    );\n    return get(response, \"data.data\", {});\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function resendOTPApi(email) {\n  try {\n    const response = await post(RESEND_OTP_URL, { email: email }, {});\n    return get(response, \"data\", {});\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function confirmResetEmail(resetObject) {\n  try {\n    const response = await post(RESET_PASSWORD_URL, resetObject);\n    return get(response, \"data\", {});\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function verifyToken(verifyToken) {\n  try {\n    const response = await post(VERIFY_TOKEN_URL, verifyToken);\n    return get(response, \"data\", {});\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function changePassword(changePassword) {\n  try {\n    const response = await put(RESET_PASSWORD_URL, changePassword);\n    return get(response, \"data\", {});\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function saveBrowserApiCall(\n  browserId,\n  userEmail,\n  browser,\n  channel,\n  userId\n) {\n  try {\n    const response = await post(\n      TRUST_BROWSER_URL,\n      {\n        browser_id: browserId,\n        email: userEmail,\n        browser,\n        channel,\n        user_id: userId,\n      },\n      {}\n    );\n    return get(response, \"data\", {});\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n","import { USER } from \"../../constants/actionTypes\";\n\nexport function login(username, password, loginToken) {\n  return {\n    type: USER.LOGIN,\n    username,\n    password,\n    loginToken,\n  };\n}\n\nexport function loginSuccess(auth) {\n  return {\n    type: USER.LOGIN_SUCCESS,\n    auth,\n  };\n}\n\nexport function loginFail(error) {\n  return {\n    type: USER.LOGIN_FAIL,\n    error,\n  };\n}\n\nexport function loginReset() {\n  return {\n    type: USER.LOGIN_RESET,\n  };\n}\n\nexport function confirmEmail(confirmEmail) {\n  return {\n    type: USER.CONFIRM_EMAIL,\n    confirmEmail,\n  };\n}\n\nexport function confirmEmailSuccess(response) {\n  return {\n    type: USER.CONFIRM_EMAIL_SUCCESS,\n    response,\n  };\n}\n\nexport function confirmEmailFail(error) {\n  return {\n    type: USER.CONFIRM_EMAIL_FAIL,\n    error,\n  };\n}\n\nexport function resetConfirmEmail() {\n  return {\n    type: USER.RESET_CONFIRM_EMAIL,\n  };\n}\nexport function changePassword(changePassword) {\n  return {\n    type: USER.CHANGE_PASSWORD,\n    changePassword,\n  };\n}\n\nexport function changePasswordSuccess(response) {\n  return {\n    type: USER.CHANGE_PASSWORD_SUCCESS,\n    response,\n  };\n}\n\nexport function changePasswordFail(error) {\n  return {\n    type: USER.CHANGE_PASSWORD_FAIL,\n    error,\n  };\n}\n\nexport function resetChangePassword() {\n  return {\n    type: USER.RESET_CHANGE_PASSWORD,\n  };\n}\n\nexport function verifyToken(token) {\n  return {\n    type: USER.VERIFY_TOKEN,\n    token,\n  };\n}\n\nexport function verifyTokenSuccess(response) {\n  return {\n    type: USER.VERIFY_TOKEN_SUCCESS,\n    response,\n  };\n}\n\nexport function verifyTokenFail(error) {\n  return {\n    type: USER.VERIFY_TOKEN_FAIL,\n    error,\n  };\n}\n\nexport function saveVerifyToken(token) {\n  return {\n    type: USER.SAVE_VERIFY_TOKEN,\n    token,\n  };\n}\n\nexport function resetVerifyToken() {\n  return {\n    type: USER.RESET_VERIFY_TOKEN,\n  };\n}\n\nexport function verifyOtp(otpEntered, email) {\n  return {\n    type: USER.VERIFY_OTP,\n    otpEntered,\n    email,\n  };\n}\n\nexport function resendOtp(email) {\n  return {\n    type: USER.RESEND_OTP,\n    email,\n  };\n}\n\nexport function resendOtpRes(data) {\n  return {\n    type: USER.RESEND_OTP_RES,\n    data,\n  };\n}\n\nexport function otpVerificationSucess(auth) {\n  return {\n    type: USER.OTP_VERIFICATION_SUCESS,\n    auth,\n  };\n}\n\nexport function otpVerificationFailure() {\n  return {\n    type: USER.OTP_VERIFICATION_FAILURE,\n  };\n}\n\nexport function trustBrowserApiCall(\n  browserId,\n  userEmail,\n  browser,\n  channel,\n  userId\n) {\n  return {\n    type: USER.TRUST_BROWSER,\n    browserId: browserId,\n    userEmail: userEmail,\n    browser: browser,\n    channel: channel,\n    userId: userId,\n  };\n}\n\nexport function resetOtpReset() {\n  return {\n    type: USER.RESET_OTP_RESENT,\n  };\n}\n\nexport function saveOtpMail(email) {\n  return {\n    type: USER.SAVE_OTP_EMAIL,\n    email,\n  };\n}\n","import { put, call, takeEvery } from \"redux-saga/effects\";\nimport { USER } from \"../../constants/actionTypes\";\nimport {\n  changePassword,\n  confirmResetEmail,\n  loginUser,\n  resendOTPApi,\n  saveBrowserApiCall,\n  verifyOTPApi,\n  verifyToken,\n} from \"../../api/login\";\nimport {\n  changePasswordFail,\n  changePasswordSuccess,\n  confirmEmailFail,\n  confirmEmailSuccess,\n  loginFail,\n  loginReset,\n  loginSuccess,\n  otpVerificationFailure,\n  otpVerificationSucess,\n  resendOtpRes,\n  resetChangePassword,\n  resetConfirmEmail,\n  resetVerifyToken,\n  saveOtpMail,\n  verifyTokenFail,\n  verifyTokenSuccess,\n} from \"./authAction\";\nimport {\n  getToken,\n  setAuthData,\n  setLoginToken,\n  setLoginTokenArray,\n} from \"../../util/auth\";\n\nexport function* watchLogin() {\n  yield takeEvery(USER.LOGIN, function* (authData) {\n    const { username, password, loginToken } = authData;\n    yield call(handleLogin, username, password, loginToken);\n  });\n}\n\nfunction* handleLogin(userName, password, loginToken) {\n  yield put(loginReset());\n  try {\n    const authResponse = yield call(loginUser, userName, password, loginToken);\n    if (authResponse.code === 200) {\n      setAuthData(authResponse.data);\n    }\n    yield put(saveOtpMail(userName));\n    yield put(loginSuccess(authResponse));\n  } catch (e) {\n    yield put(loginFail(e));\n  }\n}\n\nexport function* watchConfirmEmail() {\n  yield takeEvery(USER.CONFIRM_EMAIL, function* (payload) {\n    const { confirmEmail } = payload;\n    yield call(handleConfirmEmail, confirmEmail);\n  });\n}\n\nfunction* handleConfirmEmail(confirmEmail) {\n  yield put(resetConfirmEmail());\n  const authToken = getToken();\n  try {\n    const resetPasswordResponse = yield call(\n      confirmResetEmail,\n      confirmEmail,\n      authToken\n    );\n    yield put(confirmEmailSuccess(resetPasswordResponse));\n  } catch (e) {\n    yield put(confirmEmailFail(e));\n  }\n}\n\nexport function* watchVerifyToken() {\n  yield takeEvery(USER.VERIFY_TOKEN, function* (payload) {\n    const { token } = payload;\n    yield call(handleVerifyToken, token);\n  });\n}\n\nfunction* handleVerifyToken(token) {\n  yield put(resetVerifyToken());\n  const authToken = getToken();\n  try {\n    const resetPasswordResponse = yield call(verifyToken, token, authToken);\n    yield put(verifyTokenSuccess(resetPasswordResponse));\n  } catch (e) {\n    yield put(verifyTokenFail(e));\n  }\n}\n\nexport function* watchChangePassword() {\n  yield takeEvery(USER.CHANGE_PASSWORD, function* (payload) {\n    const { changePassword } = payload;\n    yield call(handleChangePassword, changePassword);\n  });\n}\n\nfunction* handleChangePassword(password) {\n  yield put(resetChangePassword());\n  const authToken = getToken();\n  try {\n    const changePasswordResponse = yield call(\n      changePassword,\n      password,\n      authToken\n    );\n    yield put(changePasswordSuccess(changePasswordResponse));\n  } catch (e) {\n    yield put(changePasswordFail(e));\n  }\n}\n\nexport function* watchVerifyOtp() {\n  yield takeEvery(USER.VERIFY_OTP, function* (otp) {\n    yield call(handleOTPVerification, otp.otpEntered, otp.email);\n  });\n}\n\nfunction* handleOTPVerification(otp, email) {\n  try {\n    const authResponse = yield call(verifyOTPApi, otp, email);\n\n    setAuthData(authResponse);\n    yield put(loginSuccess(authResponse));\n    yield put(otpVerificationSucess(authResponse));\n  } catch (e) {\n    yield put(otpVerificationFailure());\n  }\n}\n\nexport function* watchVerifyResendOtp() {\n  yield takeEvery(USER.RESEND_OTP, function* (email) {\n    yield call(handleResendOtp, email.email);\n  });\n}\n\nfunction* handleResendOtp(email) {\n  try {\n    const authResponse = yield call(resendOTPApi, email);\n    yield put(resendOtpRes(true));\n  } catch (e) {\n    yield put(resendOtpRes(false));\n  }\n}\n\nexport function* watchTrustBrowserApiCall() {\n  yield takeEvery(USER.TRUST_BROWSER, function* (trustData) {\n    yield call(handleTrustBrowser, trustData);\n  });\n}\n\nfunction* handleTrustBrowser(trustData) {\n  try {\n    const authResponse = yield call(\n      saveBrowserApiCall,\n      trustData.browserId,\n      trustData.userEmail,\n      trustData.browser,\n      trustData.channel,\n      trustData.userId\n    );\n    setLoginTokenArray(trustData.browserId, trustData.userEmail);\n  } catch (e) {}\n}\n","import {get, post, put} from \"../util/httpService\";\nimport {CLIENT_URL} from \"../constants/appConstants\";\nimport * as _ from \"lodash\";\nimport {getToken, setAuthData} from \"../util/auth\";\n\nexport async function createClient(client) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await post(CLIENT_URL, client, {headers: headers});\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function updateClient(client) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await put(CLIENT_URL, client, {headers: headers});\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getAllClients(\n    pageNumber,\n    pageSize,\n    filter,\n    searchParams,\n    status\n) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(\n            `${CLIENT_URL}?offset=${pageNumber}&limit=${pageSize}&filter=${filter}&name=${searchParams}&status=${status}`,\n            {headers: headers}\n        );\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        if (e.response.status === 401) {\n            setAuthData(null);\n        }\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getClientById(clientId) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`/clientbyId?client_id=${clientId}`, {\n            headers: headers,\n        });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getAllClientsList() {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`${CLIENT_URL}/client_list`, {\n            headers: headers,\n        });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getActiveClientsList() {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`${CLIENT_URL}/client_list/active`, {\n            headers: headers,\n        });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getAssignedClientsList() {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`${CLIENT_URL}/client_list/assigned`, {\n            headers: headers,\n        });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}","import { put, call,takeEvery } from 'redux-saga/effects';\nimport {CLIENT} from \"../../constants/actionTypes\";\nimport {createClient, getAllClients, updateClient} from \"../../api/client\";\nimport {\n    createClientFail,\n    createClientSuccess,\n    getAllClientsFail, getAllClientsSuccess,\n    resetCreateClient,\n    resetGetAllClients, resetUpdateClient, updateClientFail, updateClientSuccess\n} from \"./clientActions\";\n\nexport function* watchCreateClient() {\n    yield takeEvery(CLIENT.CREATE_CLIENT,function* (clientData) {\n        const {client} = clientData\n        yield call(handleCreateClient,client);\n    });\n}\n\nfunction* handleCreateClient(client){\n    yield put(resetCreateClient())\n    try {\n        const clientData = yield call(createClient,client);\n        yield put(createClientSuccess(clientData));\n    }catch (e) {\n        yield put(createClientFail(e));\n    }\n}\n\nexport function* watchUpdateClient() {\n    yield takeEvery(CLIENT.UPDATE_CLIENT,function* (clientData) {\n        const {client} = clientData\n        yield call(handleUpdateClient,client);\n    });\n}\n\nfunction* handleUpdateClient(client){\n    yield put(resetUpdateClient())\n    try {\n        const clientData = yield call(updateClient,client);\n        yield put(updateClientSuccess(clientData));\n    }catch (e) {\n        yield put(updateClientFail(e));\n    }\n}\n\nexport function* watchGetAllClient() {\n    yield takeEvery(CLIENT.GET_CLIENTS,function* (clientData) {\n        const {\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams,\n            status\n        } = clientData\n        yield call(handleGetAllClient,pageNumber,pageSize,filter,searchParams,status);\n    });\n}\n\nfunction* handleGetAllClient(pageNumber,pageSize,filter,searchParams,status){\n    yield put(resetGetAllClients())\n    try {\n        pageNumber = pageNumber * pageSize;\n        const clients = yield call(getAllClients,pageNumber,pageSize,filter,searchParams,status);\n        yield put(getAllClientsSuccess(clients));\n    }catch (e) {\n        yield put(getAllClientsFail(e));\n    }\n}\n","import {CLIENT} from \"../../constants/actionTypes\";\n\nexport function createClient(client) {\n    return {\n        type: CLIENT.CREATE_CLIENT,\n        client\n    };\n}\n\nexport function createClientSuccess(response) {\n    return {\n        type: CLIENT.CREATE_CLIENT_SUCCESS,\n        response\n    };\n}\n\nexport function createClientFail(error) {\n    return {\n        type: CLIENT.CREATE_CLIENT_FAIL,\n        error\n    };\n}\n\nexport function resetCreateClient() {\n    return {\n        type: CLIENT.RESET_CREATE_CLIENT,\n    };\n}\n\nexport function updateClient(client) {\n    return {\n        type: CLIENT.UPDATE_CLIENT,\n        client\n    };\n}\n\nexport function updateClientSuccess(response) {\n    return {\n        type: CLIENT.UPDATE_CLIENT_SUCCESS,\n        response\n    };\n}\n\nexport function updateClientFail(error) {\n    return {\n        type: CLIENT.UPDATE_CLIENT_FAIL,\n        error\n    };\n}\n\nexport function resetUpdateClient() {\n    return {\n        type: CLIENT.RESET_UPDATE_CLIENT,\n    };\n}\n\nexport function getAllClients(pageNumber, pageSize,filter,searchParams,status) {\n    return {\n        type: CLIENT.GET_CLIENTS,\n        pageNumber,\n        pageSize,\n        filter,\n        searchParams,\n        status\n    };\n}\n\nexport function getAllClientsSuccess(response) {\n    return {\n        type: CLIENT.GET_CLIENTS_SUCCESS,\n        response\n    };\n}\n\nexport function getAllClientsFail(error) {\n    return {\n        type: CLIENT.GET_CLIENTS_FAIL,\n        error\n    };\n}\n\nexport function resetGetAllClients() {\n    return {\n        type: CLIENT.RESET_GET_CLIENTS,\n    };\n}\n","import {get, post, put} from \"../util/httpService\";\nimport {CHANGE_PASSWORD, ROLE_URL, SC, SC_LIST, UPDATE_USER_PASSWORD, USER_URL} from \"../constants/appConstants\";\nimport * as _ from \"lodash\";\nimport {getToken} from \"../util/auth\";\n\nexport async function createUser(user) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await post(USER_URL, user, {headers: headers});\n\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function updateUser(user) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await put(USER_URL, user, {headers: headers});\n\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getAllUsers(pageNumber, pageSize, filter, searchParams, userType, status) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(\n            `${USER_URL}?offset=${pageNumber}&limit=${pageSize}&type=${userType}&filter=${filter}&name=${searchParams}&status=${status}`,\n            {headers: headers}\n        );\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getAllUsersByType(type, searchParams) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(\n            `/userByType?user_type=${type}&name=${searchParams}`,\n            {headers: headers}\n        );\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getUserById(userId) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`/userById?user_id=${userId}`, {\n            headers: headers,\n        });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getSCById(userId) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`/scById?sc_id=${userId}`, {\n            headers: headers,\n        });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getAllUsersList() {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`${USER_URL}/user_list`, {headers: headers});\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function createSC(user) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await post(SC, user, {headers: headers});\n\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function updateSC(user) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await put(SC, user, {headers: headers});\n\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getSCs(pageNumber, pageSize, filter, searchParams, status) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(\n            `${SC}?offset=${pageNumber}&limit=${pageSize}&filter=${filter}&name=${searchParams}&status=${status}`,\n            {headers: headers}\n        );\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getSCList() {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(\n            `${SC_LIST}`,\n            {headers: headers}\n        );\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getALlRoleGroupList() {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`${ROLE_URL}/group?offset=0&limit=100`, {headers: headers});\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function resetStaffPassword(password, user) {\n    const authToken = getToken();\n    const data = {\n        userId: user,\n        password: password\n    }\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await put(CHANGE_PASSWORD, data, {headers: headers});\n        return _.get(response, \"data\", {});\n        // const response = await put(CHANGE_PASSWORD, data, {headers: headers})\n        // return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\n\nexport async function updateUserPassword(oldPassword,newPassword, user) {\n    const authToken = getToken();\n    const data = {\n        userId: user,\n        oldPassword: oldPassword,\n        newPassword: newPassword\n    }\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await put(UPDATE_USER_PASSWORD, data, {headers: headers});\n        return _.get(response, \"data\", {});\n        // const response = await put(CHANGE_PASSWORD, data, {headers: headers})\n        // return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n","import {call, put, takeEvery} from \"redux-saga/effects\";\nimport {USER} from \"../../constants/actionTypes\";\nimport {createSC, createUser, getAllUsers, getSCs, updateSC, updateUser} from \"../../api/user\";\nimport {\n    createSCFail,\n    createSCSuccess,\n    createUserFail,\n    createUserSuccess,\n    getAllUsersByType,\n    getAllUsersByTypeFail,\n    getAllUsersByTypeSuccess,\n    getAllUsersFail,\n    getAllUsersSuccess,\n    getSCsFail,\n    getSCsSuccess,\n    resetCreateSC,\n    resetCreateUser,\n    resetGetAllUsers,\n    resetGetAllUsersByType,\n    resetGetSCs,\n    resetUpdateSC,\n    resetUpdateUser,\n    updateSCFail,\n    updateSCSuccess,\n    updateUserFail,\n    updateUserSuccess\n} from \"./userActions\";\n\nexport function* watchCreateUser() {\n    yield takeEvery(USER.CREATE_USER, function* (userData) {\n        const {user} = userData;\n        yield call(handleCreateUser, user);\n    });\n}\n\nfunction* handleCreateUser(user) {\n    yield put(resetCreateUser());\n    try {\n        const userData = yield call(createUser, user);\n        yield put(createUserSuccess(userData));\n    } catch (e) {\n        yield put(createUserFail(e));\n    }\n}\n\nexport function* watchUpdateUser() {\n    yield takeEvery(USER.UPDATE_USER, function* (userData) {\n        const {user} = userData;\n        yield call(handleUpdateUser, user);\n    });\n}\n\nfunction* handleUpdateUser(user) {\n    yield put(resetUpdateUser());\n    try {\n        const userData = yield call(updateUser, user);\n        yield put(updateUserSuccess(userData));\n    } catch (e) {\n        yield put(updateUserFail(e));\n    }\n}\n\nexport function* watchGetAllUser() {\n    yield takeEvery(USER.GET_USERS, function* (userData) {\n        const {pageNumber, pageSize, filter, searchParams, userType, status} = userData;\n        yield call(handleGetAllUser, pageNumber, pageSize, filter, searchParams, userType, status);\n    });\n}\n\nfunction* handleGetAllUser(pageNumber, pageSize, filter, searchParams, userType, status) {\n    yield put(resetGetAllUsers());\n    try {\n        pageNumber = pageNumber * pageSize;\n        const users = yield call(\n            getAllUsers,\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams,\n            userType,\n            status\n        );\n        yield put(getAllUsersSuccess(users));\n    } catch (e) {\n        yield put(getAllUsersFail(e));\n    }\n}\n\nexport function* watchGetAllUserByType() {\n    yield takeEvery(USER.GET_USERS_BY_TYPE, function* (userData) {\n        const {type, searchParams} = userData;\n        yield call(handleGetAllUserByType, type, searchParams);\n    });\n}\n\nfunction* handleGetAllUserByType(type, searchParams) {\n    yield put(resetGetAllUsersByType());\n    try {\n        const users = yield call(getAllUsersByType, type, searchParams);\n        yield put(getAllUsersByTypeSuccess(users));\n    } catch (e) {\n        yield put(getAllUsersByTypeFail(e));\n    }\n}\n\nexport function* watchCreateSC() {\n    yield takeEvery(USER.CREATE_SC, function* (userData) {\n        const {user} = userData;\n        yield call(handleCreateSC, user);\n    });\n}\n\nfunction* handleCreateSC(user) {\n    yield put(resetCreateSC());\n    try {\n        const userData = yield call(createSC, user);\n        yield put(createSCSuccess(userData));\n    } catch (e) {\n        yield put(createSCFail(e));\n    }\n}\n\nexport function* watchUpdateSC() {\n    yield takeEvery(USER.UPDATE_SC, function* (userData) {\n        const {user} = userData;\n        yield call(handleUpdateSC, user);\n    });\n}\n\nfunction* handleUpdateSC(user) {\n    yield put(resetUpdateSC());\n    try {\n        const userData = yield call(updateSC, user);\n        yield put(updateSCSuccess(userData));\n    } catch (e) {\n        yield put(updateSCFail(e));\n    }\n}\n\nexport function* watchGetAllSC() {\n    yield takeEvery(USER.GET_SCS, function* (userData) {\n        const {pageNumber, pageSize, filter, searchParams, status} = userData;\n        yield call(handleGetAllSCs, pageNumber, pageSize, filter, searchParams, status);\n    });\n}\n\nfunction* handleGetAllSCs(pageNumber, pageSize, filter, searchParams, status) {\n    yield put(resetGetSCs());\n    try {\n        pageNumber = pageNumber * pageSize;\n        const users = yield call(\n            getSCs,\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams,\n            status\n        );\n        yield put(getSCsSuccess(users));\n    } catch (e) {\n        yield put(getSCsFail(e));\n    }\n}\n","import {USER} from \"../../constants/actionTypes\";\n\nexport function createUser(user) {\n    return {\n        type: USER.CREATE_USER,\n        user\n    };\n}\n\nexport function createUserSuccess(response) {\n    return {\n        type: USER.CREATE_USER_SUCCESS,\n        response\n    };\n}\n\nexport function createUserFail(error) {\n    return {\n        type: USER.CREATE_USER_FAIL,\n        error\n    };\n}\n\nexport function resetCreateUser() {\n    return {\n        type: USER.RESET_CREATE_USER\n    };\n}\n\nexport function updateUser(user) {\n    return {\n        type: USER.UPDATE_USER,\n        user\n    };\n}\n\nexport function updateUserSuccess(response) {\n    return {\n        type: USER.UPDATE_USER_SUCCESS,\n        response\n    };\n}\n\nexport function updateUserFail(error) {\n    return {\n        type: USER.UPDATE_USER_FAIL,\n        error\n    };\n}\n\nexport function resetUpdateUser() {\n    return {\n        type: USER.RESET_UPDATE_USER\n    };\n}\n\nexport function getAllUsers(pageNumber, pageSize, filter, searchParams, userType, status) {\n    return {\n        type: USER.GET_USERS,\n        pageNumber,\n        pageSize,\n        filter,\n        searchParams,\n        userType,\n        status\n    };\n}\n\nexport function getAllUsersSuccess(response) {\n    return {\n        type: USER.GET_USERS_SUCCESS,\n        response\n    };\n}\n\nexport function getAllUsersFail(error) {\n    return {\n        type: USER.GET_USERS_FAIL,\n        error\n    };\n}\n\nexport function resetGetAllUsers() {\n    return {\n        type: USER.RESET_GET_USERS\n    };\n}\n\nexport function getAllUsersByType(pageNumber, type, searchParams) {\n    return {\n        type: USER.GET_USERS_BY_TYPE,\n        type,\n        searchParams\n    };\n}\n\nexport function getAllUsersByTypeSuccess(response) {\n    return {\n        type: USER.GET_USERS_BY_TYPE_SUCCESS,\n        response\n    };\n}\n\nexport function getAllUsersByTypeFail(error) {\n    return {\n        type: USER.GET_USERS_BY_TYPE_FAIL,\n        error\n    };\n}\n\nexport function resetGetAllUsersByType() {\n    return {\n        type: USER.RESET_GET_USERS_BY_TYPE\n    };\n}\n\nexport function getSCs(pageNumber, pageSize, filter, searchParams, status) {\n    return {\n        type: USER.GET_SCS,\n        pageNumber,\n        pageSize,\n        filter,\n        searchParams,\n        status\n    };\n}\n\n\nexport function getSCsSuccess(response) {\n    return {\n        type: USER.GET_SCS_SUCCESS,\n        response\n    };\n}\n\nexport function getSCsFail(error) {\n    return {\n        type: USER.GET_SCS_FAIL,\n        error\n    };\n}\n\nexport function resetGetSCs() {\n    return {\n        type: USER.RESET_SCS\n    };\n}\n\nexport function createSC(user) {\n    return {\n        type: USER.CREATE_SC,\n        user\n    };\n}\n\nexport function createSCSuccess(response) {\n    return {\n        type: USER.CREATE_SC_SUCCESS,\n        response\n    };\n}\n\nexport function createSCFail(error) {\n    return {\n        type: USER.CREATE_SC_FAIL,\n        error\n    };\n}\n\nexport function resetCreateSC() {\n    return {\n        type: USER.RESET_SC_USER\n    };\n}\n\nexport function updateSC(user) {\n    return {\n        type: USER.UPDATE_SC,\n        user\n    };\n}\n\nexport function updateSCSuccess(response) {\n    return {\n        type: USER.UPDATE_SC_SUCCESS,\n        response\n    };\n}\n\nexport function updateSCFail(error) {\n    return {\n        type: USER.UPDATE_SC_FAIL,\n        error\n    };\n}\n\nexport function resetUpdateSC() {\n    return {\n        type: USER.RESET_UPDATE_USER\n    };\n}\n","import {externalAPIGet} from \"../util/httpService\";\nimport {GOOGLE} from \"../constants/appConstants\";\nimport * as _ from \"lodash\";\n\n\nexport async function geoCodeAddress(address){\n    try {\n        const response = await externalAPIGet(`${GOOGLE.MAPS_API}?address=${address}&key=${GOOGLE.MAPS_API_KEY}`,{});\n        return _.get(response,'data.results',[])\n    }catch (e) {\n        throw _.get(e,'response.data',{});\n    }\n}","import moment from \"moment-timezone\";\nimport { geoCodeAddress } from \"../api/maps\";\nimport { get, isEmpty } from \"lodash\";\nimport CryptoJS from \"crypto-js\";\n\nexport function trucateStringLength(value) {\n  if (value.length > 10) {\n    value = value.substring(0, 10) + \"...\";\n  }\n  return value;\n}\n\nexport function getUserStatus(status) {\n  if (status === 4) {\n    return \"Active\";\n  } else if (status === 5) {\n    return \"Inactive\";\n  }\n}\n\nexport function getTimeZone() {\n  return Intl.DateTimeFormat().resolvedOptions().timeZone;\n}\n\nexport function formatDateTime(dateObj, format) {\n  return moment(dateObj).tz(getTimeZone()).format(format);\n}\n\nexport function formatSSN(v) {\n  let ssnValue = v;\n  ssnValue = ssnValue.replace(/\\D/g, \"\");\n  ssnValue = ssnValue.replace(/^(\\d{3})/, \"$1-\");\n  ssnValue = ssnValue.replace(/-(\\d{2})/, \"-$1-\");\n  ssnValue = ssnValue.replace(/(\\d)-(\\d{4}).*/, \"$1-$2\");\n  return ssnValue;\n}\n\nexport function getGeoCodes(address) {\n  geoCodeAddress(address)\n    .then((res) => {\n      const geoLocation = !isEmpty(res)\n        ? get(res[0], \"geometry.location\", null)\n        : null;\n      if (geoLocation) {\n        return {\n          lat: geoLocation.lat,\n          lng: geoLocation.lng,\n        };\n      }\n    })\n    .catch((err) => {\n      console.log(\"Geo coding error \", err);\n    });\n}\n\nexport function base64url(source) {\n  // Encode in classical base64\n  let encodedSource = CryptoJS.enc.Base64.stringify(source);\n\n  // Remove padding equal characters\n  encodedSource = encodedSource.replace(/=+$/, \"\");\n\n  // Replace characters according to base64url specifications\n  encodedSource = encodedSource.replace(/\\+/g, \"-\");\n  encodedSource = encodedSource.replace(/\\//g, \"_\");\n\n  return encodedSource;\n}\n\nexport function creteJwtToken(email, userId, browserName, channel) {\n  var header = {\n    alg: \"HS256\",\n    typ: \"JWT\",\n  };\n  var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));\n  var encodedHeader = base64url(stringifiedHeader);\n  var data = {\n    id: email,\n    username: userId,\n    browserName: browserName,\n    channel: channel,\n    createdAt: new Date().getMilliseconds,\n  };\n  var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));\n  var encodedData = base64url(stringifiedData);\n  var unsignedToken = encodedHeader + \".\" + encodedData;\n  var secret = \"My very confidential secret!\";\n  var signature = CryptoJS.HmacSHA256(unsignedToken, secret);\n  var signature = base64url(signature);\n  var signedToken = unsignedToken + \".\" + signature;\n  return signedToken;\n}\n","import { post, get, put } from \"../util/httpService\";\nimport { CLIENT_SERVICE_REQUEST_URL } from \"../constants/appConstants\";\nimport * as _ from \"lodash\";\nimport { getToken } from \"../util/auth\";\nimport { getTimeZone } from \"../util/util\";\n\nexport async function getServicesList(pageNumber, pageSize) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await get(\n      `/serviceList?offset=${pageNumber}&limit=${pageSize}`,\n      { headers: headers }\n    );\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function getServiceById(serviceId) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await get(`/servicebyId?service_id=${serviceId}`, {\n      headers: headers,\n    });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function createClientService(service) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await post(CLIENT_SERVICE_REQUEST_URL, service, {\n      headers: headers,\n    });\n\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function updateClientService(service) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await put(CLIENT_SERVICE_REQUEST_URL, service, {\n      headers: headers,\n    });\n\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function getClientServiceById(requestId) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await get(`/serviceRequestById?request_id=${requestId}`, {\n      headers: headers,\n    });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function getClientServiceByClientId(client) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const timeZone = getTimeZone();\n  try {\n    const response = await get(\n      `/serviceRequestByClientId?client_id=${client}&time_zone=${timeZone}`,\n      {\n        headers: headers,\n      }\n    );\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function getClientServicesList() {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await get(`/serviceRequestList`, { headers: headers });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function updateStaffAllocation(service) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await put(\"/client_service/staff_allocation\", service, {\n      headers: headers,\n    });\n\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n","import { put, call, takeEvery } from \"redux-saga/effects\";\nimport { SERVICE } from \"../../constants/actionTypes\";\nimport { createClientService, updateClientService } from \"../../api/clientService\";\nimport {\n  createClientServiceFail,\n  createClientServiceSuccess,\n  resetCreateClientService,\n  resetUpdateClientService,\n  updateClientServiceFail,\n  updateClientServiceSuccess,\n} from \"./serviceActions\";\n\nexport function* watchCreateClientService() {\n  yield takeEvery(SERVICE.CREATE_CLIENT_SERVICE, function* (serviceData) {\n    const { service } = serviceData;\n    yield call(handleCreateClientService, service);\n  });\n}\n\nfunction* handleCreateClientService(service) {\n  yield put(resetCreateClientService());\n  try {\n    const serviceData = yield call(createClientService, service);\n    yield put(createClientServiceSuccess(serviceData));\n  } catch (e) {\n    yield put(createClientServiceFail(e));\n  }\n}\n\nexport function* watchUpdateClientService() {\n  yield takeEvery(SERVICE.UPDATE_CLIENT_SERVICE, function* (serviceData) {\n    const { service } = serviceData;\n    yield call(handleUpdateClientService, service);\n  });\n}\n\nfunction* handleUpdateClientService(service) {\n  yield put(resetUpdateClientService());\n  try {\n    const serviceData = yield call(updateClientService, service);\n    yield put(updateClientServiceSuccess(serviceData));\n  } catch (e) {\n    yield put(updateClientServiceFail(e));\n  }\n}\n","import { SERVICE } from \"../../constants/actionTypes\";\n\nexport function createClientService(service) {\n  return {\n    type: SERVICE.CREATE_CLIENT_SERVICE,\n    service,\n  };\n}\n\nexport function createClientServiceSuccess(response) {\n  return {\n    type: SERVICE.CREATE_CLIENT_SERVICE_SUCCESS,\n    response,\n  };\n}\n\nexport function createClientServiceFail(error) {\n  return {\n    type: SERVICE.CREATE_CLIENT_SERVICE_FAIL,\n    error,\n  };\n}\n\nexport function resetCreateClientService() {\n  return {\n    type: SERVICE.RESET_CREATE_CLIENT_SERVICE,\n  };\n}\n\nexport function updateClientService(service) {\n  return {\n    type: SERVICE.UPDATE_CLIENT_SERVICE,\n    service,\n  };\n}\n\nexport function updateClientServiceSuccess(response) {\n  return {\n    type: SERVICE.UPDATE_CLIENT_SERVICE_SUCCESS,\n    response,\n  };\n}\n\nexport function updateClientServiceFail(error) {\n  return {\n    type: SERVICE.UPDATE_CLIENT_SERVICE_FAIL,\n    error,\n  };\n}\n\nexport function resetUpdateClientService() {\n  return {\n    type: SERVICE.RESET_UPDATE_CLIENT_SERVICE,\n  };\n}\n","import {get, post, put} from \"../util/httpService\";\nimport {WORK_ENTRY_URL} from \"../constants/appConstants\";\nimport * as _ from \"lodash\";\nimport {getToken} from \"../util/auth\";\n\nexport async function createWorkEntry(workEntry) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await post(WORK_ENTRY_URL, workEntry, {\n            headers: headers,\n        });\n\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function updateWorkEntry(workEntry) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await put(WORK_ENTRY_URL, workEntry, {headers: headers});\n\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getAllWorkEntries(\n    pageNumber,\n    pageSize,\n    filter,\n    searchParams,\n    entryType,\n    staff,\n    service,\n    fromDate,\n    toDate,\n    dateRangeOption,\n) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(\n            `${WORK_ENTRY_URL}?offset=${pageNumber}&limit=${pageSize}&filter=${filter}&name=${searchParams}&type=${entryType}&staff=${staff}&service=${service}&from=${fromDate}&to=${toDate}&date=${dateRangeOption}`,\n            {headers: headers}\n        );\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getAllWorkEntriesByUserId(\n    userId,\n    pageNumber,\n    pageSize,\n    filter,\n    searchParams\n) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(\n            `${WORK_ENTRY_URL}?user_id=${userId}&offset=${pageNumber}&limit=${pageSize}&filter=${filter}&name=${searchParams}`,\n            {headers: headers}\n        );\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getWorkEntryById(workEntryId) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`/WorkEntryById?entry_id=${workEntryId}`, {\n            headers: headers,\n        });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getWorkEntryHistoryById(workEntryId) {\n    const authToken = getToken();\n    const headers = {Authorization: `bearer ${authToken}`};\n    try {\n        const response = await get(`/work_entry/history?entry_id=${workEntryId}`, {\n            headers: headers,\n        });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n","import { WORK_ENTRY } from \"../../constants/actionTypes\";\n\nexport function createWorkEntry(workEntry) {\n  return {\n    type: WORK_ENTRY.CREATE_WORK_ENTRY,\n    workEntry,\n  };\n}\n\nexport function createWorkEntrySuccess(response) {\n  return {\n    type: WORK_ENTRY.CREATE_WORK_ENTRY_SUCCESS,\n    response,\n  };\n}\n\nexport function createWorkEntryFail(error) {\n  return {\n    type: WORK_ENTRY.CREATE_WORK_ENTRY_FAIL,\n    error,\n  };\n}\n\nexport function resetCreateWorkEntry() {\n  return {\n    type: WORK_ENTRY.RESET_CREATE_WORK_ENTRY,\n  };\n}\n\nexport function updateWorkEntry(workEntry) {\n  return {\n    type: WORK_ENTRY.UPDATE_WORK_ENTRY,\n    workEntry,\n  };\n}\n\nexport function updateWorkEntrySuccess(response) {\n  return {\n    type: WORK_ENTRY.UPDATE_WORK_ENTRY_SUCCESS,\n    response,\n  };\n}\n\nexport function updateWorkEntryFail(error) {\n  return {\n    type: WORK_ENTRY.UPDATE_WORK_ENTRY_FAIL,\n    error,\n  };\n}\n\nexport function resetUpdateWorkEntry() {\n  return {\n    type: WORK_ENTRY.RESET_UPDATE_WORK_ENTRY,\n  };\n}\n\nexport function getAllWorkEntries(\n  pageNumber,\n  pageSize,\n  filter,\n  searchParams,\n  entryType,\n  staff,\n  service,\n  fromDate,\n  toDate,\n  dateRangeOption\n) {\n  return {\n    type: WORK_ENTRY.GET_WORK_ENTRIES,\n    pageNumber,\n    pageSize,\n    filter,\n    searchParams,\n    entryType,\n    staff,\n    service,\n    fromDate,\n    toDate,\n    dateRangeOption\n  };\n}\n\nexport function getAllWorkEntriesSuccess(response) {\n  return {\n    type: WORK_ENTRY.GET_WORK_ENTRIES_SUCCESS,\n    response,\n  };\n}\n\nexport function getAllWorkEntriesFail(error) {\n  return {\n    type: WORK_ENTRY.GET_WORK_ENTRIES_FAIL,\n    error,\n  };\n}\n\nexport function resetGetAllWorkEntries() {\n  return {\n    type: WORK_ENTRY.RESET_GET_WORK_ENTRIES,\n  };\n}\n\nexport function getAllWorkEntriesByUserId(\n  userId,\n  pageNumber,\n  pageSize,\n  filter,\n  searchParams\n) {\n  return {\n    type: WORK_ENTRY.GET_WORK_ENTRIES_BY_USER_ID,\n    userId,\n    pageNumber,\n    pageSize,\n    filter,\n    searchParams,\n  };\n}\n\nexport function getAllWorkEntriesByUserIdSuccess(response) {\n  return {\n    type: WORK_ENTRY.GET_WORK_ENTRIES_BY_USER_ID_SUCCESS,\n    response,\n  };\n}\n\nexport function getAllWorkEntriesByUserIdFail(error) {\n  return {\n    type: WORK_ENTRY.GET_WORK_ENTRIES_BY_USER_ID_FAIL,\n    error,\n  };\n}\n\nexport function resetGetAllWorkEntriesByUserId() {\n  return {\n    type: WORK_ENTRY.RESET_GET_WORK_ENTRIES_BY_USER_ID,\n  };\n}\n\nexport function setVisitStatus(visitStatus,duration){\n  return{\n    type:WORK_ENTRY.SET_VISIT_STATUS,\n    visitStatus,duration\n  }\n}\n\nexport function setVisitDetails(visit){\n  return{\n    type:WORK_ENTRY.SET_VISIT_DETAILS,\n    visit\n  }\n}\n\nexport function resetVisitDetails(){\n  return{\n    type:WORK_ENTRY.RESET_VISIT,\n  }\n}\n\n","import {call, put, takeEvery} from \"redux-saga/effects\";\nimport {WORK_ENTRY} from \"../../constants/actionTypes\";\nimport {createWorkEntry, getAllWorkEntries, getAllWorkEntriesByUserId, updateWorkEntry,} from \"../../api/workEntry\";\nimport {\n    createWorkEntryFail,\n    createWorkEntrySuccess,\n    getAllWorkEntriesFail,\n    getAllWorkEntriesSuccess,\n    resetCreateWorkEntry,\n    resetGetAllWorkEntries,\n    resetUpdateWorkEntry,\n    updateWorkEntryFail,\n    updateWorkEntrySuccess,\n} from \"./workEntryAction\";\n\nexport function* watchCreateWorkEntry() {\n    yield takeEvery(WORK_ENTRY.CREATE_WORK_ENTRY, function* (workEntryData) {\n        const {workEntry} = workEntryData;\n        yield call(handleCreateWorkEntry, workEntry);\n    });\n}\n\nfunction* handleCreateWorkEntry(workEntry) {\n    yield put(resetCreateWorkEntry());\n    try {\n        const workEntryData = yield call(createWorkEntry, workEntry);\n        yield put(createWorkEntrySuccess(workEntryData));\n    } catch (e) {\n        yield put(createWorkEntryFail(e));\n    }\n}\n\nexport function* watchUpdateWorkEntry() {\n    yield takeEvery(WORK_ENTRY.UPDATE_WORK_ENTRY, function* (workEntryData) {\n        const {workEntry} = workEntryData;\n        yield call(handleUpdateWorkEntry, workEntry);\n    });\n}\n\nfunction* handleUpdateWorkEntry(workEntry) {\n    yield put(resetUpdateWorkEntry());\n    try {\n        const workEntryData = yield call(updateWorkEntry, workEntry);\n        yield put(updateWorkEntrySuccess(workEntryData));\n    } catch (e) {\n        yield put(updateWorkEntryFail(e));\n    }\n}\n\nexport function* watchGetAllWorkEntry() {\n    yield takeEvery(WORK_ENTRY.GET_WORK_ENTRIES, function* (workEntryData) {\n        const {\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams,\n            entryType,\n            staff,\n            service,\n            fromDate,\n            toDate,\n            dateRangeOption,\n        } = workEntryData;\n        yield call(\n            handleGetAllWorkEntry,\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams,\n            entryType,\n            staff,\n            service,\n            fromDate,\n            toDate,\n            dateRangeOption,\n        );\n    });\n}\n\nfunction* handleGetAllWorkEntry(\n    pageNumber,\n    pageSize,\n    filter,\n    searchParams,\n    entryType,\n    staff,\n    service,\n    fromDate,\n    toDate,\n    dateRangeOption,\n) {\n    yield put(resetGetAllWorkEntries());\n    try {\n        pageNumber = pageNumber * pageSize;\n        const workEntries = yield call(\n            getAllWorkEntries,\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams,\n            entryType,\n            staff,\n            service,\n            fromDate,\n            toDate,\n            dateRangeOption,\n        );\n        yield put(getAllWorkEntriesSuccess(workEntries));\n    } catch (e) {\n        yield put(getAllWorkEntriesFail(e));\n    }\n}\n\nexport function* watchGetAllWorkEntryByUserId() {\n    yield takeEvery(WORK_ENTRY.GET_WORK_ENTRIES_BY_USER_ID, function* (\n        workEntryData\n    ) {\n        const {\n            userId,\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams,\n        } = workEntryData;\n        yield call(\n            handleGetAllWorkEntryByUserId,\n            userId,\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams\n        );\n    });\n}\n\nfunction* handleGetAllWorkEntryByUserId(\n    userId,\n    pageNumber,\n    pageSize,\n    filter,\n    searchParams\n) {\n    yield put(resetGetAllWorkEntries());\n    try {\n        pageNumber = pageNumber * pageSize;\n        const workEntries = yield call(\n            getAllWorkEntriesByUserId,\n            userId,\n            pageNumber,\n            pageSize,\n            filter,\n            searchParams\n        );\n        yield put(getAllWorkEntriesSuccess(workEntries));\n    } catch (e) {\n        yield put(getAllWorkEntriesFail(e));\n    }\n}\n","import { post } from \"../util/httpService\";\nimport {\n  GET_REPORT_URL,\n  REPORT_TYPES,\n  REPORT_URL\n} from \"../constants/appConstants\";\nimport { get } from \"lodash\";\nimport { getToken } from \"../util/auth\";\nimport FileDownload from \"js-file-download\";\nimport moment from \"moment\";\nimport { getTimeZone } from \"../util/util\";\n\nexport async function generateReport(reportType, startDate, endDate, status) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = endDate\n    ? { fromDate: startDate, endDate: endDate, status: status }\n    : {\n      fromDate: startDate,\n      status: status\n    };\n  try {\n    const response = await post(`${REPORT_URL}/${reportType}`, body, {\n      headers: headers,\n      responseType: \"blob\"\n    });\n    FileDownload(response.data, getReportName(reportType));\n    // return get(response,'data.data',{}),report;\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function getReportData(\n  reportType,\n  startDate,\n  endDate,\n  offset,\n  limit,\n  status\n) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = endDate\n    ? {\n      fromDate: startDate,\n      endDate: endDate,\n      offset: offset,\n      limit: limit,\n      status: status\n    }\n    : { fromDate: startDate, offset: offset, limit: limit, status: status };\n  try {\n    const response = await post(`${GET_REPORT_URL}/${reportType}`, body, {\n      headers: headers\n    });\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function getClientServiceSummaryData(reportType, from, to, offset, limit) {\n\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = {\n    fromDate: moment(from).format(\"MM/DD/YYYY\"),\n    toDate: moment(to).format(\"MM/DD/YYYY\"),\n    offset: offset,\n    limit: limit\n  };\n  console.log(body);\n  try {\n    const response = await post(`${GET_REPORT_URL}/${reportType}`, body, {\n      headers: headers\n    });\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function generateClientServiceSummaryReport(reportType,from, to) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = {\n    fromDate: moment(from).format(\"MM/DD/YYYY\"),\n    toDate: moment(to).format(\"MM/DD/YYYY\")\n  };\n  try {\n    const response = await post(\n      `${REPORT_URL}/${reportType}`,\n      body,\n      {\n        headers: headers,\n        responseType: \"blob\"\n      }\n    );\n    FileDownload(response.data, getReportName(reportType));\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\n\nexport async function generateStaffReport(reportType, status) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await post(\n      `${REPORT_URL}/${reportType}?status=${status}`,\n      {},\n      {\n        headers: headers,\n        responseType: \"blob\"\n      }\n    );\n    FileDownload(response.data, getReportName(reportType));\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function getStaffReportData(reportType, status, offset, limit) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = { offset: offset, limit: limit };\n  try {\n    const response = await post(\n      `${GET_REPORT_URL}/${reportType}?status=${status}`,\n      body,\n      {\n        headers: headers\n      }\n    );\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function getStaffPayReport(\n  reportType,\n  adminVerification,\n  fromDate,\n  toDate,\n  dateFilterOption,\n  clientId,\n  staffId,\n  serviceId,\n  offset,\n  limit\n) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = {\n    adminVerification: adminVerification,\n    clientId: clientId,\n    staffId: staffId,\n    serviceId: serviceId,\n    dateFilterOption: dateFilterOption,\n    fromDate: moment(fromDate).isValid() ? fromDate : \"\",\n    toDate: moment(toDate).isValid() ? toDate : \"\",\n    timeZone: getTimeZone(),\n    offset: offset,\n    limit: limit\n  };\n  try {\n    const response = await post(`${GET_REPORT_URL}/${reportType}`, body, {\n      headers: headers\n    });\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function getServiceSummary() {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = {\n    timezone: getTimeZone(),\n    offset: 0,\n    limit: 1000\n  };\n  try {\n    const response = await post(`${GET_REPORT_URL}/service_summary`, body, {\n      headers: headers\n    });\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function generateWorkEntryReport(\n  reportType,\n  adminVerification,\n  fromDate,\n  toDate,\n  dateFilterOption,\n  clientId,\n  staffId,\n  serviceId\n) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = {\n    adminVerification: adminVerification,\n    clientId: clientId,\n    staffId: staffId,\n    serviceId: serviceId,\n    dateFilterOption: dateFilterOption,\n    fromDate: moment(fromDate).isValid() ? fromDate : \"\",\n    toDate: moment(toDate).isValid() ? toDate : \"\",\n    timeZone: getTimeZone()\n  };\n  try {\n    const response = await post(`${REPORT_URL}/${reportType}`, body, {\n      headers: headers,\n      responseType: \"blob\"\n    });\n    FileDownload(response.data, getReportName(reportType));\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport async function getWorkEntryReport(\n  reportType,\n  adminVerification,\n  fromDate,\n  toDate,\n  dateFilterOption,\n  clientId,\n  staffId,\n  serviceId,\n  offset,\n  limit\n) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  const body = {\n    adminVerification: adminVerification,\n    clientId: clientId,\n    staffId: staffId,\n    serviceId: serviceId,\n    dateFilterOption: dateFilterOption,\n    fromDate: moment(fromDate).isValid() ? fromDate : \"\",\n    toDate: moment(toDate).isValid() ? toDate : \"\",\n    timeZone: getTimeZone(),\n    offset: offset,\n    limit: limit\n  };\n  try {\n    const response = await post(`${GET_REPORT_URL}/${reportType}`, body, {\n      headers: headers\n    });\n    return response.data;\n  } catch (e) {\n    throw get(e, \"response.data\", {});\n  }\n}\n\nexport function getReportName(reportType) {\n  switch (reportType) {\n    case REPORT_TYPES.NOTES_REPORT:\n      return `Notes Report on ${moment().format(\"MM-DD-YYYY\")}.xlsx`;\n    case REPORT_TYPES.STAFF_REPORT:\n      return `Staff Billing Report on ${moment().format(\"MM-DD-YYYY\")}.xlsx`;\n    case REPORT_TYPES.PROMISE_BILLING_REPORT:\n      return `Promise Billing Report on ${moment().format(\"MM-DD-YYYY\")}.xlsx`;\n    case REPORT_TYPES.CLIENT_SUMMARY:\n      return `All Contacts Report on ${moment().format(\"MM-DD-YYYY\")}.xlsx`;\n    case REPORT_TYPES.SC_SUMMARY:\n      return `Supports Coordinator Report on ${moment().format(\n        \"MM-DD-YYYY\"\n      )}.xlsx`;\n    case REPORT_TYPES.STAFF_SUMMARY:\n      return `Staff Summary Report on ${moment().format(\"MM-DD-YYYY\")}.xlsx`;\n    case REPORT_TYPES.STAFF_ALLOCATION_SUMMARY:\n      return `Staff Allocation Summary Report on ${moment().format(\n        \"MM-DD-YYYY\"\n      )}.xlsx`;\n    case REPORT_TYPES.MONTHLY_CLIENT_SERVICE_SUMMARY:\n      return `Monthly Service Summary Report on ${moment().format(\n        \"MM-DD-YYYY\"\n      )}.xlsx`;\n    case REPORT_TYPES.CLIENT_SERVICE_SUMMARY:\n      return `Client Service Summary Report on ${moment().format(\n        \"MM-DD-YYYY\"\n      )}.xlsx`;\n    default:\n      return \"Invalid Report Name.xlsx\";\n  }\n}\n","import { put, call, takeEvery } from \"redux-saga/effects\";\nimport {CLIENT, REPORTS} from \"../../constants/actionTypes\";\nimport {\n  generateReport, generateStaffReport, generateWorkEntryReport\n} from \"../../api/report\";\nimport {createClientFail, createClientSuccess, resetCreateClient} from \"../clients/clientActions\";\nimport {createClient} from \"../../api/client\";\n\nexport function* watchGenerateReport() {\n  yield takeEvery(REPORTS.GENERATE_REPORT,function* (reportData) {\n    const {reportType,startDate,endDate} = reportData;\n    yield call(handleGenerateReport,reportType,startDate,endDate);\n  });\n}\n\nexport function* watchGenerateStaffReport() {\n  yield takeEvery(REPORTS.GENERATE_STAFF_REPORT,function* (reportData) {\n    const {reportType,status} = reportData;\n    yield call(handleGenerateStaffReport,reportType,status);\n  });\n}\n\nexport function* watchGenerateWorkEntryReport() {\n  yield takeEvery(REPORTS.GENERATE_WORK_ENTRY_REPORT,function* (reportData) {\n    const {reportType, adminVerification, startDate, endDate,client,staff,service} = reportData;\n    yield call(handleGenerateWorkEntryReport,reportType,adminVerification,startDate,endDate,client,staff,service);\n  });\n}\n\nfunction* handleGenerateReport(reportType,startDate,endDate){\n  // yield put(resetCreateClient())\n  try {\n    const clientData = yield call(generateReport,reportType,startDate,endDate);\n    // yield put(ge(clientData));\n  }catch (e) {\n    // yield put(createClientFail(e));\n  }\n}\n\nfunction* handleGenerateStaffReport(reportType,status){\n  // yield put(resetCreateClient())\n  try {\n    const clientData = yield call(generateStaffReport,reportType,status);\n    // yield put(ge(clientData));\n  }catch (e) {\n    // yield put(createClientFail(e));\n  }\n}\n\nfunction* handleGenerateWorkEntryReport(reportType,adminVerification,startDate,endDate,client,staff,service){\n  // yield put(resetCreateClient())\n  try {\n    const clientData = yield call(generateWorkEntryReport,reportType,adminVerification,startDate,endDate,client,staff,service);\n    // yield put(ge(clientData));\n  }catch (e) {\n    // yield put(createClientFail(e));\n  }\n}\n","import { createStore, applyMiddleware, compose } from 'redux';\n// import { routerReducer, routerMiddleware } from 'react-router-redux';\nimport thunk from 'redux-thunk';\nimport createSagaMiddleware from 'redux-saga';\nimport reducers from './reducers';\nimport rootSaga from './sagas';\nconst sagaMiddleware = createSagaMiddleware();\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\nconst middlewares = [thunk, sagaMiddleware];\n\nconst store = createStore(\n    reducers,\n    composeEnhancers(applyMiddleware(...middlewares))\n);\nsagaMiddleware.run(rootSaga);\nexport default store;","import { all } from \"redux-saga/effects\";\nimport {\n  watchChangePassword,\n  watchConfirmEmail,\n  watchLogin,\n  watchTrustBrowserApiCall,\n  watchVerifyOtp,\n  watchVerifyResendOtp,\n  watchVerifyToken,\n} from \"./auth/authSaga\";\nimport {\n  watchCreateClient,\n  watchGetAllClient,\n  watchUpdateClient,\n} from \"./clients/clientSaga\";\nimport {\n  watchGetAllUser,\n  watchCreateUser,\n  watchUpdateUser,\n  watchGetAllSC,\n  watchUpdateSC,\n  watchCreateSC,\n} from \"./users/userSaga\";\nimport {\n  watchCreateClientService,\n  watchUpdateClientService,\n} from \"./services/serviceSaga\";\nimport {\n  watchCreateWorkEntry,\n  watchUpdateWorkEntry,\n  watchGetAllWorkEntry,\n  watchGetAllWorkEntryByUserId,\n} from \"./workEntries/workEntrySaga\";\nimport {\n  watchGenerateReport,\n  watchGenerateStaffReport,\n  watchGenerateWorkEntryReport,\n} from \"./reports/reportSaga\";\n\nexport default function* rootSaga() {\n  yield all([\n    watchLogin(),\n    watchTrustBrowserApiCall(),\n    watchVerifyResendOtp(),\n    watchVerifyOtp(),\n    watchCreateClient(),\n    watchGetAllClient(),\n    watchUpdateClient(),\n    watchVerifyToken(),\n    watchConfirmEmail(),\n    watchChangePassword(),\n    watchGetAllUser(),\n    watchCreateUser(),\n    watchUpdateUser(),\n    watchCreateClientService(),\n    watchUpdateClientService(),\n    watchCreateWorkEntry(),\n    watchUpdateWorkEntry(),\n    watchGetAllWorkEntry(),\n    watchGetAllWorkEntryByUserId(),\n    watchGenerateReport(),\n    watchGetAllSC(),\n    watchUpdateSC(),\n    watchCreateSC(),\n    watchGenerateStaffReport(),\n    watchGenerateWorkEntryReport(),\n  ]);\n}\n","import React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport \"./datePickerComponent.scss\";\n\nclass DatePickerComponent extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            startDate: new Date(),\n        };\n    }\n\n    handleChange = (date) => {\n        this.setState({\n            startDate: date,\n        });\n        this.props.onChange(date);\n    };\n\n    render() {\n        return (\n            <DatePicker\n                selected={this.props.selected}\n                onChange={this.props.onChange}\n                placeholderText={\"Date\"}\n                className={this.props.className}\n                showYearDropdown\n                dateFormat=\"MM/dd/yyyy\"\n                minDate={this.props.minDate}\n                maxDate={this.props.maxDate}\n                disabled={this.props.disabled}\n                // maxDate={moment.now()}\n            />\n        );\n    }\n}\n\nexport default DatePickerComponent;\n","import React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport \"./datePickerComponent.scss\";\n\nclass TimePickerComponent extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            startDate: new Date(),\n        };\n    }\n\n    handleChange = (date) => {\n        this.setState({\n            startDate: date,\n        });\n        this.props.onChange(date);\n    };\n\n    render() {\n        const currentDate = new Date();\n        currentDate.setUTCHours(0, 0, 0, 0);\n        return (\n            <DatePicker\n                selected={this.props.selected}\n                onChange={this.props.onChange}\n                placeholderText={\"Time\"}\n                className={this.props.className}\n                showTimeSelect\n                showTimeSelectOnly\n                timeIntervals={1}\n                timeCaption=\"Time\"\n                dateFormat=\"h:mm aa\"\n                minDate={this.props.minDate}\n                maxDate={this.props.maxDate}\n                maxTime={this.props.maxTime}\n                minTime={this.props.minTime}\n                disabled={this.props.disabled}\n            />\n        );\n    }\n}\n\nexport default TimePickerComponent;\n","import * as React from \"react\";\nimport * as _ from \"lodash\";\nimport \"./formFields.scss\";\nimport DatePickerComponent from \"../date-picker/datePickerComponent\";\nimport TimePickerComponent from \"../date-picker/timePickerComponent\";\nimport moment from \"moment\";\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\nimport { formatSSN } from \"../../../util/util\";\n\nexport const inputField = ({\n  input,\n  placeholder,\n  autocomplete,\n  value,\n  meta: { touched, error },\n  className,\n  type,\n  max,\n  minVal,\n  pattern,\n  required,\n  disabled,\n  onTextValueChange,\n  onKeyPress,\n}) => {\n  return (\n    <div>\n      <input\n        {...input}\n        placeholder={placeholder}\n        type={_.isUndefined(type) ? \"text\" : type}\n        className={touched && error ? `box text-box error` : \"box text-box\"}\n        maxLength={max}\n        onKeyPress={onKeyPress}\n        min={minVal}\n        pattern={pattern}\n        disabled={disabled}\n        autoComplete={autocomplete || \"off\"}\n        required={required}\n        onChange={(e) => {\n          if (onTextValueChange) {\n            onTextValueChange(e);\n            input.onChange(e);\n          } else {\n            input.onChange(e);\n          }\n        }}\n      />\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n\nexport const searchDropDown = ({\n  input,\n  placeholder,\n  value,\n  meta: { touched, error },\n  className,\n  type,\n  max,\n  pattern,\n  required,\n  disabled,\n}) => {\n  return (\n    <div>\n      <input\n        {...input}\n        placeholder={placeholder}\n        type={_.isUndefined(type) ? \"text\" : type}\n        className={touched && error ? `box text-box error` : \"box text-box\"}\n        maxLength={max}\n        pattern={pattern}\n        disabled={disabled}\n      />\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n\nexport const searchField = ({\n  input,\n  placeholder,\n  value,\n  meta: { touched, error },\n  className,\n  type,\n  max,\n  pattern,\n  required,\n}) => {\n  return (\n    <div>\n      <input\n        {...input}\n        placeholder={placeholder}\n        type={_.isUndefined(type) ? \"text\" : type}\n        className={\n          touched && error\n            ? `box text-box search-icon error`\n            : \"box text-box search-icon\"\n        }\n        maxLength={max}\n        pattern={pattern}\n      />\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n\nexport const textField = ({\n  input,\n  placeholder,\n  value,\n  meta: { touched, error },\n  className,\n  type,\n  max,\n  pattern,\n  required,\n}) => {\n  return (\n    <div>\n      <textarea\n        {...input}\n        placeholder={placeholder}\n        className={touched && error ? `field text-box error` : \"field text-box\"}\n        maxLength={max}\n        pattern={pattern}\n      />\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n\nexport const selectField = ({\n  input,\n  placeholder,\n  meta: { touched, error },\n  required,\n  options,\n  onChange,\n  disabled,\n  selected,\n}) => {\n  return (\n    <div>\n      <select\n        {...input}\n        // placeholder={placeholder}\n        className={touched && error ? `box select-box error` : \"box select-box\"}\n        onChange={(e) => {\n          input.onChange(e);\n        }}\n        disabled={disabled}\n        required={required}\n        // value={input.value ? input.value : (selected ? selected : null)}\n      >\n        <option value={\"\"}>{placeholder}</option>\n        {_.map(options, (value) => {\n          return (\n            <option key={value.value} value={value.value}>\n              {value.text}\n            </option>\n          );\n        })}\n      </select>\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n\nexport const renderDatePicker = ({\n  input,\n  placeholder,\n  minDate,\n  maxDate,\n  maxTime,\n  minTime,\n  onTextValueChange,\n  disabled,\n  value,\n  meta: { touched, error },\n  required,\n  options,\n}) => {\n  return (\n    <div className=\"\">\n      <DatePickerComponent\n        selected={input.value ? input.value : value ? value : null}\n        onChange={(e) => {\n          datePickerOnChange(onTextValueChange, input.onChange, e);\n        }}\n        dateFormat={\"MM/DD/YYYY\"}\n        className={\n          touched && error\n            ? `box text-box calendar-icon error`\n            : \"box text-box calendar-icon\"\n        }\n        minDate={minDate}\n        maxDate={maxDate}\n        disabled={disabled}\n      />\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n\nexport const renderTimePicker = ({\n  input,\n  placeholder,\n  minDate,\n  maxDate,\n  maxTime,\n  minTime,\n  onTextValueChange,\n  disabled,\n  selectedDate,\n  meta: { touched, error },\n  required,\n  options,\n}) => {\n  let start = null;\n  let end = null;\n  if (moment(selectedDate).isBefore(moment.now(), \"day\")) {\n    start = new Date(selectedDate);\n    end = new Date(selectedDate);\n    start.setHours(23, 59, 59, 0);\n    end.setHours(0, 0, 0, 0);\n  } else {\n    start = new Date();\n    end = new Date().getTime();\n    start.setHours(0, 0, 0, 0);\n  }\n  return (\n    <div className=\"\" style={{ marginLeft: 10, marginRight: -10 }}>\n      <TimePickerComponent\n        selected={input.value || null}\n        onChange={(e) => {\n          onTextValueChange(e);\n          input.onChange(e);\n        }}\n        dateFormat={\"h:mm aa\"}\n        placeholder={placeholder}\n        className={touched && error ? `box text-box error` : \"box text-box\"}\n        minDate={minDate}\n        maxDate={maxDate}\n        maxTime={end}\n        minTime={minTime ? new Date(minTime).getTime() : start}\n        disabled={disabled}\n      />\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n\nfunction datePickerOnChange(componentOnChange, fieldOnchange, value) {\n  if (!_.isNull(componentOnChange) && !_.isUndefined(componentOnChange)) {\n    componentOnChange(value);\n  }\n  fieldOnchange(value);\n}\n\nexport const phoneNumberField = ({\n  input,\n  placeholder,\n  value,\n  meta: { touched, error },\n  className,\n  type,\n  max,\n  pattern,\n  required,\n  disabled,\n  onChange,\n}) => {\n  return (\n    <div style={{}}>\n      <PhoneInput\n        {...input}\n        country={\"us\"}\n        value={input.value}\n        onChange={onChange}\n        placeholder={placeholder}\n        inputClass={\"phoneInputField\"}\n        // containerStyle={\"phoneContainerField\"}\n        disableCountryCode={true}\n        // disableDropdown={true}\n        enableAreaCodes={true}\n        onlyCountries={[\"us\"]}\n      />\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i style={{ marginTop: 10 }}>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n\nexport const SSNTNField = ({\n  input,\n  placeholder,\n  value,\n  meta: { touched, error },\n  className,\n  type,\n  max,\n  pattern,\n  required,\n  disabled,\n}) => {\n  const format = (v) => {\n    let ssnValue = formatSSN(v.value);\n    ssnValue = ssnValue.replaceAll(\"-\", \"\");\n    if (ssnValue.length === 9) {\n      ssnValue = formatSSN(ssnValue);\n    }\n    v.onChange(ssnValue);\n  };\n  format({ ...input });\n  return (\n    <div>\n      <input\n        {...input}\n        placeholder={placeholder}\n        type={_.isUndefined(type) ? \"text\" : type}\n        className={touched && error ? `box text-box error` : \"box text-box\"}\n        maxLength={max}\n        pattern={pattern}\n        disabled={disabled}\n        autoComplete=\"off\"\n        required={required}\n        onBlur={() => {\n          format({ ...input });\n        }}\n        onFocus={() => {\n          format({ ...input });\n        }}\n      />\n      {touched && error && (\n        <p className=\"error-message text-right\">\n          <i>\n            <img src=\"./images/alert-circle.svg\" alt=\"\" />\n          </i>\n          &nbsp;{error}\n        </p>\n      )}\n    </div>\n  );\n};\n","import { isEmpty } from \"lodash\";\n\nexport function validateEmail(email) {\n  const emailRegex =\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  if (isEmpty(email)) {\n    return \"Email is required\";\n  }\n\n  if (!emailRegex.test(email)) {\n    return \"Email is invalid\";\n  }\n  return undefined;\n}\n\nexport function validateEmailSC(email) {\n  const emailRegex =\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  if (isEmpty(email)) {\n    return;\n  }\n\n  if (!emailRegex.test(email)) {\n    return \"Email is invalid\";\n  }\n  return undefined;\n}\n\nexport function validatePassword(password) {\n  if (isEmpty(password)) {\n    return \"Password is required\";\n  }\n  return undefined;\n}\n\nexport function validateChangePassword(password) {\n  if (isEmpty(password)) {\n    return \"Password is required\";\n  }\n\n  if (password.length < 8) {\n    return \"Password must be at least 8 characters.\";\n  }\n  return undefined;\n}\n\nexport function validateConfirmPassword(password) {\n  if (isEmpty(password)) {\n    return \"Confirm new Password is required\";\n  }\n\n  return undefined;\n}\n\nexport function validateToken(token) {\n  if (isEmpty(token)) {\n    return \"Token is required\";\n  }\n\n  return undefined;\n}\n\nexport function validatePasswordFormat(password) {\n  const passwordRegex =\n    /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;\n  if (!passwordRegex.test(password)) {\n    return \"Please provide a password that contain a special character, lowercase letter, uppercase letter and a number.\";\n  }\n\n  return undefined;\n}\n\nexport function validateSandataId(id) {\n  const regex = /^(([a-zA-Z0-9]{6})|(0000\\\\d{5}))$/;\n  if (!regex.test(id)) {\n    return \"Please provide a sandata id that matches the format\";\n  }\n\n  return undefined;\n}\n\nexport function validateZipCode(code) {\n  const regex = /^\\\\d{5}(\\\\d{4})?$/;\n  if (!regex.test(code)) {\n    return \"Please provide a valid postal zip code\";\n  }\n\n  return undefined;\n}\n\nexport function validateSSN(ssn) {\n  if (isEmpty(ssn)) {\n    return \"SSN Cannot be blank\";\n  }\n  if (ssn && ssn.length !== 11) {\n    return \"Please provide a valid SSN\";\n  }\n  return undefined;\n}\n\nexport function validateMobileNumber(number) {\n  if (isEmpty(number)) {\n    return \"Mobile number cannot be blank\";\n  }\n  if (number) {\n    return \"Please provide a valid Mobile number\";\n  }\n  return undefined;\n}\n","import * as React from \"react\";\nimport { Field, Form, reduxForm } from \"redux-form\";\nimport { inputField } from \"../shared/form-fields/formFields\";\nimport { validateEmail, validatePassword } from \"./loginValidator\";\n\nclass LoginForm extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      showPassword: false\n    };\n  }\n\n  onShowPassword = () => {\n    this.setState({\n      showPassword: !this.state.showPassword\n    });\n  };\n\n  render() {\n    const { handleSubmit, loginError, checkIsRememberMe, onForgotPassword } =\n      this.props;\n    return (\n      <Form onSubmit={handleSubmit}>\n        <div className=\"row\">\n          <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 form-container text-center\">\n            <div className=\"form\">\n              <div className=\"col-12 input-box text-left\">\n                <div className=\"label\">Email</div>\n                <Field\n                  name=\"email\"\n                  component={inputField}\n                  type=\"text\"\n                  placeholder={\"email\"}\n                  required={true}\n                  validate={validateEmail}\n                />\n              </div>\n              <div className=\"col-12 input-box text-left\">\n                <div className=\"label\">Password</div>\n                <Field\n                  name=\"password\"\n                  component={inputField}\n                  type={this.state.showPassword ? \"text\" : \"password\"}\n                  placeholder={\"password\"}\n                  required={true}\n                  validate={validatePassword}\n                />\n                <i\n                  style={{ position: \"absolute\", top: 40, right: 20 }}\n                  onClick={this.onShowPassword}\n                >\n                  {this.state.showPassword && (\n                    <img src=\"./images/eye-off.svg\" alt=\"\" />\n                  )}\n                  {!this.state.showPassword && (\n                    <img src=\"./images/eye.svg\" alt=\"\" />\n                  )}\n                </i>\n              </div>\n              {loginError && (\n                <div className=\"col-12\">\n                  <p className=\"error-message text-right\">\n                    <i>\n                      <img src=\"./images/alert-circle.svg\" alt=\"\" />\n                    </i>\n                    &nbsp;Your email id and password didn’t match our records.\n                    Please try again\n                  </p>\n                </div>\n              )}\n              <div className=\"row\">\n                <div className=\"col-6 text-left remember-me\">\n                  <input\n                    type=\"checkbox\"\n                    className=\"remember-me-checkbox\"\n                    name=\"rememberme\"\n                    value=\"rememberme\"\n                    onClick={checkIsRememberMe}\n                  />\n                  <span className=\"remember-me-text\">Remember me</span>\n                </div>\n                <div className=\"col-6 text-right forgot-password\">\n                  <span\n                    style={{ cursor: \"pointer\" }}\n                    onClick={onForgotPassword}\n                  >\n                    Forgot Password\n                  </span>\n                </div>\n              </div>\n              <br />\n              <div className=\"row\">\n                <div className=\"col-6 offset-3\">\n                  <button type=\"submit\" className=\"button submit\">\n                    <span className=\"text\">Login</span>\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </Form>\n    );\n  }\n}\n\nconst authForm = reduxForm({\n  form: \"loginForm\"\n})(LoginForm);\n\nexport default authForm;\n","import * as React from 'react';\nimport './footer.scss';\n\nclass Footer extends React.Component {\n\n    render() {\n        return (\n\n            <footer className=\"footer\" style={{backgroundColor: '#3D4A5E'}}>\n\n                <div className=\"container-fluid\">\n                    <div className='row'>\n                        <div className='col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 text-center title'>\n                            <span>HCBS</span>\n                        </div>\n                    </div>\n                    <hr/>\n                    <div className='row'>\n                        <div className='col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 text-center rights'>\n                            <div> © {new Date().getUTCFullYear()} hcbs</div>\n                            <div>Terms of Service - Privacy Policy</div>\n                        </div>\n                    </div>\n                </div>\n            </footer>\n        );\n    }\n}\n\nexport default Footer;\n","export const USER_TYPES = {\n  SUPER_ADMIN: 0,\n  ADMIN: 1,\n  STAFF: 2,\n  BEHAVIORAL_SPECIALIST: 3,\n  SUPPORT_COORDINATOR: 4,\n  CUSTOMER: 5,\n  FAMILY_CONTACT: 6,\n  OTHER: 7\n};\n","import * as React from \"react\";\nimport \"./login.scss\";\nimport AuthForm from \"./loginForm\";\nimport { withRouter } from \"react-router-dom\";\nimport Footer from \"../shared/footer/footer\";\nimport { connect } from \"react-redux\";\nimport { get, isEqual, isNull } from \"lodash\";\nimport { NotificationManager } from \"react-notifications\";\nimport { ALERT_TYPES } from \"../../constants/appConstants\";\nimport { login } from \"../../redux/auth/authAction\";\n\nimport { getSpecificLoginToken } from \"../../util/auth\";\nimport { USER_TYPES } from \"../../constants/user\";\n\nclass Login extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      loginError: false,\n      isRememberMe: false,\n    };\n  }\n\n  componentWillReceiveProps = (nextProps) => {\n    const { history } = this.props;\n\n    if (\n      !isNull(get(nextProps, \"auth.data\")) &&\n      !isEqual(nextProps.auth.data, this.props.auth.data)\n    ) {\n      let { code: httpStatusCode } = nextProps.auth.data;\n      if (httpStatusCode === 201) {\n        history.push(\"/verify-otp\");\n      } else if (httpStatusCode === 200) {\n\n        if (nextProps.auth.data.data.userType === USER_TYPES.STAFF) {\n          history.push(\"/staff/visits\");\n        } else if (\n          nextProps.auth.data.data.userType === USER_TYPES.SUPER_ADMIN ||\n          nextProps.auth.data.data.userType === USER_TYPES.ADMIN\n        ) {\n          history.push(\"/admin/clients\");\n        } else {\n          history.push(\"/dashboard\");\n        }\n\n        if (nextProps.auth.data.data.passwordResetRequired) {\n          history.push(\"/reset-password\");\n        }\n\n      }\n    }\n\n    if (\n      !isNull(get(nextProps, \"auth.error\")) &&\n      !isEqual(nextProps.auth.error, this.props.auth.error)\n    ) {\n      this.createNotification(\n        ALERT_TYPES.ERROR,\n        nextProps.auth.error.data.message\n      );\n    }\n  };\n\n  onLogin = (values) => {\n    const { dispatch } = this.props;\n    const email = values.email.trim().toLowerCase();\n    let loginToken = getSpecificLoginToken(email);\n    dispatch(login(email, values.password, loginToken));\n  };\n\n  onCheckRememberMe = (event) => {\n    this.setState({\n      isRememberMe: event.target.checked,\n    });\n  };\n\n  onForgotPassword = () => {\n    this.props.history.push(\"/verify-email\");\n  };\n\n  createNotification(alertType, alertMessage) {\n    switch (alertType) {\n      case ALERT_TYPES.INFO:\n        NotificationManager.info(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.SUCCESS:\n        NotificationManager.success(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.WARNING:\n        NotificationManager.warning(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.ERROR:\n        NotificationManager.error(alertMessage, \"\", 2000);\n        break;\n      default:\n        break;\n    }\n  }\n\n  render() {\n    return (\n      <div>\n        <nav\n          className=\"navbar navbar-expand navbar-white navbar-light main-nav\"\n          style={{ position: \"fixed\", top: 0, right: 0, left: 0 }}\n        >\n          <ul className=\"navbar-nav\">\n            <li className=\"nav-item\">\n              <img src=\"/images/logo.svg\" alt=\"\" />\n              <a className=\"text-center\">\n                <span className=\"navigation-title title\">HCBS</span>\n              </a>\n            </li>\n          </ul>\n        </nav>\n        <div className=\"login\">\n          <div className=\"row\">\n            <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 text-center title\">\n              <span>Login</span>\n            </div>\n          </div>\n          <AuthForm\n            onSubmit={this.onLogin}\n            loginError={this.state.loginError}\n            checkIsRememberMe={this.onCheckRememberMe}\n            onForgotPassword={this.onForgotPassword}\n          />\n        </div>\n        <Footer />\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  auth: state.auth,\n});\nexport default withRouter(connect(mapStateToProps)(Login));\n","import * as React from \"react\";\nimport { Field, Form, reduxForm } from \"redux-form\";\nimport { inputField } from \"../../shared/form-fields/formFields\";\nimport { validateEmail } from \"../../login/loginValidator\";\nimport OtpInput from \"react-otp-input\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nclass VerifyEmailForm extends React.Component {\n\n  render() {\n    const {\n      isLinkSent,\n      resendToken,\n      handleSubmit,\n      newOtpSend,\n      onFocus,\n      enteredOtp,\n      onOTPChange,\n      wrongOtp,\n      sendNewOtp\n    } = this.props;\n\n    return (\n      <Form onSubmit={handleSubmit}>\n        {\n          !isLinkSent ?\n            <div className=\"row\">\n              <div\n                className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 form-container text-center\">\n                <div className=\"form\">\n                  <div className=\"col-12 input-box text-left\">\n                    <div className=\"label\">Email Address</div>\n                    <Field\n                      name=\"email\"\n                      component={inputField}\n                      type=\"text\"\n                      placeholder={\"email address\"}\n                      required={true}\n                      validate={validateEmail}\n                    />\n                  </div>\n                  <div className=\"col-lg-10 offset-lg-1 col-md-10 offset-md-1 col-sm-12 offset-sm-0\">\n                    <button type=\"submit\" className=\"button submit\">\n                                            <span className=\"text\">\n                                                Send Reset Password Token\n                                            </span>\n                    </button>\n                  </div>\n                </div>\n              </div>\n            </div> :\n            <div className=\"row\">\n\n              <div\n                className=\"col-lg-6 offset-lg-3 col-md-8 offset-md-2 col-sm-12 form-container text-center\">\n\n                {wrongOtp && (\n                  <div\n                    className=\"col-12 reset-token-note\"\n                    style={{\n                      backgroundColor: \"#FA7B6F\",\n                      color: \"#FAFBFC\"\n                    }}\n                  >\n                    The verification code entered is incorrect. Please try\n                    again or request a new code by clicking Resend link below.\n                  </div>\n                )}\n\n                {sendNewOtp && (\n                  <div\n                    className=\"col-12 reset-token-note\"\n                    style={{\n                      backgroundColor: \"rgba(53,204,98,0.13)\",\n                      color: \"#35CC62\"\n                    }}\n                  >\n                    A new verification code has been sent.\n                  </div>\n                )}\n\n                <div className=\"col-12 reset-token-note\">\n                  We have sent you a password reset token with a token to the registered mobile number. Please enter the\n                  token\n                  below.\n                  If needed\n                  <span className=\"click-here\" style={{ cursor: \"pointer\" }} onClick={resendToken}>\n                                        &nbsp;click here&nbsp;\n                                    </span>\n                  to receive a new token.\n                </div>\n                <div className=\"form\">\n                  <div className=\"col-12 input-box text-left\">\n                    <div\n                      className=\"label text-center\"\n                      style={{\n                        color: \"#333333\",\n                        fontSize: 16,\n                        marginTop: 16,\n                        marginBottom: 16\n                      }}\n                    >\n                      This code is valid only for 10 minutes.\n                    </div>\n                    <div\n                      onFocus={onFocus}\n                      style={{\n                        display: \"flex\",\n                        paddingTop: 20,\n                        paddingBottom: 20,\n                        justifyContent: \"center\",\n                        textAlign: \"center\",\n                        alignSelf: \"center\",\n                        alignItems: \"center\"\n                      }}\n                    >\n                      <OtpInput\n                        isInputNum={true}\n                        inputStyle={{\n                          height: 50,\n                          width: 50\n                        }}\n                        value={enteredOtp}\n                        onChange={onOTPChange}\n                        numInputs={6}\n                        separator={<div style={{ paddingRight: 10 }}></div>}\n                      />\n                    </div>\n                  </div>\n                  <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12\">\n                    <button type=\"submit\" className=\"button submit\">\n                                            <span className=\"text\">\n                                                Verify\n                                            </span>\n                    </button>\n                  </div>\n                  <div className=\"col-12 reset-token-note\">\n                    Didn’t receive a code?\n                    <span\n                      className=\"click-here\"\n                      style={{ cursor: \"pointer\" }}\n                      onClick={newOtpSend}\n                    >\n                      &nbsp;Resend&nbsp;\n                    </span>\n                  </div>\n                </div>\n              </div>\n            </div>\n        }\n      </Form>\n    );\n  }\n\n}\n\nconst VerifyForm = reduxForm({\n  form: \"verifyEmailForm\"\n})(VerifyEmailForm);\n\nconst mapStateToProps = (state) => ({\n  auth: state.auth\n});\nexport default withRouter(connect(mapStateToProps)(VerifyForm));","export function getQueryParameter(key) {\n    const urlParams = new URLSearchParams(window.location.search);\n    const queryParam = urlParams.get(key);\n    return queryParam;\n}\n\nexport function getHostName() {\n    return window.location.host;\n}","import {ALERT_TYPES} from \"../constants/appConstants\";\nimport {NotificationManager} from \"react-notifications\";\n\nexport function createNotification(alertType, alertMessage) {\n    switch (alertType) {\n        case ALERT_TYPES.INFO:\n            NotificationManager.info(alertMessage, '', 2000);\n            break;\n        case ALERT_TYPES.SUCCESS:\n            NotificationManager.success(alertMessage, '', 2000);\n            break;\n        case ALERT_TYPES.WARNING:\n            NotificationManager.warning(alertMessage, '', 2000);\n            break;\n        case ALERT_TYPES.ERROR:\n            NotificationManager.error(alertMessage, '', 2000);\n            break;\n        default:\n            break;\n    }\n}","import * as React from \"react\";\nimport \"../../login/login.scss\";\nimport \"../../shared/form-fields/formFields.scss\";\nimport \"../resetPassword.scss\";\nimport { withRouter } from \"react-router-dom\";\nimport { isEqual, isNull, isUndefined } from \"lodash\";\nimport { validateEmail } from \"../../login/loginValidator\";\nimport VerifyForm from \"./verifyEmailForm\";\nimport Footer from \"../../shared/footer/footer\";\nimport { getHostName, getQueryParameter } from \"../../../util/url\";\nimport { connect } from \"react-redux\";\nimport {\n  confirmEmail,\n  resendOtp,\n  resetOtpReset,\n  saveVerifyToken,\n  verifyOtp,\n  verifyToken\n} from \"../../../redux/auth/authAction\";\nimport { ALERT_TYPES } from \"../../../constants/appConstants\";\nimport { createNotification } from \"../../../util/notificationManager\";\nimport { NotificationManager } from \"react-notifications\";\n\n\nclass VerifyEmail extends React.Component {\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      confirmationEmail: \"\",\n      isLinkSent: false,\n      resetToken: \"\",\n      emailInvalid: false,\n      tokenInvalid: false,\n      emailInvalidError: \"\",\n      verifyToken: \"\",\n      enteredOtp: undefined,\n      wrongOtp: false,\n      sendNewOtp: false\n    };\n  }\n\n\n  componentDidMount() {\n    const isVerifyToken = getQueryParameter(\"verifyToken\");\n\n    if (!isNull(isVerifyToken) && !isUndefined(isVerifyToken) && !isUndefined(this.props.confirmEmailSuccess)) {\n      this.setState({\n        isLinkSent: true\n      });\n    }\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    if (!isEqual(nextProps.confirmEmailSuccess, this.props.confirmEmailSuccess) && !isNull(nextProps.confirmEmailSuccess)) {\n      this.setState({\n        isLinkSent: true\n      });\n    } else if (!isEqual(this.props.confirmEmailFail, nextProps.confirmEmailFail) && !isNull(nextProps.confirmEmailFail)) {\n      createNotification(ALERT_TYPES.ERROR, \"The email address entered did not match our records, Please try again.\");\n    }\n\n    if (!isEqual(nextProps.verifyTokenSuccess, this.props.verifyTokenSuccess) && !isNull(nextProps.verifyTokenSuccess)) {\n      this.props.dispatch(saveVerifyToken(this.state.verifyToken));\n      this.props.history.push(\"/change-password\");\n    } else if (!isEqual(this.props.verifyTokenFail, nextProps.verifyTokenFail) && !isNull(nextProps.verifyTokenFail)) {\n      this.setState({ wrongOtp: true });\n      createNotification(ALERT_TYPES.ERROR, \"Invalid Token\");\n    }\n  }\n\n  validateEmail = () => {\n\n    const email = this.state.confirmationEmail;\n    const isInvalid = validateEmail(email);\n    if (!isUndefined(isInvalid)) {\n      this.setState({\n        emailInvalidError: isInvalid,\n        emailInvalid: true\n      });\n    } else {\n      this.setState({\n        emailInvalidError: isInvalid,\n        emailInvalid: false\n      });\n    }\n  };\n\n  resendLink = () => {\n    this.setState({\n      isLinkSent: false\n    });\n  };\n\n  emailVerify = (values) => {\n    if (!this.state.enteredOtp) {\n      const verifyEmail = {\n        email: values.email\n      };\n      this.setState({\n        confirmationEmail: values.email\n      });\n      this.props.dispatch(confirmEmail(verifyEmail));\n    } else {\n\n      if (this.state.enteredOtp.length !== 6) {\n        NotificationManager.warning(\"OTP must be 6 digits\", \"\", 2000);\n      } else {\n        const token = {\n          email: values.email,\n          token: this.state.enteredOtp\n        };\n\n        this.props.dispatch(verifyToken(token));\n        this.setState({\n          verifyToken: this.state.enteredOtp\n        });\n      }\n\n    }\n\n  };\n\n  newOtpSend = () => {\n    if (!this.state.sendNewOtp) {\n      const { dispatch } = this.props;\n      dispatch(confirmEmail({\n        email: this.state.confirmationEmail\n      }));\n      this.setState({ sendNewOtp: true });\n    }\n  };\n\n  onFocus = () => {\n    const { dispatch } = this.props;\n    this.setState({\n      wrongOtp: false,\n      sendNewOtp: false\n    });\n    dispatch(resetOtpReset());\n  };\n\n\n  render() {\n    const { isLinkSent } = this.state;\n    return (\n      <div>\n        <nav\n          className=\"navbar navbar-expand navbar-white navbar-light main-nav\"\n          style={{ position: \"fixed\", top: 0, right: 0, left: 0 }}\n        >\n          <ul className=\"navbar-nav\">\n            <li className=\"nav-item\">\n              <img src=\"./images/logo.svg\" alt=\"\" />\n              <a className=\"text-center\">\n                <span className=\"navigation-title title\">HCBS</span>\n              </a>\n            </li>\n          </ul>\n        </nav>\n        <div className=\"login\">\n          <div className=\"row\">\n            <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 text-center title\">\n              <span>Reset Password</span>\n            </div>\n          </div>\n          <VerifyForm\n            onSubmit={this.emailVerify}\n            isLinkSent={isLinkSent}\n            newOtpSend={this.newOtpSend}\n            onOTPChange={(otp) => {\n              this.setState({ enteredOtp: otp });\n            }}\n            onFocus={this.onFocus}\n            resendToken={this.newOtpSend}\n            enteredOtp={this.state.enteredOtp}\n            wrongOtp={this.state.wrongOtp}\n            sendNewOtp={this.state.sendNewOtp}\n          />\n        </div>\n        <Footer />\n      </div>\n    );\n  }\n\n}\n\nconst mapStateToProps = (state) => ({\n  confirmEmailSuccess: state.auth.confirmEmailSuccess,\n  confirmEmailFail: state.auth.confirmEmailFail,\n  verifyTokenSuccess: state.auth.verifyTokenSuccess,\n  verifyTokenFail: state.auth.verifyTokenFail\n});\n\nexport default withRouter(connect(mapStateToProps)(VerifyEmail));","import * as React from 'react';\nimport {Field, Form, reduxForm} from \"redux-form\";\nimport {inputField} from \"../shared/form-fields/formFields\";\nimport {validateChangePassword, validateConfirmPassword, validatePasswordFormat} from \"../login/loginValidator\";\n\nclass ResetPasswordForm extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            showPassword: false,\n            showConfirmationPassword: false\n        }\n    }\n\n    onShowPassword = () => {\n        this.setState({\n            showPassword: !this.state.showPassword\n        });\n    };\n\n    onShowConfirmationPassword = () => {\n        this.setState({\n            showConfirmationPassword: !this.state.showConfirmationPassword\n        });\n    };\n\n    render() {\n        const {handleSubmit, isResetPasswordError} = this.props;\n        return (\n            <Form onSubmit={handleSubmit}>\n                <div className='row'>\n                    <div className='col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 form-container text-center'>\n                        <div className='form'>\n                            <div className='col-12 input-box text-left'>\n                                <div className='label'>New Password</div>\n                                <Field\n                                    name=\"password\"\n                                    component={inputField}\n                                    type={this.state.showPassword ? 'text' : 'password'}\n                                    placeholder={'password'}\n                                    required={true}\n                                    validate={[validateChangePassword, validatePasswordFormat]}\n                                />\n                                {/*<i className='text-right icon' onClick={this.onShowPassword}>*/}\n                                {/*    <img src=\"./images/eye.svg\" alt=\"\"/>*/}\n                                {/*</i>*/}\n                            </div>\n                            <div className='col-12 input-box text-left'>\n                                <div className='label'>Confirm New Password</div>\n                                <Field\n                                    name=\"confirmationPassword\"\n                                    component={inputField}\n                                    type={this.state.showConfirmationPassword ? 'text' : 'password'}\n                                    placeholder={'password'}\n                                    required={true}\n                                    validate={validateConfirmPassword}\n                                />\n                                {/*<i className='text-right icon' onClick={this.onShowConfirmationPassword}>*/}\n                                {/*    <img src=\"./images/eye.svg\" alt=\"\"/>*/}\n                                {/*</i>*/}\n                            </div>\n                            {\n                                isResetPasswordError &&\n                                <div className='col-12'>\n                                    <p className='error-message text-right'>\n                                        <i><img src=\"./images/alert-circle.svg\"\n                                                alt=\"\"/></i>&nbsp;{this.props.changePasswordError}</p>\n                                </div>\n                            }\n                            <br/>\n                            <div className='row'>\n                                <div className='col-lg-8 offset-lg-2 col-md-10 offset-md-1 col-sm-12'>\n                                    <button type='submit' className='button submit'>\n                                            <span className='text'>\n                                                Change Password\n                                            </span>\n                                    </button>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </Form>\n        );\n    }\n}\n\nconst ChangePasswordForm = reduxForm({\n    form: 'resetPasswordForm'\n})(ResetPasswordForm);\n\nexport default ChangePasswordForm;\n\n","import * as React from \"react\";\nimport ChangePasswordForm from \"./resetPasswordForm\";\nimport Footer from \"../shared/footer/footer\";\nimport {connect} from \"react-redux\";\nimport {changePassword} from \"../../redux/auth/authAction\";\nimport {isEqual, isNull} from \"lodash\";\nimport {withRouter} from \"react-router-dom\";\nimport {ALERT_TYPES} from \"../../constants/appConstants\";\nimport {createNotification} from \"../../util/notificationManager\";\n\nclass ResetPassword extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            isResetPasswordError: false,\n            changePasswordError: \"\",\n        };\n    }\n\n    componentWillReceiveProps(nextProps, nextContext) {\n        if (\n            !isEqual(\n                this.props.changePasswordSuccess,\n                nextProps.changePasswordSuccess\n            ) &&\n            !isNull(nextProps.changePasswordSuccess)\n        ) {\n            this.props.history.push(\"/login\");\n        } else if (\n            !isEqual(this.props.changePasswordFail, nextProps.changePasswordFail) &&\n            !isNull(nextProps.changePasswordFail)\n        ) {\n            createNotification(ALERT_TYPES.ERROR, nextProps.changePasswordFail);\n        }\n    }\n\n    resetPassword = (value) => {\n        if (!isEqual(value.password, value.confirmationPassword)) {\n            this.setState({\n                changePasswordError: \"Passwords do not match\",\n                isResetPasswordError: true,\n            });\n        } else {\n            this.setState({\n                changePasswordError: \"\",\n                isResetPasswordError: false,\n            });\n            const resetPassword = {\n                email: this.props.confirmEmail,\n                password: value.password,\n                token: this.props.verifyToken,\n            };\n            this.props.dispatch(changePassword(resetPassword));\n        }\n    };\n\n    render() {\n        return (\n            <div>\n                <nav\n                    className=\"navbar navbar-expand navbar-white navbar-light main-nav\"\n                    style={{position: 'fixed', top: 0, right: 0, left: 0}}\n                >\n                    <ul className=\"navbar-nav\">\n                        <li className=\"nav-item\">\n                            <img src=\"./images/logo.svg\" alt=\"\"/>\n                            <a className=\"text-center\">\n                                <span className=\"navigation-title title\">HCBS</span>\n                            </a>\n                        </li>\n                    </ul>\n                </nav>\n                <div className=\"login\">\n                    <div className=\"row\">\n                        <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 text-center title\">\n                            <span>Reset Password</span>\n                        </div>\n                    </div>\n                    <ChangePasswordForm\n                        onSubmit={this.resetPassword}\n                        isResetPasswordError={this.state.isResetPasswordError}\n                        changePasswordError={this.state.changePasswordError}\n                    />\n                </div>\n                <Footer/>\n            </div>\n        );\n    }\n}\n\nconst mapStateToProps = (state) => ({\n    confirmEmail: state.auth.confirmEmail,\n    changePasswordSuccess: state.auth.changePasswordSuccess,\n    changePasswordFail: state.auth.changePasswordFail,\n    verifyToken: state.auth.verifyToken,\n});\n\nexport default withRouter(connect(mapStateToProps)(ResetPassword));\n","import * as React from \"react\";\nimport \"./header.scss\";\nimport { getAuth, getToken, setAuthData } from \"../../../util/auth\";\nimport { isNull, isUndefined } from \"lodash\";\nimport * as classNames from \"classnames\";\nimport { withRouter } from \"react-router-dom\";\n\nimport onClickOutside from \"react-onclickoutside\";\n\nclass Header extends React.Component {\n  render() {\n    const token = getToken();\n    const isAuthenticated = !isNull(token) && !isUndefined(token);\n    return (\n      <nav\n        className=\"navbar navbar-expand navbar-white navbar-light main-nav\"\n        style={\n          !isAuthenticated\n            ? { display: \"none\" }\n            : { position: \"fixed\", top: 0, right: 0, left: 0 }\n        }\n      >\n        <ul className=\"navbar-nav\">\n          <li className=\"nav-item\">\n            <img src=\"./images/logo.svg\" alt=\"\" />\n            <a className=\"text-center\">\n              <span className=\"navigation-title title\">HCBS</span>\n            </a>\n          </li>\n        </ul>\n        <ul className=\"navbar-nav side-navigation-toggle\">\n          <li className=\"nav-item\">\n            <a\n              className=\"nav-link\"\n              data-widget=\"pushmenu\"\n              href=\"#\"\n              role=\"button\"\n            >\n              <img src={\"./images/menu-green.svg\"} alt=\"\" style={{}} />\n            </a>\n          </li>\n        </ul>\n        <Profile {...this.props} />\n      </nav>\n    );\n  }\n}\n\nexport default withRouter(Header);\n\nclass Dropdown extends React.Component {\n  constructor(props) {\n    super(props);\n    let userData = getAuth();\n    let username = \"\";\n    let initials = \"\";\n    if (userData != null) {\n      username = userData.firstName;\n      // username = userData.firstName + \" \" + userData.lastName;\n      initials = (\n        userData.firstName.charAt(0) + userData.lastName.charAt(0)\n      ).toUpperCase();\n    }\n    this.state = {\n      showDropDown: false,\n      username: username,\n      initials: initials,\n    };\n  }\n  logOut = () => {\n    setAuthData(null);\n    this.props.history.push(\"login\");\n  };\n\n  onProfileClick = () => {\n    this.setState({\n      showDropDown: !this.state.showDropDown,\n    });\n  };\n\n  onProfileSettingsClick = () => {\n    this.props.history.push(\"profile\");\n  };\n\n  onFAQClick = () => {\n    this.props.history.push(\"faq\");\n  };\n  handleClickOutside = () => {\n    this.setState({\n      showDropDown: false,\n    });\n  };\n  render() {\n    return (\n      <ul className=\"navbar-nav ml-auto\">\n        <li className=\"nav-item dropdown\">\n          <a\n            className=\"nav-link\"\n            data-toggle=\"dropdown\"\n            onClick={this.onProfileClick}\n          >\n            <i>\n              <label style={{ color: \"#27395A\", paddingRight: 10 }}>\n                {this.state.username}\n              </label>\n              {/*    <img*/}\n              {/*        src={\"./images/user.jpeg\"}*/}\n              {/*        alt=\"User Avatar\"*/}\n              {/*        style={{*/}\n              {/*            borderRadius: \"50%\",*/}\n              {/*            height: 30,*/}\n              {/*            width: 30,*/}\n              {/*            marginBottom: 5,*/}\n              {/*        }}*/}\n              {/*    />*/}\n\n              <svg viewBox=\"0 0 120 100\">\n                <path\n                  d=\"M38,2\n         L82,2\n         A12,12 0 0,1 94,10\n         L112,44\n         A12,12 0 0,1 112,56\n         L94,90\n         A12,12 0 0,1 82,98\n         L38,98\n         A12,12 0 0,1 26,90\n         L8,56\n         A12,12 0 0,1 8,44\n         L26,10\n         A12,12 0 0,1 38,2\"\n                />\n                <text x=\"40\" y=\"60\" className=\"initials\">\n                  {this.state.initials}\n                </text>\n              </svg>\n            </i>\n          </a>\n          {/* <div className=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\"> */}\n          <div\n            className={classNames(\"dropdown-menu dropdown-menu-right\", {\n              show: this.state.showDropDown,\n            })}\n            style={{ marginTop: 10 }}\n          >\n            <div\n              className=\"dropdown-item\"\n              onClick={this.onProfileSettingsClick}\n            >\n              <div className=\"row\">\n                <img src=\"./images/user.svg\" alt=\"\" style={{ height: 20 }} />\n                <h3\n                  className=\"dropdown-item-title\"\n                  style={{ padding: 1, paddingLeft: 15, color: \"#666666\" }}\n                >\n                  My Profile\n                </h3>\n              </div>\n            </div>\n            <div className=\"dropdown-item\" onClick={this.onFAQClick}>\n              <div className=\"row\">\n                <img\n                  src=\"./images/help-circle.svg\"\n                  alt=\"\"\n                  style={{ height: 20 }}\n                />\n                <h3\n                  className=\"dropdown-item-title\"\n                  style={{ padding: 1, paddingLeft: 15, color: \"#666666\" }}\n                >\n                  FAQ\n                </h3>\n              </div>\n            </div>\n            <div className=\"dropdown-item\" onClick={this.logOut}>\n              <div className=\"row\">\n                <img src=\"./images/log-out.svg\" alt=\"\" style={{ height: 20 }} />\n                <h3\n                  className=\"dropdown-item-title\"\n                  style={{ padding: 1, paddingLeft: 15, color: \"#666666\" }}\n                >\n                  Log Out\n                </h3>\n              </div>\n            </div>\n          </div>\n        </li>\n      </ul>\n    );\n  }\n}\nexport const Profile = onClickOutside(Dropdown);\n","import * as React from \"react\";\nimport * as classNames from \"classnames\";\n\nclass Pagination extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      recordCount: [10, 25, 50, 100, 200],\n    };\n  }\n\n  onPageSizeChange = (event) => {\n    const pageSize = event.target.value;\n    this.props.onPageSizeChange(pageSize);\n  };\n\n  checkPreviousDisabled = () => {\n    const pageSize = this.props.pageSize;\n    const previousPageNumber = this.props.pageNumber;\n    return previousPageNumber * pageSize <= pageSize\n      ? previousPageNumber <= 0\n        ? true\n        : false\n      : false;\n  };\n\n  checkNextDisabled = () => {\n    const { pageSize, pageNumber } = this.props;\n    return (pageNumber + 1) * pageSize < this.props.total ? false : true;\n  };\n\n  onPageChange = (pageNumber) => {\n    this.props.onPageNumberChange(pageNumber - 1);\n  };\n\n  render() {\n    const pageNumber = this.props.pageNumber + 1;\n    return (\n      <div className=\"row\">\n        <div className=\"col-lg-3 col-sm-1 col-6 record-count record-count-text-container\">\n          <span className=\"record-count-text\">Record Count</span>\n        </div>\n        <div className=\"col-lg-2 col-sm-1 col-6 record-count record-count-list-container\">\n          <select\n            className=\"select-box record-count-list\"\n            placeholder=\"Select Staff Record Type\"\n            onChange={this.onPageSizeChange}\n            value={this.props.pageSize}\n          >\n            {this.state.recordCount.map((record) => {\n              return (\n                <option key={record} value={record}>\n                  {record}\n                </option>\n              );\n            })}\n          </select>\n        </div>\n\n        <div className=\"col-lg-7 col-sm-12 page-number-container\">\n          <button\n            className=\"page-number\"\n            onClick={() => {\n              this.onPageChange(pageNumber - 1);\n            }}\n            disabled={this.checkPreviousDisabled()}\n          >\n            <i>\n              <img src=\"./images/chevron-left.svg\" alt=\"\" />\n            </i>\n          </button>\n          {!this.checkPreviousDisabled() && (\n            <button\n              className={classNames(\"page-number\", {\n                active: pageNumber === pageNumber - 1,\n              })}\n              onClick={() => {\n                this.onPageChange(pageNumber - 1);\n              }}\n            >\n              {pageNumber - 1}\n            </button>\n          )}\n          <button\n            className={classNames(\"page-number\", {\n              active: pageNumber === pageNumber,\n            })}\n            onClick={() => {\n              this.onPageChange(pageNumber);\n            }}\n          >\n            {pageNumber}\n          </button>\n          {!this.checkNextDisabled() && (\n            <button\n              className={classNames(\"page-number\", {\n                active: pageNumber === pageNumber + 1,\n              })}\n              onClick={() => {\n                this.onPageChange(pageNumber + 1);\n              }}\n            >\n              {pageNumber + 1}\n            </button>\n          )}\n          <button\n            className=\"page-number\"\n            onClick={() => {\n              this.onPageChange(pageNumber + 1);\n            }}\n            disabled={this.checkNextDisabled()}\n          >\n            <i>\n              <img src=\"./images/chevron-right.svg\" alt=\"\" />\n            </i>\n          </button>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default Pagination;\n","import * as React from 'react';\nimport ReactTable from 'react-table';\nimport Pagination from './pagination/pagination';\nimport './data-grid.scss';\n\nclass DataGrid extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      page: 1,\n      pageSize: 10\n    };\n  }\n\n  onPageSizeChange = (pageSize) => {\n    this.setState({\n      pageSize: parseInt(pageSize)\n    });\n    this.props.onPageSizeChange(pageSize);\n  };\n\n  render() {\n    return (\n      <div>\n        <div>\n          <ReactTable\n            getTdProps={(state, rowInfo) => {\n              return {\n                onClick: () => {\n                  this.props.onRowClick(rowInfo);\n                },\n                style: {\n                  backgroundColor:\n                    rowInfo.index === 0 || rowInfo.index % 2 === 0 ? '#FAFAFA' : '#FFFFFF'\n                }\n              };\n            }}\n            data={this.props.data}\n            columns={this.props.columns}\n            defaultPageSize={2}\n            pageSize={this.props.data.length}\n            showPagination={false}\n            resizable={false}\n            sortable={false}\n            getNoDataProps={() => {\n              return {\n                style: {\n                  backgroundColor: '#FAFBFC',\n                  margin: 10,\n                  // height: '100%',\n                  width: '100%',\n                  color: '#B0B9C9',\n                  fontSize: 19,\n                  textAlign: 'center',\n                  fontFamily: 'Muli',\n                  zIndex: 0\n                }\n              };\n            }}\n          />\n        </div>\n        <div className=\"row pagination pagination-align\">\n          <div className=\"col-12\">\n            {/* todo - refactor this pagination visibility option */}\n            {this.props.showPagination && (\n              <Pagination\n                onPageSizeChange={this.onPageSizeChange}\n                label={this.props.paginationLabel}\n                onPageNumberChange={this.props.onPageNumberChange}\n                total={this.props.total}\n                pageNumber={this.props.pageNumber}\n                pageSize={this.props.pageSize}\n              />\n            )}\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default DataGrid;\n","import * as React from 'react';\n\nclass BasicCell extends React.Component {\n    render() {\n        // const value = this.props.maxLength ? `${this.props.value.split()}`\n        return (\n            <div className='cell basic-cell'>\n                <div className='overflow'>{this.props.value}</div>\n            </div>\n        );\n    }\n}\n\nexport default BasicCell;\n","import * as React from 'react';\n\nclass BasicHeader extends React.Component {\n\n    render() {\n        const fontSize = this.props.fontSize ? this.props.fontSize : 16\n        return (\n            <div className='custom-header overflow' style={{fontSize: fontSize}}>\n                <span>{this.props.header}</span>\n            </div>\n        );\n    }\n\n}\n\nexport default BasicHeader;\n","import * as React from \"react\";\nimport \"../data-grid.scss\";\n\nclass View extends React.Component {\n    onClick = (event) => {\n        this.props.onClick(this.props.actionId, event);\n    };\n\n    render() {\n        return (\n            <div className='cell action-cell'>\n                <div className=\"col-12 text-center\" onClick={this.onClick}>\n                    <img src=\"/images/eye-green.svg\" alt=\"\"/>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default View;\n","import mobileDetect from 'mobile-detect';\nimport * as _ from 'lodash';\n\n\nconst md = new mobileDetect(window.navigator.userAgent);\nexport function isMobileDevice() {\n    return !_.isNull(md.phone());\n}\n\nexport function isTablet(){\n    return !_.isNull(md.tablet())\n}\n","import React from \"react\";\n\nclass ClientCard extends React.Component {\n    render() {\n        const client = this.props.client;\n        return (\n            <div className='col-12 visit-card' onClick={() => {\n                this.props.onDetails(client.id)\n            }}>\n                <div className='row'>\n                    <div className='col-6'>\n                        <div className='col-12 label'>\n                            Client Name\n                        </div>\n                        <div className='col-12 value'>\n                            {client.name}\n                        </div>\n                    </div>\n                    <div className='col-6'>\n                        <div className='col-12 label'>\n                            City\n                        </div>\n                        <div className='col-12 value'>\n                            {client.city}\n                        </div>\n                    </div>\n                </div>\n                <div className='row'>\n                    <div className='col-6'>\n                        <div className='col-12 label'>\n                            Phone\n                        </div>\n                        <div className='col-12 value'>\n                            {client.phone}\n                        </div>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default ClientCard","import {CONFIG} from \"../../constants/actionTypes\";\n\nexport function saveClientSearchChanges(pageNumber, pageSize, filter, searchParam, status) {\n    let config = {\n        pageNumber: pageNumber,\n        pageSize: pageSize,\n        filter: filter,\n        searchParam: searchParam,\n        status: status,\n    }\n    return {\n        type: CONFIG.SAVE_CLIENT_SEARCH,\n        config\n    }\n}\n\nexport function saveServicesSearchChanges(pageNumber, pageSize, filter, searchParam, status) {\n    let config = {\n        pageNumber: pageNumber,\n        pageSize: pageSize,\n        filter: filter,\n        searchParam: searchParam,\n        status: status,\n    }\n    return {\n        type: CONFIG.SAVE_SERVICE_SEARCH,\n        config\n    }\n}\n\nexport function saveStaffSearchChanges(pageNumber, pageSize, filter, searchParam, status) {\n    let config = {\n        pageNumber: pageNumber,\n        pageSize: pageSize,\n        filter: filter,\n        searchParam: searchParam,\n        status: status\n    }\n    return {\n        type: CONFIG.SAVE_STAFF_SEARCH,\n        config\n    }\n}\n\nexport function saveSCSearchChanges(pageNumber, pageSize, filter, searchParam, status) {\n    let config = {\n        pageNumber: pageNumber,\n        pageSize: pageSize,\n        filter: filter,\n        searchParam: searchParam,\n        status: status,\n    }\n    return {\n        type: CONFIG.SAVE_SC_SEARCH,\n        config\n    }\n}\n\nexport function saveWESearchChanges(pageNumber, pageSize, filter, searchParam, selectedStaff, selectedService, fromDate, toDate, dateRangeOption, activeTabIndex) {\n    let config = {\n        pageNumber: pageNumber,\n        pageSize: pageSize,\n        filter: filter,\n        searchParam: searchParam,\n        selectedStaff: selectedStaff,\n        selectedService: selectedService,\n        fromDate: fromDate,\n        toDate: toDate,\n        dateRangeOption: dateRangeOption,\n        activeTabIndex: activeTabIndex,\n    }\n    return {\n        type: CONFIG.SAVE_WE_SEARCH,\n        config\n    }\n}\n\nexport function saveReportSearchChanges(pageNumber, pageSize, filter, searchParam) {\n    let config = {\n        pageNumber: pageNumber,\n        pageSize: pageSize,\n        filter: filter,\n        searchParam: searchParam,\n    }\n    return {\n        type: CONFIG.SAVE_REPORT_SEARCH,\n        config\n    }\n}\n\nexport function resetSearchConfigs() {\n    return {\n        type: CONFIG.RESET_SEARCH_CONFIGS\n    }\n}\n","import * as React from \"react\";\nimport \"./clients.scss\";\nimport DataGrid from \"../shared/data-grid/data-grid\";\nimport BasicCell from \"../shared/data-grid/custom-cells/basic-cell\";\nimport BasicHeader from \"../shared/data-grid/custom-headers/basic-header\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { getAllClients } from \"../../redux/clients/clientActions\";\nimport { get, isEmpty, isEqual, isNull, map, startCase } from \"lodash\";\nimport View from \"../shared/data-grid/custom-cells/view\";\nimport { isMobileDevice } from \"../../util/deviceType\";\nimport ClientCard from \"./clientCard\";\nimport Pagination from \"../shared/data-grid/pagination/pagination\";\nimport { saveClientSearchChanges } from \"../../redux/config/configAction\";\n\nclass Clients extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      clients: [],\n      selectedClient: \"\",\n      totalClients: 0,\n      pageNumber: 0,\n      searchParam: \"\",\n      filter: \"recent\",\n      pageSize: 10,\n      status: 0,\n    };\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    const { clients, searchConfig } = this.props;\n    const clientData = [];\n    if (!isEqual(nextProps.clients, clients) && !isNull(nextProps.clients)) {\n      map(nextProps.clients.data, (client) => {\n        clientData.push({\n          id: client.clientId,\n          // name: startCase(\n          //     `${get(client, \"firstName\")} ${get(client, \"middleName\")} ${get(client, \"lastName\")}`\n          // ),\n          name: `${get(client, \"lastName\")} ${get(client, \"firstName\")} ${get(\n            client,\n            \"middleName\"\n          )}`,\n          city: startCase(get(client, \"billingCity\", \"\")),\n          phone: get(client, \"phone\", \"\"),\n        });\n      });\n      this.setState({\n        clients: clientData,\n        totalClients: nextProps.clients.recordCount,\n      });\n    }\n\n    if (\n      !isNull(nextProps.searchConfig) &&\n      !isEmpty(nextProps.searchConfig) &&\n      !isEqual(nextProps.searchConfig, searchConfig)\n    ) {\n      this.setState({\n        pageNumber: nextProps.searchConfig.pageNumber,\n        pageSize: nextProps.searchConfig.pageSize,\n        filter: nextProps.searchConfig.filter,\n        searchParam: nextProps.searchConfig.searchParam,\n        status: nextProps.searchConfig.status,\n      });\n      this.getAllClients(\n        nextProps.searchConfig.pageNumber,\n        nextProps.searchConfig.pageSize,\n        nextProps.searchConfig.filter,\n        nextProps.searchConfig.searchParam,\n        nextProps.searchConfig.status\n      );\n    }\n  }\n\n  componentDidMount() {\n    const { searchConfig } = this.props;\n    if (searchConfig) {\n      this.setState({\n        pageNumber: searchConfig.pageNumber,\n        pageSize: searchConfig.pageSize,\n        filter: searchConfig.filter,\n        searchParam: searchConfig.searchParam,\n        status: searchConfig.status,\n      });\n      this.getAllClients(\n        searchConfig.pageNumber,\n        searchConfig.pageSize,\n        searchConfig.filter,\n        searchConfig.searchParam,\n        searchConfig.status\n      );\n    } else {\n      this.getAllClients(\n        this.state.pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      );\n    }\n  }\n\n  getAllClients = (pageNumber, pageSize, filter, searchParams, status) => {\n    this.props.dispatch(\n      getAllClients(pageNumber, pageSize, filter, searchParams, status)\n    );\n  };\n\n  onCreateNewClient = () => {\n    this.props.history.push(\"/admin/create-client\");\n  };\n\n  onEdit = (clientId) => {\n    this.props.history.push(`/admin/edit-client?id=${clientId}`);\n  };\n  onDetails = (clientId) => {\n    this.props.history.push(`/admin/client-details?id=${clientId}`);\n  };\n\n  onPageChange = (pageNumber) => {\n    this.props.dispatch(\n      saveClientSearchChanges(\n        pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onPageSizeChange = (pageSize) => {\n    this.props.dispatch(\n      saveClientSearchChanges(\n        0,\n        pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onSearch = (event) => {\n    const searchParam = event.target.value;\n    if (searchParam.length >= 3 || searchParam.length === 0) {\n      this.props.dispatch(\n        saveClientSearchChanges(\n          0,\n          this.state.pageSize,\n          \"recent\",\n          searchParam,\n          this.state.status\n        )\n      );\n    }\n    this.setState({\n      searchParam,\n      pageNumber: 0,\n      filter: \"recent\",\n    });\n  };\n\n  onPressEnter = (event) => {\n    if (event.keyCode === 13) {\n      this.props.dispatch(\n        saveClientSearchChanges(\n          0,\n          this.state.pageSize,\n          this.state.filter,\n          this.state.searchParam,\n          this.state.status\n        )\n      );\n    }\n  };\n\n  onFilterChange = (event) => {\n    const filter = event.target.value;\n    this.setState({\n      filter,\n    });\n    this.props.dispatch(\n      saveClientSearchChanges(\n        0,\n        this.state.pageSize,\n        filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onStatusChange = (event) => {\n    const status = event.target.value;\n    this.setState({\n      status,\n    });\n    this.props.dispatch(\n      saveClientSearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        status\n      )\n    );\n  };\n\n  render() {\n    const columns = [\n      {\n        Header: () => <BasicHeader header={\"Client Name\"} />,\n        accessor: \"name\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        },\n      },\n      {\n        Header: () => <BasicHeader header={\"Billing City\"} />,\n        accessor: \"city\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        },\n      },\n      {\n        Header: () => <BasicHeader header={\"Phone\"} />,\n        accessor: \"phone\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: () => <BasicHeader header={\"\"} />,\n        accessor: \"icon\",\n        Cell: (row) => (\n          <View\n            actionId={row.original.id}\n            onClick={this.onDetails.bind(row.original.id)}\n          />\n        ),\n        width: 100,\n      },\n      // {\n      //   Header: \"\",\n      //   accessor: \"icon\",\n      //   Cell: (row) => (\n      //     <Actions\n      //       actionId={row.original.id}\n      //       onEdit={this.onEdit.bind(row.original.id)}\n      //     />\n      //   ),\n      //   width: 100,\n      // },\n    ];\n\n    // const data = [\n    //     {\n    //         name: 'Tom Martinez',\n    //         city: 'Moenborough',\n    //         phone: '759-601-8674'\n    //     },\n    //     {\n    //         name: 'Arthur Hubbard',\n    //         city: 'Estellaton',\n    //         phone: '089-433-3326'\n    //     }\n    // ];\n    return (\n      <div className=\"table-layout\">\n        <div className=\"row col-12 header-container\">\n          <div className=\"row col-lg-10 col-sm-12\">\n            <span\n              className=\"col-lg-2 col-sm-12 title\"\n              style={{ cursor: \"default\" }}\n            >\n              Clients\n            </span>\n            <span className=\"col-lg-1 col-sm-2 sub-title\">Search</span>\n            <div className=\"col-lg-4 col-sm-10 input-box\">\n              <input\n                type=\"text\"\n                className=\"box text-box search-icon\"\n                value={this.state.searchParam}\n                onChange={this.onSearch}\n                onKeyDown={this.onPressEnter}\n                placeholder={\"Client Name\"}\n              />\n            </div>\n          </div>\n          <div className=\"col-lg-2 col-sm-12\">\n            <button className=\"button submit\" onClick={this.onCreateNewClient}>\n              <span className=\"text\">CREATE NEW</span>\n            </button>\n          </div>\n        </div>\n\n        <div className=\"body-container\">\n          <div className=\"row list-container\">\n            <div className=\"col-lg-3 col-md-4 col-sm-6\">\n              <span className=\"list-header\">Clients</span>\n            </div>\n            <div className=\"col-lg-3 offset-lg-3 col-md-4 col-12\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onStatusChange}\n                value={this.state.status}\n              >\n                <option value=\"0\">All Clients</option>\n                <option value=\"4\">Active Clients</option>\n                <option value=\"5\">Inactive Clients</option>\n              </select>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-6\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onFilterChange}\n                value={this.state.filter}\n              >\n                <option value=\"all\">All Clients</option>\n                <option value=\"recent\">Recently Added</option>\n                <option value=\"name_asc\">Name A &#8594; Z</option>\n                <option value=\"name_desc\">Name Z &#8594; A</option>\n                <option value=\"city_asc\">Billing City A &#8594; Z</option>\n                <option value=\"city_desc\">Billing City Z &#8594; A</option>\n              </select>\n            </div>\n          </div>\n\n          <div className=\"data-grid-container\">\n            {!isMobileDevice() && (\n              <div className=\"row\">\n                <div className=\"col-12\">\n                  <DataGrid\n                    data={this.state.clients}\n                    columns={columns}\n                    onRowClick={(rowInfo) => {\n                      // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                    }}\n                    onPageSizeChange={this.onPageSizeChange}\n                    onPageNumberChange={this.onPageChange}\n                    total={this.state.totalClients}\n                    paginationLabel={\"Clients per page\"}\n                    showPagination={true}\n                    pageSize={this.state.pageSize}\n                    pageNumber={this.state.pageNumber}\n                  />\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && (\n              <div className=\"row\" style={{ margin: 10 }}>\n                {map(this.state.clients, (client) => {\n                  return (\n                    <ClientCard\n                      client={client}\n                      onDetails={(id) => {\n                        this.onDetails(id);\n                      }}\n                    />\n                  );\n                })}\n                <div className=\"row pagination pagination-align\">\n                  <div className=\"col-12\">\n                    <Pagination\n                      onPageSizeChange={this.onPageSizeChange}\n                      label={\"Clients per page\"}\n                      onPageNumberChange={this.onPageChange}\n                      total={this.state.totalClients}\n                      pageSize={this.state.pageSize}\n                      pageNumber={this.state.pageNumber}\n                    />\n                  </div>\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && this.state.clients.length === 0 && (\n              <div className=\"row\">\n                <div className=\"col-12 text-center\">\n                  <span>No Clients</span>\n                </div>\n              </div>\n            )}\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  clients: state.client.getAllSuccess,\n  clientsError: state.client.getAllFail,\n  searchConfig: state.config.clientSearch,\n});\n\nexport default withRouter(connect(mapStateToProps)(Clients));\n","import * as React from 'react';\nimport '../data-grid.scss';\n\nclass Actions extends React.Component {\n\n    onEdit = (event) => {\n        this.props.onEdit(this.props.actionId, event)\n    };\n\n    render() {\n        return (\n\n            <div className='cell action-cell' >\n                <div className='col-12 text-center' onClick={this.onEdit}>\n                    <img src=\"/images/edit-green.svg\" alt=\"Edit\"/>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default Actions;\n","import React from \"react\";\n\nclass StaffCard extends React.Component {\n  render() {\n    const user = this.props.user;\n    return (\n      <div\n        className=\"col-12 visit-card\"\n        onClick={() => {\n          this.props.onDetails(user.id);\n        }}\n      >\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">First Name</div>\n            <div className=\"col-12 value\">{user.firstName}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Last Name</div>\n            <div className=\"col-12 value\">{user.lastName}</div>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Phone</div>\n            <div className=\"col-12 value\">{user.phone}</div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default StaffCard;\n","import * as React from 'react';\nimport '../data-grid.scss';\n\nclass ResetPassword extends React.Component {\n\n    onClick = (event) => {\n        this.props.onClick(this.props.actionId, event)\n    };\n\n    render() {\n        return (\n\n            <div className='cell action-cell'>\n                <div className='col-12 text-center' onClick={this.onClick}>\n                    <img src=\"/images/key.svg\" alt=\"\"/>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default ResetPassword;\n","import * as React from \"react\";\nimport * as classNames from \"classnames\";\nimport \"./popUpModal.scss\";\n\nclass PopUpModal extends React.Component {\n    render() {\n\n        const modalClassName = this.props.size === '' ? 'modal-dialog modal-md' : 'modal-dialog modal-' + this.props.size\n        return (\n            <div>\n                <div\n                    className={classNames(\"modal fade\", {show: this.props.show})}\n                    id={this.props.id ? this.props.id : 'exampleModal'}\n                    tabIndex=\"-1\"\n                    role=\"dialog\"\n                    aria-labelledby=\"exampleModalLabel\"\n                    aria-hidden=\"true\"\n                >\n                    <div className={modalClassName} role=\"document\">\n                        <div className=\"modal-content\">\n                            <div className=\"modal-header text-center\">\n                                <div className=\"col-12 text-center\">\n                                    <button\n                                        type=\"button\"\n                                        className=\"close\"\n                                        onClick={this.props.onClose}\n                                    >\n                                        <span aria-hidden=\"true\">&times;</span>\n                                    </button>\n                                    <h5\n                                        className=\"modal-title text-center\"\n                                        id=\"exampleModalLabel\"\n                                    >\n                    <span className=\"my-auto\">\n                      <img src={this.props.icon} alt=\"\" style={{padding: 20}}/>\n                    </span>\n                                        <span style={{marginLeft: \"5px\"}}>\n                      {this.props.title}\n                    </span>\n                                    </h5>\n                                </div>\n                            </div>\n                            <div className=\"modal-body\">{this.props.children}</div>\n                            {/*<div className=\"modal-footer\">*/}\n                            {/*    <button type=\"button\" className=\"btn btn-secondary\" data-dismiss=\"modal\">Close</button>*/}\n                            {/*    <button type=\"button\" className=\"btn btn-primary\">C</button>*/}\n                            {/*</div>*/}\n                        </div>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default PopUpModal;\n","import * as React from \"react\";\nimport {withRouter} from \"react-router-dom\";\nimport './validations-box.scss'\n\nclass ValidationsBox extends React.Component {\n\n    render() {\n        return (\n            <div className={'validation-container'}>\n                <div className=\"row\">\n                    <img src={ !this.props.dirty ? '/images/check-grey.svg' : this.props.validLength ? '/images/check-green.svg' : '/images/alert-circle.svg'} alt=\"\"/>\n                    <span className={this.props.validLength || !this.props.dirty ? 'text-description': 'text-error'}>At least 8 characters long</span>\n                </div>\n                <div className=\"row\">\n                    <img src={ !this.props.dirty ? '/images/check-grey.svg' : this.props.validLength ? '/images/check-green.svg' : '/images/alert-circle.svg'} alt=\"\"/>\n                    <span className={this.props.validCharacters || !this.props.dirty ? 'text-description': 'text-error'}>Contains at least 1 upper case & lower case character</span>\n                </div>\n                <div className=\"row\">\n                    <img src={ !this.props.dirty ? '/images/check-grey.svg' : this.props.validLength ? '/images/check-green.svg' : '/images/alert-circle.svg'} alt=\"\"/>\n                    <span className={this.props.validNumbers || !this.props.dirty ? 'text-description': 'text-error'}>Contains at least 1 number</span>\n                </div>\n                <div className=\"row\">\n                    <img src={ !this.props.dirty ? '/images/check-grey.svg' : this.props.validLength ? '/images/check-green.svg' : '/images/alert-circle.svg'} alt=\"\"/>\n                    <span className={this.props.validSpecialCharacters || !this.props.dirty ? 'text-description': 'text-error'}>Contains at least 1 special character such as (!@#%&?)</span>\n                </div>\n            </div>\n        )\n    }\n}\n\nexport default withRouter(ValidationsBox);\n\n\n\n\n\n","import React from \"react\";\nimport {reduxForm} from \"redux-form\";\nimport ValidationsBox from \"../shared/password-validations/validations-box\";\n\nclass ResetPasswordForm extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            password: \" \",\n            isValidPassword: false,\n            dirty: false,\n            validLength: false,\n            validCharacters: false,\n            validNumbers: false,\n            validSpecialCharacters: false,\n        };\n    }\n\n    onPasswordChange = (e) => {\n        let password = e.target.value;\n        let validLength = false;\n        let validCharacters = false;\n        let validNumbers = false;\n        let validSpecialCharacters = false;\n        let validPassword = false;\n\n        const lowerCaseRegex = /[a-z]/\n        const upperCaseRegex = /[A-Z]/\n        const numbersRegex = /^(?=.*?[0-9]).+$/\n        const specialCharacterRegex = /^(?=.*?[#?!@$%^&*-]).+$/\n        const passwordRegex = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/\n\n        validLength = password.length >= 8;\n        validCharacters = lowerCaseRegex.test(password) && upperCaseRegex.test(password);\n        validNumbers = numbersRegex.test(password);\n        validSpecialCharacters = specialCharacterRegex.test(password);\n        validPassword = passwordRegex.test(password);\n\n        this.setState({\n            dirty: true,\n            password: e.target.value,\n            validLength: validLength,\n            validCharacters: validCharacters,\n            validNumbers: validNumbers,\n            validSpecialCharacters: validSpecialCharacters,\n            isValidPassword: validPassword,\n        })\n\n    }\n\n    render() {\n        return (\n            <div className='row'>\n                <div className='col-lg-8 offset-lg-2 col-md-12 offset-md-0 col-sm-12 offset-sm-0'>\n                    <div className='form'>\n                        <div className='col-12 input-box text-left password-container'>\n                            <div className='label' style={{}}>New Password</div>\n                            {/*<Field*/}\n                            {/*    name=\"newPassword\"*/}\n                            {/*    component={inputField}*/}\n                            {/*    type=\"text\"*/}\n                            {/*    placeholder={'New Password'}*/}\n                            {/*    required={true}*/}\n                            {/*    validate={this.validatePassword}*/}\n                            {/*    onChange={(e) => {*/}\n                            {/*        this.setState({password: e.target.value})*/}\n                            {/*    }}*/}\n                            {/*/>*/}\n                            <input type=\"text\"\n                                   className={this.state.isValidPassword || !this.state.dirty ? 'box password-text text-box' : 'box password-text text-box error'}\n                                   style={{marginBottom: '0px !important'}} placeholder={'New Password'}\n                                   onChange={this.onPasswordChange} onFocus={() => {\n                                this.setState({\n                                    dirty: true\n                                })\n                            }}/>\n                        </div>\n                        <div className=\"col-12\">\n                            <ValidationsBox dirty={this.state.dirty} validLength={this.state.validLength}\n                                            validCharacters={this.state.validCharacters}\n                                            validNumbers={this.state.validNumbers}\n                                            validSpecialCharacters={this.state.validSpecialCharacters}/>\n                        </div>\n                        <div className='row' style={{marginBottom: 20}}>\n                            <div className=\"col-6\">\n                                <button\n                                    className=\"button basic\"\n                                    onClick={(event) => {\n                                        this.props.onCloseModal();\n                                    }}\n                                >\n                                    CANCEL\n                                </button>\n                            </div>\n                            <div className='col-6'>\n                                <button\n                                    className={this.state.isValidPassword ? 'button submit' : 'button submit disabled'}\n                                    disabled={!this.state.isValidPassword} onClick={() => {\n                                    if (this.state.isValidPassword) {\n                                        this.props.handleSubmit(this.state.password, this.props.userId)\n                                    }\n                                }}>\n                                            <span className='text'>\n                                                SAVE CHANGES\n                                            </span>\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nconst ResetPassword = reduxForm({\n    form: 'loginForm'\n})(ResetPasswordForm);\n\nexport default ResetPassword;\n","import * as React from \"react\";\nimport \"./staff.scss\";\nimport DataGrid from \"../shared/data-grid/data-grid\";\nimport BasicCell from \"../shared/data-grid/custom-cells/basic-cell\";\nimport BasicHeader from \"../shared/data-grid/custom-headers/basic-header\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { getAllUsers } from \"../../redux/users/userActions\";\nimport { get, isEqual, isNull, map, startCase } from \"lodash\";\nimport Actions from \"../shared/data-grid/custom-cells/actions\";\nimport View from \"../shared/data-grid/custom-cells/view\";\nimport { isMobileDevice } from \"../../util/deviceType\";\nimport StaffCard from \"./staffCard\";\nimport Pagination from \"../shared/data-grid/pagination/pagination\";\nimport { ALERT_TYPES, RECORD_TYPES } from \"../../constants/appConstants\";\nimport ResetPassword from \"../shared/data-grid/custom-cells/resetPassword\";\nimport PopUpModal from \"../shared/popup-modal/popUpModal\";\nimport ResetPasswordForm from \"./ResetPasswordForm\";\nimport { createNotification } from \"../../util/notificationManager\";\nimport { resetStaffPassword } from \"../../api/user\";\nimport { isEmpty } from \"react-select-search/src/Utils\";\nimport { saveStaffSearchChanges } from \"../../redux/config/configAction\";\n\nclass Staff extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      users: [],\n      seletedUser: \"\",\n      totalUsers: 0,\n      pageNumber: 0,\n      searchParam: \"\",\n      filter: \"recent\",\n      pageSize: 10,\n      openModal: false,\n      status: 0,\n    };\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    const { users, searchConfig } = this.props;\n    const userData = [];\n    if (!isEqual(nextProps.users, users) && !isNull(nextProps.users)) {\n      map(nextProps.users.data, (user) => {\n        userData.push({\n          id: user.userId,\n          // name: startCase(\n          //   `${get(user, \"firstName\")} ${get(user, \"middleName\")} ${get(\n          //     user,\n          //     \"lastName\"\n          //   )}`\n          // ),\n          name: `${get(user, \"lastName\")} ${get(user, \"firstName\")} ${get(\n            user,\n            \"middleName\"\n          )}`,\n          firstName: get(user, \"firstName\", \"\"),\n          lastName: get(user, \"lastName\", \"\"),\n          phone: get(user, \"phone\", \"\"),\n          staffType: this.getUserType(parseInt(get(user, \"userType\", \"\"))),\n        });\n      });\n      this.setState({\n        users: userData,\n        totalUsers: nextProps.users.recordCount,\n      });\n    }\n\n    if (\n      !isNull(nextProps.searchConfig) &&\n      !isEmpty(nextProps.searchConfig) &&\n      !isEqual(nextProps.searchConfig, searchConfig)\n    ) {\n      this.setState({\n        pageNumber: nextProps.searchConfig.pageNumber,\n        pageSize: nextProps.searchConfig.pageSize,\n        filter: nextProps.searchConfig.filter,\n        searchParam: nextProps.searchConfig.searchParam,\n        status: nextProps.searchConfig.status,\n      });\n      this.getAllUsers(\n        nextProps.searchConfig.pageNumber,\n        nextProps.searchConfig.pageSize,\n        nextProps.searchConfig.filter,\n        nextProps.searchConfig.searchParam,\n        nextProps.searchConfig.status\n      );\n    }\n  }\n\n  componentDidMount() {\n    const { searchConfig } = this.props;\n    if (searchConfig) {\n      this.setState({\n        pageNumber: searchConfig.pageNumber,\n        pageSize: searchConfig.pageSize,\n        filter: searchConfig.filter,\n        searchParam: searchConfig.searchParam,\n      });\n      this.getAllUsers(\n        searchConfig.pageNumber,\n        searchConfig.pageSize,\n        searchConfig.filter,\n        searchConfig.searchParam,\n        searchConfig.status\n      );\n    } else {\n      this.getAllUsers(\n        this.state.pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      );\n    }\n  }\n\n  getAllUsers = (pageNumber, pageSize, filter, searchParams, status) => {\n    this.props.dispatch(\n      getAllUsers(pageNumber, pageSize, filter, searchParams, \"user\", status)\n    );\n  };\n\n  onCreateNewStaff = () => {\n    this.props.history.push(\"/admin/staff-type\");\n  };\n\n  onEdit = (userId) => {\n    this.props.history.push(`/admin/edit-staff?id=${userId}`);\n  };\n\n  onResetPassword = (userId) => {\n    this.setState({\n      openModal: true,\n      selectedUser: userId,\n    });\n  };\n\n  onDetails = (userId) => {\n    this.props.history.push(`/admin/view-staff?id=${userId}`);\n  };\n\n  onPageChange = (pageNumber) => {\n    this.props.dispatch(\n      saveStaffSearchChanges(\n        pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onPageSizeChange = (pageSize) => {\n    this.setState({\n      pageSize: pageSize,\n    });\n    this.props.dispatch(\n      saveStaffSearchChanges(\n        0,\n        pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onSearch = (event) => {\n    const searchParam = event.target.value;\n    if (searchParam.length >= 3 || searchParam.length == 0) {\n      this.props.dispatch(\n        saveStaffSearchChanges(\n          0,\n          this.state.pageSize,\n          \"recent\",\n          searchParam,\n          this.state.status\n        )\n      );\n    }\n    this.setState({\n      searchParam,\n      pageNumber: 0,\n      filter: \"recent\",\n    });\n  };\n\n  onPressEnter = (event) => {\n    if (event.keyCode == 13) {\n      this.props.dispatch(\n        saveStaffSearchChanges(\n          0,\n          this.state.pageSize,\n          this.state.filter,\n          this.state.searchParam,\n          this.state.status\n        )\n      );\n    }\n  };\n\n  onFilterChange = (event) => {\n    const filter = event.target.value;\n    this.setState({\n      filter,\n    });\n    this.props.dispatch(\n      saveStaffSearchChanges(\n        0,\n        this.state.pageSize,\n        filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onStatusChange = (event) => {\n    const status = event.target.value;\n    this.setState({\n      status,\n    });\n    this.props.dispatch(\n      saveStaffSearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        status\n      )\n    );\n  };\n\n  getUserType = (userType) => {\n    let recordType = null;\n    map(RECORD_TYPES, (record) => {\n      if (record.value === userType) {\n        recordType = startCase(record.type);\n      }\n    });\n    return recordType;\n  };\n\n  resetPassword = (newPassword, userId) => {\n    resetStaffPassword(newPassword, userId).then((res) => {\n      if (res.status) {\n        this.setState({\n          openModal: false,\n        });\n        createNotification(ALERT_TYPES.SUCCESS, res.message);\n      } else {\n        createNotification(ALERT_TYPES.ERROR, res.message);\n      }\n    });\n  };\n\n  render() {\n    const columns = [\n      {\n        Header: () => <BasicHeader header={\"Name\"} />,\n        accessor: \"name\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: () => <BasicHeader header={\"Last Name\"} />,\n        accessor: \"lastName\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        },\n      },\n      {\n        Header: () => <BasicHeader header={\"First Name\"} />,\n        accessor: \"firstName\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      //   {\n      //     Header: () => <BasicHeader header={\"Client Name\"} />,\n      //     accessor: \"cname\",\n      //     Cell: row => <BasicCell value={row.value} index={row.index} />\n      //   },\n      {\n        Header: () => <BasicHeader header={\"Staff Type\"} />,\n        accessor: \"staffType\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: () => <BasicHeader header={\"Phone\"} />,\n        accessor: \"phone\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <View\n            actionId={row.original.id}\n            onClick={this.onDetails.bind(row.original.id)}\n          />\n        ),\n        width: 50,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <Actions\n            actionId={row.original.id}\n            onEdit={this.onEdit.bind(row.original.id)}\n          />\n        ),\n        width: 50,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <ResetPassword\n            actionId={row.original.id}\n            onClick={this.onResetPassword.bind(row.original.id)}\n          />\n        ),\n        width: 50,\n      },\n    ];\n\n    return (\n      <div className=\"table-layout\">\n        <div className=\"row col-12 header-container\">\n          <div className=\"row col-lg-10 col-sm-12\">\n            <span className=\"col-lg-2 col-sm-12 title\">Staff</span>\n            <span className=\"col-lg-1 col-sm-2 sub-title\">Search</span>\n            <div className=\"col-lg-4 col-sm-10 input-box\">\n              <input\n                type=\"text\"\n                className=\"box text-box search-icon\"\n                value={this.state.searchParam}\n                onChange={this.onSearch}\n                onKeyDown={this.onPressEnter}\n                placeholder={\"Search Staff Name\"}\n                autoComplete={\"off\"}\n              />\n            </div>\n          </div>\n          <div className=\"col-lg-2 col-sm-12\">\n            <button className=\"button submit\" onClick={this.onCreateNewStaff}>\n              <span className=\"text\">CREATE NEW</span>\n            </button>\n          </div>\n        </div>\n\n        <div className=\"body-container\">\n          <div className=\"row list-container\">\n            <div className=\"col-lg-3 col-md-4 col-sm-6\">\n              <span className=\"list-header\">Staff</span>\n            </div>\n            <div className=\"col-lg-3 offset-lg-3 col-md-4 col-sm-6\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onStatusChange}\n                value={this.state.status}\n              >\n                <option value=\"0\">All Staff</option>\n                <option value=\"4\">Active Staff</option>\n                <option value=\"5\">Inactive Staff</option>\n              </select>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-6\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onFilterChange}\n                value={this.state.filter}\n              >\n                <option value=\"all\">All Staff</option>\n                <option value=\"recent\">Recently Added</option>\n                <option value=\"name_asc\">Name A &#8594; Z</option>\n                <option value=\"name_desc\">Name Z &#8594; A</option>\n                <option value=\"city_asc\">City A &#8594; Z</option>\n                <option value=\"city_desc\">City Z &#8594; A</option>\n              </select>\n            </div>\n          </div>\n\n          <div className=\"data-grid-container\">\n            {!isMobileDevice() && (\n              <div className=\"row\">\n                <div className=\"col-12\">\n                  <DataGrid\n                    data={this.state.users}\n                    columns={columns}\n                    onRowClick={(rowInfo) => {\n                      this.setState({\n                        seletedUser: get(rowInfo.original, \"id\", \"\"),\n                      });\n                    }}\n                    onPageSizeChange={this.onPageSizeChange}\n                    onPageNumberChange={this.onPageChange}\n                    total={this.state.totalUsers}\n                    paginationLabel={\"Users per page\"}\n                    showPagination={true}\n                    pageSize={this.state.pageSize}\n                    pageNumber={this.state.pageNumber}\n                  />\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && (\n              <div className=\"row\" style={{ margin: 10 }}>\n                {map(this.state.users, (user) => {\n                  return (\n                    <StaffCard\n                      user={user}\n                      onDetails={(id) => {\n                        this.onDetails(id);\n                      }}\n                    />\n                  );\n                })}\n                <div className=\"row pagination pagination-align\">\n                  <div className=\"col-12\">\n                    <Pagination\n                      onPageSizeChange={this.onPageSizeChange}\n                      label={\"Users per page\"}\n                      onPageNumberChange={this.onPageChange}\n                      total={this.state.totalUsers}\n                      pageSize={this.state.pageSize}\n                      pageNumber={this.state.pageNumber}\n                    />\n                  </div>\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && this.state.users.length === 0 && (\n              <div className=\"row\">\n                <div className=\"col-12 text-center\">\n                  <span>No Staff</span>\n                </div>\n              </div>\n            )}\n          </div>\n        </div>\n        {this.state.openModal && (\n          <PopUpModal\n            show={this.state.openModal}\n            onClose={() => {\n              this.setState({ openModal: false });\n            }}\n            title={\"Reset User Password\"}\n            icon={\"/images/clipboard.png\"}\n            size={\"lg\"}\n          >\n            <ResetPasswordForm\n              userId={this.state.selectedUser}\n              handleSubmit={this.resetPassword}\n              onCloseModal={() => {\n                this.setState({ openModal: false });\n              }}\n            />\n          </PopUpModal>\n        )}\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  users: state.user.getAllSuccess,\n  usersError: state.user.getAllFail,\n  changePasswordSuccess: state.auth.changePasswordSuccess,\n  changePasswordFail: state.auth.changePasswordFail,\n  searchConfig: state.config.staffSearch,\n});\n\nexport default withRouter(connect(mapStateToProps)(Staff));\n","import React from \"react\";\n\nfunction SupportCard(props) {\n  const user = props.user;\n  return (\n    <div\n      className=\"col-12 visit-card\"\n      onClick={() => {\n        props.onDetails(user.id);\n      }}\n    >\n      <div className=\"row\">\n        <div className=\"col-6\">\n          <div className=\"col-12 label\"> Name</div>\n          <div className=\"col-12 value\" style={{ wordBreak: \"break-word\" }}>\n            {user.name}\n          </div>\n        </div>\n        <div className=\"col-6\">\n          <div className=\"col-12 label\">Company Name</div>\n          <div className=\"col-12 value\" style={{ wordBreak: \"break-word\" }}>\n            {user.companyName}\n          </div>\n        </div>\n      </div>\n      <div className=\"row\">\n        <div className=\"col-6\">\n          <div className=\"col-12 label\">Phone</div>\n          <div className=\"col-12 value\" style={{ wordBreak: \"break-word\" }}>\n            {user.phone}\n          </div>\n        </div>\n      </div>\n      <div className=\"row\">\n        <div className=\"col-6\">\n          <div className=\"col-12 label\">City</div>\n          <div className=\"col-12 value\" style={{ wordBreak: \"break-word\" }}>\n            {user.city}\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default SupportCard;\n","import * as React from \"react\";\nimport \"./support-cordinator.scss\";\nimport DataGrid from \"../shared/data-grid/data-grid\";\nimport BasicCell from \"../shared/data-grid/custom-cells/basic-cell\";\nimport BasicHeader from \"../shared/data-grid/custom-headers/basic-header\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { getSCs } from \"../../redux/users/userActions\";\nimport { get, isEmpty, isEqual, isNull, map, startCase } from \"lodash\";\nimport Actions from \"../shared/data-grid/custom-cells/actions\";\nimport View from \"../shared/data-grid/custom-cells/view\";\nimport { isMobileDevice } from \"../../util/deviceType\";\nimport SupportCard from \"../staff/supportCard\";\nimport Pagination from \"../shared/data-grid/pagination/pagination\";\nimport { saveSCSearchChanges } from \"../../redux/config/configAction\";\n\nclass SupportCoordinator extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      users: [],\n      seletedUser: \"\",\n      totalUsers: 0,\n      pageNumber: 0,\n      searchParam: \"\",\n      filter: \"recent\",\n      pageSize: 10,\n      status: 0,\n    };\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    const { users, searchConfig } = this.props;\n    const userData = [];\n    if (!isEqual(nextProps.users, users) && !isNull(nextProps.users)) {\n      map(nextProps.users.data, (user) => {\n        userData.push({\n          id: user.scId,\n          // name: startCase(`${get(user, \"firstName\")} ${get(user, \"lastName\")}`),\n          name: `${get(user, \"lastName\")} ${get(user, \"firstName\")}`,\n          city: startCase(get(user, \"billingCity\", \"\")),\n          companyName: get(user, \"company\", \"\"),\n          mobile: get(user, \"mobile\", \"\"),\n        });\n      });\n      this.setState({\n        users: userData,\n        totalUsers: nextProps.users.recordCount,\n      });\n    }\n\n    if (\n      !isNull(nextProps.searchConfig) &&\n      !isEmpty(nextProps.searchConfig) &&\n      !isEqual(nextProps.searchConfig, searchConfig)\n    ) {\n      this.setState({\n        pageNumber: nextProps.searchConfig.pageNumber,\n        pageSize: nextProps.searchConfig.pageSize,\n        filter: nextProps.searchConfig.filter,\n        searchParam: nextProps.searchConfig.searchParam,\n        status: nextProps.searchConfig.status,\n      });\n      this.getAllUsers(\n        nextProps.searchConfig.pageNumber,\n        nextProps.searchConfig.pageSize,\n        nextProps.searchConfig.filter,\n        nextProps.searchConfig.searchParam,\n        nextProps.searchConfig.status\n      );\n    }\n  }\n\n  componentDidMount() {\n    const { searchConfig } = this.props;\n    if (searchConfig) {\n      this.setState({\n        pageNumber: searchConfig.pageNumber,\n        pageSize: searchConfig.pageSize,\n        filter: searchConfig.filter,\n        searchParam: searchConfig.searchParam,\n        status: searchConfig.status,\n      });\n      this.getAllUsers(\n        searchConfig.pageNumber,\n        searchConfig.pageSize,\n        searchConfig.filter,\n        searchConfig.searchParam,\n        searchConfig.status\n      );\n    } else {\n      this.getAllUsers(\n        this.state.pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      );\n    }\n  }\n\n  getAllUsers = (pageNumber, pageSize, filter, searchParams, status) => {\n    this.props.dispatch(\n      getSCs(pageNumber, pageSize, filter, searchParams, status)\n    );\n  };\n\n  onCreateNewStaff = () => {\n    this.props.history.push(\"/admin/create-sc?staffType=4\");\n  };\n\n  onEdit = (userId) => {\n    this.props.history.push(`/admin/edit-sc?id=${userId}&staffType=4`);\n  };\n\n  onDetails = (userId) => {\n    this.props.history.push(`/admin/view-sc?id=${userId}`);\n  };\n\n  onPageChange = (pageNumber) => {\n    this.setState({\n      pageNumber: pageNumber,\n    });\n    this.props.dispatch(\n      saveSCSearchChanges(\n        pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onPageSizeChange = (pageSize) => {\n    this.setState({\n      pageSize: pageSize,\n    });\n    this.props.dispatch(\n      saveSCSearchChanges(\n        0,\n        pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onSearch = (event) => {\n    const searchParam = event.target.value;\n    if (searchParam.length >= 3 || searchParam.length === 0) {\n      this.props.dispatch(\n        saveSCSearchChanges(\n          0,\n          this.state.pageSize,\n          \"recent\",\n          searchParam,\n          this.state.status\n        )\n      );\n    }\n    this.setState({\n      searchParam,\n      pageNumber: 0,\n      filter: \"recent\",\n    });\n  };\n\n  onPressEnter = (event) => {\n    if (event.keyCode === 13) {\n      this.props.dispatch(\n        saveSCSearchChanges(\n          0,\n          this.state.pageSize,\n          this.state.filter,\n          this.state.searchParam,\n          this.state.status\n        )\n      );\n    }\n  };\n\n  onFilterChange = (event) => {\n    const filter = event.target.value;\n    this.setState({\n      filter,\n    });\n    this.props.dispatch(\n      saveSCSearchChanges(\n        0,\n        this.state.pageSize,\n        filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onStatusChange = (event) => {\n    const status = event.target.value;\n    this.setState({\n      status,\n    });\n    this.props.dispatch(\n      saveSCSearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        status\n      )\n    );\n  };\n\n  render() {\n    const columns = [\n      {\n        Header: () => <BasicHeader header={\"Name\"} />,\n        accessor: \"name\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: () => <BasicHeader header={\"City\"} />,\n        accessor: \"city\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        },\n      },\n      {\n        Header: () => <BasicHeader header={\"Company Name\"} />,\n        accessor: \"companyName\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: () => <BasicHeader header={\"Mobile\"} />,\n        accessor: \"mobile\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <View\n            actionId={row.original.id}\n            onClick={this.onDetails.bind(row.original.id)}\n          />\n        ),\n        width: 50,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <Actions\n            actionId={row.original.id}\n            onEdit={this.onEdit.bind(row.original.id)}\n          />\n        ),\n        width: 50,\n      },\n    ];\n\n    return (\n      <div className=\"table-layout\">\n        {isMobileDevice() ? (\n          <div\n            style={{\n              flexDirection: \"row\",\n              flexWrap: \"wrap\",\n              justifyContent: \"space-between\",\n              alignItems: \"center\",\n              padding: 4,\n            }}\n          >\n            <h2 style={{ margin: 1, wordBreak: \"break-word\", flex: 1 }}>\n              Supports Coordinator\n            </h2>\n\n            <div style={{ flex: 1 }}>Search</div>\n            <div className=\"input-box\" style={{ flex: 1, paddingRight: 20 }}>\n              <input\n                type=\"text\"\n                className=\"box text-box search-icon\"\n                value={this.state.searchParam}\n                onChange={this.onSearch}\n                onKeyDown={this.onPressEnter}\n                placeholder={\"Supports Coordinator Name\"}\n              />\n            </div>\n\n            <div style={{ flex: 1 }}>\n              <button className=\"button submit\" onClick={this.onCreateNewStaff}>\n                <span className=\"text\">CREATE NEW</span>\n              </button>\n            </div>\n          </div>\n        ) : (\n          <div className=\"row col-12 header-container\">\n            <div className=\"row col-lg-10 \">\n              <span className=\"col-lg-5  title\">Supports Coordinator</span>\n              <span className=\"col-lg-1  sub-title\">Search</span>\n              <div className=\"col-lg-4  input-box\">\n                <input\n                  type=\"text\"\n                  className=\"box text-box search-icon\"\n                  value={this.state.searchParam}\n                  onChange={this.onSearch}\n                  onKeyDown={this.onPressEnter}\n                  placeholder={\"Supports Coordinator Name\"}\n                />\n                {/*<FeatherIcon icon=\"search\"/>*/}\n              </div>\n            </div>\n            <div className=\"col-lg-2 \">\n              <button className=\"button submit\" onClick={this.onCreateNewStaff}>\n                <span className=\"text\">CREATE NEW</span>\n              </button>\n            </div>\n          </div>\n        )}\n        <div className=\"body-container\">\n          <div className=\"row list-container\">\n            <div className=\"col-lg-4 col-md-4 col-sm-6\">\n              <span className=\"list-header\">Supports Coordinators</span>\n            </div>\n            <div className=\"col-lg-3 offset-lg-2 col-md-4 col-sm-6\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onStatusChange}\n                value={this.state.status}\n              >\n                <option value=\"0\">All SC</option>\n                <option value=\"4\">Active SC</option>\n                <option value=\"5\">Inactive SC</option>\n              </select>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-6\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onFilterChange}\n                value={this.state.filter}\n              >\n                <option value=\"all\">All Supports Coordinators</option>\n                <option value=\"recent\">Recently Added</option>\n                <option value=\"name_asc\">Name A &#8594; Z</option>\n                <option value=\"name_desc\">Name Z &#8594; A</option>\n                <option value=\"city_asc\">Billing City A &#8594; Z</option>\n                <option value=\"city_desc\">Billing City Z &#8594; A</option>\n              </select>\n            </div>\n          </div>\n\n          <div className=\"data-grid-container\">\n            {!isMobileDevice() && (\n              <div className=\"row\">\n                <div className=\"col-12\">\n                  <DataGrid\n                    data={this.state.users}\n                    columns={columns}\n                    onRowClick={(rowInfo) => {\n                      this.setState({\n                        seletedUser: get(rowInfo.original, \"id\", \"\"),\n                      });\n                    }}\n                    onPageSizeChange={this.onPageSizeChange}\n                    onPageNumberChange={this.onPageChange}\n                    total={this.state.totalUsers}\n                    paginationLabel={\"Supports Coordinators per page\"}\n                    showPagination={true}\n                    pageSize={this.state.pageSize}\n                    pageNumber={this.state.pageNumber}\n                  />\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && (\n              <div className=\"row\" style={{ margin: 10 }}>\n                {map(this.state.users, (user) => {\n                  return (\n                    <SupportCard\n                      user={user}\n                      onDetails={(id) => {\n                        this.onDetails(id);\n                      }}\n                    />\n                  );\n                })}\n                <div className=\"row pagination pagination-align\">\n                  <div className=\"col-12\">\n                    <Pagination\n                      onPageSizeChange={this.onPageSizeChange}\n                      label={\"Supports Coordinators per page\"}\n                      onPageNumberChange={this.onPageChange}\n                      total={this.state.totalUsers}\n                      pageSize={this.state.pageSize}\n                      pageNumber={this.state.pageNumber}\n                    />\n                  </div>\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && this.state.users.length === 0 && (\n              <div className=\"row\">\n                <div className=\"col-12 text-center\">\n                  <span>No Supports Coordinators</span>\n                </div>\n              </div>\n            )}\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  users: state.user.getSCSuccess,\n  usersError: state.user.getSCFail,\n  searchConfig: state.config.scSearch,\n});\n\nexport default withRouter(connect(mapStateToProps)(SupportCoordinator));\n","import React from \"react\";\n\nclass WECard extends React.Component {\n  render() {\n    const we = this.props.we;\n    return (\n      <div\n        className=\"col-12 visit-card\"\n        onClick={() => {\n          this.props.onDetails(we.id);\n        }}\n      >\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Work Entry</div>\n            <div className=\"col-12 value\">{we.name}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Staff Name</div>\n            <div className=\"col-12 value\">{we.staffName}</div>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Client Name</div>\n            <div className=\"col-12 value\">{we.clientName}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Service Name</div>\n            <div className=\"col-12 value\">{we.service}</div>\n          </div>\n        </div>\n        <hr />\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Elapsed Time (Hrs)</div>\n            <div className=\"col-12 value\">{we.elapsedTime}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Used Units</div>\n            <div className=\"col-12 value\">{we.usedUnits}</div>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Gross ($)</div>\n            <div className=\"col-12 value\">{we.gross}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Net ($)</div>\n            <div className=\"col-12 value\">{we.net}</div>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Start Time</div>\n            <div className=\"col-12 value\">{we.startTime}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">End Time</div>\n            <div className=\"col-12 value\">{we.endTime}</div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default WECard;\n","import React from \"react\";\n\nclass SelectCell extends React.Component {\n\n    render() {\n        const {value} = this.props;\n        return (\n            <div className='cell select-cell text-center'>\n                {value && <img src=\"./images/verified.svg\" alt={\"\"}/>}\n            </div>\n        );\n    }\n}\n\nexport default SelectCell;","import React from \"react\";\nimport { isEqual, isNull } from \"lodash\";\nimport \"./index.scss\";\nimport { isEmpty } from \"lodash/lang\";\n\nclass SearchableDropdown extends React.Component {\n  state = {\n    dropdownOpen: false,\n    selected: false,\n    selectedValue: \"\",\n    filteredOptions: [],\n  };\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    if (!isEqual(nextProps, this.props) && !isNull(nextProps)) {\n      const { options, valueIdentifier, keyIdentifier, value, defaultValue } =\n        nextProps;\n      let selectedOption = \"\";\n      if (value != defaultValue && (!isNull(options) || !isEmpty(options))) {\n        options.map((option) => {\n          if (option[keyIdentifier] == value) {\n            selectedOption = option[valueIdentifier];\n          }\n        });\n      }\n      this.setState({\n        selected: selectedOption != \"\",\n        selectedValue: selectedOption,\n        filteredOptions: this.filterOptions(\n          options,\n          valueIdentifier,\n          selectedOption\n        ),\n      });\n    }\n  }\n\n  onChange = (event) => {\n    const { options, valueIdentifier } = this.props;\n    const searchParam = event.target.value;\n    this.setState({\n      selectedValue: searchParam,\n      filteredOptions: this.filterOptions(\n        options,\n        valueIdentifier,\n        searchParam\n      ),\n    });\n  };\n\n  onOptionSelect = (option) => {\n    const { keyIdentifier, valueIdentifier } = this.props;\n    this.setState({\n      selectedValue: option[valueIdentifier],\n      selected: true,\n      dropdownOpen: false,\n    });\n    this.props.onChange(option[keyIdentifier]);\n  };\n\n  onDropAction = (selectedValue, selected, dropdownOpen) => {\n    this.input.focus();\n    const { options, valueIdentifier } = this.props;\n    this.setState({\n      selectedValue,\n      selected,\n      dropdownOpen,\n      filteredOptions: this.filterOptions(\n        options,\n        valueIdentifier,\n        selectedValue\n      ),\n    });\n  };\n\n  filterOptions = (options, valueIdentifier, selectedValue) => {\n    selectedValue = selectedValue.trim();\n    if (isNull(selectedValue) || isEmpty(selectedValue)) {\n      return options;\n    }\n    return options.filter(\n      (option) =>\n        option[valueIdentifier]\n          .toLowerCase()\n          .replaceAll(\",\", \"\")\n          .includes(selectedValue.toLowerCase()) ||\n        option[valueIdentifier].toLowerCase().replaceAll(\",\", \"\") ==\n          selectedValue.toLowerCase()\n    );\n  };\n\n  render() {\n    const { selectedValue, selected, dropdownOpen, filteredOptions } =\n      this.state;\n    const { valueIdentifier, placeholder, defaultValue } = this.props;\n\n    return (\n      <div\n        className={\"searchable-dropdown-container\"}\n        onBlur={() => {\n          this.setState({ dropdownOpen: false });\n        }}\n      >\n        <input\n          type=\"text\"\n          className={\"input-field\"}\n          value={selectedValue}\n          onChange={this.onChange}\n          placeholder={placeholder}\n          onFocus={() => {\n            this.onDropAction(selectedValue, selected, true);\n          }}\n          ref={(ip) => (this.input = ip)}\n        />\n\n        {!selected && !dropdownOpen && (\n          <i\n            className={\"action-button\"}\n            onClick={() => {\n              this.onDropAction(selectedValue, selected, true);\n            }}\n          >\n            <img src=\"./images/chevron-down-grey.svg\" alt=\"\" />\n          </i>\n        )}\n\n        {dropdownOpen && (\n          <i\n            className={\"action-button\"}\n            onClick={() => {\n              this.onDropAction(selectedValue, selected, false);\n            }}\n          >\n            <img src=\"./images/chevron-up-grey.svg\" alt=\"\" />\n          </i>\n        )}\n\n        {selected && !dropdownOpen && (\n          <i\n            className={\"action-button\"}\n            onClick={() => {\n              this.props.onChange(defaultValue);\n              this.onDropAction(\"\", false, true);\n            }}\n          >\n            <img src=\"./images/x-grey.svg\" alt=\"\" />\n          </i>\n        )}\n\n        <div\n          className={dropdownOpen ? \"drop-down-list\" : \"drop-down-list-hidden\"}\n        >\n          {filteredOptions &&\n            filteredOptions.map((option, index) => (\n              <span\n                key={index}\n                onMouseDown={() => {\n                  this.onOptionSelect(option);\n                }}\n              >\n                {option[valueIdentifier]}\n              </span>\n            ))}\n          {!isNull(filteredOptions) && filteredOptions.length == 0 && (\n            <span>No result found</span>\n          )}\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default SearchableDropdown;\n","import React from \"react\";\nimport BasicHeader from \"../shared/data-grid/custom-headers/basic-header\";\nimport BasicCell from \"../shared/data-grid/custom-cells/basic-cell\";\nimport DataGrid from \"../shared/data-grid/data-grid\";\nimport { isEmpty, isEqual, isNull, map, startCase } from \"lodash\";\nimport { getAllWorkEntries } from \"../../redux/workEntries/workEntryAction\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport Actions from \"../shared/data-grid/custom-cells/actions\";\nimport View from \"../shared/data-grid/custom-cells/view\";\nimport \"./workEntries.scss\";\nimport { getAllUsersList } from \"../../api/user\";\nimport { getClientServicesList } from \"../../api/clientService\";\nimport { isMobileDevice } from \"../../util/deviceType\";\nimport WECard from \"./weCard\";\nimport Pagination from \"../shared/data-grid/pagination/pagination\";\nimport DatePickerComponent from \"../shared/date-picker/datePickerComponent\";\nimport moment from \"moment\";\nimport { saveWESearchChanges } from \"../../redux/config/configAction\";\nimport { DATEFILTEROPTIONS, VISIT_STATUS } from \"../../constants/appConstants\";\nimport SelectCell from \"../shared/data-grid/custom-cells/select-cell\";\nimport SearchableDropdown from \"../shared/searchable-dropdown\";\n\nclass WorkEntries extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      workEntries: [],\n      selectedWorkEntryId: 0,\n      pageNumber: 0,\n      searchParam: \"\",\n      filter: \"recent\",\n      pageSize: 10,\n      totalWorkEntries: 0,\n      usersList: [],\n      servicesList: [],\n      selectedStaff: 0,\n      selectedService: 0,\n      fromDate: new Date(new Date().setDate(new Date().getDate() - 7)).setHours(\n        0,\n        0,\n        0,\n        0\n      ),\n      toDate: new Date().setHours(0, 0, 0, 0),\n      dateRangeOption: 1,\n      activeTabIndex: 1,\n      statusList: [],\n    };\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    const { workEntries, searchConfig } = this.props;\n    const workEntryData = [];\n    if (\n      !isEqual(nextProps.workEntries, workEntries) &&\n      !isNull(nextProps.workEntries)\n    ) {\n      map(nextProps.workEntries.data, (we) => {\n        workEntryData.push({\n          id: we.entryId,\n          name: we.entryName,\n          staffName: startCase(we.userName),\n          clientName: startCase(we.clientName),\n          startTime: moment(new Date(we.startTime)).format(\n            \"MM-DD-YYYY HH:mm A\"\n          ),\n          endTime:\n            we.status !== VISIT_STATUS.IN_PROGRESS\n              ? moment(new Date(we.endTime)).format(\"MM-DD-YYYY HH:mm A\")\n              : \"-\",\n          elapsedHours:\n            we.status == VISIT_STATUS.COMPLETED\n              ? we.elapsedTime.toFixed(2)\n              : \"-\",\n          usedUnits: we.status == VISIT_STATUS.COMPLETED ? we.unitsUsed : \"-\",\n          gross:\n            we.status == VISIT_STATUS.COMPLETED\n              ? we.grossAmount.toFixed(2)\n              : \"-\",\n          net:\n            we.status == VISIT_STATUS.COMPLETED ? we.netAmount.toFixed(2) : \"-\",\n          service: we.serviceCode,\n          adminVerification: we.adminVerification,\n        });\n      });\n      this.setState({\n        workEntries: workEntryData,\n        totalWorkEntries: nextProps.workEntries.recordCount,\n      });\n    }\n\n    if (\n      !isNull(nextProps.searchConfig) &&\n      !isEmpty(nextProps.searchConfig) &&\n      !isEqual(nextProps.searchConfig, searchConfig)\n    ) {\n      this.setState({\n        pageNumber: nextProps.searchConfig.pageNumber,\n        pageSize: nextProps.searchConfig.pageSize,\n        filter: nextProps.searchConfig.filter,\n        searchParam: nextProps.searchConfig.searchParam,\n        selectedStaff: nextProps.searchConfig.selectedStaff,\n        selectedService: nextProps.searchConfig.selectedService,\n        fromDate: nextProps.searchConfig.fromDate,\n        toDate: nextProps.searchConfig.toDate,\n        dateRangeOption: nextProps.searchConfig.dateRangeOption,\n        activeTabIndex: nextProps.searchConfig.activeTabIndex,\n      });\n      this.getAllWorkEntries(\n        nextProps.searchConfig.pageNumber,\n        nextProps.searchConfig.pageSize,\n        nextProps.searchConfig.filter,\n        nextProps.searchConfig.searchParam,\n        nextProps.searchConfig.selectedStaff,\n        nextProps.searchConfig.selectedService,\n        nextProps.searchConfig.fromDate,\n        nextProps.searchConfig.toDate,\n        nextProps.searchConfig.dateRangeOption,\n        nextProps.searchConfig.activeTabIndex\n      );\n    }\n  }\n\n  componentDidMount() {\n    this.getAllServices();\n    this.getAllStaff();\n    const { searchConfig } = this.props;\n    if (searchConfig) {\n      this.setState({\n        pageNumber: searchConfig.pageNumber,\n        pageSize: searchConfig.pageSize,\n        filter: searchConfig.filter,\n        searchParam: searchConfig.searchParam,\n        selectedStaff: searchConfig.selectedStaff,\n        selectedService: searchConfig.selectedService,\n        fromDate: searchConfig.fromDate,\n        toDate: searchConfig.toDate,\n        dateRangeOption: searchConfig.dateRangeOption,\n        activeTabIndex: searchConfig.activeTabIndex,\n      });\n      this.getAllWorkEntries(\n        searchConfig.pageNumber,\n        searchConfig.pageSize,\n        searchConfig.filter,\n        searchConfig.searchParam,\n        searchConfig.selectedStaff,\n        searchConfig.selectedService,\n        searchConfig.fromDate,\n        searchConfig.toDate,\n        searchConfig.dateRangeOption,\n        searchConfig.activeTabIndex\n      );\n    } else {\n      this.getAllWorkEntries(\n        this.state.pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        this.state.fromDate,\n        this.state.toDate,\n        this.state.dateRangeOption,\n        this.state.activeTabIndex\n      );\n    }\n  }\n\n  getAllWorkEntries = (\n    pageNumber,\n    pageSize,\n    filter,\n    searchParams,\n    staff,\n    service,\n    fromDate,\n    toDate,\n    dateRangeOption,\n    activeTabIndex\n  ) => {\n    let from = moment.utc(fromDate).format(\"YYYY-MM-DD HH:mm:ss\");\n    let to = moment.utc(toDate).format(\"YYYY-MM-DD HH:mm:ss\");\n    let entryType = \"\";\n    switch (activeTabIndex) {\n      case 0:\n        entryType = \"all\";\n        break;\n      case 1:\n        entryType = \"com\";\n        break;\n      case 2:\n        entryType = \"inp\";\n        break;\n      case 3:\n        entryType = \"abd\";\n        break;\n    }\n    this.props.dispatch(\n      getAllWorkEntries(\n        pageNumber,\n        pageSize,\n        filter,\n        searchParams,\n        entryType,\n        staff,\n        service,\n        from,\n        to,\n        dateRangeOption\n      )\n    );\n  };\n\n  onCreateNewWorkEntry = () => {\n    this.props.history.push(\"/admin/create-timeSheet\");\n  };\n\n  onEdit = (workEntryId) => {\n    this.props.history.push(`/admin/edit-timeSheet?id=${workEntryId}`);\n  };\n\n  onPageChange = (pageNumber) => {\n    this.setState({\n      pageNumber: pageNumber,\n    });\n    this.props.dispatch(\n      saveWESearchChanges(\n        pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        this.state.fromDate,\n        this.state.toDate,\n        this.state.dateRangeOption,\n        this.state.activeTabIndex\n      )\n    );\n  };\n\n  onPageSizeChange = (pageSize) => {\n    this.setState({\n      pageSize: pageSize,\n    });\n    this.props.dispatch(\n      saveWESearchChanges(\n        0,\n        pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        this.state.fromDate,\n        this.state.toDate,\n        this.state.dateRangeOption,\n        this.state.activeTabIndex\n      )\n    );\n  };\n\n  onSearch = (event) => {\n    const searchParam = event.target.value;\n    if (searchParam.length >= 3 || searchParam.length == 0) {\n      this.props.dispatch(\n        saveWESearchChanges(\n          0,\n          this.state.pageSize,\n          \"recent\",\n          searchParam,\n          0,\n          0,\n          this.state.fromDate,\n          this.state.toDate,\n          this.state.dateRangeOption,\n          this.state.activeTabIndex\n        )\n      );\n    }\n    this.setState({\n      searchParam,\n      pageNumber: 0,\n      filter: \"recent\",\n      selectedStaff: 0,\n      selectedService: 0,\n    });\n  };\n\n  onPressEnter = (event) => {\n    if (event.keyCode == 13) {\n      this.props.dispatch(\n        saveWESearchChanges(\n          0,\n          this.state.pageSize,\n          this.state.filter,\n          this.state.searchParam,\n          this.state.selectedStaff,\n          this.state.selectedService,\n          this.state.fromDate,\n          this.state.toDate,\n          this.state.dateRangeOption,\n          this.state.activeTabIndex\n        )\n      );\n    }\n  };\n\n  onFilterChange = (event) => {\n    const filter = event.target.value;\n    this.setState({\n      filter,\n    });\n    this.props.dispatch(\n      saveWESearchChanges(\n        0,\n        this.state.pageSize,\n        filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        this.state.fromDate,\n        this.state.toDate,\n        this.state.dateRangeOption,\n        this.state.activeTabIndex\n      )\n    );\n  };\n\n  onDateRangeChange = (event) => {\n    const dateRangeOption = parseInt(event.target.value);\n    this.setState({\n      dateRangeOption,\n    });\n    this.props.dispatch(\n      saveWESearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        this.state.fromDate,\n        this.state.toDate,\n        dateRangeOption,\n        this.state.activeTabIndex\n      )\n    );\n  };\n\n  onDetails = (workEntryId) => {\n    this.props.history.push(`/admin/view-timeSheet?id=${workEntryId}`);\n  };\n\n  getAllServices() {\n    getClientServicesList()\n      .then((res) => {\n        this.setState({\n          servicesList: res,\n        });\n      })\n      .catch((err) => {\n        console.log(\"get all services error \", err);\n      });\n  }\n\n  getAllStaff() {\n    getAllUsersList()\n      .then((res) => {\n        this.setState({\n          usersList: res,\n        });\n      })\n      .catch((err) => {\n        console.log(\"get all staff error \", err);\n      });\n  }\n\n  onStaffChange = (value) => {\n    this.setState({ selectedStaff: value });\n    this.props.dispatch(\n      saveWESearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        value,\n        this.state.selectedService,\n        this.state.fromDate,\n        this.state.toDate,\n        this.state.dateRangeOption,\n        this.state.activeTabIndex\n      )\n    );\n  };\n\n  onServiceChange = (value) => {\n    this.setState({ selectedService: value });\n    this.props.dispatch(\n      saveWESearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        value,\n        this.state.fromDate,\n        this.state.toDate,\n        this.state.dateRangeOption,\n        this.state.activeTabIndex\n      )\n    );\n  };\n\n  onFromDateChange = (date) => {\n    this.setState({\n      fromDate: date,\n    });\n    this.props.dispatch(\n      saveWESearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        date,\n        this.state.toDate,\n        this.state.dateRangeOption,\n        this.state.activeTabIndex\n      )\n    );\n  };\n\n  onToDateChange = (date) => {\n    this.setState({\n      toDate: date,\n    });\n    this.props.dispatch(\n      saveWESearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        this.state.fromDate,\n        date,\n        this.state.dateRangeOption,\n        this.state.activeTabIndex\n      )\n    );\n  };\n\n  onTabChange = (tab) => {\n    this.setState({ activeTabIndex: tab });\n    this.props.dispatch(\n      saveWESearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        this.state.fromDate,\n        this.state.toDate,\n        this.state.dateRangeOption,\n        tab\n      )\n    );\n  };\n\n  render() {\n    const columns = [\n      {\n        Header: () => <BasicHeader header={\"Work Entry Name\"} />,\n        accessor: \"name\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 170,\n      },\n      {\n        Header: () => <BasicHeader header={\"Staff Name\"} />,\n        accessor: \"staffName\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        },\n      },\n      {\n        Header: () => <BasicHeader header={\"Client Name\"} />,\n        accessor: \"clientName\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: () => <BasicHeader header={\"Start Time\"} />,\n        accessor: \"startTime\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 160,\n      },\n      {\n        Header: () => <BasicHeader header={\"End Time\"} />,\n        accessor: \"endTime\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 160,\n      },\n      {\n        Header: () => <BasicHeader header={\"Elapsed Hrs\"} />,\n        accessor: \"elapsedHours\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 100,\n      },\n      {\n        Header: () => <BasicHeader header={\"Used Units\"} />,\n        accessor: \"usedUnits\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 100,\n      },\n      {\n        Header: () => <BasicHeader header={\"Gross ($)\"} />,\n        accessor: \"gross\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 100,\n      },\n      {\n        Header: () => <BasicHeader header={\"Net ($)\"} />,\n        accessor: \"net\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 100,\n      },\n      {\n        Header: () => <BasicHeader header={\"Service\"} />,\n        accessor: \"service\",\n        width: 90,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <Actions\n            actionId={row.original.id}\n            onEdit={this.onEdit.bind(row.original.id)}\n          />\n        ),\n        width: 30,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <View\n            actionId={row.original.id}\n            onClick={this.onDetails.bind(row.original.id)}\n          />\n        ),\n        width: 30,\n      },\n    ];\n    if (this.state.activeTabIndex === 1) {\n      columns.splice(9, 0, {\n        Header: () => <BasicHeader header={\"\"} />,\n        accessor: \"adminVerification\",\n        Cell: (row) => <SelectCell value={row.value} index={row.index} />,\n        width: 30,\n      });\n    }\n\n    return (\n      <div className=\"table-layout\">\n        <div className=\"row col-12 header-container\">\n          <div className=\"row col-lg-10 col-sm-12\">\n            <span className=\"col-lg-3 col-md-4 col-sm-12 title\">\n              Work Entries\n            </span>\n            <span className=\"col-lg-1 col-md-2 col-sm-2 sub-title\">Search</span>\n            <div className=\"col-lg-4 col-md-6 col-sm-10 input-box\">\n              <input\n                type=\"text\"\n                className=\"box text-box search-icon\"\n                value={this.state.searchParam}\n                onChange={this.onSearch}\n                onKeyDown={this.onPressEnter}\n                placeholder={\"Work Entry Name\"}\n              />\n              {/*<FeatherIcon icon=\"search\"/>*/}\n            </div>\n          </div>\n          <div className=\"col-lg-2 col-sm-12\">\n            <button\n              className=\"button submit\"\n              onClick={this.onCreateNewWorkEntry}\n            >\n              <span className=\"text\">CREATE NEW</span>\n            </button>\n          </div>\n        </div>\n\n        <div\n          className=\"row list-container\"\n          style={{\n            backgroundColor: \"#FFF\",\n            border: \"1px solid #E0E1E2\",\n            margin: 20,\n            padding: 20,\n          }}\n        >\n          <div\n            className=\"col-lg-2 input-box text-left\"\n            style={{ marginBottom: 0 }}\n          >\n            <div className=\"label\">Range Selection</div>\n            <div>\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onDateRangeChange}\n                value={this.state.dateRangeOption}\n              >\n                <option value={DATEFILTEROPTIONS.CREATED}>Created Date</option>\n                <option value={DATEFILTEROPTIONS.WESTART}>Start Date</option>\n                <option value={DATEFILTEROPTIONS.WEEND}>End Date</option>\n              </select>\n            </div>\n          </div>\n          <div\n            className=\"col-lg-2 input-box text-left\"\n            style={{ marginBottom: 0 }}\n          >\n            <div className=\"label\">From Date</div>\n            <DatePickerComponent\n              selected={this.state.fromDate}\n              onChange={this.onFromDateChange}\n              dateFormat={\"MM/DD/YYYY\"}\n              className={\"box text-box calendar-icon\"}\n              maxDate={new Date()}\n            />\n          </div>\n          <div\n            className=\"col-lg-2 input-box text-left\"\n            style={{ marginBottom: 0 }}\n          >\n            <div className=\"label\">To Date</div>\n            <DatePickerComponent\n              selected={this.state.toDate}\n              onChange={this.onToDateChange}\n              dateFormat={\"MM/DD/YYYY\"}\n              className={\"box text-box calendar-icon\"}\n              minDate={this.state.startDate}\n              maxDate={new Date()}\n            />\n          </div>\n          <div\n            className=\"col-lg-2 input-box text-left\"\n            style={{ marginBottom: 0 }}\n          >\n            <div className=\"label\">Staff Member</div>\n            <SearchableDropdown\n              options={this.state.usersList}\n              value={this.state.selectedStaff}\n              defaultValue={0}\n              keyIdentifier=\"userId\"\n              valueIdentifier=\"name\"\n              placeholder=\"Search Staff Member\"\n              onChange={this.onStaffChange}\n            />\n          </div>\n          <div\n            className=\"col-lg-2 input-box text-left\"\n            style={{ marginBottom: 0 }}\n          >\n            <div className=\"label\">Client Service</div>\n            <SearchableDropdown\n              options={this.state.servicesList}\n              value={this.state.selectedService}\n              defaultValue={0}\n              keyIdentifier=\"serviceRequestId\"\n              valueIdentifier=\"serviceName\"\n              placeholder=\"Search Client Service\"\n              onChange={this.onServiceChange}\n            />\n          </div>\n          <div\n            className=\"col-lg-2 input-box text-left\"\n            style={{ marginBottom: 0 }}\n          >\n            <div className=\"label\"> &nbsp;</div>\n            <select\n              className=\"select-box list-dropdown\"\n              onChange={this.onFilterChange}\n              value={this.state.filter}\n            >\n              <option value=\"all\">All Work Entries</option>\n              <option value=\"recent\">Recently Added</option>\n            </select>\n          </div>\n        </div>\n\n        <div className=\"body-container\">\n          <div className=\"col-lg-12 col-sm-12 tabbed-row\">\n            <div\n              style={{ display: \"inline-block\" }}\n              className={\"col-lg-2 col-sm-3 text-center\"}\n              onClick={() => {\n                this.onTabChange(1);\n              }}\n            >\n              <div\n                className={\n                  this.state.activeTabIndex === 1\n                    ? \"tab_text_style completed-active-tab\"\n                    : \"tab_text_style inactive_tabs\"\n                }\n              >\n                <img src=\"./images/completed-circle.svg\" alt=\"\" />\n                <span>Completed</span>\n              </div>\n            </div>\n            <div\n              style={{ display: \"inline-block\", marginLeft: \"0px\" }}\n              className={\"col-lg-2 col-sm-3 text-center\"}\n              onClick={() => {\n                this.onTabChange(2);\n              }}\n            >\n              <div\n                className={\n                  this.state.activeTabIndex === 2\n                    ? \"tab_text_style inprogress-active-tab\"\n                    : \"tab_text_style inactive_tabs\"\n                }\n              >\n                <img src=\"./images/inprogress.svg\" alt=\"\" />\n                <span style={{}}>In Progress</span>\n              </div>\n            </div>\n            <div\n              style={{ display: \"inline-block\", marginLeft: \"0px\" }}\n              className={\"col-lg-2 col-sm-3 text-center\"}\n              onClick={() => {\n                this.onTabChange(3);\n              }}\n            >\n              <div\n                className={\n                  this.state.activeTabIndex === 3\n                    ? \"tab_text_style abandoned-active-tab\"\n                    : \"tab_text_style inactive_tabs\"\n                }\n              >\n                <img src=\"./images/abandoned.svg\" alt=\"\" />\n                <span>Abandoned</span>\n              </div>\n            </div>\n          </div>\n          <div className=\"data-grid-container\">\n            {!isMobileDevice() && (\n              <div className=\"row\">\n                <div className=\"col-12\">\n                  <DataGrid\n                    data={this.state.workEntries}\n                    columns={columns}\n                    onRowClick={(rowInfo) => {\n                      // this.viewOrganization(get(rowInfo.original, 'id', ''))\n                    }}\n                    onPageSizeChange={this.onPageSizeChange}\n                    onPageNumberChange={this.onPageChange}\n                    total={this.state.totalWorkEntries}\n                    paginationLabel={\"Work Entries per page\"}\n                    showPagination={true}\n                    pageNumber={this.state.pageNumber}\n                    pageSize={this.state.pageSize}\n                  />\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && (\n              <div className=\"row\" style={{ margin: 10, marginTop: 20 }}>\n                {map(this.state.workEntries, (we) => {\n                  return (\n                    <WECard\n                      we={we}\n                      onDetails={(id) => {\n                        this.onDetails(id);\n                      }}\n                    />\n                  );\n                })}\n                <div className=\"row pagination pagination-align\">\n                  <div className=\"col-12\">\n                    <Pagination\n                      onPageSizeChange={this.onPageSizeChange}\n                      label={\"Work Entries per page\"}\n                      onPageNumberChange={this.onPageChange}\n                      total={this.state.totalWorkEntries}\n                      pageNumber={this.state.pageNumber}\n                      pageSize={this.state.pageSize}\n                    />\n                  </div>\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && this.state.workEntries.length === 0 && (\n              <div className=\"row\">\n                <div className=\"col-12 text-center\">\n                  <span>No Work Entries</span>\n                </div>\n              </div>\n            )}\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  workEntries: state.workEntry.getAllSuccess,\n  workEntryError: state.workEntry.getAllFail,\n  searchConfig: state.config.weSearch,\n});\n\nexport default withRouter(connect(mapStateToProps)(WorkEntries));\n","import React from \"react\";\nimport {\n  ADMIN_VERIFICATION,\n  DATEFILTEROPTIONS,\n} from \"../../../constants/appConstants\";\nimport DatePickerComponent from \"../../shared/date-picker/datePickerComponent\";\nimport \"../billingReport.scss\";\nimport SearchableDropdown from \"../../shared/searchable-dropdown\";\n\nexport default class WorkEntryFilters extends React.Component {\n  render() {\n    return (\n      <div className=\"row\" style={{ marginBottom: 0 }}>\n        <div\n          className=\"col-md-2 col-12 input-box text-left\"\n          style={{ marginBottom: 0 }}\n        >\n          <div className=\"label\">Range Selection</div>\n          <div>\n            <select\n              className=\"select-box box\"\n              onChange={this.props.onDateRangeChange}\n              value={this.props.dateRangeOption}\n            >\n              <option value={DATEFILTEROPTIONS.CREATED}>Created Date</option>\n              <option value={DATEFILTEROPTIONS.WESTART}>Start Date</option>\n              <option value={DATEFILTEROPTIONS.WEEND}>End Date</option>\n            </select>\n          </div>\n        </div>\n\n        <div\n          className=\"col-md-2 col-12 input-box text-left\"\n          style={{ marginBottom: 0 }}\n        >\n          <div className=\"label\">From Date</div>\n          <DatePickerComponent\n            selected={this.props.fromDate}\n            onChange={this.props.onFromDateChange}\n            dateFormat={\"MM/DD/YYYY\"}\n            className={\"box text-box calendar-icon\"}\n            maxDate={new Date()}\n            style={{ marginBottom: 0 }}\n          />\n        </div>\n        <div className=\"col-md-2 col-12 input-box\" style={{ marginBottom: 0 }}>\n          <div className=\"label\">To Date</div>\n          <DatePickerComponent\n            selected={this.props.toDate}\n            onChange={this.props.onToDateChange}\n            dateFormat={\"MM/DD/YYYY\"}\n            className={\"box text-box calendar-icon\"}\n            minDate={this.props.startDate}\n            maxDate={new Date()}\n            style={{ marginBottom: 0 }}\n          />\n        </div>\n        <div className=\"col-md-2 col-12 input-box\">\n          <div className=\"label\">Admin Verification</div>\n          <div>\n            <select\n              className=\"select-box box\"\n              onChange={this.props.onReviewStatusChange}\n              // value={this.state.staffStatus}\n            >\n              <option value={ADMIN_VERIFICATION.ALL}>All</option>\n              <option value={ADMIN_VERIFICATION.REVIEWED}>Reviewed</option>\n              <option value={ADMIN_VERIFICATION.NOT_REVIEWED}>\n                Not Reviewed\n              </option>\n            </select>\n          </div>\n        </div>\n        <div className=\"col-md-2 col-12 input-box\" style={{ marginBottom: 20 }}>\n          <div className=\"label\">Staff Person</div>\n          <div className={\"searchable-dropdown\"}>\n            <SearchableDropdown\n              options={this.props.staff}\n              value={this.props.selectedStaff}\n              defaultValue={-1}\n              keyIdentifier=\"userId\"\n              valueIdentifier=\"name\"\n              placeholder=\"Search Staff Person\"\n              onChange={this.props.onStaffChange}\n            />\n          </div>\n        </div>\n        <div className=\"col-md-2 col-12 input-box\" style={{ marginBottom: 10 }}>\n          <div className=\"label\">Client</div>\n          <div className={\"searchable-dropdown\"}>\n            <SearchableDropdown\n              options={this.props.clients}\n              value={this.props.selectedClient}\n              defaultValue={-1}\n              keyIdentifier=\"clientId\"\n              valueIdentifier=\"name\"\n              placeholder=\"Search Client\"\n              onChange={this.props.onClientChange}\n            />\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n","import React from \"react\";\nimport {STAFF_STATUS} from \"../../../constants/appConstants\";\nimport * as _ from \"lodash\";\nimport moment from \"moment\";\n\nexport default class StaffFilter extends React.Component {\n\n    render() {\n        let options =[];\n        let year = new Date().getUTCFullYear()\n        for (let i = 0; i < 10; i++) {\n            options.push(year);\n            year--;\n        }\n        // const value = new Date(this.props.startDate).getUTCFullYear();\n        return (\n\n            <div className='row'>\n                <div className=\"col-md-2 col-12 input-box\" style={{marginBottom: 10}}>\n                    <div className=\"label\">Status</div>\n                    <div>\n                        <select\n                            className=\"select-box\"\n                            onChange={this.props.onStatusChange}\n                            // value={this.state.staffStatus}\n                        >\n                            <option value={STAFF_STATUS.ALL}>All</option>\n                            <option value={STAFF_STATUS.ACTIVE}>Active</option>\n                            <option value={STAFF_STATUS.INACTIVE}>Inactive</option>\n                        </select>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n","import React from \"react\";\nimport moment from \"moment\";\nimport * as _ from \"lodash\";\nimport {STAFF_STATUS} from \"../../../constants/appConstants\";\n\nexport default class ContactsFilter extends React.Component {\n    render() {\n        let options =[];\n        let year = new Date().getUTCFullYear()\n        for (let i = 0; i < 10; i++) {\n            options.push(year);\n            year--;\n        }\n        // const value = new Date(this.props.startDate).getUTCFullYear();\n        return (\n\n            <div className='row'>\n                <div className=\"col-md-2 col-12 input-box\" style={{marginBottom: 10}}>\n                    <div className=\"label\">Status</div>\n                    <div>\n                        <select\n                            className=\"select-box\"\n                            onChange={this.props.onStatusChange}\n                            // value={this.state.staffStatus}\n                        >\n                            <option value={STAFF_STATUS.ALL}>All</option>\n                            <option value={STAFF_STATUS.ACTIVE}>Active</option>\n                            <option value={STAFF_STATUS.INACTIVE}>Inactive</option>\n                        </select>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n","import React from \"react\";\nimport moment from \"moment\";\nimport * as _ from \"lodash\";\nimport { STAFF_STATUS } from \"../../../constants/appConstants\";\n\nexport default class SCFilter extends React.Component {\n  render() {\n    return (\n      <div className=\"row\">\n        <div className=\"col-md-2 col-12 input-box\" style={{ marginBottom: 10 }}>\n          <div className=\"label\">Status</div>\n          <div>\n            <select\n              className=\"select-box\"\n              onChange={this.props.onStatusChange}\n              // value={this.state.staffStatus}\n            >\n              <option value={STAFF_STATUS.ALL}>All</option>\n              <option value={STAFF_STATUS.ACTIVE}>Active</option>\n              <option value={STAFF_STATUS.INACTIVE}>Inactive</option>\n            </select>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n","import * as React from 'react';\n\nclass ReportCell extends React.Component {\n    render() {\n        return (\n            <div className='cell basic-cell' style={{fontSize: 12}}>\n                <div className='overflow'>{this.props.value}</div>\n            </div>\n        );\n    }\n}\n\nexport default ReportCell;\n","import React from 'react';\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport BasicHeader from \"../../shared/data-grid/custom-headers/basic-header\";\nimport {get, map, startCase} from 'lodash';\nimport ReportCell from '../../shared/data-grid/custom-cells/report-cell';\n\nclass AllContactsReportView extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            reportData: []\n        }\n    }\n\n    componentWillReceiveProps(nextProps) {\n        this.mapRecords(nextProps.reportData)\n    }\n\n    componentDidMount() {\n        this.mapRecords(this.props.reportData)\n    }\n\n    mapRecords(reports) {\n        const reportData = [];\n        map(reports, (data => {\n            const report = {\n                name: (`${get(data, \"lastName\")} ${get(data, \"firstName\")} ${get(data, \"middleName\")}`),\n                phone: data.phone,\n                email: data.familyContactEmail,\n                city: (data.billingCity),\n            }\n            reportData.push(report)\n        }));\n        this.setState({\n            reportData: reportData\n        })\n    }\n\n\n    render() {\n        const columns = [\n            {\n                Header: () => <BasicHeader header={\"Name\"} fontSize={12}/>,\n                accessor: \"name\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <BasicHeader header={\"Phone Number\"} fontSize={12}/>,\n                accessor: \"phone\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <BasicHeader header={\"Email\"} fontSize={12}/>,\n                accessor: \"email\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => <BasicHeader header={\"City\"} fontSize={12}/>,\n                accessor: \"city\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            }\n        ];\n        return (\n            <DataGrid\n                data={this.state.reportData}\n                columns={columns}\n                onRowClick={(rowInfo) => {\n                    // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                }}\n                onPageSizeChange={this.props.onPageSizeChange}\n                onPageNumberChange={this.props.onPageNumberChange}\n                total={this.props.total}\n                paginationLabel={\"Organizations per page\"}\n                showPagination={true}\n                pageSize={this.props.pageSize}\n                pageNumber={this.props.pageNumber}\n            />\n        );\n    }\n}\n\nexport default AllContactsReportView;\n","import React from 'react';\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport BasicHeader from \"../../shared/data-grid/custom-headers/basic-header\";\nimport {map} from 'lodash';\nimport moment from 'moment';\nimport {DATE_TIME_FORMAT} from '../../../constants/appConstants';\nimport ReportCell from '../../shared/data-grid/custom-cells/report-cell';\n\nclass NoteReportView extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            reportData: []\n        }\n    }\n\n    componentWillReceiveProps(nextProps) {\n        this.mapRecords(nextProps.reportData)\n    }\n\n    componentDidMount() {\n        this.mapRecords(this.props.reportData)\n    }\n\n    mapRecords(reports) {\n        const reportData = [];\n        map(reports, (data => {\n            const report = {\n                accName: data.clientName,\n                staffName: data.staffName,\n                wName: data.entryName,\n                sName: data.serviceName,\n                sTime: moment(data.serviceStartTime).format(DATE_TIME_FORMAT),\n                eTime: moment(data.serviceEndTime).format(DATE_TIME_FORMAT),\n                state: data.billingState,\n                modDate: moment(data.updatedDate).format(DATE_TIME_FORMAT),\n                notes: data.notes\n            }\n            reportData.push(report)\n        }));\n        this.setState({\n            reportData: reportData\n        })\n    }\n\n\n    render() {\n        const columns = [\n            {\n                Header: () => <BasicHeader header={\"Account Name\"} fontSize={12}/>,\n                accessor: \"accName\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <BasicHeader header={\"Staff Name\"} fontSize={12}/>,\n                accessor: \"staffName\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <BasicHeader header={\"Work Entry Name\"} fontSize={12}/>,\n                accessor: \"wName\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <BasicHeader header={\"Service Name\"} fontSize={12}/>,\n                accessor: \"sName\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => <BasicHeader header={\"Start Time\"} fontSize={12}/>,\n                accessor: \"sTime\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => <BasicHeader header={\"End Time\"} fontSize={12}/>,\n                accessor: \"eTime\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => <BasicHeader header={\"Billing State\"} fontSize={12}/>,\n                accessor: \"state\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => <BasicHeader header={\"Last Modified Date\"} fontSize={12}/>,\n                accessor: \"modDate\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => <BasicHeader header={\"Notes\"} fontSize={12}/>,\n                accessor: \"notes\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n                width: 300,\n            }\n        ];\n        return (\n            <DataGrid\n                data={this.state.reportData}\n                columns={columns}\n                onRowClick={(rowInfo) => {\n                    // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                }}\n                onPageSizeChange={this.props.onPageSizeChange}\n                onPageNumberChange={this.props.onPageNumberChange}\n                total={this.props.total}\n                paginationLabel={\"Organizations per page\"}\n                showPagination={true}\n                pageSize={this.props.pageSize}\n                pageNumber={this.props.pageNumber}\n            />\n        );\n    }\n}\n\nexport default NoteReportView;\n","import * as React from 'react';\n\nclass DataTableReportHeader extends React.Component {\n\n    render() {\n        return (\n            <div className='custom-report-header overflow'>\n                <span>{this.props.header}</span>\n            </div>\n        );\n    }\n\n}\n\nexport default DataTableReportHeader;\n","import React from \"react\";\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport {map, uniqBy} from \"lodash\";\nimport moment from \"moment\";\nimport {DATE_TIME_FORMAT} from \"../../../constants/appConstants\";\nimport ReportCell from \"../../shared/data-grid/custom-cells/report-cell\";\nimport Pagination from \"../../shared/data-grid/pagination/pagination\";\nimport DataTableReportHeader from \"../../shared/data-grid/custom-headers/report-header\";\n\nclass PromiseBillingReportView extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            reportData: [],\n            reportStats: {},\n        };\n    }\n\n    componentWillReceiveProps(nextProps) {\n        this.setState({\n            reportStats: nextProps.reportData.stats,\n        });\n        this.mapRecords(nextProps.reportData.data);\n    }\n\n    componentDidMount() {\n        this.setState({\n            reportStats: this.props.reportData.stats,\n        });\n        this.mapRecords(this.props.reportData.data);\n    }\n\n    mapRecords = (records) => {\n        const clientIds = this.getUniqueIds(records, \"clientId\")\n        let report = []\n        map(clientIds, (clientId) => {\n            let arr = []\n            map(records, (r) => {\n                if (r.clientId === clientId) {\n                    arr.push(r)\n                }\n            })\n            report.push(...this.groupByService(arr))\n        })\n        this.setState({\n            reportData: report,\n        });\n    }\n\n    groupByService = (records) => {\n        const serviceIds = this.getUniqueIds(records, \"serviceRequestId\")\n        let report = []\n        map(serviceIds, (serviceId) => {\n            const arr = []\n            map(records, (r) => {\n                if (r.serviceRequestId === serviceId) {\n                    arr.push({\n                        wName: r.entryName,\n                        reviewed: r.adminVerification ? \"Yes\" : \"No\",\n                        mci: r.mci,\n                        createdDate: moment(r.createdDate).format(DATE_TIME_FORMAT),\n                        sTime: moment(r.serviceStartTime).format(DATE_TIME_FORMAT),\n                        eTime: moment(r.serviceEndTime).format(DATE_TIME_FORMAT),\n                        eHours: parseFloat(r.elapsedTime).toFixed(2),\n                        units: r.unitsUsed,\n                        gValue: parseFloat(r.grossAmount).toFixed(2),\n                        nValue: parseFloat(r.netAmount).toFixed(2),\n                        clientName: r.clientName,\n                        staffName: r.staffName,\n                        serviceName: r.serviceName,\n                    })\n                }\n            })\n            report.push(arr)\n        })\n        return report\n    }\n\n    getUniqueIds = (records, key) => {\n        const ids = [];\n        map(records, (r) => {\n            ids.push(r[key]);\n        })\n        return uniqBy(ids, Math.floor);\n    }\n\n    render() {\n        const columns = [\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Work Entry Name\"} fontSize={12}/>\n                ),\n                accessor: \"wName\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Created Date\"} fontSize={12}/>\n                ),\n                accessor: \"createdDate\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Reviewed\"} fontSize={12}/>\n                ),\n                accessor: \"reviewed\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => <DataTableReportHeader header={\"MCI\"} fontSize={12}/>,\n                accessor: \"mci\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Start Time\"} fontSize={12}/>\n                ),\n                accessor: \"sTime\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"End Time\"} fontSize={12}/>\n                ),\n                accessor: \"eTime\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Elapsed Hours\"} fontSize={12}/>\n                ),\n                accessor: \"eHours\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Units Used\"} fontSize={12}/>\n                ),\n                accessor: \"units\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Gross Value ($)\"} fontSize={12}/>\n                ),\n                accessor: \"gValue\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Net Value ($)\"} fontSize={12}/>\n                ),\n                accessor: \"nValue\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Staff Name\"} fontSize={12}/>\n                ),\n                accessor: \"staffName\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n        ];\n        return (\n            <div>\n                <div className=\" report-stats col-sm-12 col-md-12 col-lg-12 row\">\n                    <div className=\"col-sm-3 col-md-3 col-lg-3 label\">\n                        <span>{`Total Records : ${this.state.reportStats.recordCount}`}</span>\n                    </div>\n                    <div className=\"col-sm-3 col-md-3 col-lg-3 label\">\n            <span>\n              {`Total Units Used : ${this.state.reportStats.totalUnits}`}{\" \"}\n            </span>\n                    </div>\n                    <div className=\"col-sm-3 col-md-3 col-lg-3 label\">\n            <span>\n              {`Total Gross ($) : ${parseFloat(\n                  this.state.reportStats.totalGross\n              ).toFixed(2)}`}{\" \"}\n            </span>\n                    </div>\n                    <div className=\"col-sm-3 col-md-3 col-lg-3 label\">\n            <span>\n              {`Total Net ($) : ${parseFloat(\n                  this.state.reportStats.totalNet\n              ).toFixed(2)}`}{\" \"}\n            </span>\n                    </div>\n                </div>\n                {this.state.reportData.length > 0 ? (\n                    map(this.state.reportData, (data, index) => {\n                        return (\n                            <div key={index}>\n                                {data.length > 0 && (\n                                    <div\n                                        className={\n                                            \"report-details-header col-sm-12 col-md-12 col-lg-12 row\"\n                                        }\n                                    >\n                                        <div className=\"col-sm-6 col-md-4 col-lg-5 title-value-container\">\n                                            <span className={\"title-text\"}>{`Client Name : `}</span>\n                                            <span\n                                                className={\"value-text\"}\n                                            >{`${data[0].clientName}`}</span>\n                                        </div>\n                                        <div className=\"col-sm-6 col-md-4 col-lg-5 title-value-container\">\n                                            <span className={\"title-text\"}>{`Service : `}</span>\n                                            <span\n                                                className={\"value-text\"}\n                                            >{`${data[0].serviceName}`}</span>\n                                        </div>\n                                    </div>\n                                )}\n\n                                <DataGrid\n                                    data={data}\n                                    columns={columns}\n                                    onRowClick={(rowInfo) => {\n                                        // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                                    }}\n                                    onPageSizeChange={this.props.onPageSizeChange}\n                                    onPageNumberChange={this.props.onPageNumberChange}\n                                    total={this.props.total}\n                                    paginationLabel={\"Organizations per page\"}\n                                    showPagination={false}\n                                />\n                            </div>\n                        );\n                    })\n                ) : (\n                    <DataGrid\n                        data={[]}\n                        columns={columns}\n                        onRowClick={(rowInfo) => {\n                            // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                        }}\n                        onPageSizeChange={this.props.onPageSizeChange}\n                        onPageNumberChange={this.props.onPageNumberChange}\n                        total={this.props.total}\n                        paginationLabel={\"Organizations per page\"}\n                        showPagination={false}\n                    />\n                )}\n                <div className=\"row pagination pagination-align\">\n                    <div className=\"col-12\">\n                        <Pagination\n                            label={\"Organizations per page\"}\n                            onPageNumberChange={this.props.onPageNumberChange}\n                            onPageSizeChange={this.props.onPageSizeChange}\n                            total={this.props.total}\n                            pageSize={this.props.pageSize}\n                            pageNumber={this.props.pageNumber}\n                        />\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default PromiseBillingReportView;\n","import React from 'react';\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport BasicHeader from \"../../shared/data-grid/custom-headers/basic-header\";\nimport {get, map, startCase} from 'lodash';\nimport ReportCell from '../../shared/data-grid/custom-cells/report-cell';\n\nclass SCSummaryReportView extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            reportData: []\n        }\n    }\n\n    componentWillReceiveProps(nextProps) {\n        this.mapRecords(nextProps.reportData)\n    }\n\n    componentDidMount() {\n        this.mapRecords(this.props.reportData)\n    }\n\n    mapRecords(reports) {\n        const reportData = [];\n        map(reports, (data => {\n            const report = {\n                // name: startCase(`${get(data, \"firstName\")} ${get(data, \"middleName\")} ${get(data, \"lastName\")}`),\n                name: startCase(`${get(data, \"lastName\")} ${get(data, \"firstName\")}`),\n                company: startCase(data.company),\n                mobile: data.mobile,\n                email: data.email,\n                city: startCase(data.billingCity),\n            }\n            reportData.push(report)\n        }));\n        this.setState({\n            reportData: reportData\n        })\n    }\n\n\n    render() {\n        const columns = [\n            {\n                Header: () => <BasicHeader header={\"Name\"} fontSize={12}/>,\n                accessor: \"name\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <BasicHeader header={\"Company\"} fontSize={12}/>,\n                accessor: \"company\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <BasicHeader header={\"Mobile Number\"} fontSize={12}/>,\n                accessor: \"mobile\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <BasicHeader header={\"Email\"} fontSize={12}/>,\n                accessor: \"email\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => <BasicHeader header={\"City\"} fontSize={12}/>,\n                accessor: \"city\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            }\n        ];\n        return (\n            <DataGrid\n                data={this.state.reportData}\n                columns={columns}\n                onRowClick={(rowInfo) => {\n                    // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                }}\n                onPageSizeChange={this.props.onPageSizeChange}\n                onPageNumberChange={this.props.onPageNumberChange}\n                total={this.props.total}\n                paginationLabel={\"Organizations per page\"}\n                showPagination={true}\n                pageSize={this.props.pageSize}\n                pageNumber={this.props.pageNumber}\n            />\n        );\n    }\n}\n\nexport default SCSummaryReportView;\n","import React from \"react\";\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport {map, uniqBy} from \"lodash\";\nimport moment from \"moment\";\nimport {DATE_TIME_FORMAT} from \"../../../constants/appConstants\";\nimport ReportCell from \"../../shared/data-grid/custom-cells/report-cell\";\nimport Pagination from \"../../shared/data-grid/pagination/pagination\";\nimport DataTableReportHeader from \"../../shared/data-grid/custom-headers/report-header\";\n\nclass StaffBillingReportView extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            reportData: [],\n            reportStats: {},\n        };\n    }\n\n    componentWillReceiveProps(nextProps) {\n        this.setState({\n            reportStats: nextProps.reportData.stats,\n        });\n        this.mapRecords(nextProps.reportData.data);\n    }\n\n    componentDidMount() {\n        this.setState({\n            reportStats: this.props.reportData.stats,\n        });\n        this.mapRecords(this.props.reportData.data);\n    }\n\n    mapRecords = (records) => {\n        const staffIds = this.getUniqueIds(records, \"staffId\")\n        let report = []\n        map(staffIds, (staffId) => {\n            let arr = []\n            map(records, (r) => {\n                if (r.staffId === staffId) {\n                    arr.push(r)\n                }\n            })\n            report.push(...this.groupByService(arr))\n        })\n        this.setState({\n            reportData: report,\n        });\n    }\n\n    groupByService = (records) => {\n        const serviceIds = this.getUniqueIds(records, \"serviceRequestId\")\n        let report = []\n        map(serviceIds, (serviceId) => {\n            const arr = []\n            map(records, (r) => {\n                if (r.serviceRequestId === serviceId) {\n                    arr.push({\n                        wName: r.entryName,\n                        createdDate: moment(r.createdDate).format(DATE_TIME_FORMAT),\n                        sTime: moment(r.serviceStartTime).format(DATE_TIME_FORMAT),\n                        eTime: moment(r.serviceEndTime).format(DATE_TIME_FORMAT),\n                        eHours: parseFloat(r.elapsedTime).toFixed(2),\n                        units: r.unitsUsed,\n                        gValue: parseFloat(r.grossAmount).toFixed(2),\n                        nValue: parseFloat(r.netAmount).toFixed(2),\n                        staffName: r.staffName,\n                        serviceName: r.serviceName,\n                    })\n                }\n            })\n            report.push(arr)\n        })\n        return report\n    }\n\n    getUniqueIds = (records, key) => {\n        const ids = [];\n        map(records, (r) => {\n            ids.push(r[key]);\n        })\n        return uniqBy(ids, Math.floor);\n    }\n\n    render() {\n        const columns = [\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Work Entry Name\"} fontSize={12}/>\n                ),\n                accessor: \"wName\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Created Date\"} fontSize={12}/>\n                ),\n                accessor: \"createdDate\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Start Time\"} fontSize={12}/>\n                ),\n                accessor: \"sTime\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"End Time\"} fontSize={12}/>\n                ),\n                accessor: \"eTime\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Elapsed Hours\"} fontSize={12}/>\n                ),\n                accessor: \"eHours\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Units Used\"} fontSize={12}/>\n                ),\n                accessor: \"units\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Gross Value ($)\"} fontSize={12}/>\n                ),\n                accessor: \"gValue\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n            {\n                Header: () => (\n                    <DataTableReportHeader header={\"Net Value ($)\"} fontSize={12}/>\n                ),\n                accessor: \"nValue\",\n                Cell: (row) => <ReportCell value={row.value} index={row.index}/>,\n            },\n        ];\n        return (\n            <div>\n                <div className=\" report-stats col-sm-12 col-md-12 col-lg-12 row\">\n                    <div className=\"col-sm-3 col-md-3 col-lg-3 label\">\n                        <span>{`Total Records : ${this.state.reportStats.recordCount}`}</span>\n                    </div>\n                    <div className=\"col-sm-3 col-md-3 col-lg-3 label\">\n            <span>\n              {`Total Units Used : ${this.state.reportStats.totalUnits}`}{\" \"}\n            </span>\n                    </div>\n                    <div className=\"col-sm-3 col-md-3 col-lg-3 label\">\n            <span>\n              {`Total Gross ($) : ${parseFloat(\n                  this.state.reportStats.totalGross\n              ).toFixed(2)}`}{\" \"}\n            </span>\n                    </div>\n                    <div className=\"col-sm-3 col-md-3 col-lg-3 label\">\n            <span>\n              {`Total Net ($) : ${parseFloat(\n                  this.state.reportStats.totalNet\n              ).toFixed(2)}`}{\" \"}\n            </span>\n                    </div>\n                </div>\n                {this.state.reportData.length > 0 ? (\n                    map(this.state.reportData, (data, index) => {\n                        return (\n                            <div key={index}>\n                                {data.length > 0 && (\n                                    <div\n                                        className={\n                                            \"report-details-header col-sm-12 col-md-12 col-lg-12 row\"\n                                        }\n                                    >\n                                        <div className=\"col-sm-6 col-md-4 col-lg-6 title-value-container\">\n                                            <span className={\"title-text\"}>{`Staff Name : `}</span>\n                                            <span\n                                                className={\"value-text\"}\n                                            >{`${data[0].staffName}`}</span>\n                                        </div>\n                                        <div className=\"col-sm-6 col-md-4 col-lg-6 title-value-container\">\n                                            <span className={\"title-text\"}>{`Service : `}</span>\n                                            <span\n                                                className={\"value-text\"}\n                                            >{`${data[0].serviceName}`}</span>\n                                        </div>\n                                    </div>\n                                )}\n                                <DataGrid\n                                    data={data}\n                                    columns={columns}\n                                    onRowClick={(rowInfo) => {\n                                        // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                                    }}\n                                    onPageSizeChange={this.props.onPageSizeChange}\n                                    onPageNumberChange={this.props.onPageNumberChange}\n                                    total={this.props.total}\n                                    paginationLabel={\"\"}\n                                    showPagination={false}\n                                />\n                            </div>\n                        );\n                    })\n                ) : (\n                    <DataGrid\n                        data={[]}\n                        columns={columns}\n                        onRowClick={(rowInfo) => {\n                            // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                        }}\n                        onPageSizeChange={this.props.onPageSizeChange}\n                        onPageNumberChange={this.props.onPageNumberChange}\n                        total={this.props.total}\n                        paginationLabel={\"Organizations per page\"}\n                        showPagination={false}\n                    />\n                )}\n                <div className=\"row pagination pagination-align\">\n                    <div className=\"col-12\">\n                        <Pagination\n                            label={\"Organizations per page\"}\n                            onPageNumberChange={this.props.onPageNumberChange}\n                            onPageSizeChange={this.props.onPageSizeChange}\n                            total={this.props.total}\n                            pageSize={this.props.pageSize}\n                            pageNumber={this.props.pageNumber}\n                        />\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default StaffBillingReportView;\n","import React from 'react';\nimport DataGrid from '../../shared/data-grid/data-grid';\nimport BasicHeader from '../../shared/data-grid/custom-headers/basic-header';\nimport { get, map, startCase } from 'lodash';\nimport ReportCell from '../../shared/data-grid/custom-cells/report-cell';\n\nclass StaffSummaryReportView extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      reportData: []\n    };\n  }\n\n  componentWillReceiveProps(nextProps) {\n    this.mapRecords(nextProps.reportData);\n  }\n\n  componentDidMount() {\n    this.mapRecords(this.props.reportData);\n  }\n\n  mapRecords(reports) {\n    const reportData = [];\n    map(reports, (data) => {\n      const report = {\n        name: startCase(\n          `${get(data, 'lastName')} ${get(data, 'firstName')} ${get(data, 'middleName')}`\n        ),\n        mobile: data.mobile,\n        email: data.email,\n        city: startCase(data.billingCity),\n        address:\n          data.billingStreet && data.billingState\n            ? `${data.billingStreet}, ${data.billingState}`\n            : '-',\n        status: data.status === 4 ? 'Active' : 'Inactive'\n      };\n      reportData.push(report);\n    });\n    this.setState({\n      reportData: reportData\n    });\n  }\n\n  render() {\n    const columns = [\n      {\n        Header: () => <BasicHeader header={'Name'} fontSize={12} />,\n        accessor: 'name',\n        Cell: (row) => {\n          return <ReportCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={'Mobile Number'} fontSize={12} />,\n        accessor: 'mobile',\n        Cell: (row) => {\n          return <ReportCell value={row.value} index={row.index} />;\n        },\n        width: 120\n      },\n      {\n        Header: () => <BasicHeader header={'Email'} fontSize={12} />,\n        accessor: 'email',\n        Cell: (row) => <ReportCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={'Address'} fontSize={12} />,\n        accessor: 'address',\n        Cell: (row) => <ReportCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={'City'} fontSize={12} />,\n        accessor: 'city',\n        Cell: (row) => <ReportCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={'Active/Inactive'} fontSize={12} />,\n        accessor: 'status',\n        Cell: (row) => <ReportCell value={row.value} index={row.index} />,\n        width: 110\n      }\n    ];\n\n    return (\n      <DataGrid\n        data={this.state.reportData}\n        columns={columns}\n        onRowClick={(rowInfo) => {\n          // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n        }}\n        onPageSizeChange={this.props.onPageSizeChange}\n        onPageNumberChange={this.props.onPageNumberChange}\n        total={this.props.total}\n        paginationLabel={'Organizations per page'}\n        showPagination={true}\n        pageSize={this.props.pageSize}\n        pageNumber={this.props.pageNumber}\n      />\n    );\n  }\n}\n\nexport default StaffSummaryReportView;\n","import React from 'react';\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport {map, uniqBy} from 'lodash';\nimport moment from 'moment';\nimport {DATE_FORMAT, DATE_TIME_FORMAT, DATEFILTEROPTIONS, REPORT_TYPES} from '../../../constants/appConstants';\nimport ReportCell from '../../shared/data-grid/custom-cells/report-cell';\nimport Pagination from \"../../shared/data-grid/pagination/pagination\";\nimport DataTableReportHeader from \"../../shared/data-grid/custom-headers/report-header\";\n\nclass StaffAllocationReportView extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            reportData: [],\n            isClientView : true,\n        }\n    }\n\n    componentWillReceiveProps(nextProps) {\n        this.mapRecords(nextProps.reportData, nextProps.reportOption)\n    }\n\n    componentDidMount() {\n        this.mapRecords(this.props.reportData, this.props.reportOption)\n    }\n\n    mapRecords(reports, reportOption) {\n        const reportData = [];\n        const option = reportOption === DATEFILTEROPTIONS.CLIENT_ALLOCATION ? \"serviceRequestId\" : reportOption === DATEFILTEROPTIONS.STAFF_ALLOCATION ? \"staffId\" : \"serviceRequestId\"\n        const ids = this.getUniqueIds(reports, option);\n        map(ids, id => {\n            const clientData = []\n            map(reports, (data => {\n                if (data[option] === id) {\n                    const report = {\n                        staffName: data.staffName,\n                        clientName: data.clientName,\n                        serviceName: data.serviceName,\n                        serviceRequestId: data.serviceRequestId,\n                        beginDate: moment(data.serviceStartDate).utc().format(DATE_FORMAT),\n                        endDate: moment(data.serviceEndDate).utc().format(DATE_FORMAT),\n                    }\n                    clientData.push(report)\n                }\n            }));\n            reportData.push(clientData)    \n        })\n        option==='staffId'? \n        reportData.sort((a, b) => a[0].staffName.localeCompare(b[0].staffName)):\n        reportData.sort((a, b) => a[0].clientName.localeCompare(b[0].clientName));\n        reportData.forEach(element => {\n            element.sort(\n                (a, b) => {\n                    return a.serviceName.localeCompare(b.serviceName)==0?\n                    a.clientName.localeCompare(b.clientName):\n                    a.serviceName.localeCompare(b.serviceName) })\n        });\n        this.setState({\n            reportData: reportData,\n            isClientView: option === \"serviceRequestId\",\n        })\n    }\n\n\n    getUniqueIds = (reportData, option) => {\n        const clientIds = [];\n        map(reportData, (data => {\n                clientIds.push(data[option])\n            })\n        );\n        const uClientIds = uniqBy(clientIds, Math.floor)\n        return uClientIds;\n    }\n\n\n    render() {\n        const clientColumns = [\n            {\n                Header: () => <DataTableReportHeader header={\"Staff Name\"} fontSize={12}/>,\n                accessor: \"staffName\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            }\n        ];\n        const staffColumns = [\n            {\n                Header: () => <DataTableReportHeader header={\"Service Name\"} fontSize={12}/>,\n                accessor: \"serviceName\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <DataTableReportHeader header={\"Client Name\"} fontSize={12}/>,\n                accessor: \"clientName\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            }, {\n                Header: () => <DataTableReportHeader header={\"Service Begin Date\"} fontSize={12}/>,\n                accessor: \"beginDate\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n            {\n                Header: () => <DataTableReportHeader header={\"Service End Date\"} fontSize={12}/>,\n                accessor: \"endDate\",\n                Cell: (row) => {\n                    return <ReportCell value={row.value} index={row.index}/>;\n                },\n            },\n        ];\n        return (\n            <div>\n                {\n                    this.state.reportData.length > 0 ? map(this.state.reportData, (data, index) => {\n                            return (\n                                <div key={index}>\n                                    {\n                                        data.length > 0 && this.state.isClientView &&\n                                        <div className={\"report-details-header col-sm-12 col-md-12 col-lg-12 row\"}>\n                                            <div className=\"col-sm-6 col-md-4 col-lg-3 title-value-container\">\n                                                <span className={\"title-text\"}>{`Client Name : `}</span>\n                                                <span className={\"value-text\"}>{`${data[0].clientName}`}</span>\n                                            </div>\n                                            <div className=\"col-sm-6 col-md-4 col-lg-3 title-value-container\">\n                                                <span className={\"title-text\"}>{`Service Name : `}</span>\n                                                <span className={\"value-text\"}>{`${data[0].serviceName}`}</span>\n                                            </div>\n                                            <div className=\"col-sm-6 col-md-4 col-lg-3 title-value-container\">\n                                                <span className={\"title-text\"}>{`Service Begin Date : `}</span>\n                                                <span className={\"value-text\"}>{`${data[0].beginDate}`}</span>\n                                            </div>\n                                            <div className=\"col-sm-6 col-md-4 col-lg-3 title-value-container\">\n                                                <span className={\"title-text\"}>{`Service End Date : `}</span>\n                                                <span className={\"value-text\"}>{`${data[0].endDate}`}</span>\n                                            </div>\n                                        </div>\n\n                                    }\n                                    {\n                                        data.length > 0 && !this.state.isClientView &&\n                                        <div className={\"report-details-header col-sm-12 col-md-12 col-lg-12 row\"}>\n                                            <div className=\"col-sm-6 col-md-4 col-lg-3 title-value-container\">\n                                                <span className={\"title-text\"}>{`Staff Name : `}</span>\n                                                <span className={\"value-text\"}>{`${data[0].staffName}`}</span>\n                                            </div>\n                                        </div>\n\n                                    }\n                                    <DataGrid\n                                        data={data}\n                                        columns={this.state.isClientView ? clientColumns : staffColumns}\n                                        onRowClick={(rowInfo) => {\n                                            // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                                        }}\n                                        onPageSizeChange={this.props.onPageSizeChange}\n                                        onPageNumberChange={this.props.onPageNumberChange}\n                                        total={this.props.total}\n                                        paginationLabel={\"\"}\n                                        showPagination={false}\n                                    />\n                                </div>\n\n                            )\n\n                        })\n                        :\n                        <DataGrid\n                            data={[]}\n                            columns={this.state.isClientView ? clientColumns : staffColumns}\n                            onRowClick={(rowInfo) => {\n                                // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                            }}\n                            onPageSizeChange={this.props.onPageSizeChange}\n                            onPageNumberChange={this.props.onPageNumberChange}\n                            total={this.props.total}\n                            paginationLabel={\"Organizations per page\"}\n                            showPagination={false}\n                        />\n                }\n                <div className=\"row pagination pagination-align\">\n                    <div className=\"col-12\">\n                        <Pagination label={\"Organizations per page\"}\n                                    onPageNumberChange={this.props.onPageNumberChange}\n                                    onPageSizeChange={this.props.onPageSizeChange}\n                                    total={this.props.total}\n                                    pageSize={this.props.pageSize}\n                                    pageNumber={this.props.pageNumber}/>\n                    </div>\n                </div>\n            </div>\n\n\n        );\n    }\n}\n\nexport default StaffAllocationReportView;\n","import React, { useEffect, useState } from \"react\";\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport BasicHeader from \"../../shared/data-grid/custom-headers/basic-header\";\nimport { get, map } from \"lodash\";\nimport ReportCell from \"../../shared/data-grid/custom-cells/report-cell\";\nimport moment from \"moment/moment\";\nimport { DATE_FORMAT, DATE_TIME_FORMAT } from \"../../../constants/appConstants\";\n\n\nconst MonthlyClientServiceSummary = ({\n                                       reportData: initialReportData,\n                                       onPageSizeChange,\n                                       onPageNumberChange,\n                                       total,\n                                       pageSize,\n                                       pageNumber\n                                     }) => {\n\n\n  const defaultCols = [\n    {\n      Header: () => <BasicHeader header={\"Individual Name\"} fontSize={12} />,\n      accessor: \"individualName\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />,\n      width: 150\n    },\n    {\n      Header: () => <BasicHeader header={\"County\"} fontSize={12} />,\n      accessor: \"county\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Service Start Date\"} fontSize={12} />,\n      accessor: \"serviceStartDate\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Service End Date\"} fontSize={12} />,\n      accessor: \"serviceEndDate\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Procedure Code\"} fontSize={12} />,\n      accessor: \"procedureCode\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Unit Cost\"} fontSize={12} />,\n      accessor: \"unitCost\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Units Authorized\"} fontSize={12} />,\n      accessor: \"unitsAuthorized\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Units Used\"} fontSize={12} />,\n      accessor: \"unitsUsed\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Remaining\"} fontSize={12} />,\n      accessor: \"remaining\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Percentage\"} fontSize={12} />,\n      accessor: \"percentage\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    },\n    {\n      Header: () => <BasicHeader header={\"Target\"} fontSize={12} />,\n      accessor: \"target\",\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    }\n  ];\n\n  const [reportData, setReportData] = useState([]);\n  const [months, setMonths] = useState([]);\n  const [columns, setColumns] = useState(defaultCols);\n\n  useEffect(() => {\n    mapRecords(initialReportData);\n  }, [initialReportData]);\n\n  const mapRecords = (reports) => {\n    const monthsList = get(reports, \"months\", []);\n    const mappedData = map(reports.data, (data) => {\n      const monthlyUsage = get(data, \"MonthlyUsage\", {});\n      const mappedData = {\n        individualName: get(data, \"IndividualName\", \"\"),\n        county: get(data, \"County\", \"\"),\n        serviceStartDate: moment(get(data, \"ServiceStartDate\", \"\")).utc().format(DATE_FORMAT),\n        serviceEndDate: moment(get(data, \"ServiceEndDate\", \"\")).utc().format(DATE_FORMAT),\n        procedureCode: get(data, \"ProcedureCode\", \"\"),\n        unitCost: parseFloat(data.UnitCost).toFixed(2),\n        unitsAuthorized: get(data, \"UnitsAuthorized\", \"0\"),\n        unitsUsed: get(data, \"UnitsUtilized\", \"0\"),\n        remaining: get(data, \"Remaining\", \"0\"),\n        percentage: parseFloat(data.Percentage).toFixed(2),\n        target: parseFloat(data.Target).toFixed(0)\n      };\n      monthsList.map((month) => mappedData[month] = get(monthlyUsage, month, \"0\"));\n      return mappedData;\n    });\n\n    console.log(mappedData);\n\n    const newCols = defaultCols;\n    const monthCols = monthsList.map((month) => generateMonthCol(month));\n    newCols.splice(7, 0, ...monthCols);\n\n    setReportData(mappedData);\n    setMonths(monthsList);\n    setColumns(newCols);\n  };\n\n  const generateMonthCol = (month) => {\n    return {\n      Header: () => <BasicHeader header={month} fontSize={12} />,\n      accessor: month,\n      Cell: ({ value, row }) => <ReportCell value={value} index={row.index} />\n    };\n  };\n\n\n  return (\n    <DataGrid\n      data={reportData}\n      columns={columns}\n      onPageSizeChange={onPageSizeChange}\n      onPageNumberChange={onPageNumberChange}\n      onRowClick={(data) => {\n        console.log(data);\n      }}\n      total={total}\n      paginationLabel={\"Records per page\"}\n      showPagination={true}\n      pageSize={pageSize}\n      pageNumber={pageNumber}\n    />\n  );\n};\n\nexport default MonthlyClientServiceSummary;","import React, { useState, useEffect } from \"react\";\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport { map } from \"lodash\";\nimport ReportCell from \"../../shared/data-grid/custom-cells/report-cell\";\nimport Pagination from \"../../shared/data-grid/pagination/pagination\";\nimport DataTableReportHeader from \"../../shared/data-grid/custom-headers/report-header\";\n\nconst ClientServiceSummary = ({\n                                reportData,\n                                onPageSizeChange,\n                                onPageNumberChange,\n                                total,\n                                pageSize,\n                                pageNumber\n                              }) => {\n\n  const [data, setData] = useState([]);\n\n  useEffect(() => {\n    console.log(reportData);\n  }, [reportData]);\n\n  const columns = [\n    {\n      Header: () => <DataTableReportHeader header={\"Service Code\"} fontSize={12} />,\n      accessor: \"serviceCode\",\n      Cell: (row) => {\n        return <ReportCell value={row.value} index={row.index} />;\n      }\n    },\n    {\n      Header: () => <DataTableReportHeader header={\"Service Name\"} fontSize={12} />,\n      accessor: \"serviceName\",\n      Cell: (row) => {\n        return <ReportCell value={row.value} index={row.index} />;\n      }\n    },\n    {\n      Header: () => <DataTableReportHeader header={\"Service Begin Date\"} fontSize={12} />,\n      accessor: \"beginDate\",\n      Cell: (row) => {\n        return <ReportCell value={row.value} index={row.index} />;\n      }\n    },\n    {\n      Header: () => <DataTableReportHeader header={\"Service End Date\"} fontSize={12} />,\n      accessor: \"endDate\",\n      Cell: (row) => {\n        return <ReportCell value={row.value} index={row.index} />;\n      }\n    },\n    {\n      Header: () => <DataTableReportHeader header={\"Used Authorized\"} fontSize={12} />,\n      accessor: \"authorizedUnits\",\n      Cell: (row) => {\n        return <ReportCell value={row.value} index={row.index} />;\n      }\n    },\n    {\n      Header: () => <DataTableReportHeader header={\"Used Units\"} fontSize={12} />,\n      accessor: \"usedUnits\",\n      Cell: (row) => {\n        return <ReportCell value={row.value} index={row.index} />;\n      }\n    },\n    {\n      Header: () => <DataTableReportHeader header={\"Units Remaining\"} fontSize={12} />,\n      accessor: \"remainingUnits\",\n      Cell: (row) => {\n        return <ReportCell value={row.value} index={row.index} />;\n      }\n    }\n  ];\n\n  return (\n    <div>\n      {\n        reportData.length > 0 ? map(reportData, (data, index) => {\n            return (\n              <div key={index}>\n                {\n                  <div className={\"report-details-header col-sm-12 col-md-12 col-lg-12 row\"}>\n                    <div className=\"col-sm-6 col-md-4 col-lg-3 title-value-container\">\n                      <span className={\"title-text\"}>{`Client Name : `}</span>\n                      <span className={\"value-text\"}>{`${data.clientName}`}</span>\n                    </div>\n                  </div>\n                }\n                <DataGrid\n                  data={data.services}\n                  columns={columns}\n                  onRowClick={(rowInfo) => {\n                    // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                  }}\n                  onPageSizeChange={onPageSizeChange}\n                  onPageNumberChange={onPageNumberChange}\n                  total={total}\n                  paginationLabel={\"\"}\n                  showPagination={false}\n                />\n              </div>\n            );\n          })\n          :\n          <DataGrid\n            data={[]}\n            columns={columns}\n            onRowClick={(rowInfo) => {\n              console.log(rowInfo);\n            }}\n            onPageSizeChange={onPageSizeChange}\n            onPageNumberChange={onPageNumberChange}\n            total={total}\n            paginationLabel={\"Organizations per page\"}\n            showPagination={false}\n          />\n      }\n      <div className=\"row pagination pagination-align\">\n        <div className=\"col-12\">\n          <Pagination\n            label={\"Organizations per page\"}\n            onPageNumberChange={onPageNumberChange}\n            onPageSizeChange={onPageSizeChange}\n            total={total}\n            pageSize={pageSize}\n            pageNumber={pageNumber}\n          />\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default ClientServiceSummary;","import React from \"react\";\nimport { REPORT_TYPES } from \"../../../constants/appConstants\";\nimport AllContactsReportView from \"./allContactReport\";\nimport NoteReportView from \"./notesReport\";\nimport PromiseBillingReportView from \"./promiseBillingReport\";\nimport SCSummaryReportView from \"./scSummaryReports\";\nimport StaffBillingReportView from \"./staffBillingReport\";\nimport StaffSummaryReportView from \"./staffSummaryReport\";\nimport StaffAllocationReportView from \"./staffAllocationSummary\";\nimport MonthlyClientServiceSummary from \"./MonthlyClientServiceSummary\";\nimport ClientServiceSummary from \"./ClientServiceSummary\";\n\n\nclass ReportView extends React.Component {\n\n  render() {\n    const { reportType, reportData } = this.props;\n    return (\n      <div id=\"excel-viewer\" className=\"col-12\">\n        {\n          reportType === REPORT_TYPES.NOTES_REPORT &&\n          <NoteReportView\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n        {\n          reportType === REPORT_TYPES.STAFF_REPORT &&\n          <StaffBillingReportView\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n        {\n          reportType === REPORT_TYPES.PROMISE_BILLING_REPORT &&\n          <PromiseBillingReportView\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n        {\n          reportType === REPORT_TYPES.CLIENT_SUMMARY &&\n          <AllContactsReportView\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n        {\n          reportType === REPORT_TYPES.SC_SUMMARY &&\n          <SCSummaryReportView\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n        {\n          reportType === REPORT_TYPES.STAFF_SUMMARY &&\n          <StaffSummaryReportView\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n        {\n          reportType === REPORT_TYPES.STAFF_ALLOCATION_SUMMARY &&\n          <StaffAllocationReportView\n            reportOption={this.props.reportOption}\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n        {\n          reportType === REPORT_TYPES.MONTHLY_CLIENT_SERVICE_SUMMARY&&\n          <MonthlyClientServiceSummary\n            reportOption={this.props.reportOption}\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n        {\n            reportType === REPORT_TYPES.CLIENT_SERVICE_SUMMARY &&\n          <ClientServiceSummary\n            reportOption={this.props.reportOption}\n            reportData={reportData.data}\n            onPageSizeChange={(pageSize) => {\n              this.props.onPageSizeChange(pageSize);\n            }}\n            onPageNumberChange={(pageNumber) => {\n              this.props.onPageNumberChange(pageNumber);\n            }}\n            total={reportData.recordCount}\n            pageSize={this.props.pageSize}\n            pageNumber={this.props.pageNumber}\n          />\n        }\n\n      </div>\n    );\n  }\n}\n\nexport default ReportView;\n","import React from \"react\";\nimport {ADMIN_VERIFICATION, DATEFILTEROPTIONS} from \"../../../constants/appConstants\";\nimport DatePickerComponent from \"../../shared/date-picker/datePickerComponent\";\nimport '../billingReport.scss'\nimport SearchableDropdown from \"../../shared/searchable-dropdown\";\n\nexport default class StaffAllocationFilter extends React.Component {\n\n    render() {\n        return (\n            <div className='row' style={{marginBottom: 0}}>\n                <div className='col-md-2 col-12 input-box text-left' style={{marginBottom: 0}}>\n                    <div className=\"label\">Group</div>\n                    <div>\n                        <select\n                            className=\"select-box box\"\n                            onChange={this.props.onDateRangeChange}\n                            value={this.props.dateRangeOption}\n                        >\n                            <option value={DATEFILTEROPTIONS.CLIENT_ALLOCATION}>Client</option>\n                            <option value={DATEFILTEROPTIONS.STAFF_ALLOCATION}>Staff</option>\n                        </select>\n                    </div>\n                </div>\n                <div className='col-md-2 col-12 input-box text-left' style={{marginBottom: 0}}>\n                    <div className=\"label\">Start Date</div>\n                    <DatePickerComponent\n                        selected={this.props.fromDate}\n                        onChange={this.props.onFromDateChange}\n                        dateFormat={\"MM/DD/YYYY\"}\n                        className={'box text-box calendar-icon'}\n                    />\n                </div>\n                <div className=\"col-md-2 col-12 input-box\" style={{marginBottom: 0}}>\n                    <div className=\"label\">End Date</div>\n                    <DatePickerComponent\n                        selected={this.props.toDate}\n                        onChange={this.props.onToDateChange}\n                        dateFormat={\"MM/DD/YYYY\"}\n                        className={'box text-box calendar-icon'}\n                        minDate={this.props.startDate}\n                    />\n                </div>\n                <div className=\"col-md-2 col-12 input-box\" style={{ marginBottom: 20 }}>\n                    <div className=\"label\">Staff Person</div>\n                    <div className={\"searchable-dropdown\"}>\n                        <SearchableDropdown options={this.props.staff} value={this.props.selectedStaff}\n                                            defaultValue={-1}\n                                            keyIdentifier=\"userId\" valueIdentifier=\"name\"\n                                            placeholder=\"Search Staff Person\"\n                                            onChange={this.props.onStaffChange}/>\n                    </div>\n                </div>\n                <div className=\"col-md-2 col-12 input-box\" style={{ marginBottom: 10 }}>\n                    <div className=\"label\">Client</div>\n                    <div className={\"searchable-dropdown\"}>\n                        <SearchableDropdown options={this.props.clients} value={this.props.selectedClient}\n                                            defaultValue={-1}\n                                            keyIdentifier=\"clientId\" valueIdentifier=\"name\"\n                                            placeholder=\"Search Client\"\n                                            onChange={this.props.onClientChange}/>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n","import React, { useEffect, useState } from \"react\";\nimport DatePickerComponent from \"../../shared/date-picker/datePickerComponent\";\n\nexport const MonthlyClientServiceSummaryFilter = ({ fromDate, toDate, onChangeFromDate, onChangeToDate }) => {\n\n  const [maxEnd, setMaxEnd] = useState(new Date());\n\n  useEffect(() => {\n    const today = new Date();\n    const endYear = today.getMonth() < 6 ? today.getFullYear() : today.getFullYear() + 1;\n    const end = new Date(endYear, 5, 30);\n    setMaxEnd(end);\n  }, []);\n\n  useEffect(() => {\n    console.log(fromDate, toDate);\n  }, [fromDate, toDate]);\n\n  return (\n    <div className=\"row\">\n      <div\n        className=\"col-md-2 col-12 input-box text-left\"\n        style={{ marginBottom: 0 }}\n      >\n        <div className=\"label\">From Date</div>\n        <DatePickerComponent\n          selected={fromDate}\n          onChange={onChangeFromDate}\n          dateFormat={\"MM/DD/YYYY\"}\n          className={\"box text-box calendar-icon\"}\n          maxDate={new Date()}\n          style={{ marginBottom: 0 }}\n        />\n      </div>\n      <div className=\"col-md-2 col-12 input-box\" style={{ marginBottom: 0 }}>\n        <div className=\"label\">To Date</div>\n        <DatePickerComponent\n          selected={toDate}\n          onChange={onChangeToDate}\n          dateFormat={\"MM/DD/YYYY\"}\n          className={\"box text-box calendar-icon\"}\n          minDate={fromDate}\n          maxDate={maxEnd}\n          style={{ marginBottom: 0 }}\n        />\n      </div>\n    </div>\n  );\n};\n","import React from \"react\";\nimport \"./billingReport.scss\";\nimport { DATEFILTEROPTIONS, REPORT_TYPES } from \"../../constants/appConstants\";\nimport moment from \"moment\";\nimport WorkEntryFilters from \"./filters/workEntryFilter\";\nimport StaffFilter from \"./filters/staffFilter\";\nimport ContactsReport from \"./filters/contactsFilter\";\nimport SCFilter from \"./filters/SCFilter\";\nimport { getAllClientsList } from \"../../api/client\";\nimport { getAllUsersList } from \"../../api/user\";\nimport {\n  generateClientServiceSummaryReport,\n  generateReport,\n  generateWorkEntryReport, getClientServiceSummaryData,\n  getReportData,\n  getWorkEntryReport\n} from \"../../api/report\";\nimport ReportView from \"./report-views/reportView\";\nimport { connect } from \"react-redux\";\nimport StaffAllocationFilter from \"./filters/staffAllocationFilter\";\nimport { MonthlyClientServiceSummaryFilter } from \"./filters/MonthlyClientServiceSummaryFilter\";\n\nclass BillingReport extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      reportType: REPORT_TYPES.NOTES_REPORT,\n      recordStatus: \"all\",\n      reviewStatus: \"all\",\n      clients: [],\n      services: [],\n      staff: [],\n      selectedClient: -1,\n      selectedService: -1,\n      selectedStaff: -1,\n      showViewer: false,\n      reportData: [],\n      fromDate: new Date(new Date().setDate(new Date().getDate() - 7)).setHours(\n        0,\n        0,\n        0,\n        0\n      ),\n      toDate: new Date().setHours(0, 0, 0, 0),\n      dateRangeOption: DATEFILTEROPTIONS.CREATED,\n      pageSize: 10,\n      pageNumber: 0\n    };\n  }\n\n  componentDidMount() {\n    this.getAllClients();\n    // this.getAllServices();\n    this.getAllStaff();\n    this.onGenerateReport(0, 10);\n  }\n\n\n  onReportSelect = (e) => {\n    const reportType = e.target.value;\n    let fromDate;\n    let toDate = new Date().setHours(0, 0, 0, 0);\n    let dateRangeOption = DATEFILTEROPTIONS.CREATED;\n    if (\n      reportType === REPORT_TYPES.SC_SUMMARY ||\n      reportType === REPORT_TYPES.CLIENT_SUMMARY ||\n      reportType === REPORT_TYPES.STAFF_SUMMARY\n    ) {\n      fromDate = new Date(new Date().getUTCFullYear(), 0, 1, 0, 0, 0, 0);\n    } else if (reportType === REPORT_TYPES.MONTHLY_CLIENT_SERVICE_SUMMARY || reportType === REPORT_TYPES.CLIENT_SERVICE_SUMMARY) {\n      const today = new Date();\n      const currentYear = today.getFullYear();\n      const currentMonth = today.getMonth();\n      const startYear = currentMonth < 6 ? currentYear - 1 : currentYear;\n      const endYear = currentMonth < 6 ? currentYear : currentYear + 1;\n      fromDate = new Date(startYear, 6, 1);\n      toDate = new Date(endYear, 5, 30);\n    } else {\n      if (reportType === REPORT_TYPES.STAFF_ALLOCATION_SUMMARY) {\n        dateRangeOption = DATEFILTEROPTIONS.STAFF_ALLOCATION;\n      }\n      fromDate = new Date(\n        new Date().setDate(new Date().getDate() - 7)\n      ).setHours(0, 0, 0, 0);\n    }\n    this.setState(\n      {\n        reportType: reportType,\n        dateRangeOption: dateRangeOption,\n        showViewer: false,\n        fromDate: fromDate,\n        toDate: toDate\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n  onStatusChange = (e) => {\n    const status = e.target.value;\n    this.setState(\n      {\n        recordStatus: status,\n        pageNumber: 0\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n\n  onReviewStatusChange = (e) => {\n    const reviewStatus = e.target.value;\n    this.setState(\n      {\n        reviewStatus: reviewStatus\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n\n  onDateRangeChange = (e) => {\n    const dateRangeOption = e.target.value;\n    this.setState(\n      {\n        dateRangeOption: parseInt(dateRangeOption)\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n\n  onFromDateChange = (date) => {\n    this.setState(\n      {\n        fromDate: date\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n\n  onToDateChange = (date) => {\n    this.setState(\n      {\n        toDate: date\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n\n  onGenerateReport = (offset, limit) => {\n    let fromDate = moment\n      .utc(this.state.fromDate)\n      .format(\"YYYY-MM-DD HH:mm:ss\");\n    let toDate = moment.utc(this.state.toDate).format(\"YYYY-MM-DD HH:mm:ss\");\n    if (\n      this.state.reportType === REPORT_TYPES.SC_SUMMARY ||\n      this.state.reportType === REPORT_TYPES.CLIENT_SUMMARY ||\n      this.state.reportType === REPORT_TYPES.STAFF_SUMMARY\n    ) {\n      getReportData(\n        this.state.reportType,\n        fromDate,\n        null,\n        offset,\n        limit,\n        this.state.recordStatus\n      )\n        .then((res) => {\n          this.setState({\n            showViewer: true,\n            reportData: res\n          });\n        })\n        .catch((e) => {\n          console.log(\"getReportData error\", e);\n        });\n    } else if (this.state.reportType === REPORT_TYPES.MONTHLY_CLIENT_SERVICE_SUMMARY || this.state.reportType === REPORT_TYPES.CLIENT_SERVICE_SUMMARY) {\n      getClientServiceSummaryData(\n        this.state.reportType,\n        this.state.fromDate,\n        this.state.toDate,\n        offset,\n        limit\n      )\n        .then((res) => {\n          this.setState({\n            showViewer: true,\n            reportData: res\n          });\n        })\n        .catch((e) => {\n          console.log(\"getWorkEntryReport error\", e);\n        });\n    } else {\n      getWorkEntryReport(\n        this.state.reportType,\n        this.state.reviewStatus,\n        fromDate,\n        toDate,\n        this.state.dateRangeOption,\n        this.state.selectedClient,\n        this.state.selectedStaff,\n        this.state.selectedService,\n        offset,\n        limit\n      )\n        .then((res) => {\n          this.setState({\n            showViewer: true,\n            reportData: res\n          });\n        })\n        .catch((e) => {\n          console.log(\"getWorkEntryReport error\", e);\n        });\n    }\n  };\n\n  getAllClients() {\n    getAllClientsList()\n      .then((res) => {\n        this.setState({\n          clients: res\n        });\n      })\n      .catch((err) => {\n        console.log(\"get all staff error \", err);\n      });\n  }\n\n  getAllStaff() {\n    getAllUsersList()\n      .then((res) => {\n        this.setState({\n          staff: res\n        });\n      })\n      .catch((err) => {\n        console.log(\"get all staff error \", err);\n      });\n  }\n\n  onStaffChange = (value) => {\n    this.setState(\n      {\n        selectedStaff: parseInt(value)\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n\n  onServiceChange = (value) => {\n    this.setState(\n      {\n        selectedService: parseInt(value)\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n\n  onClientChange = (value) => {\n    this.setState(\n      {\n        selectedClient: parseInt(value)\n      },\n      () => {\n        this.onGenerateReport(0, this.state.pageSize);\n      }\n    );\n  };\n\n  onFileDownload = () => {\n    let fromDate = moment\n      .utc(this.state.fromDate)\n      .format(\"YYYY-MM-DD HH:mm:ss\");\n    let toDate = moment.utc(this.state.toDate).format(\"YYYY-MM-DD HH:mm:ss\");\n    if (\n      this.state.reportType === REPORT_TYPES.SC_SUMMARY ||\n      this.state.reportType === REPORT_TYPES.CLIENT_SUMMARY ||\n      this.state.reportType === REPORT_TYPES.STAFF_SUMMARY\n    ) {\n      generateReport(\n        this.state.reportType,\n        fromDate,\n        null,\n        this.state.recordStatus\n      ).catch((e) => {\n        console.log(\"generateReport error\", e);\n      });\n    } else if (this.state.reportType === REPORT_TYPES.MONTHLY_CLIENT_SERVICE_SUMMARY ||\n      this.state.reportType === REPORT_TYPES.CLIENT_SERVICE_SUMMARY) {\n      generateClientServiceSummaryReport(\n        this.state.reportType, this.state.fromDate, this.state.toDate\n      ).catch((e) => {\n        console.log(\"generateClientServiceSummaryReport error\", e);\n      });\n    } else {\n      generateWorkEntryReport(\n        this.state.reportType,\n        this.state.reviewStatus,\n        fromDate,\n        toDate,\n        this.state.dateRangeOption,\n        this.state.selectedClient,\n        this.state.selectedStaff,\n        this.state.selectedService\n      ).catch((e) => {\n        console.log(\"generateWorkEntryReport error\", e);\n      });\n    }\n  };\n\n  render() {\n    const isWorkEntryReport =\n      this.state.reportType === REPORT_TYPES.PROMISE_BILLING_REPORT ||\n      this.state.reportType === REPORT_TYPES.NOTES_REPORT ||\n      this.state.reportType === REPORT_TYPES.STAFF_REPORT;\n    return (\n      <div className=\"report-body\">\n        <div className=\"row report-type-selector\">\n          <div className=\"col-lg-2 col-md-2 col-sm-3\">\n            <div className=\"page-title\">Reports</div>\n          </div>\n          <div className=\"col-lg-2 col-md-2 col-sm-3\">\n            <div className=\"page-title\">\n              <span className=\"title\">Select&nbsp;Type</span>\n            </div>\n          </div>\n          <div className=\"col-lg-4 col-md-4 col-sm-6\">\n            <div className=\"\">\n              <div className=\"col-12 input-box text-left\" style={{}}>\n                <div>\n                  <select\n                    className=\"select-box\"\n                    onChange={this.onReportSelect}\n                    value={this.state.reportType}\n                  >\n                    <option value={REPORT_TYPES.NOTES_REPORT}>\n                      Notes Report\n                    </option>\n                    <option value={REPORT_TYPES.STAFF_REPORT}>\n                      Staff Payroll Report\n                    </option>\n                    <option value={REPORT_TYPES.PROMISE_BILLING_REPORT}>\n                      Promise Billing Report\n                    </option>\n                    <option value={REPORT_TYPES.CLIENT_SUMMARY}>\n                      Client Summary\n                    </option>\n                    <option value={REPORT_TYPES.SC_SUMMARY}>\n                      Supports Coordinators\n                    </option>\n                    <option value={REPORT_TYPES.STAFF_SUMMARY}>\n                      Staff Summary\n                    </option>\n                    <option value={REPORT_TYPES.STAFF_ALLOCATION_SUMMARY}>\n                      Staff Allocation Summary\n                    </option>\n                    <option value={REPORT_TYPES.MONTHLY_CLIENT_SERVICE_SUMMARY}>\n                      Monthly Client Service Summary\n                    </option>\n                    <option value={REPORT_TYPES.CLIENT_SERVICE_SUMMARY}>\n                      Client Service Summary\n                    </option>\n                  </select>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div\n          className=\"row\"\n          style={{\n            backgroundColor: \"#FFF\",\n            border: \"1px solid #E0E1E2\",\n            margin: 20\n          }}\n        >\n          <div className=\"col-lg-12 col-md-12 col-sm-12\" style={{ padding: 20 }}>\n            <div\n              className=\"col-12\"\n              style={{ paddingLeft: 0, marginBottom: 20 }}\n            >\n              <span\n                style={{\n                  fontFamily: \"Muli\",\n                  fontSize: \"19px\",\n                  color: \"#333333\"\n                }}\n              >\n                Filters\n              </span>\n            </div>\n            {isWorkEntryReport && (\n              <WorkEntryFilters\n                fromDate={this.state.fromDate}\n                toDate={this.state.toDate}\n                onFromDateChange={this.onFromDateChange}\n                onToDateChange={this.onToDateChange}\n                onReviewStatusChange={this.onReviewStatusChange}\n                dateRangeOption={this.state.dateRangeOption}\n                onDateRangeChange={this.onDateRangeChange}\n                clients={this.state.clients}\n                // services={this.state.services}\n                staff={this.state.staff}\n                onClientChange={this.onClientChange}\n                selectedClient={this.state.selectedClient}\n                onServiceChange={this.onServiceChange}\n                selectedService={this.state.selectedService}\n                onStaffChange={this.onStaffChange}\n                selectedStaff={this.state.selectedStaff}\n              />\n            )}\n            {this.state.reportType === REPORT_TYPES.STAFF_SUMMARY && (\n              <StaffFilter\n                onStatusChange={this.onStatusChange}\n                startDate={this.state.fromDate}\n                onStartDateChange={this.onFromDateChange}\n              />\n            )}\n            {this.state.reportType === REPORT_TYPES.CLIENT_SUMMARY && (\n              <ContactsReport\n                onStatusChange={this.onStatusChange}\n                startDate={this.state.fromDate}\n                onStartDateChange={this.onFromDateChange}\n              />\n            )}\n            {this.state.reportType === REPORT_TYPES.SC_SUMMARY && (\n              <SCFilter\n                onStatusChange={this.onStatusChange}\n                startDate={this.state.fromDate}\n                onStartDateChange={this.onFromDateChange}\n              />\n            )}\n            {this.state.reportType ===\n              REPORT_TYPES.STAFF_ALLOCATION_SUMMARY && (\n                <StaffAllocationFilter\n                  dateRangeOption={this.state.dateRangeOption}\n                  onDateRangeChange={this.onDateRangeChange}\n                  fromDate={this.state.fromDate}\n                  toDate={this.state.toDate}\n                  onFromDateChange={this.onFromDateChange}\n                  onToDateChange={this.onToDateChange}\n                  clients={this.state.clients}\n                  onClientChange={this.onClientChange}\n                  selectedClient={this.state.selectedClient}\n                  staff={this.state.staff}\n                  onStaffChange={this.onStaffChange}\n                  selectedStaff={this.state.selectedStaff}\n                />\n              )}\n            {(this.state.reportType ===\n              REPORT_TYPES.MONTHLY_CLIENT_SERVICE_SUMMARY || this.state.reportType === REPORT_TYPES.CLIENT_SERVICE_SUMMARY) && (\n              <MonthlyClientServiceSummaryFilter\n                fromDate={this.state.fromDate}\n                toDate={this.state.toDate}\n                onChangeFromDate={this.onFromDateChange}\n                onChangeToDate={this.onToDateChange}\n              />\n            )}\n\n            {/* <div className=\"row col-4 offset-8\"> */}\n            <div\n              style={{\n                display: \"flex\",\n                flexDirection: \"row\",\n                justifyContent: \"flex-end\"\n              }}\n              className=\"btn-section\"\n            >\n              <div style={{ flex: 1 }}></div>\n              {/* <div className=\"col-6\"> */}\n              <div style={{ margin: 1, flex: 0.5 }}>\n                <button\n                  className=\"button submit no-border\"\n                  onClick={() => {\n                    let limit = parseInt(this.state.pageSize);\n                    // let offset = parseInt(this.state.pageSize * this.state.pageNumber);\n                    let offset = parseInt(0);\n                    this.onGenerateReport(offset, limit);\n                  }}\n                >\n                  <span\n                    className=\"text\"\n                    style={{ fontFamily: \"Muli\", fontSize: 14 }}\n                  >\n                    Generate Report\n                  </span>\n                </button>\n              </div>\n              {/* </div> */}\n              {/* <div className=\"col-6\"> */}\n              <div style={{ margin: 1, flex: 0.5 }}>\n                <button\n                  className=\"button basic only-border\"\n                  onClick={this.onFileDownload}\n                  // style={{backgroundColor: '#A9A5A5'}}\n                >\n                  <span\n                    className=\"text\"\n                    style={{\n                      fontFamily: \"Muli\",\n                      fontSize: 14,\n                      color: \"#5B6576\"\n                    }}\n                  >\n                    Download\n                  </span>\n                </button>\n              </div>\n              {/* </div> */}\n            </div>\n          </div>\n        </div>\n\n        {\n          <div\n            className=\"row\"\n            style={{\n              backgroundColor: \"#FFF\",\n              border: \"1px solid #E0E1E2\",\n              margin: 20\n            }}\n          >\n            {this.state.showViewer && (\n              <ReportView\n                reportType={this.state.reportType}\n                reportOption={this.state.dateRangeOption}\n                reportData={this.state.reportData}\n                // onPageSizeChange={this.props.onPageSizeChange}\n                onPageSizeChange={(recordCount) => {\n                  this.setState({\n                    pageSize: recordCount,\n                    pageNumber: 0\n                  });\n                  this.onGenerateReport(0, parseInt(recordCount));\n                }}\n                onPageNumberChange={(pageNumber) => {\n                  this.setState({\n                    pageNumber: pageNumber\n                  });\n                  let limit = parseInt(this.state.pageSize);\n                  let offset = limit * pageNumber;\n                  this.onGenerateReport(offset, limit);\n                }}\n                pageSize={this.state.pageSize}\n                pageNumber={this.state.pageNumber}\n              />\n            )}\n          </div>\n        }\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = () => ({});\n\nexport default connect(mapStateToProps)(BillingReport);\n","import React from \"react\";\n\nclass ServiceCard extends React.Component {\n  render() {\n    const client = this.props.client;\n    return (\n      <div className='col-12 visit-card' onClick={() => {\n        this.props.onDetails(client.id)\n      }}>\n        <div className='row'>\n          <div className='col-6'>\n            <div className='col-12 label'>\n              Client Name\n            </div>\n            <div className='col-12 value'>\n              {client.name}\n            </div>\n          </div>\n          <div className='col-6'>\n            <div className='col-12 label'>\n              City\n            </div>\n            <div className='col-12 value'>\n              {client.city}\n            </div>\n          </div>\n        </div>\n        <div className='row'>\n          <div className='col-6'>\n            <div className='col-12 label'>\n              Phone\n            </div>\n            <div className='col-12 value'>\n              {client.phone}\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default ServiceCard","import { get, post, put } from \"../util/httpService\";\nimport { SERVICE_URL } from \"../constants/appConstants\";\nimport * as _ from \"lodash\";\nimport { getToken, setAuthData } from \"../util/auth\";\nimport * as axios from \"../util/httpService\";\n\nexport async function createService(service) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await post(SERVICE_URL, service, { headers: headers });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function updateService(service) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await put(SERVICE_URL, service, { headers: headers });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function getAllServices(\n  pageNumber,\n  pageSize,\n  filter,\n  searchParams,\n  status\n) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await get(\n      `${SERVICE_URL}?offset=${pageNumber}&limit=${pageSize}&filter=${filter}&name=${searchParams}&status=${status}`,\n      { headers: headers }\n    );\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    if (e.response.status === 401) {\n      setAuthData(null);\n    }\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function getServiceById(serviceId) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await get(`/serviceById?service_id=${serviceId}`, {\n      headers: headers\n    });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function getAllServicesList() {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await get(`${SERVICE_URL}/service_list`, {\n      headers: headers\n    });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\n\nexport async function processImportFile(file) {\n  const formData = new FormData();\n  formData.append(\"file\", file);\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}`, \"Content-Type\": \"multipart/form-data\" };\n  try {\n    const response = await post(`/services/process`, formData, { headers: headers });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}\n\nexport async function importService(service) {\n  const authToken = getToken();\n  const headers = { Authorization: `bearer ${authToken}` };\n  try {\n    const response = await post('/services/import', service, { headers: headers });\n    return _.get(response, \"data\", {});\n  } catch (e) {\n    throw _.get(e, \"response.data\", {});\n  }\n}","import { isEmpty, isUndefined } from \"lodash\";\n\nconst specialCharRegEx = /[!@#$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/]/;\nconst zipRegEx = /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/;\n\nexport function validateClientName(value) {\n  return isEmpty(value) ? \"Client Name is required\" : undefined;\n}\n\nexport function validateClientFirstName(value) {\n  return isEmpty(value)\n    ? \"Client First name is required\"\n    : hasSpecialCharacters(value);\n}\n\nexport function validateClientMiddleName(value) {\n  return hasSpecialCharacters(value);\n}\n\nexport function validateClientLastName(value) {\n  return isEmpty(value)\n    ? \"Client Last name is required\"\n    : hasSpecialCharacters(value);\n}\n\nexport function validateClientServiceName(value) {\n  return isEmpty(value) ? \"Service Name is required\" : undefined;\n}\n\nexport function validateClientServiceCode(value) {\n  return isEmpty(value) ? \"Service Code is required\" : undefined;\n}\n\nexport function validateClientServiceStartDate(value) {\n  return isUndefined(value) ? \"Service Start Date is required\" : undefined;\n}\n\nexport function validateClientServiceEndDate(value) {\n  return isUndefined(value) ? \"Service End Date is required\" : undefined;\n}\n\nexport function validateClientServiceUnitRate(value) {\n  return isUndefined(value)\n    ? \"Service Unit Rate is required\"\n    : validateNumericFieldValues(value);\n}\n\nexport function validateClientServiceUnitsAuthorized(value) {\n  return isUndefined(value)\n    ? \"Service Units Authorized is required\"\n    : validateNumericFieldValues(value);\n}\n\nexport function validateClientServiceUnitLength(value) {\n  return isUndefined(value)\n    ? \"Service Units Length is required.\"\n    : (parseFloat(value) > 0 ? undefined : \"The value should be greater than zero.\");\n}\n\nexport function validateFamilyContactEmail(email) {\n  const emailRegex =\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  if (!isEmpty(email) && !emailRegex.test(email)) {\n    return \"Email is invalid\";\n  }\n  return undefined;\n}\n\nexport function validateMobileNumber(value) {\n  return isEmpty(value) ? \"Phone number is required\" : undefined;\n}\n\nexport function validateRequiredFields(value) {\n  return isEmpty(value) ? \"Field cannot be empty\" : undefined;\n}\n\nfunction hasSpecialCharacters(value) {\n  return specialCharRegEx.test(value)\n    ? \"Can not contain special characters\"\n    : undefined;\n}\n\nexport function validateMCI(value) {\n  if (isEmpty(value)) {\n    return \"Field cannot be empty\";\n  }\n  if (value.length > 10) {\n    return \"MCI should be 10 or less characters long\";\n  } else {\n    return undefined;\n  }\n}\n\nexport function validateZIPCode(zip) {\n  if (isEmpty(zip)) {\n    return \"Field cannot be empty\";\n  }\n  if (!isEmpty(zip) && !zipRegEx.test(zip)) {\n    return \"Invalid ZIP Code\";\n  }\n  return undefined;\n}\n\nexport function validateNumericFieldValues(value) {\n  return parseFloat(value) < 0 ? \"The values can not be negative.\" : undefined;\n}\n\nexport function validateOverlapOption(value) {\n  return (value===\"\")\n    ? \"Overlap Option is required\"\n    : undefined;\n}\n","import * as React from \"react\";\nimport { Field, Form, reduxForm } from \"redux-form\";\nimport {\n  inputField,\n  textField\n} from \"../../shared/form-fields/formFields\";\nimport { withRouter } from \"react-router-dom\";\nimport {\n  validateClientServiceCode,\n  validateClientServiceName,\n  validateClientServiceUnitLength,\n  validateClientServiceUnitRate\n} from \"../../clients/create-client/create-client-form/clientValidator\";\n\nclass ServiceCreateUpdate extends React.Component {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    const { handleSubmit } = this.props;\n\n    return (\n      <Form style={{ width: \"100%\" }} onSubmit={handleSubmit} noValidate>\n        <div style={{ margin: 30, marginTop: 0 }}>\n          <div className=\"row\">\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Service Name</div>\n              <Field\n                name=\"serviceName\"\n                component={inputField}\n                type=\"text\"\n                placeholder={\"Service Name\"}\n                required={true}\n                validate={validateClientServiceName}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Service Code</div>\n              <Field\n                name=\"serviceCode\"\n                component={inputField}\n                type=\"text\"\n                placeholder={\"Service Code\"}\n                required={true}\n                validate={validateClientServiceCode}\n              />\n            </div>\n            <div className=\"col-12 input-box text-left\">\n              <div className=\"label\">Description</div>\n              <Field\n                name=\"serviceDescription\"\n                component={textField}\n                type=\"text\"\n                placeholder={\"Description\"}\n                required={true}\n                //   validate={validateEmail}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Unit Rate</div>\n              <Field\n                name=\"serviceUnitRate\"\n                component={inputField}\n                type=\"number\"\n                placeholder={\"Unit Rate\"}\n                required={true}\n                minVal={0}\n                validate={validateClientServiceUnitRate}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Unit Length (hrs.)</div>\n              <Field\n                name=\"serviceUnitLength\"\n                component={inputField}\n                type=\"number\"\n                placeholder={\"Unit Length\"}\n                required={true}\n                minVal={0}\n                validate={validateClientServiceUnitLength}\n              />\n\n            </div>\n\n            <div className=\"col-6 input-box text-left my-auto\">\n              <input\n                type=\"checkbox\"\n                name=\"degreeRequired\"\n                value=\"degreeRequired\"\n                checked={this.props.isDegreeRequired}\n                onChange={(event) => {\n                  this.props.onDegreeRequired(event.target.checked);\n                }}\n                style={{ marginRight: 5 }}\n              />\n              <span className=\"label\">Degree Required</span>\n            </div>\n            <div className=\"col-6 input-box text-left my-auto\">\n              <input\n                type=\"checkbox\"\n                name=\"degreeRequired\"\n                value=\"degreeRequired\"\n                checked={this.props.isOverlappable}\n                onChange={(event) => {\n                  this.props.onOverlapable(event.target.checked);\n                }}\n                style={{ marginRight: 5 }}\n              />\n              <span className=\"label\">Overlappable Service</span>\n            </div>\n          </div>\n\n          <div className=\"row\" style={{marginTop:30}}>\n            <div className=\"col-lg-6 offset-lg-3 col-md-8 offset-md-2 col-sm-10 offset-sm-1\">\n              <div className=\"row\">\n                <div className=\"col-6\">\n                  <button type=\"submit\" className=\"button submit\">\n                    {this.props.isEdit ? \"UPDATE\" : \"SAVE\"}\n                  </button>\n                </div>\n                <div className=\"col-6\">\n                  <button\n                    className=\"button basic\"\n                    onClick={(event) => {\n                      this.props.onCloseModal();\n                    }}\n                  >\n                    CANCEL\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </Form>\n    );\n  }\n}\n\nconst serviceCreateUpdateForm = reduxForm({\n  form: \"createService\",\n  enableReinitialize: true,\n  keepDirtyOnReinitialize: true\n})(ServiceCreateUpdate);\n\nexport default withRouter(serviceCreateUpdateForm);\n// export default ClientServiceInfo;\n","import * as React from \"react\";\nimport \"./services.scss\";\nimport DataGrid from \"../shared/data-grid/data-grid\";\nimport BasicCell from \"../shared/data-grid/custom-cells/basic-cell\";\nimport BasicHeader from \"../shared/data-grid/custom-headers/basic-header\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { map } from \"lodash\";\nimport { isMobileDevice } from \"../../util/deviceType\";\nimport Pagination from \"../shared/data-grid/pagination/pagination\";\nimport { saveServicesSearchChanges } from \"../../redux/config/configAction\";\nimport ServiceCard from \"./serviceCard\";\nimport { createService, getAllServices, getServiceById, updateService } from \"../../api/service\";\nimport PopUpModal from \"../shared/popup-modal/popUpModal\";\nimport ServiceCreateUpdate from \"./service-create/create\";\nimport Actions from \"../shared/data-grid/custom-cells/actions\";\n\nclass Services extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      services: [],\n      totalServices: 0,\n      pageNumber: 0,\n      searchParam: \"\",\n      filter: \"recent\",\n      pageSize: 10,\n      status: 0,\n      openModal: false,\n      selectedServiceId: 0,\n      isEdit: false,\n      initialValues: null,\n      isDegreeRequired: false,\n      isOverlappable: false\n    };\n  }\n\n  componentDidMount() {\n    const { searchConfig } = this.props;\n    if (searchConfig) {\n      this.setState({\n        pageNumber: searchConfig.pageNumber,\n        pageSize: searchConfig.pageSize,\n        filter: searchConfig.filter,\n        searchParam: searchConfig.searchParam,\n        status: searchConfig.status\n      });\n      this.getAllServices(\n        searchConfig.pageNumber,\n        searchConfig.pageSize,\n        searchConfig.filter,\n        searchConfig.searchParam,\n        searchConfig.status\n      );\n    } else {\n      this.getAllServices(\n        this.state.pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      );\n    }\n  }\n\n  getAllServices = (pageNumber, pageSize, filter, searchParams, status) => {\n    getAllServices(pageNumber, pageSize, filter, searchParams, status).then((res) => {\n      // console.log(res.data)\n      this.setState({\n        services: res.data ? res.data : []\n      });\n    });\n  };\n\n  onCreateNewService = () => {\n    this.setState({\n      openModal: true,\n      isEdit: false\n    });\n  };\n\n  onImportServices = () => {\n    window.open(\"/admin/import-services\", \"_blank\");\n  };\n\n  onEdit = (serviceId) => {\n    getServiceById(serviceId).then((res) => {\n      const service = {\n        serviceName: res.name,\n        serviceCode: res.code,\n        serviceDescription: res.description,\n        serviceUnitRate: res.unitRate,\n        serviceUnitLength: res.unitLength,\n        degreeRequired: res.isDegreeRequired,\n        isOverlappable: res.isOverlappable\n      };\n      this.setState({\n        selectedServiceId: serviceId,\n        openModal: true,\n        isEdit: true,\n        initialValues: service,\n        degreeRequired: res.isDegreeRequired,\n        isOverlappable: res.isOverlappable\n      });\n    });\n  };\n\n  handleServiceAddUpdate = (service) => {\n    const req = {\n      serviceId: this.state.selectedServiceId,\n      name: service.serviceName,\n      code: service.serviceCode,\n      description: service.serviceDescription,\n      unitRate: parseFloat(service.serviceUnitRate),\n      unitLength: parseFloat(service.serviceUnitLength),\n      isDegreeRequired: this.state.isDegreeRequired,\n      isOverlappable: this.state.isOverlappable\n    };\n\n\n    if (this.state.isEdit) {\n      updateService(req).then((res) => {\n        this.setState({\n          openModal: false,\n          isEdit: false\n        });\n        this.getAllServices(\n          this.state.pageNumber,\n          this.state.pageSize,\n          this.state.filter,\n          this.state.searchParam,\n          this.state.status\n        );\n      });\n    } else {\n      createService(req).then((res) => {\n        this.setState({\n          openModal: false,\n          isEdit: false\n        });\n        this.getAllServices(\n          this.state.pageNumber,\n          this.state.pageSize,\n          this.state.filter,\n          this.state.searchParam,\n          this.state.status\n        );\n      });\n    }\n  };\n\n  onPageChange = (pageNumber) => {\n    this.props.dispatch(\n      saveServicesSearchChanges(\n        pageNumber,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onPageSizeChange = (pageSize) => {\n    this.props.dispatch(\n      saveServicesSearchChanges(\n        0,\n        pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onSearch = (event) => {\n    const searchParam = event.target.value;\n    if (searchParam.length >= 3 || searchParam.length === 0) {\n      this.props.dispatch(\n        saveServicesSearchChanges(\n          0,\n          this.state.pageSize,\n          \"recent\",\n          searchParam,\n          this.state.status\n        )\n      );\n    }\n    this.setState({\n      searchParam,\n      pageNumber: 0,\n      filter: \"recent\"\n    });\n  };\n\n  onPressEnter = (event) => {\n    if (event.keyCode === 13) {\n      this.props.dispatch(\n        saveServicesSearchChanges(\n          0,\n          this.state.pageSize,\n          this.state.filter,\n          this.state.searchParam,\n          this.state.status\n        )\n      );\n    }\n  };\n\n  onFilterChange = (event) => {\n    const filter = event.target.value;\n    this.setState({\n      filter\n    });\n    this.props.dispatch(\n      saveServicesSearchChanges(\n        0,\n        this.state.pageSize,\n        filter,\n        this.state.searchParam,\n        this.state.status\n      )\n    );\n  };\n\n  onStatusChange = (event) => {\n    const status = event.target.value;\n    this.setState({\n      status\n    });\n    this.props.dispatch(\n      saveServicesSearchChanges(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        this.state.searchParam,\n        status\n      )\n    );\n  };\n\n  render() {\n    const columns = [\n      {\n        Header: () => <BasicHeader header={\"Service Code\"} />,\n        accessor: \"code\",\n        width: 150,\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={\"Service Name\"} />,\n        accessor: \"name\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={\"Unit Length\"} />,\n        accessor: \"unitLength\",\n        width: 150,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Unit Rate\"} />,\n        accessor: \"unitRate\",\n        width: 150,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <Actions\n            actionId={row.original.serviceId}\n            onEdit={this.onEdit.bind(row.original.serviceId)}\n          />\n        ),\n        width: 50\n      }\n    ];\n\n    return (\n      <div className=\"table-layout\">\n        <div className=\"row col-12 header-container\">\n          <div className=\"row col-lg-8 col-sm-12\">\n            <span\n              className=\"col-lg-2 col-sm-12 title\"\n              style={{ cursor: \"default\" }}\n            >\n              Services\n            </span>\n            <span className=\"col-lg-1 col-sm-2 sub-title\">Search</span>\n            <div className=\"col-lg-4 col-sm-10 input-box\">\n              <input\n                type=\"text\"\n                className=\"box text-box search-icon\"\n                value={this.state.searchParam}\n                onChange={this.onSearch}\n                onKeyDown={this.onPressEnter}\n                placeholder={\"Service Name\"}\n              />\n            </div>\n          </div>\n          <div className=\"col-lg-2 col-sm-6\">\n            <button className=\"button basic\" onClick={this.onImportServices}>\n              <span className=\"text\">IMPORT SERVICES</span>\n            </button>\n          </div>\n          <div className=\"col-lg-2 col-sm-6\">\n            <button className=\"button submit\" onClick={this.onCreateNewService}>\n              <span className=\"text\">CREATE NEW</span>\n            </button>\n          </div>\n        </div>\n\n        <div className=\"body-container\">\n          <div className=\"row list-container\">\n            <div className=\"col-lg-3 col-md-4 col-sm-6\">\n              <span className=\"list-header\">Services</span>\n            </div>\n            <div className=\"col-lg-3 offset-lg-3 col-md-4 col-12\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onStatusChange}\n                value={this.state.status}\n              >\n                <option value=\"0\">All Services</option>\n                <option value=\"4\">Active Services</option>\n                <option value=\"5\">Inactive Services</option>\n              </select>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-6\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onFilterChange}\n                value={this.state.filter}\n              >\n                <option value=\"all\">All Services</option>\n                <option value=\"recent\">Recently Added</option>\n              </select>\n            </div>\n          </div>\n\n          <div className=\"data-grid-container\">\n            {!isMobileDevice() && (\n              <div className=\"row\">\n                <div className=\"col-12\">\n                  <DataGrid\n                    data={this.state.services}\n                    columns={columns}\n                    onRowClick={(rowInfo) => {\n                      // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                    }}\n                    onPageSizeChange={this.onPageSizeChange}\n                    onPageNumberChange={this.onPageChange}\n                    total={this.state.totalServices}\n                    paginationLabel={\"Clients per page\"}\n                    showPagination={true}\n                    pageSize={this.state.pageSize}\n                    pageNumber={this.state.pageNumber}\n                  />\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && (\n              <div className=\"row\" style={{ margin: 10 }}>\n                {map(this.state.clients, (client) => {\n                  return (\n                    <ServiceCard\n                      client={client}\n                      onDetails={(id) => {\n                        this.onDetails(id);\n                      }}\n                    />\n                  );\n                })}\n                <div className=\"row pagination pagination-align\">\n                  <div className=\"col-12\">\n                    <Pagination\n                      onPageSizeChange={this.onPageSizeChange}\n                      label={\"Clients per page\"}\n                      onPageNumberChange={this.onPageChange}\n                      total={this.state.totalClients}\n                      pageSize={this.state.pageSize}\n                      pageNumber={this.state.pageNumber}\n                    />\n                  </div>\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && this.state.clients.length === 0 && (\n              <div className=\"row\">\n                <div className=\"col-12 text-center\">\n                  <span>No Clients</span>\n                </div>\n              </div>\n            )}\n\n\n          </div>\n        </div>\n\n        {this.state.openModal && (\n          <PopUpModal\n            show={this.state.openModal}\n            onClose={() => {\n              this.setState({ openModal: false });\n            }}\n            title={this.state.isEdit ? \"Edit Service\" : \"Create Service\"}\n            icon={\"/images/clipboard.png\"}\n            size={\"lg\"}\n          >\n            <ServiceCreateUpdate\n              onSubmit={this.handleServiceAddUpdate}\n              initialValues={this.state.initialValues}\n              isEdit={this.state.isEdit}\n              onCloseModal={() => {\n                this.setState({ openModal: false });\n              }}\n              isOverlappable={this.state.isOverlappable}\n              onOverlapable={(val) => {\n                this.setState({\n                  isOverlappable: val\n                });\n              }}\n              isDegreeRequired={this.state.isDegreeRequired}\n              onDegreeRequired={(value) => {\n                this.setState({ isDegreeRequired: value });\n              }}\n\n            />\n          </PopUpModal>\n        )}\n\n\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  clients: state.client.getAllSuccess,\n  clientsError: state.client.getAllFail,\n  searchConfig: state.config.clientSearch\n});\n\nexport default withRouter(connect(mapStateToProps)(Services));\n","import Clients from \"../../clients/clients\";\nimport Staff from \"../../staff/staff\";\nimport SupportCoordinator from \"../../support-cordinator/support-cordinator\";\nimport WorkEntry from \"../../work-entries/workEntries\";\nimport Reports from \"../../reports/billingReport\";\nimport Services from \"../../services/services\";\n\nexport default [\n  {\n    name: \"CLIENTS\",\n    url: \"admin/clients\",\n    component: Clients,\n    isSideBarNavigation: true,\n    authUsers: [1, 0],\n    icon: \"./images/users.svg\",\n    selectedIcon: \"./images/users-selected.svg\"\n  },\n  {\n    name: \"SERVICES\",\n    url: \"admin/services\",\n    component: Services,\n    isSideBarNavigation: true,\n    authUsers: [1, 0],\n    icon: \"./images/clipboard-grey.svg\",\n    selectedIcon: \"./images/clipboard-green.svg\"\n  },\n  {\n    name: \"STAFF\",\n    url: \"admin/staff\",\n    component: Staff,\n    isSideBarNavigation: true,\n    authUsers: [1, 0],\n    icon: \"./images/book.svg\",\n    selectedIcon: \"./images/book-selected.svg\"\n  },\n  {\n    name: \"SUPPORTS COORDINATOR\",\n    url: \"admin/support-coordinator\",\n    component: SupportCoordinator,\n    isSideBarNavigation: true,\n    authUsers: [1, 0],\n    icon: \"./images/zap-not.svg\",\n    selectedIcon: \"./images/zap.svg\"\n  },\n  {\n    name: \"WORK ENTRIES\",\n    url: \"admin/work-entries\",\n    component: WorkEntry,\n    isSideBarNavigation: true,\n    authUsers: [1, 0],\n    icon: \"./images/file-plus.svg\",\n    selectedIcon: \"./images/file-plus-selected.svg\"\n  },\n  {\n    name: \"REPORTS\",\n    url: \"admin/reports\",\n    component: Reports,\n    isSideBarNavigation: true,\n    authUsers: [1, 0],\n    icon: \"./images/reports.svg\",\n    selectedIcon: \"./images/reports-selected.svg\"\n  },\n  {\n    name: \"VISITS\",\n    url: \"staff/visits\",\n    component: WorkEntry,\n    isSideBarNavigation: true,\n    authUsers: [2],\n    icon: \"./images/file-plus.svg\",\n    selectedIcon: \"./images/file-plus-selected.svg\"\n  },\n  {\n    name: \"REPORTS\",\n    url: \"staff/reports\",\n    component: Reports,\n    isSideBarNavigation: true,\n    authUsers: [2],\n    icon: \"./images/reports.svg\",\n    selectedIcon: \"./images/reports.svg\"\n  }\n];\n","import React from \"react\";\n\nconst Pagination = ({ itemsPerPage, totalItems, currentPage, onPageClick }) => {\n  const totalPages = Math.ceil(totalItems / itemsPerPage);\n\n  const getPageRange = () => {\n    const startPage = Math.max(1, currentPage - Math.floor(itemsPerPage / 2));\n    const endPage = Math.min(totalPages, startPage + itemsPerPage - 1);\n    const pages = [...Array(endPage - startPage + 1)].map(\n      (_, i) => startPage + i\n    );\n\n    return pages;\n  };\n\n  return (\n    <div className=\"cont-pagination\">\n      <div className=\"cont-page\">\n        <div className=\"cont-arrows\">\n          <img\n            src={\"./images/chevron-left.svg\"}\n            style={{ height: 24 }}\n            onClick={(e) => {\n              if (currentPage !== 1) {\n                onPageClick(e, currentPage - 1);\n              }\n            }}\n          />\n        </div>\n\n        <div className=\"cont-numbers\">\n          {getPageRange().map((number, i) => {\n            return (\n              <div\n                className={\n                  number === currentPage\n                    ? \"numbers numbers-selected\"\n                    : \"numbers\"\n                }\n                key={i}\n                selected={number === currentPage}\n                onClick={(event) => onPageClick(event, number)}\n              >\n                {number}\n              </div>\n            );\n          })}\n        </div>\n\n        <div className=\"cont-arrows\">\n          <img\n            src={\"./images/chevron-right.svg\"}\n            style={{ height: 24 }}\n            onClick={(e) => {\n              if (currentPage < totalPages) {\n                onPageClick(e, currentPage + 1);\n              }\n            }}\n          />\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default Pagination;\n","import React from \"react\";\nimport \"./serviceSummary.scss\";\n\nexport const ServiceSummaryMobile = ({ data }) => {\n  return (\n    <div>\n      {data.map((item, i) => {\n        return (\n          <div className=\"card-sm\">\n            <div>\n              <div className=\"titles-sm\">Service Code</div>\n              <div className=\"text-sm\">{item.serviceCode}</div>\n            </div>\n\n            <div>\n              <div className=\"titles-sm\">Service End Date</div>\n              <div className=\"text-sm\">{item.serviceEndDate}</div>\n            </div>\n\n            <div />\n\n            <div>\n              <div className=\"titles-sm\">Unit Rate</div>\n              <div className=\"text-sm\">{item.serviceUnitRate}</div>\n            </div>\n\n            <div>\n              <div className=\"titles-sm\">Unit Length</div>\n              <div className=\"text-sm\">{item.serviceUnitLength}</div>\n            </div>\n\n            <div>\n              <div className=\"titles-sm\">Units Authorized</div>\n              <div className=\"text-sm\">{item.serviceUnitsAuthorized}</div>\n            </div>\n\n            <div>\n              <div className=\"titles-sm\">Units Utilized</div>\n              <div className=\"text-sm\">{item.unitsUtilized}</div>\n            </div>\n\n            <div>\n              <div className=\"titles-sm\">Units Remaining</div>\n              <div className=\"text-sm\">{item.unitsRemaining}</div>\n            </div>\n\n            <div>\n              <div className=\"titles-sm\">Allow Negative U.</div>\n              <div className=\"text-sm\">{item.serviceUnitsAuthorized}</div>\n            </div>\n          </div>\n        );\n      })}\n    </div>\n  );\n};\n","import React from \"react\";\nimport moment from \"moment\";\n\nexport const ServiceDataTable = ({ data }) => {\n  return (\n    <div className=\"table-container\">\n      <div className=\"grid\">\n        <div className=\"headers\">Service Name</div>\n        <div className=\"headers\">Service Code</div>\n        <div className=\"headers\">Unit Length</div>\n        <div className=\"headers\">Service Begin Date</div>\n        <div className=\"headers\">Service End Date</div>\n        <div className=\"headers\">Units Authorized</div>\n        <div className=\"headers\">Allow Negative Units</div>\n        <div className=\"headers\">Units Utilized</div>\n        <div className=\"headers\">Units Remaining</div>\n      </div>\n\n      {data.map((item, i) => {\n        return (\n          <div>\n            <div className=\"grid\" key={i}>\n              <div className=\"content\">{item.serviceName}</div>\n              <div className=\"content\">{item.serviceCode}</div>\n              <div className=\"content\">{item.serviceUnitLength}</div>\n              <div className=\"content\">\n                {moment(item.serviceStartDate).format(\"MM/DD/YYYY\")}\n              </div>\n              <div className=\"content\">\n                {moment(item.serviceEndDate).format(\"MM/DD/YYYY\")}\n              </div>\n              <div className=\"content\">{item.serviceUnitsAuthorized}</div>\n              <div className=\"content\">\n                {item.serviceIsNegetiveUnitsAllowed ? \"Yes\" : \"No\"}\n              </div>\n              <div className=\"content\">{item.unitsUtilized}</div>\n              <div className=\"content\">{item.unitsRemaining}</div>\n            </div>\n          </div>\n        );\n      })}\n    </div>\n  );\n};\n","import React, { useEffect, useState } from \"react\";\nimport \"./serviceSummary.scss\";\nimport Pagination from \"./pagination\";\nimport { isMobileDevice } from \"../../../../util/deviceType\";\nimport { ServiceSummaryMobile } from \"./serviceSummaryMobile\";\nimport { getServiceSummary } from \"../../../../api/report\";\nimport { ServiceDataTable } from \"./serviceDataTable\";\n\nexport const ServiceSummary = () => {\n  const [services, setServices] = useState({});\n  const [currentPage, setCurrentPage] = useState(1);\n  const [searchValue, setSearchValue] = useState(\"\");\n\n  const itemsPerPage = 3;\n  const indexOfLastItem = currentPage * itemsPerPage;\n  const indexOfFirstItem = indexOfLastItem - itemsPerPage;\n\n  const handlePageClick = (event, pageNumber) => {\n    setCurrentPage(pageNumber);\n  };\n\n  const filteredServices = Object.entries(services).reduce(\n    (result, [clientName, servicesArray]) => {\n      const filteredArray = servicesArray.filter((service) => {\n        return service.clientName\n          .toLowerCase()\n          .includes(searchValue.toLowerCase());\n      });\n\n      if (filteredArray.length > 0) {\n        result[clientName] = filteredArray;\n      }\n\n      return result;\n    },\n    {}\n  );\n\n  const currentItems = Object.keys(filteredServices).slice(\n    indexOfFirstItem,\n    indexOfLastItem\n  );\n\n  const fetch = () => {\n    getServiceSummary()\n      .then((res) => {\n        if (res.data) {\n          const temp = {};\n\n          for (const objet of res.data) {\n            const clientName = objet.clientName;\n\n            if (!temp[clientName]) {\n              temp[clientName] = [];\n            }\n\n            temp[clientName].push(objet);\n          }\n\n          setServices(temp);\n        }\n      })\n      .catch((e) => {\n        console.log(\"staff_Pay error\", e);\n      });\n  };\n\n  useEffect(() => {\n    fetch();\n  }, []);\n\n  return (\n    <div div className=\"table-layout\">\n      <div className=\"col-lg-6 col-sm-12 page-title\">Reports</div>\n\n      <div className=\"cont-service-title\">\n        <span>Service Summary Report</span>\n        <img\n          src=\"./images/refresh-icon.svg\"\n          style={{ height: \"20px\" }}\n          onClick={fetch}\n        />\n      </div>\n\n      <>\n        {currentItems.length === 0 ? (\n          <div className=\"row\">\n            <div className=\"col-12 text-center\" style={{ margin: 10 }}>\n              <span>No rows found </span>\n            </div>\n          </div>\n        ) : (\n          currentItems.map((clientName) => (\n            <>\n              <div\n                className={\n                  isMobileDevice() ? \"cont-client-name-sm\" : \"cont-client-name\"\n                }\n              >\n                {clientName}\n              </div>\n\n              {!isMobileDevice() ? (\n                <ServiceDataTable data={services[clientName]} />\n              ) : (\n                <ServiceSummaryMobile data={services[clientName]} />\n              )}\n            </>\n          ))\n        )}\n\n        <Pagination\n          itemsPerPage={itemsPerPage}\n          totalItems={Object.keys(filteredServices).length}\n          currentPage={currentPage}\n          onPageClick={handlePageClick}\n        />\n      </>\n    </div>\n  );\n};\n","import React, { useEffect, useState } from \"react\";\nimport moment from \"moment\";\nimport { DATE_TIME_FORMAT } from \"../../../constants/appConstants\";\nimport Pagination from \"./pagination/pagination\";\nimport \"./table.scss\";\nfunction Table(props) {\n  const { data, pageNumber } = props;\n  let processedData = data.map((row) => {\n    return { ...row, isVisible: false };\n  });\n  const [newData, setData] = useState([...processedData]);\n  useEffect(() => {\n    let processedData = data.map((row) => {\n      return { ...row, isVisible: false };\n    });\n    setData([...processedData]);\n  }, data);\n  function handleClick(index) {\n    let data = newData;\n    data[index].isVisible = !data[index].isVisible;\n\n    setData([...data]);\n  }\n  function onPageSizeChange(pageSize) {\n    props.onPageSizeChange(parseInt(pageSize));\n  }\n  return (\n    <>\n      <div className=\"Table\" style={{ border: 0 }}>\n        <div\n          className=\"custom-header\"\n          style={{\n            display: \"flex\",\n            flexDirection: \"row\",\n            justifyContent: \"space-between\",\n          }}\n        >\n          <div style={{ width: 150 }}>Date</div>\n          <div style={{ width: 125 }}>Client</div>\n          <div style={{ width: 120 }}>Service Code</div>\n          <div style={{ width: 150 }}>Start</div>\n          <div style={{ width: 150 }}>End</div>\n          <div style={{ width: 50 }}>Pay</div>\n          <div\n            style={{\n              width: 100,\n              display: \"flex\",\n              justifyContent: \"center\",\n            }}\n          >\n            <span>Notes</span>\n          </div>\n        </div>\n        {newData.map((row, index) => {\n          return (\n            <>\n              <div\n                className=\"cell rt-tr-group\"\n                key={`key-${index}`}\n                style={{\n                  backgroundColor:\n                    index % 2 === 0\n                      ? \"rgb(250, 250, 250)\"\n                      : \"rgb(255, 255, 255)\",\n                  display: \"flex\",\n                  flexDirection: \"row\",\n                  justifyContent: \"space-between\",\n                  textOverflow: \"ellipsis\",\n                  overflow: \"hidden\",\n                  // whiteSpace: \"nowrap\",\n                }}\n              >\n                <div style={{ width: 150 }}>\n                  {moment(row.createdDate).format(\"MM/DD/YYYY\")}\n                </div>\n                <div style={{ width: 125 }}>{row.clientName}</div>\n                <div style={{ width: 100 }}>{row.serviceCode}</div>\n                <div style={{ width: 150 }}>\n                  {moment(row.startTime).format(DATE_TIME_FORMAT).toUpperCase()}\n                </div>\n                <div style={{ width: 150 }}>\n                  {moment(row.endTime).format(DATE_TIME_FORMAT).toUpperCase()}\n                </div>\n                <div style={{ width: 100 }}>{`${row.netAmount.toFixed(\n                  2\n                )}`}</div>\n                <div\n                  onClick={() => handleClick(index)}\n                  style={{\n                    width: 50,\n                  }}\n                >\n                  <div\n                    style={{\n                      display: \"flex\",\n                      flexDirection: \"row\",\n                      justifyContent: \"space-between\",\n                    }}\n                  >\n                    {/* {!row.isVisible && row.notes !== \"\" && (\n                      <div\n                        style={{\n                          textOverflow: \"ellipsis\",\n                          overflow: \"hidden\",\n                          whiteSpace: \"nowrap\",\n                        }}\n                      >\n                        {row.notes}\n                      </div>\n                    )} */}\n                    <div>\n                      {row.isVisible && row.notes !== \"\" && (\n                        <img\n                          src=\"./images/sort-up.png\"\n                          style={{ height: 10 }}\n                          alt=\"\"\n                        />\n                      )}\n                      {!row.isVisible && row.notes !== \"\" && (\n                        <img\n                          src=\"./images/sort-down.png\"\n                          style={{ height: 10 }}\n                          alt=\"\"\n                        />\n                      )}\n                    </div>\n                  </div>\n                </div>\n              </div>\n              {row.isVisible && (\n                <div\n                  className=\"\"\n                  key={`key-${index}`}\n                  style={{\n                    display: \"flex\",\n                    justifyContent: \"flex-start\",\n                  }}\n                >\n                  <div>{row.notes}</div>\n                </div>\n              )}\n            </>\n          );\n        })}\n        <div className=\"row pagination pagination-align\">\n          <div className=\"col-12\">\n            {props.showPagination && (\n              <Pagination\n                onPageSizeChange={onPageSizeChange}\n                label={props.paginationLabel}\n                onPageNumberChange={props.onPageNumberChange}\n                total={props.total}\n                pageNumber={pageNumber}\n                pageSize={props.pageSize}\n              />\n            )}\n          </div>\n        </div>\n      </div>\n    </>\n  );\n}\nexport default Table;\n","import React from \"react\";\nimport moment from \"moment\";\nimport { DATE_TIME_FORMAT } from \"../../constants/appConstants\";\n\nconst style = {\n  color: \"#5B6576\",\n  fontFamily: \"Muli\",\n  fontSize: 15,\n  fontWeight: \"bold\",\n  letterSpacing: 0,\n\n  lineHeight: 2,\n};\nconst contentStyle = {\n  color: \"#333333\",\n  fontFamily: \"Muli\",\n  fontSize: 13,\n  letterSpacing: 0,\n  lineHeight: 1,\n};\n\nfunction StaffPayCard(props) {\n  const row = props.data;\n  return (\n    <div className=\"col-12 visit-card\">\n      <div className=\"row\">\n        <div className=\"col-6\">\n          <div className=\"col-12\" style={style}>\n            Date\n          </div>\n          <div\n            className=\"col-12 \"\n            style={{ wordBreak: \"break-word\", ...contentStyle }}\n          >\n            {moment(row.createdDate).format(DATE_TIME_FORMAT)}\n          </div>\n        </div>\n        <div className=\"col-6\">\n          <div className=\"col-12\" style={style}>\n            Client\n          </div>\n          <div\n            className=\"col-12 \"\n            style={{ wordBreak: \"break-word\", ...contentStyle }}\n          >\n            {row.clientName}\n          </div>\n        </div>\n      </div>\n\n      <div className=\"row\">\n        <div className=\"col-6\">\n          <div className=\"col-12 \" style={style}>\n            Service Code\n          </div>\n          <div\n            className=\"col-12 \"\n            style={{ wordBreak: \"break-word\", ...contentStyle }}\n          >\n            {row.serviceCode}\n          </div>\n        </div>\n        <div className=\"col-6\">\n          <div className=\"col-12\" style={style}>\n            Start\n          </div>\n          <div\n            className=\"col-12 \"\n            style={{ wordBreak: \"break-word\", ...contentStyle }}\n          >\n            {moment(row.startTime).format(DATE_TIME_FORMAT)}\n          </div>\n        </div>\n      </div>\n      <div className=\"row\">\n        <div className=\"col-6\">\n          <div className=\"col-12\" style={style}>\n            End\n          </div>\n          <div\n            className=\"col-12 \"\n            style={{ wordBreak: \"break-word\", ...contentStyle }}\n          >\n            {moment(row.endTime).format(DATE_TIME_FORMAT)}\n          </div>\n        </div>\n        <div className=\"col-6\">\n          <div className=\"col-12\" style={style}>\n            Pay\n          </div>\n          <div\n            className=\"col-12 \"\n            style={{ wordBreak: \"break-word\", ...contentStyle }}\n          >\n            {row.netAmount}\n          </div>\n        </div>\n      </div>\n      <hr className=\"body-line\" />\n      <div className=\"row\">\n        <div\n          className=\"col-12\"\n          style={{ ...style, marginLeft: 10, marginTop: 5 }}\n        >\n          Notes\n        </div>\n\n        <div\n          className=\"col-12 \"\n          style={{\n            wordBreak: \"break-word\",\n            margin: 10,\n            marginTop: 1,\n            ...contentStyle,\n          }}\n        >\n          {row.notes}\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default StaffPayCard;\n","import React, { useState, useEffect } from \"react\";\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport Table from \"../../shared/data-grid/table\";\nimport { getAuthData } from \"../../../util/auth\";\nimport { withRouter } from \"react-router-dom\";\nimport moment from \"moment\";\nimport \"./staffReports.scss\";\nimport { generateReport, getStaffPayReport } from \"../../../api/report\";\nimport {\n  DATEFILTEROPTIONS,\n  REPORT_TYPES\n} from \"../../../constants/appConstants\";\nimport { isMobileDevice } from \"../../../util/deviceType\";\nimport StaffPayCard from \"../../staff/staffPayCard\";\nimport { map } from \"lodash\";\nimport Pagination from \"../../shared/data-grid/pagination/pagination\";\nimport DatePickerComponent from \"../../shared/date-picker/datePickerComponent\";\n\nfunction StaffReports() {\n  const [value, setValue] = useState([null, null]);\n  const [state, setState] = useState({\n    value: [null, null],\n    reportType: REPORT_TYPES.STAFF_PAY,\n    reviewStatus: \"all\",\n    pageNumber: 0,\n    pageSize: 10,\n    dateRangeOption: DATEFILTEROPTIONS.CREATED,\n    fromDate: new Date(new Date().setDate(new Date().getDate() - 7)).setHours(\n      0,\n      0,\n      0,\n      0\n    ),\n    toDate: new Date().setHours(0, 0, 0, 0),\n    clientId: -1,\n    serviceId: -1,\n    staffId: \"\",\n    showCalender: false,\n    showChart: false,\n    data: [],\n    recordCount: 0,\n    stats: null,\n    buttonBackground: \"rgb(183, 182, 182)\"\n  });\n\n  useEffect(() => {\n    const staffId = JSON.parse(getAuthData()).userId;\n    if (staffId != null) {\n      setState((obj) => {\n        return { ...obj, staffId: staffId };\n      });\n    }\n  }, []);\n\n  useEffect(() => {\n    onGenerateReport(0, 10);\n  }, [state.staffId, state.fromDate, state.toDate]);\n\n  function onGenerateReport(offset, limit) {\n    const fromDate = moment.utc(state.fromDate).format(\"YYYY-MM-DD HH:mm:ss\");\n    const toDate = moment.utc(state.toDate).format(\"YYYY-MM-DD HH:mm:ss\");\n\n    console.log(\">>> state.fromDate: \", fromDate);\n    console.log(\">>> state.toDate: \", toDate);\n\n\n    if (state.fromDate !== null && state.toDate !== null) {\n      getStaffPayReport(\n        state.reportType,\n        state.reviewStatus,\n        fromDate,\n        toDate,\n        state.dateRangeOption,\n        state.clientId,\n        state.staffId,\n        state.serviceId,\n        offset,\n        limit\n      )\n        .then((res) => {\n          if (res.data.data !== null) {\n            setState((values) => {\n              return {\n                ...values,\n                data: res.data.data,\n                stats: res.data.stats,\n                recordCount: res.recordCount\n              };\n            });\n          } else {\n            setState({ ...state, data: [] });\n          }\n        })\n        .catch((e) => {\n          console.log(\"staff_Pay error\", e);\n        });\n    }\n  }\n\n  function onPageChange(pageNumber) {\n    let limit = parseInt(state.pageSize);\n    let offset = limit * pageNumber;\n    onGenerateReport(offset, limit);\n    setState((values) => {\n      return { ...values, pageNumber: pageNumber };\n    });\n  }\n\n  function onPageSizeChange(pageSize) {\n    setState({\n      ...state,\n      pageNumber: 0,\n      pageSize: pageSize\n    });\n    onGenerateReport(0, parseInt(pageSize));\n  }\n\n  const onFromDateChange = (date) => {\n    setState((values) => {\n      return { ...values, fromDate: date };\n    });\n  };\n\n  const onToDateChange = (date) => {\n    setState((values) => {\n      return { ...values, toDate: date };\n    });\n  };\n\n  return (\n    <div className=\"table-layout\">\n      <div className=\"row report-type-selector\">\n        <div className=\"col-lg-2 col-md-2 col-sm-3\">\n          <div className=\"page-title\">Reports</div>\n        </div>\n      </div>\n\n      <div className=\"body-container\" style={{ margin: \"20px 0\" }}>\n        <div className=\"list-container\">\n          <div>\n            <div className=\"list-header\">Staff Pay Summary</div>\n          </div>\n        </div>\n\n        <hr className=\"body-line\" />\n        <div className=\"data-grid-container\">\n          <div>\n\n            <div className=\"row\" style={{ marginBottom: 0 }}>\n              <div className=\"col-lg-2 col-sm-12 input-box\" style={{ marginBottom: 0 }}>\n                <div className=\"label\">From Date</div>\n                <DatePickerComponent\n                  selected={state.fromDate}\n                  onChange={onFromDateChange}\n                  dateFormat={\"MM/DD/YYYY\"}\n                  className={\"box text-box calendar-icon\"}\n                  maxDate={new Date()}\n                  style={{ marginBottom: 0 }}\n                />\n              </div>\n              <div className=\"col-lg-2 col-sm-12 input-box\" style={{ marginBottom: 0 }}>\n                <div className=\"label\">To Date</div>\n                <DatePickerComponent\n                  selected={state.toDate}\n                  onChange={onToDateChange}\n                  dateFormat={\"MM/DD/YYYY\"}\n                  className={\"box text-box calendar-icon\"}\n                  minDate={state.fromDate}\n                  maxDate={new Date()}\n                  style={{ marginBottom: 0 }}\n                />\n              </div>\n            </div>\n\n            {isMobileDevice() && (\n              <div style={{ display: \"flex\", justifyContent: \"center\" }}>\n                <button\n                  className=\"  col-sm-3  button submit\"\n                  style={{\n                    height: 38,\n                    marginTop: 5,\n                    width: \"50%\",\n                    backgroundColor: state.buttonBackground\n                  }}\n                  onClick={() => {\n                    onGenerateReport(0, state.pageSize);\n                  }}\n                >\n                  VIEW\n                </button>\n              </div>\n            )}\n          </div>\n          {state.stats !== null && (\n            <div style={{ margin: 10 }}>\n              <div className=\" pay-label\">\n                <p className=\"text\">\n                  {`Total to pay for this week: ${state.stats.totalNet.toFixed(\n                    2\n                  )}`}\n                </p>\n              </div>\n            </div>\n          )}\n          {!isMobileDevice() &&\n            (state.data.length > 0 ? (\n              <Table\n                data={state.data}\n                showPagination={true}\n                pageNumber={state.pageNumber}\n                pageSize={state.pageSize}\n                onPageSizeChange={(pageSize) => onPageSizeChange(pageSize)}\n                onPageNumberChange={(pageNumber) => onPageChange(pageNumber)}\n                paginationLabel={\"Staff pay per page\"}\n                total={state.recordCount}\n              />\n            ) : (\n              <DataGrid\n                data={[]}\n                columns={[]}\n                onRowClick={(rowInfo) => {\n                }}\n                paginationLabel={\"Staff pay per page\"}\n                showPagination={false}\n              />\n            ))}\n          {isMobileDevice() && state.data.length > 0 && (\n            <div className=\"row\" style={{ margin: 10 }}>\n              {map(state.data, (data, index) => {\n                return <StaffPayCard key={`staff-${index}`} data={data} />;\n              })}\n              <div className=\"row pagination pagination-align\">\n                <div className=\"col-12\">\n                  <Pagination\n                    onPageSizeChange={onPageSizeChange}\n                    label={\"Staff pay per page\"}\n                    onPageNumberChange={onPageChange}\n                    total={state.recordCount}\n                    pageSize={state.pageSize}\n                    pageNumber={state.pageNumber}\n                  />\n                </div>\n              </div>\n            </div>\n          )}\n\n          {isMobileDevice() && state.data.length === 0 && (\n            <div className=\"row\">\n              <div className=\"col-12 text-center\" style={{ margin: 10 }}>\n                <span>No rows found </span>\n              </div>\n            </div>\n          )}\n        </div>\n      </div>\n    </div>\n  )\n    ;\n}\n\nexport default withRouter(StaffReports);\n","import { ServiceSummary } from \"../../reports/report-views/serviceSummary/serviceSummary\";\nimport staffReports from \"../../reports/report-views/staffReports\";\n\nexport default [\n  {\n    name: \"STAFF PAY SUMMARY\",\n    url: \"staff/reports\",\n    component: staffReports,\n    isSideBarNavigation: true,\n    authUsers: [2],\n    icon: \"./images/dollar-sign.svg\",\n    selectedIcon: \"./images/dollar-sign-selected.svg\",\n  },\n  {\n    name: \"SERVICE SUMMARY\",\n    url: \"service/reports\",\n    component: ServiceSummary,\n    isSideBarNavigation: true,\n    authUsers: [2],\n    icon: \"./images/users.svg\",\n    selectedIcon: \"./images/users-selected.svg\",\n  },\n];\n","import * as React from \"react\";\nimport \"./side-navigation.scss\";\nimport { withRouter } from \"react-router-dom\";\nimport menuItems from \"./menu\";\nimport { includes, map } from \"lodash\";\nimport { getAuth } from \"../../../util/auth\";\nimport { resetSearchConfigs } from \"../../../redux/config/configAction\";\nimport { connect } from \"react-redux\";\nimport menuReports from \"./menuReports\";\n\nclass SideNavigation extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      selected: \"clients\",\n      expanded: false,\n    };\n  }\n\n  onMenuChange = (selectedMenu) => {\n    this.setState({\n      selected: selectedMenu,\n    });\n    this.props.dispatch(resetSearchConfigs());\n    this.props.history.push(`/${selectedMenu}`);\n  };\n\n  render() {\n    return (\n      <aside\n        className=\"main-sidebar sidebar-light-primary\"\n        style={{\n          marginTop: 60,\n          zIndex: 10,\n          boxShadow: \"5px 5px 25px 0 rgba(179,179,179,0.2)\",\n        }}\n      >\n        <nav className=\"mt-2\" style={{ marginTop: \"5rem\" }}>\n          <ul\n            className=\"nav nav-pills nav-sidebar flex-column\"\n            data-widget=\"treeview\"\n            role=\"menu\"\n            data-accordion=\"false\"\n          >\n            <li\n              className=\"nav-item\"\n              style={{ cursor: \"pointer\" }}\n              onClick={() => {\n                document.body.classList.toggle(\n                  \"sidebar-collapse\",\n                  !this.state.expanded\n                );\n                if (document.body.classList.contains(\"sidebar-open\")) {\n                  document.body.classList.remove(\"sidebar-open\");\n                  document.body.classList.add(\"sidebar-closed\");\n                } else {\n                  document.body.classList.add(\"sidebar-open\");\n                  document.body.classList.remove(\"sidebar-closed\");\n                }\n                this.setState({ expanded: !this.state.expanded });\n              }}\n            >\n              {/*<a*/}\n              {/*    className=\"nav-link\"*/}\n              {/*    data-widget=\"pushmenu\"*/}\n              {/*    href=\"#\"*/}\n              {/*    role=\"button\"*/}\n              {/*    */}\n              {/*>*/}\n              {/*    <i className=\"fas fa-bars\"></i>*/}\n              {/*</a>*/}\n              <div className=\"nav-link\" style={{ marginBottom: 30 }}>\n                <i>\n                  {this.state.expanded && (\n                    <img\n                      src={\"./images/chevron-right-green.svg\"}\n                      alt=\"\"\n                      style={{ marginLeft: -5 }}\n                    />\n                  )}\n                  {!this.state.expanded && (\n                    <img\n                      src={\"./images/chevron-left-green.svg\"}\n                      alt=\"\"\n                      style={{ marginLeft: -5 }}\n                    />\n                  )}\n                  <img\n                    src={\"./images/menu-green.svg\"}\n                    alt=\"\"\n                    style={{ marginLeft: -5 }}\n                  />\n                </i>\n              </div>\n            </li>\n            {map(menuItems, (item) => {\n              if (includes(item.authUsers, getAuth().userType)) {\n                return (\n                  <>\n                    <li\n                      className=\"nav-item\"\n                      style={{ height: 64 }}\n                      key={item.name}\n                      onClick={() => {\n                        this.onMenuChange(item.url);\n                      }}\n                    >\n                      <div className=\"nav-link\">\n                        <div className=\"row\">\n                          <div className=\"col-1\">\n                            <i>\n                              <img\n                                src={\n                                  this.state.selected === item.url\n                                    ? item.selectedIcon\n                                    : item.icon\n                                }\n                                alt=\"\"\n                              />\n                            </i>\n                          </div>\n                          <div className=\"col-11\">\n                            <p\n                              className=\"nav-bar-item\"\n                              style={\n                                this.state.selected === item.url &&\n                                item.url !== \"staff/reports\"\n                                  ? { color: \"#35cc62\" }\n                                  : { color: \"#b0b9c9\" }\n                              }\n                            >\n                              {\" \"}\n                              {item.name}{\" \"}\n                            </p>\n                          </div>\n                        </div>\n                      </div>\n                    </li>\n                  </>\n                );\n              }\n            })}\n\n            {this.state.selected === \"staff/reports\" ||\n            this.state.selected === \"service/reports\" ? (\n              <>\n                {map(menuReports, (item) => {\n                  if (includes(item.authUsers, getAuth().userType)) {\n                    return (\n                      <>\n                        <li\n                          className=\"nav-item\"\n                          style={{ height: 64, marginLeft: \"2em\" }}\n                          key={item.name}\n                          onClick={() => {\n                            this.onMenuChange(item.url);\n                          }}\n                        >\n                          <div className=\"nav-link\">\n                            <div className=\"row\">\n                              <div className=\"col-1\">\n                                <i>\n                                  <img\n                                    src={\n                                      this.state.selected === item.url\n                                        ? item.selectedIcon\n                                        : item.icon\n                                    }\n                                    alt=\"\"\n                                  />\n                                </i>\n                              </div>\n                              <div className=\"col-11\">\n                                <p\n                                  className=\"nav-bar-item\"\n                                  style={\n                                    this.state.selected === item.url\n                                      ? { color: \"#35cc62\" }\n                                      : { color: \"#b0b9c9\" }\n                                  }\n                                >\n                                  {\" \"}\n                                  {item.name}{\" \"}\n                                </p>\n                              </div>\n                            </div>\n                          </div>\n                        </li>\n                      </>\n                    );\n                  }\n                })}\n              </>\n            ) : null}\n          </ul>\n        </nav>\n      </aside>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({});\nexport default withRouter(connect(mapStateToProps)(SideNavigation));\n","import * as React from \"react\";\nimport { Field } from \"redux-form\";\nimport {\n  inputField,\n  phoneNumberField,\n  renderDatePicker,\n  textField,\n} from \"../../../shared/form-fields/formFields\";\nimport {\n  validateClientFirstName,\n  validateClientLastName,\n  validateClientMiddleName,\n  validateFamilyContactEmail,\n  validateMCI,\n  validateMobileNumber,\n} from \"./clientValidator\";\nimport {\n  COUNTIES,\n  FUNDING_SOURCE_TYPE,\n  WAIVER_TYPES,\n} from \"../../../../constants/appConstants\";\nimport SearchableDropdown from \"../../../shared/searchable-dropdown\";\n\nclass ClientInfo extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      isAuthorized: false,\n      sc: [],\n      bs: [],\n      showOtherWaiver: false,\n      showOtherFundingSource: false,\n      waiverType: \"\",\n      customWaiver: \"\",\n      fundingSource: \"\",\n      customFunding: \"\",\n    };\n  }\n\n  componentDidMount() {\n    if (this.props.waiwer) {\n      this.checkOtherWaiverType(this.props.waiwer);\n    }\n  }\n\n  checkOtherWaiverType = (waiver) => {\n    let isSetWaiverType = false;\n    WAIVER_TYPES.map((w) => {\n      if (\n        w.type.toLowerCase() === waiver.toLowerCase() &&\n        waiver.toLowerCase() !== \"other\"\n      ) {\n        isSetWaiverType = true;\n      }\n    });\n    if (!isSetWaiverType) {\n      this.setState({\n        showOtherWaiver: true,\n        waiverType: \"Other\",\n      });\n    } else {\n      this.setState({\n        showOtherWaiver: false,\n        waiverType: waiver,\n      });\n    }\n  };\n\n  checkOtherFundingSource = (fundingSource) => {\n    let isSetFundingSource = false;\n    FUNDING_SOURCE_TYPE.map((w) => {\n      if (\n        w.type.toLowerCase() === fundingSource.toLowerCase() &&\n        fundingSource.toLowerCase() !== \"other\"\n      ) {\n        isSetFundingSource = true;\n      }\n    });\n    if (!isSetFundingSource) {\n      this.setState({\n        showOtherFundingSource: true,\n        fundingSource: \"Other\",\n      });\n    } else {\n      this.setState({\n        showOtherFundingSource: false,\n        fundingSource: fundingSource,\n      });\n    }\n  };\n\n  componentWillReceiveProps = (nextProps) => {\n    if (nextProps.waiwer !== this.props.waiwer && nextProps.waiwer) {\n      this.checkOtherWaiverType(nextProps.waiwer);\n    }\n    if (\n      nextProps.fundingSource !== this.props.fundingSource &&\n      nextProps.fundingSource\n    ) {\n      this.checkOtherFundingSource(nextProps.fundingSource);\n    }\n  };\n\n  onWaiverChange = (e) => {\n    const type = e.target.value;\n    if (type === \"Other\") {\n      this.setState({\n        showOtherWaiver: true,\n        waiverType: type,\n      });\n    } else {\n      this.setState({\n        waiverType: type,\n        showOtherWaiver: false,\n      });\n    }\n\n    this.props.onWaiwerChange(e);\n  };\n\n  onFundingSourceChange = (e) => {\n    const type = e.target.value;\n    if (type === \"Other\") {\n      this.setState({\n        showOtherFundingSource: true,\n        fundingSource: type,\n      });\n    } else {\n      this.setState({\n        showOtherFundingSource: false,\n        fundingSource: type,\n      });\n    }\n\n    this.props.onFundingSourceChange(e);\n  };\n\n  validatemiddlename = (variable_to_test) => {\n    // const re = /^[a-zA-Z0-9_]+$/;\n    // re.test(variable_to_test);\n    // if (re.test) {\n    //   return variable_to_test;\n    // } else {\n    //   return undefined;\n    // }\n    return \"yes\";\n  };\n\n  render() {\n    let today = new Date();\n\n    return (\n      <div>\n        <div className=\"row\">\n          <span className=\"form-title\">Client Information</span>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">First Name</div>\n            <Field\n              name=\"firstName\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"First Name\"}\n              required={false}\n              validate={validateClientFirstName}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Middle Name</div>\n            <Field\n              name=\"middleName\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Middle Name\"}\n              required={false}\n              pattern=\"^[a-zA-Z0-9]+$\"\n              validate={validateClientMiddleName}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Last Name</div>\n            <Field\n              name=\"lastName\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Last Name\"}\n              required={false}\n              validate={validateClientLastName}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Birth Date</div>\n            <Field\n              name=\"dob\"\n              component={renderDatePicker}\n              type=\"text\"\n              placeholder={\"Select\"}\n              required={true}\n              maxDate={new Date()}\n              //   validate={validateEmail}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">MCI</div>\n            <Field\n              name=\"mci\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"MCI\"}\n              required={true}\n              validate={validateMCI}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">MPI Number</div>\n            <Field\n              name=\"mpi\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"MPI Number\"}\n              required={false}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Diagnostic Code</div>\n            <Field\n              name=\"diagnosticCode\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Diagnostic Code\"}\n              required={false}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Supports Coordinator</div>\n            <SearchableDropdown\n              options={this.props.supportCoordinatorsList}\n              value={this.props.supportCoordinator}\n              defaultValue={0}\n              keyIdentifier=\"scId\"\n              valueIdentifier=\"name\"\n              placeholder=\"Select Supports Coordinator\"\n              onChange={this.props.onSupportCoordinatorSelect}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Behavioral Specialist</div>\n            <SearchableDropdown\n              options={this.props.behavioralSpecialistsList}\n              value={this.props.behavioralSpecialist}\n              defaultValue={0}\n              keyIdentifier=\"userId\"\n              valueIdentifier=\"name\"\n              placeholder=\"Select Behavioral Specialist\"\n              onChange={this.props.onBehavioralSpecialistSelect}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">County</div>\n            <SearchableDropdown\n              options={COUNTIES}\n              value={this.props.country}\n              name=\"country\"\n              keyIdentifier=\"type\"\n              valueIdentifier=\"value\"\n              defaultValue={0}\n              placeholder={\"County\"}\n              required={true}\n              onChange={this.props.onCountrySelect}\n            />\n          </div>\n          <div className=\"col-12 input-box text-left\">\n            <div className=\"label\">Goals & Outcomes</div>\n            <Field\n              name=\"goalsOutcomes\"\n              component={textField}\n              type=\"text\"\n              placeholder={\"Goals and Outcomes\"}\n              required={false}\n            />\n          </div>\n          <div className=\"col-12 input-box text-left\">\n            <div className=\"label\">Internal Memo</div>\n            <Field\n              name=\"memo\"\n              component={textField}\n              type=\"text\"\n              placeholder={\"Internal Memo\"}\n              required={false}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Phone</div>\n            <Field\n              name=\"phone\"\n              component={phoneNumberField}\n              // type=\"number\"\n              value={this.props.phoneNumber}\n              // pattern={'[0-9]{10}'}\n              placeholder={\"Phone\"}\n              required={true}\n              validate={validateMobileNumber}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Family Contact Email</div>\n            <Field\n              name=\"familyContactEmail\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Family Contact Email\"}\n              required={false}\n              validate={validateFamilyContactEmail}\n            />\n          </div>\n          <div\n            className=\"col-6 input-box text-left\"\n            style={{ marginBottom: 20 }}\n          >\n            <div className=\"label\">Waiver</div>\n            {/* <Field\n              name='waiwer'\n              component={inputField}\n              type='text'\n              placeholder={'Waiver'}\n              required={false}\n            /> */}\n            <select\n              className=\"select-box\"\n              placeholder=\"Select Waiwer Type\"\n              onChange={this.onWaiverChange}\n              value={this.state.waiverType}\n            >\n              {WAIVER_TYPES.map((record) => {\n                return <option value={record.value}>{record.type}</option>;\n              })}\n            </select>\n          </div>\n          <div\n            className=\"col-6 input-box text-left\"\n            style={{ marginBottom: 20 }}\n          >\n            <div className=\"label\">Funding Source</div>\n            {/* <Field\n              name=\"fundingSource\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Funding Source\"}\n              required={false}\n            /> */}\n            <select\n              className=\"select-box\"\n              placeholder=\"Select Funding Source\"\n              onChange={this.onFundingSourceChange}\n              value={this.state.fundingSource}\n            >\n              {FUNDING_SOURCE_TYPE.map((record) => {\n                return <option value={record.value}>{record.type}</option>;\n              })}\n            </select>\n          </div>\n          {this.state.showOtherWaiver && (\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Specify Waiver type</div>\n              <Field\n                name=\"waiwer\"\n                component={inputField}\n                type=\"text\"\n                placeholder={\"Waiver Type\"}\n                required={true}\n              />\n            </div>\n          )}\n\n          {this.state.showOtherFundingSource && (\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Specify Funding Source</div>\n              <Field\n                name=\"fundingSource\"\n                component={inputField}\n                type=\"text\"\n                placeholder={\"Funding Source\"}\n                required={true}\n              />\n            </div>\n          )}\n          {/*<div className=\"col-12 input-box text-left\">*/}\n          {/*  <input*/}\n          {/*    type=\"checkbox\"*/}\n          {/*    name=\"authorized\"*/}\n          {/*    value=\"authorized\"*/}\n          {/*    checked={this.props.clientInfoAuthorized}*/}\n          {/*    onChange={(event) => {*/}\n          {/*      this.props.onClientInfoAuthorized(event.target.checked);*/}\n          {/*    }}*/}\n          {/*    style={{marginRight:5}}*/}\n          {/*  />*/}\n          {/*  <span className=\"label\">Authorized</span>*/}\n          {/*</div>*/}\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Status</div>\n            {/*<Field*/}\n            {/*  name=\"title\"*/}\n            {/*  component={inputField}*/}\n            {/*  type=\"text\"*/}\n            {/*  placeholder={\"Title\"}*/}\n            {/*  required={true}*/}\n            {/*  //   validate={validateEmail}*/}\n            {/*/>*/}\n            <select\n              className=\"select-box\"\n              placeholder=\"Select Staff Status\"\n              value={this.props.clientStatus}\n              onChange={(e) => {\n                this.props.onStatusChange(e.target.value);\n              }}\n            >\n              <option value={4}>Active</option>\n              <option value={5}>Inactive</option>\n            </select>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default ClientInfo;\n","import React from \"react\";\nimport {GoogleApiWrapper, Map, Marker} from \"google-maps-react\";\nimport {geoCodeAddress} from \"../../../api/maps\";\nimport {GOOGLE} from \"../../../constants/appConstants\";\nimport {get, isEmpty} from \"lodash\";\n\nclass ClickableMapContainer extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            lat: 43.0,\n            lng: -89.5,\n            some: \"\",\n        };\n    }\n\n    componentDidMount() {\n        this.updateMap(this.props);\n    }\n\n    componentWillReceiveProps(nextProps) {\n        this.updateMap(nextProps);\n    }\n\n    updateMap(props) {\n        if (props.address) {\n            const address = encodeURI(props.address);\n            geoCodeAddress(address)\n                .then((res) => {\n                    const geoLocation = !isEmpty(res)\n                        ? get(res[0], \"geometry.location\", null)\n                        : null;\n                    if (geoLocation) {\n                        this.setState({\n                            lat: geoLocation.lat,\n                            lng: geoLocation.lng,\n                        });\n                    }\n                })\n                .catch((err) => {\n                    console.log(\"Geo coding error \", err);\n                });\n        } else if (props.coordinates) {\n            this.setState({\n                lat: props.coordinates.lat,\n                lng: props.coordinates.lng,\n            });\n        }\n    }\n\n    mapClicked(mapProps, map, clickEvent) {\n        const {latLng} = clickEvent;\n        const lat = latLng.lat();\n        const lng = latLng.lng();\n        this.setState({\n            lat: lat,\n            lng: lng,\n        });\n    }\n\n    render() {\n        return (\n            <Map\n                google={this.props.google}\n                zoom={8}\n                initialCenter={{\n                    lat: this.state.lat,\n                    lng: this.state.lng,\n                }}\n                center={{\n                    lat: this.state.lat,\n                    lng: this.state.lng,\n                }}\n                zoom={5}\n                onClick={this.mapClicked.bind(this)}\n                disableDefaultUI={true}\n            >\n                <Marker\n                    name={\"Your position\"}\n                    position={{lat: this.state.lat, lng: this.state.lng}}\n                    icon={{url: \"./images/house.png\"}}\n                />\n            </Map>\n        );\n    }\n}\n\nexport default GoogleApiWrapper({\n    apiKey: GOOGLE.MAPS_API_KEY,\n})(ClickableMapContainer);\n","import * as React from \"react\";\nimport {Field} from \"redux-form\";\nimport {inputField} from \"../../../shared/form-fields/formFields\";\nimport ClickableMapContainer from \"../../../shared/map-container/clickableMapContainer\";\nimport {validateRequiredFields, validateZIPCode} from \"./clientValidator\";\nimport {isEmpty} from \"lodash\";\nimport {geoCodeAddress} from \"../../../../api/maps\";\nimport {STATES_LIST} from \"../../../../constants/appConstants\";\n\nclass ClientAddressInfo extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            geoCoords: {},\n            location: \"\",\n            street: \"\",\n            city: \"\",\n            state: \"\",\n            country: \"\",\n        };\n    }\n\n    fetchCoords = (street, city, state, country) => {\n        let address = \"\";\n        if (\n            !isEmpty(street) &&\n            !isEmpty(city) &&\n            !isEmpty(state) &&\n            !isEmpty(country)\n        ) {\n            address =\n                street +\n                \" \" +\n                city +\n                \" \" +\n                state +\n                \" \" +\n                country;\n        }\n        if (address.length > 3) {\n            let location = address.replace(\" \", \"+\");\n            geoCodeAddress(location)\n                .then((res) => {\n                    if (res.length > 0) {\n                        let geoLocation = res[0].geometry.location;\n                        let coords = {};\n                        coords.lat = geoLocation.lat;\n                        coords.lng = geoLocation.lng;\n                        this.props.onLatLongChange(coords);\n                        this.setState({\n                            geoCoords: coords,\n                        });\n                    }\n                })\n                .catch((err) => {\n                    console.log(\"Geo coding error \", err);\n                });\n        }\n    };\n\n    streetChange = (e) => {\n        this.setState({\n            street: e.target.value,\n        });\n        this.fetchCoords(e.target.value, this.state.city, this.state.state, this.state.country);\n    };\n    cityChange = (e) => {\n        this.setState({\n            city: e.target.value,\n        });\n        this.fetchCoords(this.state.street, e.target.value, this.state.state, this.state.country);\n    };\n    stateChange = (e) => {\n        this.setState({\n            state: e.target.value,\n        });\n        this.props.onBillingStateChange(e)\n        this.fetchCoords(this.state.street, this.state.city, e.target.value, this.state.country);\n    };\n    countryChange = (e) => {\n        this.setState({\n            country: e.target.value,\n        });\n        this.fetchCoords(this.state.street, this.state.city, this.state.state, e.target.value);\n    };\n\n    componentDidMount() {\n        if (this.props.initialValues) {\n            this.setState({\n                street: this.props.initialValues.billingStreet,\n                city: this.props.initialValues.billingCity,\n                state: this.props.initialValues.billingState,\n                country: this.props.initialValues.billingCountry,\n            });\n            this.fetchCoords(this.props.initialValues.billingStreet, this.props.initialValues.billingCity, this.props.initialValues.billingState, this.props.initialValues.billingCountry);\n        } else {\n            this.setState({\n                state: this.props.billingState\n            })\n        }\n    }\n\n    componentWillReceiveProps(nextProps) {\n        let coords = {};\n        if (nextProps.latitude && nextProps.longitude) {\n            coords.lat = nextProps.latitude;\n            coords.lng = nextProps.longitude;\n            this.setState({\n                geoCoords: coords,\n            });\n        } else if (nextProps.initialValues) {\n            this.setState({\n                street: nextProps.initialValues.billingStreet,\n                city: nextProps.initialValues.billingCity,\n                state: nextProps.initialValues.billingState,\n                country: nextProps.initialValues.billingCountry,\n            });\n            this.fetchCoords(nextProps.initialValues.billingStreet, nextProps.initialValues.billingCity, nextProps.initialValues.billingState, nextProps.initialValues.billingCountry);\n        }\n    }\n\n    render() {\n        return (\n            <div>\n                <div className=\"row\">\n                    <span className=\"form-title\">Address Information</span>\n                </div>\n                <div className=\"row\">\n                    <div className=\"col-12 input-box text-left\">\n                        <div className=\"label\">Billing Street Address</div>\n                        <Field\n                            name=\"billingStreet\"\n                            component={inputField}\n                            type=\"text\"\n                            placeholder={\"Billing Street Address\"}\n                            required={true}\n                            validate={validateRequiredFields}\n                            onTextValueChange={this.streetChange}\n                        />\n                    </div>\n                    <div className=\"col-6 input-box text-left\">\n                        <div className=\"label\">Billing City</div>\n                        <Field\n                            name=\"billingCity\"\n                            component={inputField}\n                            type=\"text\"\n                            placeholder={\"Billing City\"}\n                            required={true}\n                            validate={validateRequiredFields}\n                            onTextValueChange={this.cityChange}\n                        />\n                    </div>\n                    <div className=\"col-6 input-box text-left\">\n                        <div className=\"label\">Billing State/Province</div>\n                        {/*<Field*/}\n                        {/*    name=\"billingState\"*/}\n                        {/*    component={inputField}*/}\n                        {/*    type=\"text\"*/}\n                        {/*    placeholder={\"Billing State/Province\"}*/}\n                        {/*    required={true}*/}\n                        {/*    validate={validateRequiredFields}*/}\n                        {/*    onTextValueChange={this.stateChange}*/}\n                        {/*/>*/}\n                        <select\n                            className=\"select-box\"\n                            placeholder=\"Select Waiwer Type\"\n                            onChange={this.stateChange}\n                            required={true}\n                            value={this.props.billingState}\n                        >\n                            {STATES_LIST.map((record) => {\n                                return <option value={record.value}>{record.type}</option>;\n                            })}\n                        </select>\n                    </div>\n                    <div className=\"col-6 input-box text-left\">\n                        <div className=\"label\">Billing Zip/Postal Code</div>\n                        <Field\n                            name=\"billingZIP\"\n                            component={inputField}\n                            type=\"text\"\n                            placeholder={\"Billing Zip/Postal Code\"}\n                            required={true}\n                            validate={validateZIPCode}\n                        />\n                    </div>\n                    <div className=\"col-6 input-box text-left\">\n                        <div className=\"label\">Billing Country</div>\n                        <Field\n                            name=\"billingCountry\"\n                            component={inputField}\n                            type=\"text\"\n                            placeholder={\"Billing Country\"}\n                            required={true}\n                            validate={validateRequiredFields}\n                            onTextValueChange={this.countryChange}\n                        />\n                    </div>\n\n                    <div className=\"col-12\" style={{height: \"30vw\"}}>\n                        <ClickableMapContainer coordinates={this.state.geoCoords}/>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default ClientAddressInfo;\n","import React from \"react\";\nimport \"./confirmation-box.scss\";\n\nclass ConfirmationBox extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {};\n    }\n\n    render() {\n        return (\n            <div>\n                {/* <div className=\"row modal-description-body\">\n          <span className=\"col-sm-12\">{this.props.description}</span>\n        </div> */}\n                <div\n                    className=\"modal-footer confirmation-footer\"\n                    style={{paddingTop: 10}}\n                >\n                    <div\n                        className=\"col-lg-6 offset-lg-3 col-md-8 offset-md-2 col-sm-10 offset-sm-1 confirmation-footer\">\n                        <div className=\"row confirmation-footer\">\n                            <div className=\"col-6\">\n                                <button\n                                    type=\"button\"\n                                    className=\"button submit\"\n                                    onClick={(event) => {\n                                        this.props.onConfirm();\n                                    }}\n                                >\n                                    YES\n                                </button>\n                            </div>\n                            <div className=\"col-6\">\n                                <button\n                                    className=\"button basic\"\n                                    onClick={(event) => {\n                                        this.props.onCloseModal();\n                                    }}\n                                >\n                                    NO\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default ConfirmationBox;\n","import React from \"react\";\nimport \"../createStaff.scss\";\nimport S3 from \"react-aws-s3\";\nimport {s3config} from \"../../../../constants/appConstants\";\nimport ConfirmationBox from \"../../../shared/alert-box/confirmation-box/confirmation-box\";\nimport PopUpModal from \"../../../shared/popup-modal/popUpModal\";\n\nclass Files extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            openModal: false,\n            showLoader: false,\n            documentKey: \"\",\n        };\n    }\n\n    handleFileChange = (event) => {\n        const success = true;\n        s3config.dirName = this.props.directoryName;\n        const ReactS3Client = new S3(s3config);\n        let file = this.uploadInput.files[0];\n        // Split the filename to get the name and type\n        let fileParts = this.uploadInput.files[0].name.split(\".\");\n        let fileName = fileParts[0];\n        let fileType = fileParts[1];\n        let newFileName = fileName + Date.now();\n        this.setState({\n            showLoader: true,\n        });\n        ReactS3Client.uploadFile(file, newFileName)\n            .then((data) => {\n                let file = {};\n                file.name = fileName[0].toUpperCase() + fileName.slice(1);\n                file.documentKey = newFileName;\n                file.fileType = fileType;\n                file.url = data.location;\n                console.log(\"File uploaded.\");\n                this.props.onFileUpload(file, success);\n                this.setState({\n                    showLoader: false,\n                });\n                document.getElementById(\"fileUpload\").value = \"\";\n            })\n            .catch((err) => {\n                console.log(\"File upload fail.\");\n                console.log(err);\n                this.props.onFileUpload(null, !success);\n                this.setState({\n                    showLoader: false,\n                });\n                document.getElementById(\"fileUpload\").value = \"\";\n            });\n    };\n\n    getFileType = (value) => {\n        return value.toUpperCase();\n    };\n\n    getFileName = (value) => {\n        if (value.length > 10) {\n            value = value.substring(0, 10) + \"...\";\n        }\n        return value;\n    };\n\n    removeImage = () => {\n        this.props.onRemoveImage(this.state.documentKey);\n        this.setState({\n            openModal: false,\n            documentKey: \"\",\n        });\n    };\n\n    getFileIcon = (value) => {\n        switch (value.toLowerCase()) {\n            case \"pdf\":\n                return \"/images/pdf.png\";\n            case \"docx\":\n            case \"doc\":\n                return \"/images/doc.png\";\n            case \"ppt\":\n            case \"pptx\":\n                return \"/images/doc.png\";\n            case \"xls\":\n            case \"xlsm\":\n            case \"xlsx\":\n                return \"/images/excel.png\";\n            case \"png\":\n                return \"/images/doc.png\";\n            case \"jpeg\":\n                return \"/images/doc.png\";\n            default:\n                return \"/images/doc.png\";\n        }\n    };\n\n    onTrashClick = (file) => {\n        this.setState({\n            openModal: true,\n            documentKey: file.documentKey,\n        });\n    }\n\n    render() {\n        return (\n            <div>\n                <div className=\"row\">\n                    <span className=\"form-title\" style={{paddingBottom:10}}>Files</span>\n                </div>\n                <div className=\"row\">\n                    <div className=\"row col-md-8\">\n                        {this.props.fileList.map((file, i) => {\n                            return (\n                                <div className=\"col-lg-4 col-md-3 col-xs-6\" key={i}>\n                                    <div className=\"row col-md-12 file-component\">\n                                        <a href={file.url} target=\"_blank\" rel=\"noopener noreferrer\">\n                                            <div className=\"card__corner\">\n                                                <div className=\"card__corner-triangle\"></div>\n                                            </div>\n                                            <span className=\"col-sm-12\">\n                      <span>\n                        <img\n                            src={this.getFileIcon(file.fileType)}\n                            alt=\"\"\n                            className=\" file-icon\"\n                        />\n                      </span>\n                    </span>\n                                            <div className=\"col-sm-12 document-name\">\n                                                {this.getFileName(file.name)}\n                                            </div>\n                                            <div className=\"col-sm-12 document-type\">\n                                                {this.getFileType(file.fileType)}\n                                            </div>\n                                        </a>\n                                    </div>\n                                    <div className=\"row\" style={{marginBottom: 10}}>\n                    <span\n                        className=\"col-sm-1 offset-sm-8\"\n                        style={{height: 20}}\n                    >\n                      <img\n                          src=\"/images/trash-sm.svg\"\n                          alt=\"\"\n                          className=\" document-options\"\n                          onClick={() => {\n                              this.onTrashClick(file)\n                          }}\n                      />\n                    </span>\n                                        {/* <span className=\"col-sm-1\" style={{ height: 20 }}>\n                      <img\n                        src=\"/images/edit-sm.svg\"\n                        alt=\"\"\n                        className=\" document-options\"\n                      />\n                    </span> */}\n                                    </div>\n                                </div>\n                            );\n                        })}\n\n                        <div className=\"col-lg-4 col-md-3 col-xs-6\">\n                            {!this.state.showLoader && (\n                                <div className=\"row col-md-12 add-document text-center\">\n                                    <div className=\"row\"></div>\n                                    <label htmlFor=\"fileUpload\" className=\"add-button\">\n                                        + Add\n                                    </label>\n                                    <input\n                                        id=\"fileUpload\"\n                                        onChange={(e) => {\n                                            this.handleFileChange(e);\n                                        }}\n                                        ref={(ref) => {\n                                            this.uploadInput = ref;\n                                        }}\n                                        type=\"file\"\n                                    />\n                                </div>\n                            )}\n                            {this.state.showLoader && (\n                                <div className=\"row col-md-12 add-document text-center\">\n                                    <img src=\"/images/loader.svg\" className=\"loader-file\" alt=\"\"/>\n                                </div>\n                            )}\n                        </div>\n                    </div>\n\n                </div>\n\n                {this.state.openModal && (\n                    <PopUpModal\n                        show={this.state.openModal}\n                        onClose={() => {\n                            this.setState({openModal: false});\n                        }}\n                        title={\"Are you sure you want to delete this file?\"}\n                        icon={\"/images/alert-circle.svg\"}\n                        size={'md'}\n                        id={'deleteModal'}\n                    >\n                        <ConfirmationBox\n                            description={\"some text\"}\n                            onConfirm={this.removeImage}\n                            onCloseModal={() => {\n                                this.setState({openModal: false});\n                            }}\n                        />\n                    </PopUpModal>\n                )}\n            </div>\n        );\n    }\n}\n\nexport default Files;\n","import * as React from \"react\";\nimport { Form, reduxForm } from \"redux-form\";\nimport ClientInfo from \"./clientInfo\";\nimport ClientAddressInfo from \"./clientAddressInfo\";\nimport { withRouter } from \"react-router-dom\";\nimport Files from \"../../../staff/create-staff/create-staff-form/files\";\n\nclass CreateClientForm extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      openModal: false,\n      servicesList: [],\n    };\n  }\n  componentDidMount() {\n    if (!this.props.initialValues) {\n      this.props.initialize({ billingCountry: this.props.billingCountry });\n    }\n  }\n  render() {\n    const { handleSubmit } = this.props;\n    const routeToClient = true;\n    return (\n      <Form style={{ width: \"100%\" }}>\n        <div className=\"page-content\">\n          <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n            <ClientInfo\n              clientInfoAuthorized={this.props.clientInfoAuthorized}\n              onClientInfoAuthorized={this.props.onClientInfoAuthorized}\n              supportCoordinatorsList={this.props.supportCoordinatorsList}\n              behavioralSpecialistsList={this.props.behavioralSpecialistsList}\n              countryList={this.props.countryList}\n              onWaiwerChange={this.props.onWaiwerChange}\n              onFundingSourceChange={this.props.onFundingSourceChange}\n              onSupportCoordinatorSelect={this.props.onSupportCoordinatorSelect}\n              onBehavioralSpecialistSelect={\n                this.props.onBehavioralSpecialistSelect\n              }\n              onCountrySelect={this.props.onCountrySelect}\n              waiwer={this.props.waiwer}\n              fundingSource={this.props.fundingSource}\n              behavioralSpecialist={this.props.behavioralSpecialist}\n              supportCoordinator={this.props.supportCoordinator}\n              country={this.props.country}\n              phoneNumber={this.props.phoneNumber}\n              onStatusChange={this.props.onStatusChange}\n              clientStatus={this.props.clientStatus}\n            />\n          </div>\n        </div>\n        <div className=\"page-content\">\n          <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n            <ClientAddressInfo\n              onLatLongChange={this.props.onLatLongChange}\n              longitude={this.props.longitude}\n              latitude={this.props.latitude}\n              billingState={this.props.billingState}\n              onBillingStateChange={this.props.onBillingStateChange}\n              initialValues={this.props.initialValues}\n            />\n          </div>\n        </div>\n        <div className=\"page-content\">\n          <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n            <Files\n              onFileUpload={this.props.onFileUpload}\n              fileList={this.props.fileList}\n              onRemoveImage={this.props.onRemoveImage}\n              directoryName={\"client\"}\n            />\n          </div>\n        </div>\n        {/* <div className=\"page-content\">\n          <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n             <ClientServiceInfo\n              isDegreeRequired={this.props.isDegreeRequired}\n              isConfirmedDates={this.props.isConfirmedDates}\n              isAllowedNegativeUnits={this.props.isAllowedNegativeUnits}\n              isServiceInfoAuthorized={this.props.isServiceInfoAuthorized}\n              onConfirmDates={this.props.onConfirmDates}\n              AllowNegativeUnits={this.props.AllowNegativeUnits}\n              onDegreeRequired={this.props.onDegreeRequired}\n              onServiceInfoAuthorized={this.props.onServiceInfoAuthorized}\n            />\n            <ServiceDetails clientServices={this.state.servicesList} />\n            <div className=\"row\">\n              <div\n                className=\"col-lg-12 col-md-12 col-sm-12 btn-new-service text-center\"\n                onClick={() => {\n                  this.setState({ openModal: true });\n                }}\n              >\n                <span className=\"add-new-service\">+ ADD NEW SERVICE</span>\n              </div>\n            </div>\n          </div>\n        </div> */}\n        <div className=\"row\">\n          <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-8 offset-sm-2\">\n            <div className=\"row\">\n              <div className=\"col-4\">\n                <button\n                  className=\"button submit\"\n                  onClick={handleSubmit((values) => {\n                    this.props.onSubmit(values, routeToClient);\n                    // this.props.history.goBack();\n                  })}\n                >\n                  {this.props.initialValues == null ? \"SAVE\" : \"UPDATE\"}\n                </button>\n              </div>\n              {this.props.initialValues == null && (\n                <div className=\"col-4\">\n                  <button\n                    className=\"button submit-save\"\n                    onClick={handleSubmit((values) => {\n                      this.props.onSubmit(values, !routeToClient);\n                    })}\n                  >\n                    SAVE & NEW\n                  </button>\n                </div>\n              )}\n              <div className=\"col-4\">\n                <button\n                  className=\"button basic\"\n                  onClick={(event) => {\n                    this.props.history.goBack();\n                    event.preventDefault();\n                  }}\n                >\n                  CANCEL\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </Form>\n    );\n  }\n}\n\nconst clientForm = reduxForm({\n  form: \"addClient\",\n  enableReinitialize: true,\n  keepDirtyOnReinitialize: true,\n})(CreateClientForm);\n\nexport default withRouter(clientForm);\n","import * as React from \"react\";\nimport CreateClientForm from \"./create-client-form/createClientForm\";\nimport \"./createClient.scss\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport {\n  createClient,\n  updateClient,\n} from \"../../../redux/clients/clientActions\";\nimport { getQueryParameter } from \"../../../util/url\";\nimport {\n  clone,\n  get,\n  isEmpty,\n  isEqual,\n  isNull,\n  isUndefined,\n  remove,\n} from \"lodash\";\nimport { USER_TYPES } from \"../../../constants/user\";\nimport { getAllUsersByType, getSCList } from \"../../../api/user\";\nimport { NotificationManager } from \"react-notifications\";\nimport {\n  ALERT_TYPES,\n  COUNTIES,\n  DATE_FORMAT,\n  FUNDING_SOURCE_TYPE,\n  WAIVER_TYPES,\n} from \"../../../constants/appConstants\";\nimport { getClientById } from \"../../../api/client\";\nimport { reset } from \"redux-form\";\nimport moment from \"moment\";\n\nclass CreateClient extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      clientInfoAuthorized: false,\n      isServiceInfoAuthorized: false,\n      isDegreeRequired: false,\n      isConfirmedDates: false,\n      isAllowedNegativeUnits: false,\n      initialValues: null,\n      isEditMode: false,\n      selectedClientId: \"\",\n      supportCoordinatorsList: [],\n      behavioralSpecialistsList: [],\n      countryList: [],\n      waiwer: \"\",\n      fundingSource: \"\",\n      supportCoordinator: 0,\n      behavioralSpecialist: 0,\n      country: \"\",\n      routeToClient: false,\n      fileList: [],\n      serviceFileList: [],\n      phoneNumber: \"\",\n      latitude: 43.0,\n      longitude: -89.5,\n      billingState: \"PA\",\n      billingCountry: \"USA\",\n      status: 4,\n    };\n  }\n\n  componentDidMount() {\n    getAllUsersByType(USER_TYPES.BEHAVIORAL_SPECIALIST, \"\").then((res) => {\n      this.setState({\n        behavioralSpecialistsList: res,\n      });\n    });\n    this.setState({ countryList: COUNTIES });\n    getSCList().then((res) => {\n      this.setState({\n        supportCoordinatorsList: res,\n      });\n    });\n\n    const clientId = getQueryParameter(\"id\");\n    if (!isEmpty(clientId) && !isUndefined(clientId)) {\n      getClientById(clientId).then((res) => {\n        this.setState(\n          {\n            waiwer: this.checkOtherWaiverType(res.waiwer),\n            fundingSource: this.checkOtherFundingSourceType(res.fundingSource),\n          },\n          () => {\n            const client = this.mapClient(res);\n            client.dob = client.dob\n              ? new Date(moment(client.dob).utc().format(DATE_FORMAT))\n              : null;\n            this.setState({\n              initialValues: client,\n              isEditMode: true,\n              selectedClientId: clientId,\n              isAllowedNegativeUnits: res.serviceIsNegetiveUnitsAllowed,\n              isServiceInfoAuthorized: res.serviceIsAuthorized,\n              isDegreeRequired: res.isDegreeRequired,\n              isConfirmedDates: res.isDatesConfirmed,\n              fundingSource: res.fundingSource,\n              supportCoordinator: res.supportCoordinatorId,\n              behavioralSpecialist: res.behavioralSpecialistId,\n              country: res.country,\n              fileList: res.files ? res.files : [],\n              phoneNumber: res.phone,\n              longitude: res.longitude,\n              latitude: res.latitude,\n              billingState: client.billingState,\n              status: res.status,\n            });\n          }\n        );\n      });\n    }\n  }\n\n  getAllUsersByType = (type, searchParams) => {\n    this.props.dispatch(getAllUsersByType(type, searchParams));\n  };\n\n  createClient = (values, routeToClient) => {\n    this.setState({\n      routeToClient: routeToClient,\n    });\n    values[\"status\"] = this.state.status;\n    let client = this.mapClient(values);\n    client.serviceStartDate = client.serviceStartDate\n      .toISOString()\n      .slice(0, 10);\n    client.serviceEndDate = client.serviceEndDate.toISOString().slice(0, 10);\n    client.dob = client.dob\n      ? moment(new Date(client.dob)).format(\"YYYY-MM-DD\")\n      : null;\n    client.files = this.state.fileList;\n    client.longitude = this.state.longitude;\n    client.latitude = this.state.latitude;\n    client.billingState = this.state.billingState;\n    if (!this.state.isEditMode) {\n      this.props.dispatch(createClient(client));\n    } else {\n      client[\"clientId\"] = parseInt(this.state.selectedClientId);\n      this.props.dispatch(updateClient(client));\n    }\n  };\n\n  componentWillReceiveProps = (nextProps) => {\n    const { history } = this.props;\n    if (\n      !isNull(get(nextProps, \"createClientSuccess\")) &&\n      !isEqual(nextProps.createClientSuccess, this.props.createClientSuccess)\n    ) {\n      this.createNotification(ALERT_TYPES.SUCCESS, \"Client create successful\");\n      if (this.state.routeToClient) {\n        history.push(\n          `/admin/client-details?id=${nextProps.createClientSuccess.clientId}`\n        );\n      } else {\n        this.props.dispatch(reset(\"addClient\"));\n      }\n    }\n\n    if (\n      !isNull(get(nextProps, \"createClientFail\")) &&\n      !isEqual(nextProps.createClientFail, this.props.createClientFail)\n    ) {\n      this.createNotification(ALERT_TYPES.ERROR, \"Client create failed\");\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateClientSuccess\")) &&\n      !isEqual(nextProps.updateClientSuccess, this.props.updateClientSuccess)\n    ) {\n      this.createNotification(ALERT_TYPES.SUCCESS, \"Client update successful\");\n      history.push(`/admin/client-details?id=${this.state.selectedClientId}`);\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateClientFail\")) &&\n      !isEqual(nextProps.updateClientFail, this.props.updateClientFail)\n    ) {\n      this.createNotification(ALERT_TYPES.ERROR, \"Client update failed\");\n    }\n  };\n\n  createNotification(alertType, alertMessage) {\n    switch (alertType) {\n      case ALERT_TYPES.INFO:\n        NotificationManager.info(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.SUCCESS:\n        NotificationManager.success(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.WARNING:\n        NotificationManager.warning(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.ERROR:\n        NotificationManager.error(alertMessage, \"\", 2000);\n        break;\n      default:\n        break;\n    }\n  }\n\n  onWaiwerChange = (event) => {\n    const type = event.target.value;\n    this.setState({\n      waiwer: type,\n    });\n  };\n\n  onFundingSourceChange = (event) => {\n    const type = event.target.value;\n    this.setState({\n      fundingSource: type,\n    });\n  };\n\n  onSupportCoordinatorSelect = (value) => {\n    this.setState({\n      supportCoordinator: parseInt(value),\n    });\n  };\n\n  onBehavioralSpecialistSelect = (value) => {\n    this.setState({ behavioralSpecialist: parseInt(value) });\n  };\n  onCountrySelect = (value) => {\n    this.setState({\n      country: value,\n    });\n  };\n  onBillingStateChange = (event) => {\n    const type = event.target.value;\n    this.setState({\n      billingState: type,\n    });\n  };\n\n  mapClient = (clientData) => {\n    let client = {\n      firstName: get(clientData, \"firstName\", \"\"),\n      lastName: get(clientData, \"lastName\", \"\"),\n      middleName: get(clientData, \"middleName\", \"\"),\n      mci: get(clientData, \"mci\", \"\"),\n      mpi: get(clientData, \"mpi\", \"\"),\n      diagnosticCode: get(clientData, \"diagnosticCode\", \"\"),\n      supportCoordinatorId: this.state.supportCoordinator,\n      behavioralSpecialistId: this.state.behavioralSpecialist,\n      country: this.state.country,\n      goalsOutcomes: get(clientData, \"goalsOutcomes\", \"\"),\n      phone: get(clientData, \"phone\", \"\"),\n      familyContactEmail: get(clientData, \"familyContactEmail\", \"\"),\n      waiwer:\n        this.state.waiwer === \"Other\" ? clientData.waiwer : this.state.waiwer,\n      fundingSource:\n        this.state.fundingSource === \"Other\"\n          ? clientData.fundingSource\n          : this.state.fundingSource,\n      isAuthorized: this.state.clientInfoAuthorized,\n      billingStreet: get(clientData, \"billingStreet\", \"\"),\n      billingCity: get(clientData, \"billingCity\", \"\"),\n      billingState: get(clientData, \"billingState\", \"\"),\n      billingZIP: get(clientData, \"billingZIP\", \"\"),\n      billingCountry: get(clientData, \"billingCountry\", \"\"),\n      serviceName: get(clientData, \"serviceName\", \"\"),\n      serviceAccount: get(clientData, \"serviceAccount\", \"\"),\n      serviceDescription: get(clientData, \"serviceDescription\", \"\"),\n      serviceUnitRate: parseInt(get(clientData, \"serviceUnitRate\", 0)),\n      serviceUnitLength: parseInt(get(clientData, \"serviceUnitLength\", 0)),\n      dob: get(clientData, \"dob\", null),\n      memo: get(clientData, \"memo\", \"\"),\n      serviceStartDate: new Date(\n        get(clientData, \"serviceStartDate\", new Date())\n      ),\n      serviceEndDate: new Date(get(clientData, \"serviceEndDate\", new Date())),\n      serviceUnitsAuthorized: parseInt(\n        get(clientData, \"serviceUnitsAuthorized\", \"\")\n      ),\n      serviceIsNegetiveUnitsAllowed: this.state.isAllowedNegativeUnits,\n      serviceIsAuthorized: this.state.isServiceInfoAuthorized,\n      isDegreeRequired: this.state.isDegreeRequired,\n      isDatesConfirmed: this.state.isConfirmedDates,\n      deleted: false,\n      status: parseInt(this.state.status),\n    };\n    return client;\n  };\n\n  checkOtherWaiverType = (waiver) => {\n    let isSetWaiverType = false;\n    WAIVER_TYPES.map((w) => {\n      if (\n        waiver &&\n        w.type.toLowerCase() === waiver.toLowerCase() &&\n        waiver.toLowerCase() !== \"other\"\n      ) {\n        isSetWaiverType = true;\n      }\n    });\n    if (!isSetWaiverType) {\n      return \"Other\";\n    } else {\n      return waiver;\n    }\n  };\n\n  checkOtherFundingSourceType = (fundingSource) => {\n    let isSetFundingSource = false;\n    FUNDING_SOURCE_TYPE.map((w) => {\n      if (\n        fundingSource &&\n        w.type.toLowerCase() === fundingSource.toLowerCase() &&\n        fundingSource.toLowerCase() !== \"other\"\n      ) {\n        isSetFundingSource = true;\n      }\n    });\n    if (!isSetFundingSource) {\n      return \"Other\";\n    } else {\n      return fundingSource;\n    }\n  };\n\n  render() {\n    return (\n      <div className=\"client-client\">\n        <div className=\"row\">\n          <div\n            className=\"row col-lg-2 col-md-2 col-sm-4\"\n            onClick={() => {\n              this.props.history.goBack();\n            }}\n          >\n            <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n            <span\n              style={{\n                fontFamily: \"Muli\",\n                color: \"#333333\",\n                fontSize: 15,\n                padding: 10,\n              }}\n            >\n              Back\n            </span>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-4 col-md-6 col-sm-12\">\n            <div className=\"page-title\">\n              {!this.state.isEditMode ? \"Create New Client\" : \"Edit Client\"}\n            </div>\n          </div>\n        </div>\n        <div className=\"row\">\n          <CreateClientForm\n            onSubmit={this.createClient}\n            initialValues={this.state.initialValues}\n            onWaiwerChange={this.onWaiwerChange}\n            waiwer={this.state.waiwer}\n            onFundingSourceChange={this.onFundingSourceChange}\n            onSupportCoordinatorSelect={this.onSupportCoordinatorSelect}\n            onBehavioralSpecialistSelect={this.onBehavioralSpecialistSelect}\n            supportCoordinatorsList={this.state.supportCoordinatorsList}\n            behavioralSpecialistsList={this.state.behavioralSpecialistsList}\n            country={this.state.country}\n            countryList={this.state.countryList}\n            onCountrySelect={this.onCountrySelect}\n            fundingSource={this.state.fundingSource}\n            behavioralSpecialist={this.state.behavioralSpecialist}\n            supportCoordinator={this.state.supportCoordinator}\n            clientInfoAuthorized={this.state.clientInfoAuthorized}\n            isConfirmedDates={this.state.isConfirmedDates}\n            isDegreeRequired={this.state.isDegreeRequired}\n            isAllowedNegativeUnits={this.state.isAllowedNegativeUnits}\n            isServiceInfoAuthorized={this.state.isServiceInfoAuthorized}\n            phoneNumber={this.state.phoneNumber}\n            onClientInfoAuthorized={(isAuthorized) => {\n              this.setState({ clientInfoAuthorized: isAuthorized });\n            }}\n            onConfirmDates={(value) => {\n              this.setState({ isConfirmedDates: value });\n            }}\n            AllowNegativeUnits={(value) => {\n              this.setState({ isAllowedNegativeUnits: value });\n            }}\n            onDegreeRequired={(value) => {\n              this.setState({ isDegreeRequired: value });\n            }}\n            onServiceInfoAuthorized={(value) => {\n              this.setState({ isServiceInfoAuthorized: value });\n            }}\n            fileList={this.state.fileList}\n            onFileUpload={(value, success) => {\n              if (success) {\n                let files = clone(this.state.fileList);\n                files.push(value);\n                this.createNotification(ALERT_TYPES.INFO, \"File uploaded.\");\n                this.setState({\n                  fileList: files,\n                });\n              } else {\n                this.createNotification(\n                  ALERT_TYPES.WARNING,\n                  \"File upload fail.\"\n                );\n              }\n            }}\n            onRemoveImage={(documentKey) => {\n              let files = clone(this.state.fileList);\n              remove(files, function (o) {\n                return o.documentKey == documentKey;\n              });\n              this.setState({\n                fileList: files,\n              });\n            }}\n            onLatLongChange={(coords) => {\n              this.setState({\n                latitude: coords.lat,\n                longitude: coords.lng,\n              });\n            }}\n            latitude={this.state.latitude}\n            longitude={this.state.longitude}\n            billingState={this.state.billingState}\n            billingCountry={this.state.billingCountry}\n            onBillingStateChange={this.onBillingStateChange}\n            clientStatus={this.state.status}\n            onStatusChange={(status) => {\n              this.setState({ status: status });\n            }}\n          />\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  createClientSuccess: state.client.createSuccess,\n  createClientFail: state.client.createFail,\n  updateClientSuccess: state.client.updateSuccess,\n  updateClientFail: state.client.updateFail,\n  clients: state.client.getAllSuccess,\n});\n\nexport default withRouter(connect(mapStateToProps)(CreateClient));\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n// import { getQueryParameter } from \"../../../util/url\";\nimport { get, isNull, map } from \"lodash\";\nimport \"./clientDetails.scss\";\nimport moment from \"moment\";\nimport { DATE_FORMAT } from \"../../../constants/appConstants\";\n\nclass BasicInformation extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      selectedClientId: \"\",\n      activeTabIndex: 0,\n      fileList: [],\n    };\n  }\n\n  componentDidMount() {}\n\n  componentWillReceiveProps = (nextProps) => {};\n\n  getFullName = (user) => {\n    return `${get(user, \"firstName\", \"\")} ${get(user, \"middleName\", \"\")} ${get(\n      user,\n      \"lastName\",\n      \"\"\n    )}`;\n  };\n\n  onProfileLinkClick = (id) => {\n    this.props.history.push(`/admin/view-staff?id=${id}`);\n  };\n\n  onScProfileLink = (id) => {\n    this.props.history.push(`/admin/view-sc?id=${id}`);\n  };\n\n  getFileIcon = (value) => {\n    switch (value.toLowerCase()) {\n      case \"pdf\":\n        return \"/images/pdf.png\";\n      case \"docx\":\n      case \"doc\":\n        return \"/images/doc.png\";\n      case \"ppt\":\n      case \"pptx\":\n        return \"/images/doc.png\";\n      case \"xls\":\n      case \"xlsm\":\n      case \"xlsx\":\n        return \"/images/excel.png\";\n      case \"png\":\n        return \"/images/doc.png\";\n      case \"jpeg\":\n        return \"/images/doc.png\";\n      default:\n        return \"/images/doc.png\";\n    }\n  };\n\n  getFileType = (value) => {\n    return value.toUpperCase();\n  };\n\n  getFileName = (value) => {\n    if (value.length > 10) {\n      value = value.substring(0, 10) + \"...\";\n    }\n    return value;\n  };\n\n  render() {\n    const { initialValues, fileList } = this.props;\n    return (\n      <div>\n        <div className=\"page-content\" style={{ width: \"100%\" }}>\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-4 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Client Name</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.firstName : \"\"}{\" \"}\n                {initialValues ? initialValues.lastName : \"\"}\n              </div>\n            </div>\n          </div>\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-4 col-md-4 col-sm-12\">\n              <div className=\"header_text\">First Name</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.firstName : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-4 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Middle Name</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.middleName : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-4 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Last Name</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.lastName : \"\"}\n              </div>\n            </div>\n          </div>\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-4 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Phone</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.phone : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-4 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Family Contact Email</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.familyContactEmail : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-4 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Birth Date</div>\n              <div className=\"title_text\">\n                {isNull(get(initialValues, \"dob\", null))\n                  ? \"\"\n                  : moment(initialValues.dob).utc().format(DATE_FORMAT)}\n              </div>\n            </div>\n            <div className=\"col-lg-4 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Status</div>\n              <div className=\"title_text\">\n                {get(initialValues, \"status\", \"\")}\n              </div>\n            </div>\n          </div>\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-12 col-md-12 col-sm-12\">\n              <hr></hr>\n            </div>\n          </div>\n\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">MCI</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.mci : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">MPI Number</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.mpi : \"\"}\n              </div>\n            </div>\n          </div>\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Diagnostic Code</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.diagnosticCode : \"\"}\n              </div>\n            </div>\n          </div>\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-12 col-md-12 col-sm-12\">\n              <hr></hr>\n            </div>\n          </div>\n\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Supports Coordinator</div>\n              <div\n                className=\"title_text_profile_link\"\n                onClick={() => {\n                  this.onScProfileLink(initialValues.supportCoordinator.scId);\n                }}\n              >\n                {!isNull(get(initialValues, \"supportCoordinator\", null))\n                  ? this.getFullName(initialValues.supportCoordinator)\n                  : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Behavioral Specialist</div>\n              <div\n                className=\"title_text_profile_link\"\n                onClick={() => {\n                  this.onProfileLinkClick(\n                    initialValues.behavioralSpecialist.userId\n                  );\n                }}\n              >\n                {!isNull(get(initialValues, \"behavioralSpecialist\", null))\n                  ? this.getFullName(initialValues.behavioralSpecialist)\n                  : \"\"}\n              </div>\n            </div>\n          </div>\n\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-12 col-md-12 col-sm-12\">\n              <hr></hr>\n            </div>\n          </div>\n\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Waiver Type</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.waiwer : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Funding Source</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.fundingSource : \"\"}\n              </div>\n            </div>\n          </div>\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-12 col-md-12 col-sm-12\">\n              <hr></hr>\n            </div>\n          </div>\n\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-6 col-md-8 col-sm-12\">\n              <div className=\"header_text\">Billing Street Address</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.billingStreet : \"\"}\n              </div>\n            </div>\n          </div>\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Billing City</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.billingCity : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Billing State/Province</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.billingState : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Billing Zip/Postal Code</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.billingZIP : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Billing Country</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.billingCountry : \"\"}\n              </div>\n            </div>\n          </div>\n\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-12 col-md-12 col-sm-12\">\n              <hr></hr>\n            </div>\n          </div>\n\n          <div className=\"row\" style={{ width: \"100%\" }}>\n            <div className=\"col-lg-3 col-md-4 col-sm-12\">\n              <div className=\"header_text\">County</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.country : \"\"}\n              </div>\n            </div>\n            <div className=\"col-lg-9 col-md-4 col-sm-12\">\n              <div className=\"header_text\">Goals & Outcomes</div>\n              <div className=\"title_text\">\n                {initialValues ? initialValues.goalsOutcomes : \"\"}\n              </div>\n            </div>\n          </div>\n        </div>\n\n        <div className=\"page-content\" style={{ width: \"100%\" }}>\n          <div className=\"row\">\n            <div className=\"col-12\">\n              <div className=\"header_text\">Files</div>\n            </div>\n          </div>\n          <hr />\n          <div className=\"row\">\n            {map(fileList, (file, i) => {\n              return (\n                <div className=\"col-lg-3 col-md-3 col-xs-6\" key={i}>\n                  <div className=\"col-12 file-component\">\n                    <a\n                      href={file.url}\n                      target=\"_blank\"\n                      rel=\"noopener noreferrer\"\n                    >\n                      <div className=\"card__corner\">\n                        <div className=\"card__corner-triangle\"></div>\n                      </div>\n                      <img\n                        src={this.getFileIcon(file.fileType)}\n                        alt=\"\"\n                        className=\" file-icon\"\n                      />\n                      <div className=\"col-sm-12 document-name\">\n                        {this.getFileName(file.name)}\n                      </div>\n                      <div className=\"col-sm-12 document-type\">\n                        {this.getFileType(file.fileType)}\n                      </div>\n                    </a>\n                  </div>\n                </div>\n              );\n            })}\n            {fileList.length === 0 && (\n              <div className=\"col-12 text-center\">No Files Uploaded</div>\n            )}\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  createClientSuccess: state.client.createClientSuccess,\n  createClientFail: state.client.createClientFail,\n  updateClientSuccess: state.client.updateClientSuccess,\n  updateClientFail: state.client.updateClientFail,\n  clients: state.client.getAllSuccess,\n});\n\nexport default withRouter(connect(mapStateToProps)(BasicInformation));\n","import * as React from \"react\";\nimport { Field, Form, reduxForm } from \"redux-form\";\nimport {\n  inputField,\n  renderDatePicker,\n  textField,\n} from \"../../shared/form-fields/formFields\";\nimport { withRouter } from \"react-router-dom\";\nimport {\n  validateClientServiceCode,\n  validateClientServiceEndDate,\n  validateClientServiceName,\n  validateClientServiceStartDate,\n  validateClientServiceUnitLength,\n  validateClientServiceUnitRate,\n  validateClientServiceUnitsAuthorized,\n} from \"../create-client/create-client-form/clientValidator\";\nimport Files from \"../../staff/create-staff/create-staff-form/files\";\nimport moment from \"moment\";\n\nclass ClientServiceInfo extends React.Component {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    const { handleSubmit } = this.props;\n\n    return (\n      <Form style={{ width: \"100%\" }} onSubmit={handleSubmit} noValidate>\n        <div style={{ margin: 30, marginTop: 0 }}>\n          <div className=\"row\">\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Service Name</div>\n              <Field\n                name=\"serviceName\"\n                component={inputField}\n                type=\"text\"\n                placeholder={\"Service Name\"}\n                required={true}\n                validate={validateClientServiceName}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Service Code</div>\n              <Field\n                name=\"serviceCode\"\n                component={inputField}\n                type=\"text\"\n                placeholder={\"Service Code\"}\n                required={true}\n                validate={validateClientServiceCode}\n              />\n            </div>\n            <div className=\"col-12 input-box text-left\">\n              <div className=\"label\">Description</div>\n              <Field\n                name=\"serviceDescription\"\n                component={textField}\n                type=\"text\"\n                placeholder={\"Description\"}\n                required={true}\n                //   validate={validateEmail}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Unit Rate</div>\n              <Field\n                name=\"serviceUnitRate\"\n                component={inputField}\n                type=\"number\"\n                placeholder={\"Unit Rate\"}\n                required={true}\n                minVal={0}\n                validate={validateClientServiceUnitRate}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Unit Length (hrs.)</div>\n              <Field\n                name=\"serviceUnitLength\"\n                component={inputField}\n                type=\"number\"\n                placeholder={\"Unit Length\"}\n                required={true}\n                minVal={0}\n                validate={validateClientServiceUnitLength}\n              />\n              {/*<select*/}\n              {/*    className=\"select-box\"*/}\n              {/*    placeholder=\"Select Unit Length\"*/}\n              {/*    value={this.props.unitLength}*/}\n              {/*    onChange={this.props.onUnitLengthChange}*/}\n              {/*>*/}\n              {/*    {unitLengthList.map((record, i) => {*/}\n              {/*        return (*/}\n              {/*            <option key={i} value={record}>*/}\n              {/*                {record}*/}\n              {/*            </option>*/}\n              {/*        );*/}\n              {/*    })}*/}\n              {/*</select>*/}\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Date Services Begin</div>\n              <Field\n                name=\"serviceStartDate\"\n                component={renderDatePicker}\n                type=\"text\"\n                required={true}\n                validate={validateClientServiceStartDate}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left my-auto\">\n              <input\n                type=\"checkbox\"\n                name=\"authorized\"\n                value=\"authorized\"\n                checked={this.props.isServiceInfoAuthorized}\n                onChange={(event) => {\n                  this.props.onServiceInfoAuthorized(event.target.checked);\n                }}\n                style={{ marginRight: 5 }}\n              />\n              <span className=\"label\">Authorized</span>\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Date Services End</div>\n              <Field\n                name=\"serviceEndDate\"\n                component={renderDatePicker}\n                type=\"text\"\n                required={true}\n                validate={validateClientServiceEndDate}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left my-auto\">\n              <input\n                type=\"checkbox\"\n                name=\"degreeRequired\"\n                value=\"degreeRequired\"\n                checked={this.props.isDegreeRequired}\n                onChange={(event) => {\n                  this.props.onDegreeRequired(event.target.checked);\n                }}\n                style={{ marginRight: 5 }}\n              />\n              <span className=\"label\">Degree Required</span>\n            </div>\n            <div className=\"col-6 input-box text-left\">\n              <div className=\"label\">Units Authorized</div>\n              <Field\n                name=\"serviceUnitsAuthorized\"\n                component={inputField}\n                type=\"number\"\n                // placeholder={'Unit Length'}\n                required={true}\n                validate={validateClientServiceUnitsAuthorized}\n                style={{ marginRight: 5 }}\n                minVal={0}\n              />\n            </div>\n            <div className=\"col-6 input-box text-left my-auto\">\n              <input\n                type=\"checkbox\"\n                name=\"degreeRequired\"\n                value=\"degreeRequired\"\n                checked={this.props.isAllowedNegativeUnits}\n                onChange={(event) => {\n                  this.props.AllowNegativeUnits(event.target.checked);\n                }}\n                style={{ marginRight: 5 }}\n              />\n              <span className=\"label\">Allow Negative Units Remaining</span>\n            </div>\n            {this.props.initialValues != null && (\n              <div className=\"col-6 input-box text-left\">\n                <div className=\"label\">Total Worth</div>\n                <Field\n                  name=\"totalWorth\"\n                  component={inputField}\n                  type=\"text\"\n                  disabled={true}\n                  // placeholder={'Unit Length'}\n                  required={true}\n                  //   validate={validateEmail}\n                />\n              </div>\n            )}\n            {this.props.initialValues != null && (\n              <div className=\"col-6 input-box text-left\">\n                <div className=\"label\">Units Utilized</div>\n                <Field\n                  name=\"unitsUtilized\"\n                  component={inputField}\n                  type=\"text\"\n                  disabled={true}\n                  // placeholder={'Unit Length'}\n                  required={true}\n                  //   validate={validateEmail}\n                />\n              </div>\n            )}\n            {this.props.initialValues != null && (\n              <div className=\"col-6 input-box text-left\">\n                <div className=\"label\">Units Remaining</div>\n                <Field\n                  name=\"unitsRemaining\"\n                  component={inputField}\n                  type=\"text\"\n                  disabled={true}\n                  // placeholder={'Unit Length'}\n                  required={true}\n                  //   validate={validateEmail}\n                />\n              </div>\n            )}\n          </div>\n          <div className=\"row\">\n            <div className=\"col-6 input-box text-left my-auto\">\n              <input\n                type=\"checkbox\"\n                name=\"degreeRequired\"\n                value=\"degreeRequired\"\n                checked={this.props.isConfirmedDates}\n                onChange={(event) => {\n                  this.props.onConfirmDates(event.target.checked);\n                }}\n                style={{ marginRight: 5 }}\n              />\n              <span className=\"label\">Confirm Dates</span>\n            </div>\n            <div className=\"col-6 input-box text-left my-auto\">\n              <input\n                type=\"checkbox\"\n                name=\"degreeRequired\"\n                value=\"degreeRequired\"\n                checked={this.props.isOverlappable}\n                onChange={(event) => {\n                  this.props.onOverlapable(event.target.checked);\n                }}\n                style={{ marginRight: 5 }}\n              />\n              <span className=\"label\">Overlappable Service</span>\n            </div>\n          </div>\n          <div className=\"row\">\n            <div className=\"col-12\" style={{ padding: 10 }}>\n              <Files\n                onFileUpload={this.props.onFileUpload}\n                fileList={this.props.fileList}\n                onRemoveImage={this.props.onRemoveImage}\n                directoryName={\"service\"}\n              />\n            </div>\n          </div>\n          <div className=\"row\">\n            <div className=\"col-lg-6 offset-lg-3 col-md-8 offset-md-2 col-sm-10 offset-sm-1\">\n              <div className=\"row\">\n                <div className=\"col-6\">\n                  <button type=\"submit\" className=\"button submit\">\n                    {this.props.initialValues == null ? \"SAVE\" : \"UPDATE\"}\n                  </button>\n                </div>\n                <div className=\"col-6\">\n                  <button\n                    className=\"button basic\"\n                    onClick={(event) => {\n                      this.props.onCloseModal();\n                    }}\n                  >\n                    CANCEL\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </Form>\n    );\n  }\n}\n\nconst serviceForm = reduxForm({\n  form: \"addService\",\n  enableReinitialize: true,\n  keepDirtyOnReinitialize: true,\n})(ClientServiceInfo);\n\nexport default withRouter(serviceForm);\n// export default ClientServiceInfo;\n","import * as React from \"react\";\nimport \"../data-grid.scss\";\n\nclass StaffAllocationAction extends React.Component {\n    onClick = (event) => {\n        this.props.onClick(this.props.actionId, event);\n    };\n\n    render() {\n        return (\n            <div className='cell action-cell'>\n                <div className=\"col-12 text-center\" onClick={this.onClick}>\n                    <img src=\"/images/staff-allocation.svg\" alt=\"\"/>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default StaffAllocationAction;\n","import React from \"react\";\nimport \"./dual-list-box.scss\";\nimport * as classNames from \"classnames\";\nimport { clone, pullAll, remove } from \"lodash\";\n\nclass DualListBox extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      allOptions: [\"MS\", \"LPN\", \"MA\", \"LPC\", \"MSW\", \"LSW\", \"BSC\"],\n      availableOptions: [],\n      selectedOptions: [],\n      markedAvailableOptions: [],\n      markedSelectedOptions: [],\n    };\n  }\n\n  componentDidMount = () => {\n    this.setState({\n      availableOptions: clone(this.state.allOptions),\n    });\n  };\n\n  componentWillReceiveProps = (nextProps) => {\n    if (nextProps.selectedOptions !== this.props.selectedOptions) {\n      if (nextProps.selectedOptions) {\n        let availableOptions = clone(this.state.allOptions);\n        let selectedOptions = nextProps.selectedOptions;\n        pullAll(availableOptions, selectedOptions);\n        this.setState({\n          availableOptions: availableOptions,\n          selectedOptions: selectedOptions,\n        });\n      }\n    }\n  };\n\n  onSelectAvailableOption = (option) => {\n    let markedOptions = this.state.markedAvailableOptions;\n    if (markedOptions.includes(option)) {\n      remove(markedOptions, function (o) {\n        return o == option;\n      });\n    } else {\n      markedOptions.push(option);\n    }\n    this.setState({\n      markedAvailableOptions: markedOptions,\n    });\n  };\n\n  onSelectSelectedOption = (option) => {\n    let markedOptions = this.state.markedSelectedOptions;\n    if (markedOptions.includes(option)) {\n      remove(markedOptions, function (o) {\n        return o == option;\n      });\n    } else {\n      markedOptions.push(option);\n    }\n    this.setState({\n      markedSelectedOptions: markedOptions,\n    });\n  };\n\n  onOptionSelect = () => {\n    let availableOptions = clone(this.state.allOptions);\n    let selectedOptions = this.state.selectedOptions;\n    let markedOptions = this.state.markedAvailableOptions;\n    markedOptions.forEach((element) => {\n      selectedOptions.push(element);\n    });\n    pullAll(availableOptions, selectedOptions);\n    this.setState({\n      availableOptions: availableOptions,\n      selectedOptions: selectedOptions,\n      markedAvailableOptions: [],\n    });\n    this.props.onOptionsSelect(selectedOptions);\n  };\n\n  onOptionDeselect = () => {\n    let availableOptions = clone(this.state.allOptions);\n    let selectedOptions = this.state.selectedOptions;\n    let markedOptions = this.state.markedSelectedOptions;\n    pullAll(selectedOptions, markedOptions);\n    pullAll(availableOptions, selectedOptions);\n    this.setState({\n      availableOptions: availableOptions,\n      selectedOptions: selectedOptions,\n      markedSelectedOptions: [],\n    });\n    this.props.onOptionsSelect(selectedOptions);\n  };\n\n  render() {\n    return (\n      <div className=\"row dual-list-box\">\n        <div className=\"col-5 list-box text-center\">\n          <div className=\"box-header\">Available</div>\n          {this.state.availableOptions.map((option) => {\n            return (\n              <div\n                className={classNames(\"list-item\", {\n                  active: this.state.markedAvailableOptions.includes(option),\n                })}\n                onClick={() => {\n                  this.onSelectAvailableOption(option);\n                }}\n              >\n                {option}\n              </div>\n            );\n          })}\n        </div>\n        <div className=\"col-2 my-auto\">\n          <div\n            className=\"list-box-arrow text-center\"\n            onClick={this.onOptionSelect}\n          >\n            <span>\n              <img src=\"./images/chevron-right-grey.svg\" alt=\"\" />\n            </span>\n          </div>\n          <div\n            className=\"list-box-arrow text-center\"\n            onClick={this.onOptionDeselect}\n          >\n            <span>\n              <img src=\"./images/chevron-left-grey.svg\" alt=\"\" />\n            </span>\n          </div>\n        </div>\n        <div className=\"col-5 list-box text-center\">\n          <div className=\"box-header\">Chosen</div>\n          {this.state.selectedOptions.map((option) => {\n            return (\n              <div\n                className={classNames(\"list-item\", {\n                  active: this.state.markedSelectedOptions.includes(option),\n                })}\n                onClick={() => {\n                  this.onSelectSelectedOption(option);\n                }}\n              >\n                {option}\n              </div>\n            );\n          })}\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default DualListBox;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport \"./clientDetails.scss\";\nimport SearchableDropdown from \"../../shared/searchable-dropdown\";\nimport { clone, get, isNull, map, pullAllBy, remove } from \"lodash\";\nimport { getAllUsersList } from \"../../../api/user\";\nimport DualListBox from \"../../shared/dual-list-box/dual-list-box\";\nimport * as classNames from \"classnames\";\nimport { formatDateTime } from \"../../../util/util\";\nimport moment from \"moment\";\nimport { isEmpty } from \"lodash/lang\";\n\nclass StaffAllocation extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      allOptions: [],\n      availableOptions: [],\n      filteredAvailableOptions: [],\n      selectedOptions: [],\n      filteredSelectedOptions: [],\n      markedAvailableOptions: [],\n      markedSelectedOptions: [],\n      selectedStaff: [],\n      chosenFilter: \"\",\n      availableFilter: \"\",\n    };\n  }\n\n  componentDidMount() {\n    const { service } = this.props;\n    getAllUsersList().then((res) => {\n      let allOptions = res;\n      let availableOptions = clone(allOptions);\n      let selectedOptions = service.assignedStaff ? service.assignedStaff : [];\n      pullAllBy(availableOptions, selectedOptions, \"userId\");\n      this.setState({\n        allOptions: allOptions,\n        availableOptions: availableOptions,\n        selectedOptions: selectedOptions,\n        filteredAvailableOptions: availableOptions,\n        filteredSelectedOptions: selectedOptions,\n        selectedStaff: selectedOptions,\n      });\n    });\n  }\n\n  componentWillReceiveProps = (nextProps) => {\n    if (nextProps.selectedOptions !== this.props.selectedOptions) {\n      if (nextProps.selectedOptions) {\n        let availableOptions = clone(this.state.allOptions);\n        let selectedOptions = nextProps.selectedOptions;\n        pullAllBy(availableOptions, selectedOptions, \"userId\");\n        this.setState({\n          availableOptions: availableOptions,\n          selectedOptions: selectedOptions,\n          filteredAvailableOptions: availableOptions,\n          filteredSelectedOptions: selectedOptions,\n        });\n      }\n    }\n  };\n\n  onSelectAvailableOption = (option) => {\n    let markedOptions = this.state.markedAvailableOptions;\n    if (markedOptions.includes(option)) {\n      remove(markedOptions, function (o) {\n        return o == option;\n      });\n    } else {\n      markedOptions.push(option);\n    }\n    this.setState({\n      markedAvailableOptions: markedOptions,\n      availableFilter: \"\",\n      filteredAvailableOptions: this.filterOptions(\n        this.state.availableOptions,\n        \"name\",\n        \"\"\n      ),\n    });\n  };\n\n  onOptionSelect = () => {\n    let availableOptions = clone(this.state.allOptions);\n    let selectedOptions = this.state.selectedOptions;\n    let markedOptions = this.state.markedAvailableOptions;\n    markedOptions.forEach((element) => {\n      selectedOptions.push(\n        availableOptions.find((option) => option.userId === element.userId)\n      );\n    });\n    pullAllBy(availableOptions, selectedOptions, \"userId\");\n    this.setState({\n      availableOptions: availableOptions,\n      selectedOptions: selectedOptions,\n      selectedStaff: selectedOptions,\n      markedAvailableOptions: [],\n    });\n  };\n\n  onSelectSelectedOption = (option) => {\n    let markedOptions = this.state.markedSelectedOptions;\n    if (markedOptions.includes(option)) {\n      remove(markedOptions, function (o) {\n        return o == option;\n      });\n    } else {\n      markedOptions.push(option);\n    }\n    this.setState({\n      markedSelectedOptions: markedOptions,\n      chosenFilter: \"\",\n      filteredSelectedOptions: this.filterOptions(\n        this.state.selectedOptions,\n        \"name\",\n        \"\"\n      ),\n    });\n  };\n\n  onOptionDeselect = () => {\n    let availableOptions = clone(this.state.allOptions);\n    let selectedOptions = this.state.selectedOptions;\n    let markedOptions = this.state.markedSelectedOptions;\n    pullAllBy(selectedOptions, markedOptions, \"userId\");\n    pullAllBy(availableOptions, selectedOptions, \"userId\");\n    this.setState({\n      availableOptions: availableOptions,\n      selectedOptions: selectedOptions,\n      selectedStaff: selectedOptions,\n      markedSelectedOptions: [],\n    });\n  };\n\n  onChosenFilterChange = (e) => {\n    const searchParam = e.target.value;\n    this.setState({\n      chosenFilter: searchParam,\n      filteredSelectedOptions: this.filterOptions(\n        this.state.selectedOptions,\n        \"name\",\n        searchParam\n      ),\n    });\n  };\n\n  onAvailableFilterChange = (e) => {\n    const searchParam = e.target.value;\n    this.setState({\n      availableFilter: searchParam,\n      filteredAvailableOptions: this.filterOptions(\n        this.state.availableOptions,\n        \"name\",\n        searchParam\n      ),\n    });\n  };\n\n  filterOptions = (options, valueIdentifier, selectedValue) => {\n    selectedValue = selectedValue.trim();\n    if (isNull(selectedValue) || isEmpty(selectedValue)) {\n      return options;\n    }\n    return options.filter(\n      (option) =>\n        option[valueIdentifier]\n          .toLowerCase()\n          .replaceAll(\",\", \"\")\n          .includes(selectedValue.toLowerCase()) ||\n        option[valueIdentifier].toLowerCase().replaceAll(\",\", \"\") ==\n          selectedValue.toLowerCase()\n    );\n  };\n\n  render() {\n    const { service } = this.props;\n    return (\n      <div className={\"col-sm-12 col-lg-12 staff-allocation\"}>\n        <div className={\"row col-sm-12 col-lg-12\"} style={{ marginBottom: 30 }}>\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">Service Name</div>\n            <div className=\"title_text\">{get(service, \"serviceName\", \"-\")}</div>\n          </div>\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">Service Code</div>\n            <div className=\"title_text\">{get(service, \"serviceCode\", \"-\")}</div>\n          </div>\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">Begin Date</div>\n            <div className=\"title_text\">\n              {moment(service.serviceStartDate).utc().format(\"MM-DD-YYYY\")}\n            </div>\n          </div>\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">End Date</div>\n            <div className=\"title_text\">\n              {moment(service.serviceEndDate).utc().format(\"MM-DD-YYYY\")}\n            </div>\n          </div>\n        </div>\n        <div className=\"row dual-list-box\">\n          <div className={\"col-5\"}>\n            <div className=\"box-header text-center\">Available Staff</div>\n            <div className=\"input-box\">\n              <input\n                type=\"text\"\n                className=\"box text-box staff-allocation-search search-icon\"\n                value={this.state.availableFilter}\n                onChange={this.onAvailableFilterChange}\n              />\n            </div>\n            <div className=\" list-box text-center\">\n              {this.state.filteredAvailableOptions.map((option, index) => {\n                return (\n                  <div\n                    key={index}\n                    className={classNames(\"list-ite\", {\n                      active:\n                        this.state.markedAvailableOptions.includes(option),\n                    })}\n                    onClick={() => {\n                      this.onSelectAvailableOption(option);\n                    }}\n                  >\n                    <div className=\"child-item\">{option.name}</div>\n                  </div>\n                );\n              })}\n              {this.state.filteredAvailableOptions.length === 0 &&\n                this.state.availableFilter != \"\" && (\n                  <div className=\"box-header text-center\">No Matches found</div>\n                )}\n            </div>\n          </div>\n\n          <div className=\"col-2 my-auto\">\n            <div\n              className=\"list-box-arrow text-center\"\n              onClick={this.onOptionSelect}\n            >\n              <span>\n                <img src=\"./images/chevron-right-grey.svg\" alt=\"\" />\n              </span>\n            </div>\n            <div\n              className=\"list-box-arrow text-center\"\n              onClick={this.onOptionDeselect}\n            >\n              <span>\n                <img src=\"./images/chevron-left-grey.svg\" alt=\"\" />\n              </span>\n            </div>\n          </div>\n          <div className=\"col-5\">\n            <div className=\"box-header text-center\">Chosen Staff</div>\n            <div className=\"input-box\">\n              <input\n                type=\"text\"\n                className=\"box text-box staff-allocation-search search-icon\"\n                value={this.state.chosenFilter}\n                onChange={this.onChosenFilterChange}\n              />\n            </div>\n            <div className=\"list-box text-center\">\n              {this.state.filteredSelectedOptions.map((option, index) => {\n                return (\n                  <div\n                    key={index}\n                    className={classNames(\"list-ite\", {\n                      active: this.state.markedSelectedOptions.includes(option),\n                    })}\n                    // style={{\n                    //   backgroundColor: \"#35cc62\",\n\n                    //   margin: 15,\n                    //   minHeight: 31,\n                    //   justifyContent: \"stretch\",\n                    //   justifyItems: \"center\",\n                    //   borderRadius: 15.5,\n                    // }}\n                    onClick={() => {\n                      this.onSelectSelectedOption(option);\n                    }}\n                  >\n                    <div\n                      className=\"child-item\"\n                      //   style={{\n                      //     backgroundColor: \"red\",\n                      //     wordWrap: \"break-word\",\n                      //     margin: 4,\n                      //   }}\n                    >\n                      {option.name}\n                    </div>\n                  </div>\n                );\n              })}\n              {this.state.filteredSelectedOptions.length === 0 &&\n                this.state.chosenFilter != \"\" && (\n                  <div className=\"box-header text-center\">No Matches found</div>\n                )}\n            </div>\n          </div>\n        </div>\n        <div\n          className=\"row\"\n          style={{\n            marginTop: 30,\n          }}\n        >\n          <div className=\"col-lg-6 offset-lg-3 col-md-8 offset-md-2 col-sm-10 offset-sm-1\">\n            <div className=\"row\">\n              <div className=\"col-6\">\n                <button\n                  type=\"submit\"\n                  className=\"button submit\"\n                  onClick={() => {\n                    this.props.onUpdate(service, this.state.selectedStaff);\n                  }}\n                >\n                  {\"UPDATE\"}\n                </button>\n              </div>\n              <div className=\"col-6\">\n                <button\n                  className=\"button basic\"\n                  onClick={(event) => {\n                    this.props.onCloseModal();\n                  }}\n                >\n                  CANCEL\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({});\n\nexport default withRouter(connect(mapStateToProps)(StaffAllocation));\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { clone, get, isEqual, isNull, orderBy, remove } from \"lodash\";\n\nimport \"./clientDetails.scss\";\nimport Actions from \"../../shared/data-grid/custom-cells/actions\";\nimport BasicCell from \"../../shared/data-grid/custom-cells/basic-cell\";\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport BasicHeader from \"../../shared/data-grid/custom-headers/basic-header\";\nimport PopUpModal from \"../../shared/popup-modal/popUpModal\";\nimport ClientServiceInfo from \"./clientServiceInfo\";\nimport {\n  createClientService,\n  updateClientService,\n} from \"../../../redux/services/serviceActions\";\nimport { NotificationManager } from \"react-notifications\";\nimport { ALERT_TYPES, DATE_FORMAT } from \"../../../constants/appConstants\";\nimport {\n  getClientServiceById,\n  getServiceById,\n  updateStaffAllocation,\n} from \"../../../api/clientService\";\nimport moment from \"moment\";\nimport StaffAllocationAction from \"../../shared/data-grid/custom-cells/staffAssign\";\nimport StaffAllocation from \"./staffAllocation\";\n\nclass ServiceDetails extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      openModal: false,\n      selectedClientId: 0,\n      activeTabIndex: 0,\n      selectedServiceRequest: \"\",\n      clientServices: [],\n      isDegreeRequired: false,\n      isConfirmedDates: false,\n      isAllowedNegativeUnits: false,\n      isServiceInfoAuthorized: false,\n      AllowNegativeUnits: false,\n      initialValues: null,\n      isEdit: false,\n      servicesList: [],\n      unitLength: 0,\n      isOverlappable: false,\n      fileList: [],\n      openDeleteModal: false,\n      openAllocationModal: false,\n    };\n  }\n\n  componentDidMount() {\n    var { clientServices, clientId } = this.props;\n    this.setState({\n      clientServices: clientServices,\n      selectedClientId: clientId,\n    });\n\n    // getServicesList(0, 999).then((res) => {\n    //   const list = map(res.data, (obj, index) => ({\n    //     key: index,\n    //     text: obj.name,\n    //     value: obj.serviceId,\n    //   }));\n    //   this.setState({\n    //     servicesList: list,\n    //   });\n    // });\n  }\n\n  componentWillReceiveProps = (nextProps) => {\n    const { history } = this.props;\n\n    if (\n      !isNull(get(nextProps, \"createClientServiceSuccess\")) &&\n      !isEqual(\n        nextProps.createClientServiceSuccess,\n        this.props.createClientServiceSuccess\n      )\n    ) {\n      this.createNotification(\n        ALERT_TYPES.SUCCESS,\n        \"Client Service create successful\"\n      );\n      let services = this.state.clientServices ? this.state.clientServices : [];\n      let newService = nextProps.createClientServiceSuccess;\n      newService.serviceStartDate = new Date(\n        moment(newService.serviceStartDate).format(DATE_FORMAT)\n      );\n\n      newService.serviceEndDate = new Date(\n        moment(newService.serviceEndDate).format(DATE_FORMAT)\n      );\n      newService.serviceStartDateDisplay = moment(\n        newService.serviceStartDate\n      ).format(DATE_FORMAT);\n      newService.serviceEndDateDisplay = moment(\n        newService.serviceEndDate\n      ).format(DATE_FORMAT);\n      services.push(newService);\n      services = orderBy(\n        services,\n        [\n          function (o) {\n            return new Date(o.serviceStartDate);\n          },\n        ],\n        [\"desc\"]\n      );\n      this.setState({\n        clientServices: services,\n        openModal: false,\n      });\n      this.props.onClientServicesUpdate(services);\n    }\n\n    if (\n      !isNull(get(nextProps, \"createClientServiceFail\")) &&\n      !isEqual(\n        nextProps.createClientServiceFail,\n        this.props.createClientServiceFail\n      )\n    ) {\n      this.createNotification(\n        ALERT_TYPES.ERROR,\n        \"Client Service create failed\"\n      );\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateClientServiceSuccess\")) &&\n      !isEqual(\n        nextProps.updateClientServiceSuccess,\n        this.props.updateClientServiceSuccess\n      )\n    ) {\n      let updatedService = nextProps.updateClientServiceSuccess;\n      let newServicesList = remove(this.state.clientServices, function (obj) {\n        return obj.serviceRequestId != updatedService.serviceRequestId;\n      });\n\n      updatedService.serviceStartDate = new Date(\n        moment(updatedService.serviceStartDate).format(DATE_FORMAT)\n      );\n      updatedService.serviceEndDate = new Date(\n        moment(updatedService.serviceEndDate).format(DATE_FORMAT)\n      );\n\n      updatedService.serviceStartDateDisplay = moment(\n        updatedService.serviceStartDate\n      ).format(DATE_FORMAT);\n      updatedService.serviceEndDateDisplay = moment(\n        updatedService.serviceEndDate\n      ).format(DATE_FORMAT);\n      newServicesList.push(updatedService);\n      newServicesList = orderBy(\n        newServicesList,\n        [\n          function (o) {\n            return new Date(o.serviceStartDate);\n          },\n        ],\n        [\"desc\"]\n      );\n      this.createNotification(\n        ALERT_TYPES.SUCCESS,\n        \"Client Service update successful\"\n      );\n      this.setState({\n        clientServices: newServicesList,\n        openModal: false,\n      });\n      this.props.onClientServicesUpdate(newServicesList);\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateClientServiceFail\")) &&\n      !isEqual(\n        nextProps.updateClientServiceFail,\n        this.props.updateClientServiceFail\n      )\n    ) {\n      this.createNotification(\n        ALERT_TYPES.ERROR,\n        \"Client Service update failed\"\n      );\n    }\n  };\n\n  createNotification(alertType, alertMessage) {\n    switch (alertType) {\n      case ALERT_TYPES.INFO:\n        NotificationManager.info(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.SUCCESS:\n        NotificationManager.success(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.WARNING:\n        NotificationManager.warning(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.ERROR:\n        NotificationManager.error(alertMessage, \"\", 2000);\n        break;\n      default:\n        break;\n    }\n  }\n\n  onEdit = (serviceId) => {\n    getClientServiceById(serviceId).then((res) => {\n      const selectedService = res;\n      selectedService.serviceStartDate = new Date(\n        moment(selectedService.serviceStartDate).utc().format(DATE_FORMAT)\n      );\n      selectedService.serviceEndDate = new Date(\n        moment(selectedService.serviceEndDate).utc().format(DATE_FORMAT)\n      );\n      this.setState({\n        initialValues: selectedService,\n        isDegreeRequired: selectedService.isDegreeRequired,\n        isConfirmedDates: selectedService.isDatesConfirmed,\n        isAllowedNegativeUnits: selectedService.serviceIsNegetiveUnitsAllowed,\n        isServiceInfoAuthorized: selectedService.serviceIsAuthorized,\n        unitLength: selectedService.serviceUnitLength,\n        isEdit: true,\n        openModal: true,\n        isOverlappable: selectedService.isOverlappable,\n      });\n    });\n  };\n\n  onStaffAssign = (serviceId) => {\n    getClientServiceById(serviceId).then((res) => {\n      this.setState({\n        initialValues: res,\n        openAllocationModal: true,\n      });\n    });\n  };\n\n  onStaffAllocationUpdate = (service, staff) => {\n    let req = {\n      clientId: service.clientId,\n      serviceRequestId: service.serviceRequestId,\n      staff: staff,\n    };\n    updateStaffAllocation(req).then((res) => {\n      this.setState({\n        openAllocationModal: false,\n      });\n    });\n  };\n\n  addServiceRequests = (values) => {\n    const service = this.mapService(values);\n    service.files = this.state.fileList;\n    if (!this.state.isEdit) {\n      service.clientId = parseInt(this.state.selectedClientId);\n      this.props.dispatch(createClientService(service));\n    } else {\n      this.props.dispatch(updateClientService(service));\n    }\n  };\n\n  onServiceSelect = (event, data) => {\n    let val = data.value == \"\" ? 0 : data.value;\n    let service = this.state.initialValues;\n    getServiceById(val).then((res) => {});\n  };\n\n  mapService = (serviceData) => {\n    let service = {\n      serviceRequestId: parseInt(get(serviceData, \"serviceRequestId\", \"\")),\n      clientId: parseInt(get(serviceData, \"clientId\", \"\")),\n      serviceId: parseInt(get(serviceData, \"serviceId\", \"\")),\n      serviceName: get(serviceData, \"serviceName\", \"\"),\n      serviceCode: get(serviceData, \"serviceCode\", \"\"),\n      serviceAccount: get(serviceData, \"serviceAccount\", \"\"),\n      serviceDescription: get(serviceData, \"serviceDescription\", \"\"),\n      serviceUnitRate: parseFloat(get(serviceData, \"serviceUnitRate\", 0)),\n      serviceUnitLength: parseFloat(get(serviceData, \"serviceUnitLength\", 0)),\n      serviceStartDate: moment(\n        get(serviceData, \"serviceStartDate\", new Date())\n      ).format(\"YYYY-MM-DD HH:mm:ss.SSS\"),\n      serviceEndDate: moment(\n        get(serviceData, \"serviceEndDate\", new Date())\n      ).format(\"YYYY-MM-DD HH:mm:ss.SSS\"),\n      serviceUnitsAuthorized: parseFloat(\n        get(serviceData, \"serviceUnitsAuthorized\", \"\")\n      ),\n      serviceIsNegetiveUnitsAllowed: this.state.isAllowedNegativeUnits,\n      serviceIsAuthorized: this.state.isServiceInfoAuthorized,\n      isDegreeRequired: this.state.isDegreeRequired,\n      isDatesConfirmed: this.state.isConfirmedDates,\n      isOverlappable: this.state.isOverlappable,\n    };\n    return service;\n  };\n\n  onRemoveFile = (documentKey) => {};\n\n  render() {\n    const columns = [\n      {\n        Header: () => <BasicHeader header={\"Service Name\"} />,\n        accessor: \"serviceName\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        },\n      },\n      {\n        Header: () => <BasicHeader header={\"Unit Rate\"} />,\n        accessor: \"serviceUnitRate\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 100,\n      },\n      {\n        Header: () => <BasicHeader header={\"Unit Length\"} />,\n        accessor: \"serviceUnitLength\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 100,\n      },\n      {\n        Header: () => <BasicHeader header={\"Begin Date\"} />,\n        accessor: \"serviceStartDateDisplay\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 100,\n      },\n      {\n        Header: () => <BasicHeader header={\"End Date\"} />,\n        accessor: \"serviceEndDateDisplay\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 100,\n      },\n      {\n        Header: () => <BasicHeader header={\"Units Authorized\"} />,\n        accessor: \"serviceUnitsAuthorized\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 150,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <StaffAllocationAction\n            actionId={row.original.serviceRequestId}\n            onClick={this.onStaffAssign.bind(row.original.serviceRequestId)}\n            value={\"Assign\"}\n          />\n        ),\n        width: 50,\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <Actions\n            actionId={row.original.serviceRequestId}\n            onEdit={this.onEdit.bind(row.original.serviceRequestId)}\n          />\n        ),\n        width: 50,\n      },\n    ];\n    return (\n      <div className=\"col-lg-12 col-md-12 col-sm-12\">\n        {this.state.clientServices && this.state.clientServices.length > 0 && (\n          <div className=\"row\">\n            <div className=\"col-sm-12\">\n              <DataGrid\n                data={this.state.clientServices}\n                columns={columns}\n                onRowClick={(rowInfo) => {\n                  this.setState({\n                    selectedClient: get(rowInfo.original, \"id\", \"\"),\n                  });\n                }}\n                onPageSizeChange={this.onPageSizeChange}\n                onPageNumberChange={this.onPageChange}\n                total={this.state.clientServices.length}\n                length={0}\n                paginationLabel={\"Services per page\"}\n                showPagination={false}\n              />\n            </div>\n            <div className=\"col-lg-12 col-md-12 col-sm-12\">\n              <hr></hr>\n            </div>\n          </div>\n        )}\n        <div className=\"row\">\n          <div\n            className=\"col-lg-12 col-md-12 col-sm-12 btn-new-service text-center\"\n            onClick={() => {\n              this.setState({\n                initialValues: null,\n                isDegreeRequired: false,\n                isConfirmedDates: false,\n                isAllowedNegativeUnits: false,\n                isServiceInfoAuthorized: false,\n                openModal: true,\n                isEdit: false,\n              });\n            }}\n          >\n            <span className=\"add-new-service\">+ ADD NEW SERVICE</span>\n          </div>\n        </div>\n        {this.state.openModal && (\n          <PopUpModal\n            show={this.state.openModal}\n            onClose={() => {\n              this.setState({ openModal: false });\n            }}\n            title={this.state.isEdit ? \"Edit Service\" : \"Create Service\"}\n            icon={\"/images/clipboard.png\"}\n            size={\"lg\"}\n          >\n            <ClientServiceInfo\n              onSubmit={this.addServiceRequests}\n              initialValues={this.state.initialValues}\n              onCloseModal={() => {\n                this.setState({ openModal: false });\n              }}\n              unitLength={this.state.unitLength}\n              isDegreeRequired={this.state.isDegreeRequired}\n              isConfirmedDates={this.state.isConfirmedDates}\n              isAllowedNegativeUnits={this.state.isAllowedNegativeUnits}\n              isServiceInfoAuthorized={this.state.isServiceInfoAuthorized}\n              onConfirmDates={(value) => {\n                this.setState({ isConfirmedDates: value });\n              }}\n              AllowNegativeUnits={(value) => {\n                this.setState({ isAllowedNegativeUnits: value });\n              }}\n              onDegreeRequired={(value) => {\n                this.setState({ isDegreeRequired: value });\n              }}\n              onServiceInfoAuthorized={(value) => {\n                this.setState({ isServiceInfoAuthorized: value });\n              }}\n              onUnitLengthChange={(event) => {\n                const val = parseFloat(event.target.value);\n                this.setState({\n                  unitLength: val,\n                });\n              }}\n              isOverlappable={this.state.isOverlappable}\n              onOverlapable={(isChecked) => {\n                this.setState({\n                  isOverlappable: isChecked,\n                });\n              }}\n              fileList={this.state.fileList}\n              onFileUpload={(value, success) => {\n                if (success) {\n                  let files = clone(this.state.fileList);\n                  files.push(value);\n                  this.createNotification(ALERT_TYPES.INFO, \"File uploaded.\");\n                  this.setState({\n                    fileList: files,\n                  });\n                } else {\n                  this.createNotification(\n                    ALERT_TYPES.WARNING,\n                    \"File upload fail.\"\n                  );\n                }\n              }}\n              onRemoveImage={(documentKey) => {\n                let files = clone(this.state.fileList);\n                remove(files, function (o) {\n                  return o.documentKey == documentKey;\n                });\n                this.setState({\n                  fileList: files,\n                });\n              }}\n            />\n          </PopUpModal>\n        )}\n        {this.state.openAllocationModal && (\n          <PopUpModal\n            show={this.state.openAllocationModal}\n            onClose={() => {\n              this.setState({ openAllocationModal: false });\n            }}\n            title={\"Staff Allocation\"}\n            icon={\"/images/staff-allocation.svg\"}\n            size={\"lg\"}\n          >\n            <StaffAllocation\n              service={this.state.initialValues}\n              onUpdate={this.onStaffAllocationUpdate}\n              onCloseModal={() => {\n                this.setState({ openAllocationModal: false });\n              }}\n            />\n          </PopUpModal>\n        )}\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  createClientServiceSuccess: state.service.createSuccess,\n  createClientServiceFail: state.service.createFail,\n  updateClientServiceSuccess: state.service.updateSuccess,\n  updateClientServiceFail: state.service.updateFail,\n});\n\nexport default withRouter(connect(mapStateToProps)(ServiceDetails));\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { getQueryParameter } from \"../../../util/url\";\nimport { get, isArray, isEmpty, isUndefined } from \"lodash\";\nimport \"./clientDetails.scss\";\nimport BasicInformation from \"./basicInformation\";\nimport ServiceDetails from \"./serviceDetails\";\nimport { getClientById } from \"../../../api/client\";\nimport { getUserStatus } from \"../../../util/util\";\nimport moment from \"moment\";\nimport { DATE_FORMAT } from \"../../../constants/appConstants\";\n\nclass clientDetails extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      selectedClientId: \"\",\n      activeTabIndex: 0,\n      initialValues: null,\n      openModal: false,\n      fileList: [],\n    };\n  }\n\n  componentDidMount() {\n    const clientId = getQueryParameter(\"id\");\n    if (!isEmpty(clientId) && !isUndefined(clientId)) {\n      getClientById(clientId).then((res) => {\n        const client = this.mapClient(res);\n        this.setState({\n          selectedClientId: clientId,\n          initialValues: client,\n          fileList: isArray(res.files) ? res.files : [],\n          clientServices: client.clientServices,\n        });\n      });\n    }\n  }\n\n  mapClient = (clientData) => {\n    let client = {\n      firstName: get(clientData, \"firstName\", \"\"),\n      middleName: get(clientData, \"middleName\", \"\"),\n      lastName: get(clientData, \"lastName\", \"\"),\n      mci: get(clientData, \"mci\", \"\"),\n      mpi: get(clientData, \"mpi\", \"\"),\n      diagnosticCode: get(clientData, \"diagnosticCode\", \"\"),\n      supportCoordinator: get(clientData, \"supportCoordinator\", null),\n      behavioralSpecialist: get(clientData, \"behavioralSpecialist\", null),\n      country: get(clientData, \"country\", \"\"),\n      goalsOutcomes: get(clientData, \"goalsOutcomes\", \"\"),\n      phone: get(clientData, \"phone\", \"\"),\n      familyContactEmail: get(clientData, \"familyContactEmail\", \"\"),\n      waiwer: get(clientData, \"waiwer\", \"\"),\n      fundingSource: get(clientData, \"fundingSource\", \"\"),\n      isAuthorized: this.state.clientInfoAuthorized,\n      billingStreet: get(clientData, \"billingStreet\", \"\"),\n      billingCity: get(clientData, \"billingCity\", \"\"),\n      billingState: get(clientData, \"billingState\", \"\"),\n      billingZIP: get(clientData, \"billingZIP\", \"\"),\n      billingCountry: get(clientData, \"billingCountry\", \"\"),\n      clientServices: get(clientData, \"clientServices\", \"\"),\n      dob: get(clientData, \"dob\", \"\"),\n      status: getUserStatus(parseInt(clientData.status)),\n    };\n    if (client.clientServices) {\n      client.clientServices.forEach(function (service) {\n        service.serviceStartDate = new Date(service.serviceStartDate);\n        service.serviceEndDate = new Date(service.serviceEndDate);\n        service.serviceStartDateDisplay = moment(service.serviceStartDate)\n          .utc()\n          .format(\"MM-DD-YYYY\");\n        service.serviceEndDateDisplay = moment(service.serviceEndDate)\n          .utc()\n          .format(\"MM-DD-YYYY\");\n      });\n    }\n    return client;\n  };\n\n  onEdit = () => {\n    this.props.history.push(\n      `/admin/edit-client?id=${this.state.selectedClientId}`\n    );\n  };\n\n  onClientServicesUpdate = (clientServices) => {\n    this.setState({\n      clientServices: clientServices,\n    });\n  };\n\n  handleTabStateChanged(position) {\n    this.setState({\n      activeTabIndex: position,\n    });\n  }\n\n  render() {\n    return (\n      <div className=\"col-lg-12 col-md-12 col-sm-12\">\n        <div className=\"row\">\n          <div\n            className=\"row col-lg-2 col-md-2 col-sm-4\"\n            onClick={() => {\n              this.props.history.goBack();\n            }}\n          >\n            <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n            <span\n              style={{\n                fontFamily: \"Muli\",\n                color: \"#333333\",\n                fontSize: 15,\n                padding: 10,\n              }}\n            >\n              Back\n            </span>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-6 col-md-6 col-sm-12\">\n            <div className=\"client-details\" style={{ cursor: \"default\" }}>\n              Client Details\n            </div>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div\n            className=\"\"\n            style={{\n              width: \"100%\",\n              zIndex: 1,\n              paddingTop: 10,\n              marginTop: 20,\n              // background: \"#FFFFFF\",\n            }}\n          >\n            <div className=\"col-md-11 offset-md-1 col-lg-11 offset-lg-1 col-sm-12\">\n              <div\n                style={{ display: \"inline-block\" }}\n                className={\"col-sm-3 col-lg-3 text-center\"}\n                onClick={this.handleTabStateChanged.bind(this, 0)}\n              >\n                <div\n                  style={{ display: \"flex\", justifyContent: \"center\" }}\n                  className={\n                    this.state.activeTabIndex === 0\n                      ? \"tab_text_style active_tabs\"\n                      : \"tab_text_style inactive_tabs\"\n                  }\n                >\n                  Basic information\n                  <span\n                    onClick={this.onEdit}\n                    style={{ paddingLeft: 10, cursor: \"pointer\" }}\n                    alt=\"Edit Client\"\n                  >\n                    <img src=\"/images/edit-green.svg\" alt=\"\" />\n                  </span>\n                </div>\n              </div>\n              <div\n                style={{ display: \"inline-block\", marginLeft: \"0px\" }}\n                className={\"col-sm-2 col-lg-2 text-center\"}\n                onClick={this.handleTabStateChanged.bind(this, 1)}\n              >\n                <div\n                  className={\n                    this.state.activeTabIndex === 1\n                      ? \"tab_text_style active_tabs\"\n                      : \"tab_text_style inactive_tabs\"\n                  }\n                >\n                  Services\n                </div>\n              </div>\n            </div>\n            <div className=\"col-lg-2 col-md-2 col-sm-0\"></div>\n          </div>\n\n          <div className=\"col-md-11 offset-md-1\">\n            {/* <div className=\"col-lg-1 col-md-1 col-sm-0 text-right\"></div> */}\n            {/* <div className=\"col-lg-12 col-md-12 col-sm-12\"> */}\n            {this.state.activeTabIndex === 0 ? (\n              <div className=\"col-md-11 col-12\" style={{ marginTop: 30 }}>\n                <BasicInformation\n                  initialValues={this.state.initialValues}\n                  fileList={this.state.fileList}\n                />\n              </div>\n            ) : (\n              <div\n                className=\"col-md-11 col-12\"\n                style={{\n                  backgroundColor: \"#FFF\",\n                  padding: 20,\n                  marginTop: 30,\n                }}\n              >\n                <ServiceDetails\n                  clientServices={this.state.clientServices}\n                  clientId={this.state.selectedClientId}\n                  onClientServicesUpdate={this.onClientServicesUpdate}\n                  onOpenModal={() => {\n                    this.setState({\n                      openModal: true,\n                    });\n                  }}\n                />\n              </div>\n            )}\n            {/* </div> */}\n            {/* <div className=\"col-lg-1 col-md-1 col-sm-0\"></div> */}\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  createClientSuccess: state.client.createClientSuccess,\n  createClientFail: state.client.createClientFail,\n  updateClientSuccess: state.client.updateClientSuccess,\n  updateClientFail: state.client.updateClientFail,\n  clients: state.client.getAllSuccess,\n});\n\nexport default withRouter(connect(mapStateToProps)(clientDetails));\n","import React from \"react\";\nimport \"./staffType.scss\";\nimport { getAuth } from \"../../../util/auth\";\n\nclass StaffType extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      staffType: 2,\n      userRoleGroup: 2,\n    };\n  }\n\n  onFilterChange = (event) => {\n    const type = event.target.value;\n    this.setState({\n      staffType: type,\n    });\n  };\n\n  onContinue = () => {\n    this.props.history.push(\n      `/admin/create-staff?staffType=${this.state.staffType}`\n    );\n  };\n\n  componentDidMount() {\n    let userData = getAuth();\n    this.setState({ userRoleGroup: userData.roleGroupId });\n  }\n\n  render() {\n    const recordTypes = [\n      // {\n      //   type: \"Admin\",\n      //   value: 1,\n      //   description: \"Administration Account.\"\n      // },\n      {\n        type: \"Staff\",\n        value: 2,\n        description: \"A staff member of an organization.\",\n      },\n      {\n        type: \"Behavioral Specialist\",\n        value: 3,\n        description:\n          \"A behavioral specialist for [a] particular individual(s) with disabilities.\",\n      },\n      // {\n      //     type: \"Support Coordinator\",\n      //     value: 4,\n      //     description:\n      //         \"A support coordinator for [a] particular individual(s) with disabilities.\"\n      // },\n      {\n        type: \"Customer\",\n        value: 5,\n        description: \"A customer or contact related to DMS Billing LLC.\",\n      },\n      {\n        type: \"Family Contact\",\n        value: 6,\n        description:\n          \"A family member or important contact of an individual with a waiver\",\n      },\n      {\n        type: \"Other\",\n        value: 7,\n        description:\n          \"A contact that is of a type not in other categories, such as admin, lawyers, etc.\",\n      },\n    ];\n\n    if (this.state.userRoleGroup === 2 || this.state.userRoleGroup === 1) {\n      recordTypes.unshift({\n        type: \"Admin\",\n        value: 1,\n        description: \"Administration Account.\",\n      });\n    }\n\n    return (\n      <div className=\"client\">\n        <div className=\"row\">\n          <div className=\"col-lg-8 offset-lg-2 col-md-8 offset-md-2 col-sm-12 offset-sm-12\">\n            <div className=\"row\" style={{ paddingBottom: 30 }}>\n              <div className=\"col-12\">\n                <div className=\"page-title\">Select Staff Record Type</div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ paddingTop: 10, paddingBottom: 10 }}>\n              <div className=\"col-12\">\n                <div className=\"sub-tittle\">Select Staff Record Type</div>\n              </div>\n            </div>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <select\n                  className=\"select-box\"\n                  placeholder=\"Select Staff Record Type\"\n                  value={this.state.staffType}\n                  onChange={this.onFilterChange}\n                >\n                  {recordTypes.map((record) => {\n                    return <option value={record.value}>{record.type}</option>;\n                  })}\n                </select>\n              </div>\n            </div>\n            <div\n              className=\"row\"\n              style={{\n                marginTop: 10,\n                flexDirection: \"row\",\n                justifyContent: \"flex-end\",\n              }}\n            >\n              <div style={{ margin: 2 }}>\n                <button className=\"button submit\" onClick={this.onContinue}>\n                  CONTINUE\n                </button>\n              </div>\n\n              <div style={{ margin: 2 }}>\n                <button\n                  className=\"button basic\"\n                  onClick={(event) => {\n                    this.props.history.push(\"/admin/staff\");\n                    event.preventDefault();\n                  }}\n                >\n                  CANCEL\n                </button>\n              </div>\n            </div>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <hr />\n              </div>\n            </div>\n            <div className=\"row\" style={{ padding: 10 }}>\n              <div className=\"col-lg-3 col-md-4 col-sm-6\">\n                <span className=\"staff-type-header\">Record type name</span>\n              </div>\n              <div className=\"col-lg-3 col-md-4 col-sm-6\">\n                <span className=\"staff-type-header\">Description</span>\n              </div>\n            </div>\n            {recordTypes.map((record) => {\n              return (\n                <div className=\"row\" style={{ padding: 10 }}>\n                  <div className=\"col-lg-3 col-md-4 col-sm-6\">\n                    <span className=\"staff-type-content\">{record.type}</span>\n                  </div>\n                  <div className=\"col-lg-9 col-md-8 col-sm-6\">\n                    <span className=\"staff-type-content\">\n                      {record.description}\n                    </span>\n                  </div>\n                </div>\n              );\n            })}\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default StaffType;\n","import { isEmpty } from \"lodash\";\n\nconst phoneNumberRegEx =\n  /^(1s?)?((([0-9]{3}))|[0-9]{3})[s-]?[\\0-9]{3}[s-]?[0-9]{4}$/;\nconst specialCharRegEx = /[!@#$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/]/;\nconst zipRegEx = /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/;\nconst characterRegEx = /^[A-Za-z]+$/;\n\nexport function validateFirstName(value) {\n  return isEmpty(value)\n    ? \"First name is required\"\n    : hasSpecialCharacters(value);\n}\n\nexport function validateLastName(value) {\n  return isEmpty(value) ? \"Last name is required\" : hasSpecialCharacters(value);\n}\n\nexport function validateMiddleName(value) {\n  return isEmpty(value) ? undefined : hasSpecialCharacters(value);\n}\n\nexport function validateSalutation(value) {\n  return !isEmpty(value) && !characterRegEx.test(value)\n    ? \"Can contain only letters.\"\n    : undefined;\n}\n\nexport function validateSuffix(value) {\n  return !isEmpty(value) && !characterRegEx.test(value)\n    ? \"Can contain only letters.\"\n    : undefined;\n}\nexport function validateMobileNumber(value) {\n  return isEmpty(value) ? \"Mobile number is required\" : undefined;\n}\n\nexport function validateUserPercentage(value) {\n  return parseFloat(value) < 0\n    ? \"Percentage should be greater than 0\"\n    : undefined;\n}\n\nfunction hasSpecialCharacters(value) {\n  return specialCharRegEx.test(value)\n    ? \"Can not contain special characters\"\n    : undefined;\n}\n\nexport function validateZIPCode(zip) {\n  if (!isEmpty(zip) && !zipRegEx.test(zip)) {\n    return \"Invalid ZIP Code\";\n  }\n  return undefined;\n}\n","import React from \"react\";\nimport { Field } from \"redux-form\";\nimport {\n  inputField,\n  phoneNumberField,\n  renderDatePicker,\n  SSNTNField,\n  textField,\n} from \"../../../shared/form-fields/formFields\";\nimport DualListBox from \"../../../shared/dual-list-box/dual-list-box\";\nimport {\n  validateFirstName,\n  validateLastName,\n  validateMiddleName,\n  validateSalutation,\n  validateSuffix,\n  validateMobileNumber,\n  validateUserPercentage,\n} from \"./staffValidator\";\nimport {\n  validateEmail,\n  validatePasswordFormat,\n  validateSSN,\n} from \"../../../login/loginValidator\";\nimport { getAuth } from \"../../../../util/auth\";\nimport { USER_TYPES } from \"../../../../constants/user\";\n\nclass MemberInformation extends React.Component {\n  render() {\n    const recordTypes = [\n      {\n        type: \"Super Admin\",\n        value: 0,\n      },\n      {\n        type: \"Admin\",\n        value: 1,\n      },\n      {\n        type: \"Staff\",\n        value: 2,\n      },\n      {\n        type: \"Behavioral Specialist\",\n        value: 3,\n      },\n      {\n        type: \"Support Coordinator\",\n        value: 4,\n      },\n      {\n        type: \"Customer\",\n        value: 5,\n      },\n      {\n        type: \"Family Contact\",\n        value: 6,\n      },\n      {\n        type: \"Other\",\n        value: 7,\n      },\n    ];\n    let showEmail = this.props.isEditMode\n      ? getAuth().userType == USER_TYPES.SUPER_ADMIN\n      : true;\n    return (\n      <div>\n        <div className=\"row\">\n          <span className=\"form-title\">Staff Member Information</span>\n        </div>\n        <div className=\"row\">\n          {/* <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Name</div>\n            <Field\n              name=\"name\"\n              component={searchField}\n              type=\"text\"\n              placeholder={\"Search\"}\n              required={true}\n              //   validate={validateEmail}\n            />\n          </div> */}\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Staff Record Type</div>\n            {/* <Field\n              name=\"staffType\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Staff\"}\n              required={true}\n              value={\"staff\"}\n              disabled={true}\n              //   validate={validateEmail}\n            /> */}\n            <select\n              className=\"select-box\"\n              placeholder=\"Select Staff Record Type\"\n              disabled\n              value={this.props.userType}\n            >\n              {recordTypes.map((record) => {\n                return <option value={record.value}>{record.type}</option>;\n              })}\n            </select>\n          </div>\n          {/* <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Report to</div>\n            <Field\n              name=\"reportTo\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Select\"}\n              required={true}\n            />\n          </div> */}\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Salutation</div>\n            <Field\n              name=\"salutation\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Select\"}\n              required={true}\n              validate={validateSalutation}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">First Name</div>\n            <Field\n              name=\"firstName\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"First Name\"}\n              required={true}\n              validate={validateFirstName}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Middle Name</div>\n            <Field\n              name=\"middleName\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Middle Name\"}\n              required={true}\n              validate={validateMiddleName}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Last Name</div>\n            <Field\n              name=\"lastName\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Last Name\"}\n              required={true}\n              validate={validateLastName}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Suffix</div>\n            <Field\n              name=\"suffix\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Suffix\"}\n              required={true}\n              validate={validateSuffix}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Birth Date</div>\n            <Field\n              name=\"dob\"\n              component={renderDatePicker}\n              type=\"text\"\n              maxDate={new Date()}\n              placeholder={\"Select\"}\n              required={true}\n              //   validate={validateEmail}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Status</div>\n            {/*<Field*/}\n            {/*  name=\"title\"*/}\n            {/*  component={inputField}*/}\n            {/*  type=\"text\"*/}\n            {/*  placeholder={\"Title\"}*/}\n            {/*  required={true}*/}\n            {/*  //   validate={validateEmail}*/}\n            {/*/>*/}\n            <select\n              className=\"select-box\"\n              placeholder=\"Select Staff Status\"\n              value={this.props.staffStatus}\n              onChange={(e) => {\n                this.props.onStatusChange(e.target.value);\n              }}\n            >\n              <option value={4}>Active</option>\n              <option value={5}>Inactive</option>\n            </select>\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">SSN/TIN</div>\n            <Field\n              name=\"ssn_tin\"\n              component={SSNTNField}\n              type=\"text\"\n              placeholder={\"SSN/TIN\"}\n              required={true}\n              validate={validateSSN}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Hire Date</div>\n            <Field\n              name=\"hireDate\"\n              component={renderDatePicker}\n              type=\"text\"\n              maxDate={new Date()}\n              placeholder={\"Select\"}\n              required={true}\n              // disabled={this.props.isEditMode}\n              //   validate={validateEmail}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Mobile</div>\n            <Field\n              name=\"mobile\"\n              component={phoneNumberField}\n              type=\"text\"\n              placeholder={\"Mobile\"}\n              required={false}\n              validate={validateMobileNumber}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Phone</div>\n            <Field\n              name=\"phone\"\n              component={phoneNumberField}\n              type=\"text\"\n              placeholder={\"Phone\"}\n              required={false}\n              // validate={validatePhoneNumber}\n            />\n          </div>\n\n          <div className=\"col-xs-12 col-md-6 input-box text-left\">\n            <div className=\"label\">Staff</div>\n\n            <DualListBox\n              selectedOptions={this.props.credentials}\n              onOptionsSelect={this.props.onCredentialsSelect}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"row\">\n              <div className=\"col-12 input-box\">\n                <div className=\"label\">Email</div>\n\n                <Field\n                  name=\"email\"\n                  component={inputField}\n                  type=\"text\"\n                  placeholder={\"Email\"}\n                  required={true}\n                  validate={validateEmail}\n                  disabled={!showEmail}\n                  autocomplete=\"new-password\"\n                />\n              </div>\n            </div>\n            {!this.props.isEditMode && (\n              <div className=\"row\">\n                <div className=\"col-12 input-box\">\n                  <div className=\"label\">Password</div>\n                  <Field\n                    name=\"password\"\n                    component={inputField}\n                    type=\"password\"\n                    placeholder={\"Password\"}\n                    required={true}\n                    validate={validatePasswordFormat}\n                    autocomplete=\"new-password\"\n                  />\n                </div>\n              </div>\n            )}\n            <div className=\"row\">\n              <div className=\"col-12 input-box\">\n                <div className=\"label\">Percent Paid</div>\n                <Field\n                  name=\"percentagePaid\"\n                  component={inputField}\n                  type=\"number\"\n                  placeholder={\"Percent Paid\"}\n                  required={true}\n                  validate={validateUserPercentage}\n                />\n              </div>\n            </div>\n            <div\n              className=\"col-6 input-box text-left\"\n              style={{ marginBottom: 20 }}\n            >\n              <input\n                type=\"checkbox\"\n                name=\"hasRelevantDegree\"\n                value=\"authorized\"\n                checked={this.props.hasRelevantDegree}\n                style={{ marginRight: 5 }}\n                onChange={(event) => {\n                  this.props.onHasRelevantDegree(event.target.checked);\n                }}\n              />\n              <span className=\"label\">Has Relevant Degree</span>\n            </div>\n          </div>\n\n          <div className=\"col-12 input-box text-left\">\n            <div className=\"label\">Internal Memo</div>\n            <Field\n              name=\"memo\"\n              component={textField}\n              type=\"text\"\n              placeholder={\"Internal Memo\"}\n              required={false}\n            />\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default MemberInformation;\n","import React from 'react'\nimport {Field} from 'redux-form'\nimport {inputField} from '../../../shared/form-fields/formFields'\nimport {validateZIPCode} from \"./staffValidator\";\n\nclass StaffAddressInfo extends React.Component {\n    render() {\n        return (\n            <div>\n                <div className='row'>\n                    <span className='form-title'>Address Information</span>\n                </div>\n                <div className='row'>\n                    <div className='col-12 input-box text-left'>\n                        <div className='label'>Mailing Street Address</div>\n                        <Field\n                            name='billingStreet'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing Street Address'}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                    <div className='col-6 input-box text-left'>\n                        <div className='label'>Mailing City</div>\n                        <Field\n                            name='billingCity'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing City'}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                    <div className='col-6 input-box text-left'>\n                        <div className='label'>Mailing State/Province</div>\n                        <Field\n                            name='billingState'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing State/Province'}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                    <div className='col-6 input-box text-left'>\n                        <div className='label'>Mailing Zip/Postal Code</div>\n                        <Field\n                            name='billingZIP'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing Zip/Postal Code'}\n                            required={true}\n                              validate={validateZIPCode}\n                        />\n                    </div>\n                    <div className='col-6 input-box text-left'>\n                        <div className='label'>Mailing Country</div>\n                        <Field\n                            name='billingCountry'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing Country'}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                </div>\n            </div>\n        )\n    }\n}\n\nexport default StaffAddressInfo\n","import React from \"react\";\nimport {Field} from \"redux-form\";\nimport {inputField} from \"../../../shared/form-fields/formFields\";\n\nclass SystemInfo extends React.Component {\n    render() {\n        return (\n            <div>\n                <div className=\"row\">\n                    <span className=\"form-title\">System Information</span>\n                </div>\n                <div className=\"row\">\n                    {/*<div className=\"col-6 input-box text-left\">*/}\n                    {/*    <div className=\"label\">User Role Group</div>*/}\n                    {/*    <select*/}\n                    {/*        className=\"select-box\"*/}\n                    {/*        placeholder=\"Select Staff Status\"*/}\n                    {/*        value={this.props.userRoleGroup}*/}\n                    {/*        onChange={(e) => {*/}\n                    {/*            this.props.onRoleGroupChange(e.target.value);*/}\n                    {/*        }}*/}\n                    {/*    >*/}\n                    {/*        {this.props.roleGroupList.map(function (rg, i) {*/}\n                    {/*            return (<option key={i} value={rg.roleGroupId}>{rg.name}</option>)*/}\n                    {/*        })}*/}\n                    {/*    </select>*/}\n                    {/*</div>*/}\n                    <div className=\"col-6 input-box text-left\">\n                        <div className=\"label\">Organization Authentication</div>\n                        <Field\n                            name=\"orgAuthentication\"\n                            component={inputField}\n                            type=\"text\"\n                            placeholder={\"Authentication\"}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                    <div className=\"col-6 input-box text-left my-auto\">\n                        <input\n                            type=\"checkbox\"\n                            name=\"isAuthorized\"\n                            value=\"authorized\"\n                            checked={this.props.isAuthorized}\n                            style={{marginRight: 5}}\n                            onChange={(event) => {\n                                this.props.onIsAuthorized(event.target.checked);\n                            }}\n                        />\n                        <span className=\"label\">Authorized</span>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default SystemInfo;\n","import React from \"react\";\nimport { Form, reduxForm } from \"redux-form\";\nimport MemberInformation from \"./memberInformation\";\nimport StaffAddressInfo from \"./staffAddressInfo\";\nimport SystemInfo from \"./systemInfo\";\nimport Files from \"./files\";\nimport { withRouter } from \"react-router-dom\";\n\nclass CreateStaffForm extends React.Component {\n  componentDidMount() {\n    if (!this.props.initialValues) {\n      this.props.initialize({\n        billingState: this.props.billingState,\n        billingCountry: this.props.billingCountry,\n      });\n    }\n  }\n  render() {\n    const { handleSubmit, initialValues } = this.props;\n    const routeToStaff = true;\n    return (\n      <Form style={{ width: \"100%\" }}>\n        <div className=\"page-content\">\n          <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n            <MemberInformation\n              hasRelevantDegree={this.props.hasRelevantDegree}\n              onHasRelevantDegree={this.props.onHasRelevantDegree}\n              userType={this.props.userType}\n              credentials={this.props.credentials}\n              onCredentialsSelect={this.props.onCredentialsSelect}\n              isEditMode={this.props.isEditMode}\n              onStatusChange={this.props.onStatusChange}\n              staffStatus={this.props.staffStatus}\n            />\n          </div>\n        </div>\n        <div className=\"page-content\">\n          <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n            <StaffAddressInfo />\n          </div>\n        </div>\n        <div className=\"page-content\">\n          <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n            <Files\n              onFileUpload={this.props.onFileUpload}\n              fileList={this.props.fileList}\n              onRemoveImage={this.props.onRemoveImage}\n              directoryName={\"staff\"}\n            />\n          </div>\n        </div>\n        <div className=\"page-content\">\n          <div className=\"col-lg-6 col-md-8 col-sm-8 offset-lg-2 offset-md-1 offset-sm-0\">\n            <SystemInfo\n              isAuthorized={this.props.isAuthorized}\n              onIsAuthorized={this.props.onIsAuthorized}\n              roleGroupList={this.props.roleGroupList}\n              userRoleGroup={this.props.userRoleGroup}\n              onRoleGroupChange={this.props.onRoleGroupChange}\n            />\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-8 offset-sm-2\">\n            <div className=\"row\">\n              <div className=\"col-4\">\n                <button\n                  className=\"button submit\"\n                  onClick={handleSubmit((values) => {\n                    this.props.onSubmit(values, routeToStaff);\n                  })}\n                >\n                  {this.props.initialValues == null ? \"SAVE\" : \"UPDATE\"}\n                </button>\n              </div>\n              {this.props.initialValues == null && (\n                <div className=\"col-4\">\n                  <button\n                    className=\"button submit-save\"\n                    onClick={handleSubmit((values) => {\n                      this.props.onSubmit(values, !routeToStaff);\n                    })}\n                  >\n                    SAVE & NEW\n                  </button>\n                </div>\n              )}\n              <div className=\"col-4\">\n                <button\n                  className=\"button basic\"\n                  onClick={(event) => {\n                    event.preventDefault();\n                    this.props.history.push(\"/admin/staff\");\n                  }}\n                >\n                  CANCEL\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </Form>\n    );\n  }\n}\n\nconst staffForm = reduxForm({\n  form: \"addStaff\",\n  enableReinitialize: true,\n  keepDirtyOnReinitialize: true,\n})(CreateStaffForm);\n\nexport default withRouter(staffForm);\n","import React from \"react\";\nimport CreateStaffForm from \"./create-staff-form/createStaffForm\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { createUser, updateUser } from \"../../../redux/users/userActions\";\nimport { getQueryParameter } from \"../../../util/url\";\nimport {\n  clone,\n  get,\n  isEmpty,\n  isEqual,\n  isNull,\n  isUndefined,\n  remove,\n} from \"lodash\";\nimport { ALERT_TYPES, DATE_FORMAT } from \"../../../constants/appConstants\";\nimport { NotificationManager } from \"react-notifications\";\n\nimport { getALlRoleGroupList, getUserById } from \"../../../api/user\";\nimport moment from \"moment\";\n\nclass CreateStaff extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      initialValues: null,\n      isEditMode: false,\n      selectedUserId: \"\",\n      hasRelevantDegree: false,\n      isAuthorized: false,\n      staffType: 2,\n      credentials: [],\n      routeToStaff: false,\n      fileList: [],\n      status: 4,\n      roleGroupList: [],\n      userRoleGroup: 0,\n      billingState: \"Pennsylvania\",\n      billingCountry: \"USA\",\n    };\n  }\n\n  componentDidMount() {\n    const userId = getQueryParameter(\"id\");\n    const userType = getQueryParameter(\"staffType\");\n    if (!isEmpty(userType) && !isUndefined(userType)) {\n      this.setState({\n        staffType: userType,\n      });\n    }\n    if (!isEmpty(userId) && !isUndefined(userId)) {\n      getUserById(userId).then((res) => {\n        if (res.credentials == \"\") {\n          res.credentials = [];\n        } else {\n          res.credentials = res.credentials.split(\",\");\n        }\n        if (res.files == undefined) {\n          res.files = [];\n        }\n        const user = this.mapUser(res);\n        user.dob = user.dob\n          ? new Date(moment(user.dob).utc().format(DATE_FORMAT))\n          : null;\n        user.hireDate = user.hireDate\n          ? new Date(moment(user.hireDate).utc().format(DATE_FORMAT))\n          : null;\n        this.setState({\n          initialValues: user,\n          isEditMode: true,\n          selectedUserId: userId,\n          staffType: res.userType,\n          hasRelevantDegree: res.hasRelevantDegree,\n          isAuthorized: res.isAuthorized,\n          credentials: res.credentials,\n          fileList: res.files,\n          status: res.status,\n          userRoleGroup: res.roleGroupId,\n        });\n      });\n    }\n\n    getALlRoleGroupList().then((res) => {\n      this.setState({\n        roleGroupList: res.data,\n      });\n    });\n  }\n\n  createUser = (values, routeToStaff) => {\n    this.setState({\n      routeToStaff,\n    });\n    values[\"title\"] = this.state.status;\n    let user = this.mapUser(values);\n    user.dob = user.dob\n      ? moment(new Date(user.dob)).format(\"YYYY-MM-DD\")\n      : null;\n    user.hireDate = user.hireDate\n      ? moment(new Date(user.hireDate)).format(\"YYYY-MM-DD\")\n      : null;\n    user.files = this.state.fileList;\n    if (!this.state.isEditMode) {\n      this.props.dispatch(createUser(user));\n    } else {\n      user[\"userId\"] = parseInt(this.state.selectedUserId);\n      this.props.dispatch(updateUser(user));\n    }\n  };\n\n  componentWillReceiveProps = (nextProps) => {\n    const { history } = this.props;\n    if (\n      !isNull(get(nextProps, \"createUserSuccess\")) &&\n      !isEqual(nextProps.createUserSuccess, this.props.createUserSuccess)\n    ) {\n      this.createNotification(ALERT_TYPES.SUCCESS, \"Staff create successful\");\n      if (this.state.routeToStaff) {\n        history.push(\n          `/admin/view-staff?id=${nextProps.createUserSuccess.userId}`\n        );\n      } else {\n        history.push(\"/admin/staff-type\");\n      }\n    }\n\n    if (\n      !isNull(get(nextProps, \"createUserFail\")) &&\n      !isEqual(nextProps.createUserFail, this.props.createUserFail)\n    ) {\n      this.createNotification(\n        ALERT_TYPES.ERROR,\n        nextProps.createUserFail.message\n      );\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateUserSuccess\")) &&\n      !isEqual(nextProps.updateUserSuccess, this.props.updateUserSuccess)\n    ) {\n      this.createNotification(ALERT_TYPES.SUCCESS, \"Staff update successful\");\n      history.push(`/admin/view-staff?id=${this.state.selectedUserId}`);\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateUserFail\")) &&\n      !isEqual(nextProps.updateUserFail, this.props.updateUserFail)\n    ) {\n      this.createNotification(\n        ALERT_TYPES.ERROR,\n        nextProps.updateUserFail\n          ? nextProps.updateUserFail\n          : \"Staff update failed\"\n      );\n    }\n  };\n\n  createNotification(alertType, alertMessage) {\n    switch (alertType) {\n      case ALERT_TYPES.INFO:\n        NotificationManager.info(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.SUCCESS:\n        NotificationManager.success(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.WARNING:\n        NotificationManager.warning(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.ERROR:\n        NotificationManager.error(alertMessage, \"\", 2000);\n        break;\n      default:\n        break;\n    }\n  }\n\n  mapUser = (userData) => {\n    let client = {\n      firstName: get(userData, \"firstName\", \"\"),\n      middleName: get(userData, \"middleName\", \"\"),\n      lastName: get(userData, \"lastName\", \"\"),\n      email: get(userData, \"email\", \"\"),\n      password: get(userData, \"password\", \"\"),\n      userType: parseInt(this.state.staffType),\n      reportTo: 0,\n      salutation: get(userData, \"salutation\", \"\"),\n      suffix: get(userData, \"suffix\", \"\"),\n      dob: get(userData, \"dob\", null),\n      hireDate: get(userData, \"hireDate\", null),\n      title: \"\",\n      ssn_tin: this.getSSN(get(userData, \"ssn_tin\", \"\"), \"-\", \"\"),\n      phone: get(userData, \"phone\", \"\"),\n      mobile: get(userData, \"mobile\", \"\"),\n      memo: get(userData, \"memo\", \"\"),\n      hasRelevantDegree: this.state.hasRelevantDegree,\n      credentials: this.state.credentials.toLocaleString(),\n      percentagePaid: parseFloat(get(userData, \"percentagePaid\", 0)),\n      billingStreet: get(userData, \"billingStreet\", \"\"),\n      billingCity: get(userData, \"billingCity\", \"\"),\n      billingState: get(userData, \"billingState\", \"\"),\n      billingZIP: get(userData, \"billingZIP\", \"\"),\n      billingCountry: get(userData, \"billingCountry\", \"\"),\n      orgAuthentication: get(userData, \"orgAuthentication\", \"\"),\n      isAuthorized: this.state.isAuthorized,\n      status: parseInt(this.state.status),\n      roleGroupId: parseInt(this.state.userRoleGroup),\n    };\n    return client;\n  };\n\n  getSSN = (ssn) => {\n    return ssn.replace(/[^a-zA-Z 0-9]+/g, \"\");\n  };\n\n  render() {\n    return (\n      <div className=\"client-client\">\n        <div className=\"row\">\n          <div\n            className=\"row col-lg-2 col-md-2 col-sm-4\"\n            onClick={() => {\n              this.props.history.goBack();\n            }}\n          >\n            <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n            <span\n              style={{\n                fontFamily: \"Muli\",\n                color: \"#333333\",\n                fontSize: 15,\n                padding: 10,\n              }}\n            >\n              Back\n            </span>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-4 col-md-6 col-sm-12 page-title\">\n            {!this.state.isEditMode\n              ? \"Create Staff Member\"\n              : \"Edit Staff Member\"}\n          </div>\n        </div>\n        <div className=\"row\">\n          <CreateStaffForm\n            onSubmit={this.createUser}\n            userType={this.state.staffType}\n            credentials={this.state.credentials}\n            initialValues={this.state.initialValues}\n            hasRelevantDegree={this.state.hasRelevantDegree}\n            isEditMode={this.state.isEditMode}\n            staffStatus={this.state.status}\n            isAuthorized={this.state.isAuthorized}\n            roleGroupList={this.state.roleGroupList}\n            userRoleGroup={this.state.userRoleGroup}\n            billingState={this.state.billingState}\n            billingCountry={this.state.billingCountry}\n            onHasRelevantDegree={(value) => {\n              this.setState({ hasRelevantDegree: value });\n            }}\n            onIsAuthorized={(value) => {\n              this.setState({ isAuthorized: value });\n            }}\n            onCredentialsSelect={(value) => {\n              this.setState({ credentials: value });\n            }}\n            onStatusChange={(status) => {\n              this.setState({ status: status });\n            }}\n            onRoleGroupChange={(rg) => {\n              this.setState({ userRoleGroup: rg });\n            }}\n            onChange={this.handleFileChange}\n            fileList={this.state.fileList}\n            onFileUpload={(value, success) => {\n              if (success) {\n                let files = clone(this.state.fileList);\n                files.push(value);\n                this.createNotification(ALERT_TYPES.INFO, \"File uploaded.\");\n                this.setState({\n                  fileList: files,\n                });\n              } else {\n                this.createNotification(\n                  ALERT_TYPES.WARNING,\n                  \"File upload fail.\"\n                );\n              }\n            }}\n            onRemoveImage={(documentKey) => {\n              let files = clone(this.state.fileList);\n              remove(files, function (o) {\n                return o.documentKey == documentKey;\n              });\n              this.setState({\n                fileList: files,\n              });\n            }}\n          />\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  createUserSuccess: state.user.createSuccess,\n  createUserFail: state.user.createFail,\n  updateUserSuccess: state.user.updateSuccess,\n  updateUserFail: state.user.updateFail,\n  users: state.user.getAllSuccess,\n});\n\nexport default withRouter(connect(mapStateToProps)(CreateStaff));\n","import {isEmpty, isUndefined} from \"lodash\";\n\nexport function validateClientName(value) {\n    return isEmpty(value) ? \"Client Name is required\" : undefined;\n}\n\nexport function validateClientFirstName(value) {\n    return isEmpty(value) ? \"Client First name is required\" : undefined;\n}\n\nexport function validateClientLastName(value) {\n    return isEmpty(value) ? \"Client Last name is required\" : undefined;\n}\n\nexport function validateClientServiceName(value) {\n    return isEmpty(value) ? \"Service Name is required\" : undefined;\n}\n\nexport function validateStaffMember(value) {\n    return isEmpty(value) ? \"Staff Name is required\" : undefined;\n}\n\nexport function validateClient(value) {\n    return isEmpty(value) ? \"Client Name is required\" : undefined;\n}\n\nexport function validateClientServiceCode(value) {\n    return isEmpty(value) ? \"Service Code is required\" : undefined;\n}\n\nexport function validateClientServiceStartDate(value) {\n    return isUndefined(value) ? \"Service Start Date is required\" : undefined;\n}\n\nexport function validateClientServiceStartTime(value) {\n    return isUndefined(value) ? \"Service Start Time is required\" : undefined;\n}\n\nexport function validateClientServiceEndDate(value) {\n    return isUndefined(value) ? \"Service End Date is required\" : undefined;\n}\n\nexport function validateClientServiceEndTime(value) {\n    return isUndefined(value) ? \"Service End Time is required\" : undefined;\n}\n","import * as React from \"react\";\nimport \"./index.scss\";\nimport SignatureCanvas from \"react-signature-canvas\";\nimport { isEqual, isNull } from \"lodash\";\n\nclass SignaturePad extends React.Component {\n  state = {\n    showSignaturePad: false,\n    signature: \"\",\n    SignatuerPadWidth: \"\",\n    initialLoad: true,\n  };\n\n  onChange = () => {\n    const signature = this.signaturePad\n      .getTrimmedCanvas()\n      .toDataURL(\"image/png\");\n    this.setState({ signature });\n    this.props.onChange(signature);\n  };\n\n  componentDidMount() {\n    this.updateWidthSize();\n    const { signature, showSignaturePad } = this.props;\n    this.setState({\n      signature,\n      showSignaturePad,\n    });\n    window.addEventListener(\n      \"resize\",\n      function () {\n        this.updateWidthSize();\n      }.bind(this),\n      true\n    );\n  }\n  updateWidthSize() {\n    var width = window.innerWidth;\n    if (width < 991) {\n      width = width * 0.6;\n      this.setState({ SignatuerPadWidth: width });\n    } else {\n      width = width * 0.45;\n      this.setState({ SignatuerPadWidth: width });\n    }\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    if (!isEqual(nextProps, this.props) && !isNull(nextProps)) {\n      const { signature, isEditMode, showSignaturePad } = nextProps;\n      if (this.state.signature != signature) {\n        this.setState({\n          signature,\n        });\n      }\n      if (isEditMode == true && showSignaturePad == false && this.state.initialLoad) {\n        this.setState({\n          showSignaturePad: showSignaturePad,\n          initialLoad: false,\n        });\n      }\n    }\n  }\n\n  render() {\n    const { showSignaturePad, signature, SignatuerPadWidth } = this.state;\n    if (showSignaturePad) {\n      return (\n        <div\n        // className=\"signature-container\"\n        >\n          <div\n            style={{\n              width: SignatuerPadWidth,\n              borderWidth: 2,\n              borderStyle: \"solid\",\n              borderColor: \"grey\",\n              borderRadius: 10,\n            }}\n          >\n            <SignatureCanvas\n              penColor=\"green\"\n              canvasProps={{\n                width: SignatuerPadWidth * 0.99,\n                height: 123,\n\n                className: \"sigCanvas\",\n              }}\n              ref={(ref) => {\n                this.signaturePad = ref;\n              }}\n              onEnd={this.onChange}\n            />\n          </div>\n          <div>\n            <button\n              type=\"button\"\n              onClick={(event) => {\n                this.signaturePad.clear();\n                this.setState({ signature: \"\" });\n                this.props.onChange(\"\");\n              }}\n              className=\"button signature-clear\"\n              style={{\n                marginBottom: 3,\n                marginTop: 3,\n                width: SignatuerPadWidth,\n              }}\n            >\n              CLEAR\n            </button>\n            {!this.props.showSignaturePad && (\n              <button\n                type=\"button\"\n                onClick={(event) => {\n                  this.setState({ showSignaturePad: false });\n                }}\n                className=\"button signature-close\"\n                style={{\n                  marginBottom: 3,\n                  marginTop: 3,\n                  width: SignatuerPadWidth,\n                }}\n              >\n                CLOSE\n              </button>\n            )}\n          </div>\n        </div>\n      );\n    } else {\n      return (\n        <div className={\"signature-view-container\"}>\n          <div className=\"signature-view\">\n            {signature != \"\" && signature != null && (\n              <img\n                className={\"\"}\n                style={{\n                  maxWidth: SignatuerPadWidth * 0.95,\n                }}\n                src={signature}\n                alt=\"Signature\"\n              />\n            )}\n          </div>\n          <div>\n            <button\n              type=\"button\"\n              onClick={(event) => {\n                this.setState({ showSignaturePad: true });\n              }}\n              className=\"button signature-edit\"\n            >\n              EDIT\n            </button>\n          </div>\n        </div>\n      );\n    }\n  }\n}\n\nexport default SignaturePad;\n","import React from \"react\";\nimport { Field, Form, isDirty, reduxForm } from \"redux-form\";\nimport {\n  inputField,\n  renderDatePicker,\n  renderTimePicker,\n  selectField,\n  textField\n} from \"../../../shared/form-fields/formFields\";\nimport { isEmpty, isEqual } from \"lodash\";\nimport {\n  validateClient,\n  validateClientServiceCode,\n  validateClientServiceEndDate,\n  validateClientServiceEndTime,\n  validateClientServiceStartDate,\n  validateClientServiceStartTime,\n  validateStaffMember\n} from \"./workEntryValidator\";\nimport moment from \"moment\";\nimport SignaturePad from \"../../../shared/signature-pad\";\n\nclass Details extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      startDate: moment().format(\"MM/dd/yyyy\"),\n      startTime: moment().format(\"MM/dd/yyyy hh:mm:ss\"),\n      endDate: moment().format(\"MM/dd/yyyy\")\n    };\n  }\n\n\n  onStartTimeSet = (e) => {\n    const startTime = moment(moment(this.state.startDate).format(\"MM/dd/yyyy\") + \" \" + moment(e).format(\"hh:mm:ss\")).format(\"MM/dd/yyyy hh:mm:ss\");\n    this.setState({\n      startTime: startTime\n    });\n  };\n\n  onStartDateSet = (e) => {\n    const startDate = moment(e);\n    this.setState({\n      startDate: startDate\n    });\n  };\n\n  onEndDateSet = (e) => {\n    const endDate = moment(e);\n    this.setState({\n      endDate: endDate\n    });\n  };\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    const { initialValues } = nextProps;\n    if (\n      initialValues != null &&\n      !isEqual(initialValues.startDate, this.state.startDate)\n    ) {\n      this.setState({\n        startDate: initialValues.startDate,\n        startTime: initialValues.startTime\n      });\n    }\n  }\n\n  render() {\n\n    const { handleSubmit, initialValues, users, clients, services } = this.props;\n    let staffOptions = [];\n    let clientOptions = [];\n    let serviceOptions = [];\n    if (users) {\n      users.forEach((staff) => {\n        staffOptions.push({\n          value: staff.userId,\n          text: staff.name\n        });\n      });\n    }\n    if (clients) {\n      clients.forEach((client) => {\n        clientOptions.push({\n          value: client.clientId,\n          text: client.name\n        });\n      });\n    }\n    if (services) {\n      services.forEach((service) => {\n        serviceOptions.push({\n          value: service.serviceRequestId,\n          text: `${service.serviceCode} (${moment(service.serviceStartDate).utc().format(\"MM-DD-YYYY\")} - ${moment(service.serviceEndDate).utc().format(\"MM-DD-YYYY\")})`\n        });\n      });\n    }\n    return (\n      <Form style={{ width: \"100%\" }}>\n        <div className=\"row\">\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Staff Name</div>\n\n            {/*<select*/}\n            {/*    className=\"select-box\"*/}\n            {/*    placeholder=\"Select Staff Member\"*/}\n            {/*    onChange={this.props.onUserChange}*/}\n            {/*    disabled={this.props.initialValues != null}*/}\n            {/*    value={this.props.userId}*/}\n            {/*>*/}\n            {/*    <option value={\"\"}>{\"Select Staff Member\"}</option>*/}\n            {/*    {this.props.users && this.props.users.map((record, index) => {*/}\n            {/*        return (*/}\n            {/*            <option key={index} value={record.userId}>*/}\n            {/*                {record.name}*/}\n            {/*            </option>*/}\n            {/*        );*/}\n            {/*    })}*/}\n            {/*</select>*/}\n            <Field\n              name=\"userId\"\n              component={selectField}\n              placeholder={\"Select Staff Member\"}\n              required={true}\n              onChange={this.props.onUserChange}\n              disabled={this.props.initialValues != null}\n              options={staffOptions}\n              validate={validateStaffMember}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Client Name</div>\n            {/*<select*/}\n            {/*    className=\"select-box\"*/}\n            {/*    placeholder=\"Select Client\"*/}\n            {/*    onChange={this.props.onClientChange}*/}\n            {/*    disabled={this.props.initialValues != null}*/}\n            {/*    value={this.props.clientId}*/}\n            {/*>*/}\n            {/*    <option value={\"\"}>{\"Select Client\"}</option>*/}\n            {/*    {this.props.clients && this.props.clients.map((record, index) => {*/}\n            {/*        return (*/}\n            {/*            <option key={index} value={record.clientId}>*/}\n            {/*                {record.name}*/}\n            {/*            </option>*/}\n            {/*        );*/}\n            {/*    })}*/}\n            {/*</select>*/}\n            <Field\n              name=\"clientId\"\n              component={selectField}\n              placeholder={\"Select Client\"}\n              required={true}\n              onChange={this.props.onClientChange}\n              // disabled={this.props.initialValues != null}\n              options={clientOptions}\n              validate={validateClient}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\" style={{ paddingTop: 10, paddingBottom: 10 }}>\n            <div className=\"label\">Client Service</div>\n            {/*<select*/}\n            {/*    className=\"select-box\"*/}\n            {/*    placeholder=\"Select Client\"*/}\n            {/*    onChange={this.props.onServiceChange}*/}\n            {/*    disabled={*/}\n            {/*        this.props.initialValues != null || isEmpty(this.props.services)*/}\n            {/*    }*/}\n            {/*    value={this.props.serviceId}*/}\n            {/*    required={true}*/}\n            {/*>*/}\n            {/*    <option value={\"\"}>{\"Select Client Service\"}</option>*/}\n            {/*    {this.props.services && this.props.services.map((record, index) => {*/}\n            {/*        return (*/}\n            {/*            <option key={index} value={record.serviceRequestId}>*/}\n            {/*                {record.serviceCode}*/}\n            {/*            </option>*/}\n            {/*        );*/}\n            {/*    })}*/}\n            {/*</select>*/}\n            <Field\n              name=\"serviceId\"\n              component={selectField}\n              placeholder={\"Select Client Service\"}\n              required={true}\n              onChange={this.props.onServiceChange}\n              disabled={isEmpty(this.props.services)}\n              options={serviceOptions}\n              validate={validateClientServiceCode}\n            />\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-6 col-sm-12 input-box text-left\">\n            <div className=\"label\">Start Date Time</div>\n            <div className=\"row col-12\" style={{ padding: 0 }}>\n              <div className=\"col-6 input-box text-left\">\n                <Field\n                  name=\"startDate\"\n                  component={renderDatePicker}\n                  type=\"text\"\n                  placeholder={\"Start Date\"}\n                  required={true}\n                  maxDate={new Date()}\n                  validate={validateClientServiceStartDate}\n                  onTextValueChange={this.onStartDateSet}\n                />\n              </div>\n              <div className=\"col-6 input-box text-left\">\n                <Field\n                  name=\"startTime\"\n                  component={renderTimePicker}\n                  type=\"text\"\n                  placeholder={\"Start Time\"}\n                  required={true}\n                  onTextValueChange={this.onStartTimeSet}\n                  validate={validateClientServiceStartTime}\n                  selectedDate={this.state.startDate}\n                  maxTime={new Date().getTime()}\n                />\n              </div>\n            </div>\n          </div>\n\n          <div className=\"col-lg-6 col-sm-12 input-box text-left\">\n            <div className=\"label\">End Date Time</div>\n            <div className=\"row col-12\" style={{ padding: 0 }}>\n              <div className=\"col-6 input-box text-left\">\n                <Field\n                  name=\"endDate\"\n                  component={renderDatePicker}\n                  type=\"text\"\n                  placeholder={\"End Date\"}\n                  required={true}\n                  minDate={new Date(this.state.startDate)}\n                  maxDate={moment(this.state.startDate).format(\"MM/dd/yyyy\") == moment(new Date()).format(\"MM/dd/yyyy\") || initialValues == null ? new Date() : new Date(new Date().setDate(new Date(this.state.startDate).getDate() + 1)).setHours(0, 0, 0, 0)}\n                  value={this.state.startDate}\n                  validate={validateClientServiceEndDate}\n                  onTextValueChange={this.onEndDateSet}\n                  // disabled={true}\n                />\n              </div>\n              <div className=\"col-6 input-box text-left\">\n                <Field\n                  name=\"endTime\"\n                  component={renderTimePicker}\n                  type=\"text\"\n                  placeholder={\"End Time\"}\n                  required={true}\n                  validate={validateClientServiceEndTime}\n                  onTextValueChange={() => {\n                  }}\n                  selectedDate={this.state.endDate}\n                  // minTime={this.state.startTime}\n                  // maxTime={new Date(this.state.startTime).getMilliseconds() < new Date().getMilliseconds() ? new Date() : new Date(new Date().setDate(new Date(this.state.startTime).getDate() + 1)).setHours(0, 0, 0, 0)}\n                />\n              </div>\n            </div>\n          </div>\n\n          <div className=\"col-lg-6 col-sm-12 input-box text-left\">\n            <div className=\"label\">Start Location</div>\n            <div className=\"row col-12\" style={{ padding: 0 }}>\n              <div className=\"col-6 input-box text-left\">\n                <Field\n                  name=\"serviceStartLongitude\"\n                  component={inputField}\n                  type=\"text\"\n                  placeholder={\"Start Longitude\"}\n                  required={false}\n                />\n              </div>\n              <div className=\"col-6 input-box text-left\">\n                <Field\n                  name=\"serviceStartLatitude\"\n                  component={inputField}\n                  type=\"text\"\n                  placeholder={\"Start Latitude\"}\n                  required={false}\n                />\n              </div>\n            </div>\n          </div>\n\n          <div className=\"col-lg-6 col-sm-12 input-box text-left\">\n            <div className=\"label\">End Location</div>\n            <div className=\"row col-12\" style={{ padding: 0 }}>\n              <div className=\"col-6 input-box text-left\">\n                <Field\n                  name=\"serviceEndLongitude\"\n                  component={inputField}\n                  type=\"text\"\n                  placeholder={\"End Longitude\"}\n                  required={false}\n                />\n              </div>\n              <div className=\"col-6 input-box text-left\">\n                <Field\n                  name=\"serviceEndLatitude\"\n                  component={inputField}\n                  type=\"text\"\n                  placeholder={\"End Latitude\"}\n                  required={false}\n                />\n              </div>\n            </div>\n          </div>\n\n          <div className=\"col-12 input-box text-left grey-area\">\n            <div className=\"title\">Goals and outcomes</div>\n            <span className=\"description\">{this.props.goalsAndOutcomes}</span>\n          </div>\n          <div className=\"col-12 input-box text-left\">\n            <div className=\"label\">Service Notes</div>\n            <Field\n              name=\"notes\"\n              component={textField}\n              type=\"text\"\n              placeholder={\"Notes\"}\n              required={true}\n              //   validate={validateEmail}\n            />\n          </div>\n          <div className=\"col-12 grey-area\">\n            <div className=\"col-4\">\n              <div className=\"label\">Progress</div>\n            </div>\n            <div className=\"row col-12\">\n              <div\n                className=\"col-4 text-left\"\n                style={{ padding: \"10px\" }}\n              >\n                <input\n                  type=\"radio\"\n                  name=\"progress\"\n                  value=\"increased\"\n                  checked={this.props.progress == 1}\n                  onChange={(event) => {\n                    this.props.onChangeProgress(1);\n                  }}\n                />{\" \"}\n                Increased\n              </div>\n              <div\n                className=\"col-4 text-left\"\n                style={{ padding: \"10px\" }}\n              >\n                <input\n                  type=\"radio\"\n                  name=\"progress\"\n                  value=\"maintained\"\n                  checked={this.props.progress == 2}\n                  onChange={(event) => {\n                    this.props.onChangeProgress(2);\n                  }}\n                />{\" \"}\n                Maintained\n              </div>\n              <div\n                className=\"col-4 text-left\"\n                style={{ padding: \"10px\" }}\n              >\n                <input\n                  type=\"radio\"\n                  name=\"progress\"\n                  value=\"decreased\"\n                  checked={this.props.progress == 3}\n                  onChange={(event) => {\n                    this.props.onChangeProgress(3);\n                  }}\n                />{\" \"}\n                Decreased\n              </div>\n            </div>\n          </div>\n          {/*<div className=\"col-4 text-left input-box my-auto\">*/}\n          {/*  <input*/}\n          {/*    type=\"checkbox\"*/}\n          {/*    name=\"thirdPartyVerification\"*/}\n          {/*    value=\"thirdPartyVerification\"*/}\n          {/*    checked={this.props.thirdPartyVerification}*/}\n          {/*    style={{marginRight:5}}*/}\n          {/*    onChange={(event) => {*/}\n          {/*      this.props.onThirdPartyVerification(event.target.checked);*/}\n          {/*    }}*/}\n          {/*  />*/}\n          {/*  <span className=\"label\">3rd Party Verification</span>*/}\n          {/*</div>*/}\n          <div className=\"col-4 text-left input-box my-auto\">\n            <input\n              type=\"checkbox\"\n              name=\"adminVerification\"\n              value=\"adminVerification\"\n              checked={this.props.adminVerification}\n              style={{ marginRight: 5 }}\n              onChange={(event) => {\n                this.props.onAdminVerification(event.target.checked);\n              }}\n            />\n            <span className=\"label\">Admin Verification</span>\n          </div>\n          {/*<div className=\"col-4 text-right input-box my-auto\">*/}\n          {/*  <input*/}\n          {/*    type=\"checkbox\"*/}\n          {/*    name=\"staffVerification\"*/}\n          {/*    value=\"staffVerification\"*/}\n          {/*    checked={this.props.staffVerification}*/}\n          {/*    style={{marginRight:5}}*/}\n          {/*    onChange={(event) => {*/}\n          {/*      this.props.onStaffVerification(event.target.checked);*/}\n          {/*    }}*/}\n          {/*  />*/}\n          {/*  <span className=\"label\">Staff Verification</span>*/}\n          {/*</div>*/}\n          <div className=\"col-12\">\n            <hr />\n          </div>\n          <div className=\"col-12 text-left input-box\">\n            <div className=\"label\">\n              Signature Pad\n            </div>\n          </div>\n          <SignaturePad\n            showSignaturePad={isEmpty(this.props.initialValues)}\n            isEditMode={this.props.isEditMode}\n            signature={this.props.signature}\n            onChange={this.props.onSignatureChange}\n          />\n        </div>\n\n        <div className=\"row\" style={{ paddingTop: 20 }}>\n          <div className=\"col-lg-6 offset-lg-3 col-md-6 offset-md-3 col-sm-12 offset-sm-0\">\n            <div className=\"row\">\n              <div className=\"col-6\">\n                <button\n                  type=\"button\"\n                  onClick={(event) => {\n                    event.preventDefault();\n                    this.props.onCancelClick();\n                  }}\n                  className=\"button basic buttonOverflow\"\n                >\n                  CANCEL\n                </button>\n              </div>\n              <div className=\"col-6\">\n                <button\n                  onClick={handleSubmit((values) => {\n                    this.props.onSubmit(values);\n                  })}\n                  className=\"button submit buttonOverflow\"\n                >\n                  {this.props.initialValues == null ? \"SAVE\" : \"UPDATE\"}\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </Form>\n    );\n  }\n}\n\nconst timeSheetForm = reduxForm({\n  form: \"timeSheet\",\n  enableReinitialize: true,\n  keepDirtyOnReinitialize: true\n})(Details);\n\nexport default timeSheetForm;\n","import React from \"react\";\nimport Details from \"./details\";\nimport { getWorkEntryById } from \"../../../../api/workEntry\";\nimport { getQueryParameter } from \"../../../../util/url\";\nimport { get, isEmpty, isEqual, isNull, isUndefined } from \"lodash\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { getAllUsersList } from \"../../../../api/user\";\nimport { getAllClientsList, getClientById } from \"../../../../api/client\";\nimport { getClientServiceByClientId } from \"../../../../api/clientService\";\nimport {\n  createWorkEntry,\n  updateWorkEntry,\n} from \"../../../../redux/workEntries/workEntryAction\";\nimport { ALERT_TYPES } from \"../../../../constants/appConstants\";\nimport { NotificationManager } from \"react-notifications\";\nimport {getTimeZone} from '../../../../util/util';\n\nclass CreateTimeSheetForm extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      initialValues: null,\n      isEditMode: false,\n      selectedWorkEntryId: 0,\n      users: [],\n      clients: [],\n      services: [],\n      userId: 0,\n      clientId: 0,\n      serviceId: 0,\n      startDate: \"\",\n      startTime: \"\",\n      endDate: \"\",\n      endTime: \"\",\n      thirdPartyVerification: false,\n      staffVerification: false,\n      adminVerification: false,\n      progress: 0,\n      signature: \"\",\n      goalsAndOutcomes: \"\",\n      // startLongitude: 0.0,\n      // startLatitude: 0.0,\n      // endLongitude: 0.0,\n      // endLatitude: 0.0,\n    };\n  }\n\n  componentDidMount() {\n    const workEntryId = getQueryParameter(\"id\");\n    if (!isEmpty(workEntryId) && !isUndefined(workEntryId)) {\n      getWorkEntryById(workEntryId).then((res) => {\n        const we = this.mapWorkEntry(res);\n        this.loadClientServices(res.clientId);\n        this.loadClient(res.clientId);\n        this.setState({\n          initialValues: we,\n          isEditMode: true,\n          selectedWorkEntryId: workEntryId,\n          userId: res.userId,\n          clientId: res.clientId,\n          serviceId: res.serviceRequestId,\n          thirdPartyVerification: res.thirdPartyVerification,\n          staffVerification: res.staffVerification,\n          progress: res.progress,\n          signature: res.signature,\n          adminVerification: res.adminVerification,\n          // startLongitude: res.startLongitude,\n          // startLatitude: res.startLatitude,\n          // endLongitude: res.endLongitude,\n          // endLatitude: res.endLatitude,\n        });\n      });\n    }\n    getAllUsersList().then((res) => {\n      this.setState({\n        users: res,\n      });\n    });\n    getAllClientsList().then((res) => {\n      this.setState({\n        clients: res,\n      });\n    });\n  }\n\n  onUserChange = (event) => {\n    const type = event.target.value;\n    this.setState({\n      userId: type,\n    });\n  };\n\n  onClientChange = (event) => {\n    const type = event.target.value;\n    this.loadClientServices(type);\n    this.loadClient(type);\n  };\n\n  loadClientServices(clientId) {\n    getClientServiceByClientId(clientId).then((res) => {\n      this.setState({\n        clientId: clientId,\n        services: res,\n      });\n    });\n  }\n\n  loadClient(clientId) {\n    getClientById(clientId).then((res) => {\n      this.setState({\n        goalsAndOutcomes: res.goalsOutcomes,\n        clientId: clientId,\n        services: res.clientServices,\n      });\n    });\n  }\n\n  onServiceChange = (event) => {\n    const type = event.target.value;\n    this.setState({\n      serviceId: type,\n    });\n  };\n\n  mapWorkEntry = (data) => {\n    let we = {\n      notes: get(data, \"notes\", \"\"),\n      userId: get(data, \"userId\", 0).toString(),\n      clientId: get(data, \"clientId\", 0).toString(),\n      serviceId: get(data, \"serviceRequestId\", 0).toString(),\n      serviceStartLongitude: get(data, \"serviceStartLongitude\", \"\"),\n      serviceStartLatitude: get(data, \"serviceStartLatitude\", \"\"),\n      serviceEndLongitude: get(data, \"serviceEndLongitude\", \"\"),\n      serviceEndLatitude: get(data, \"serviceEndLatitude\", \"\"),\n      startDate: new Date(get(data, \"serviceStartTime\", new Date())),\n      startTime: new Date(get(data, \"serviceStartTime\", new Date())),\n      endDate: new Date(get(data, \"serviceEndTime\", new Date())),\n      endTime: new Date(get(data, \"serviceEndTime\", new Date())),\n    };\n    return we;\n  };\n\n  componentWillReceiveProps = (nextProps) => {\n    const { history } = this.props;\n    if (\n      !isNull(get(nextProps, \"createWorkEntrySuccess\")) &&\n      !isEqual(\n        nextProps.createWorkEntrySuccess,\n        this.props.createWorkEntrySuccess\n      )\n    ) {\n      this.createNotification(\n        ALERT_TYPES.SUCCESS,\n        \"Work Entry create successful\"\n      );\n      history.push(\"/admin/work-entries\");\n    }\n\n    if (\n      !isNull(get(nextProps, \"createWorkEntryFail\")) &&\n      !isEqual(nextProps.createWorkEntryFail, this.props.createWorkEntryFail)\n    ) {\n      this.createNotification(\n        ALERT_TYPES.ERROR,\n        nextProps.createWorkEntryFail.message\n      );\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateWorkEntrySuccess\")) &&\n      !isEqual(\n        nextProps.updateWorkEntrySuccess,\n        this.props.updateWorkEntrySuccess\n      )\n    ) {\n      this.createNotification(\n        ALERT_TYPES.SUCCESS,\n        \"Work Entry update successful\"\n      );\n      this.props.history.goBack();\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateWorkEntryFail\")) &&\n      !isEqual(nextProps.updateWorkEntryFail, this.props.updateWorkEntryFail)\n    ) {\n      this.createNotification(\n        ALERT_TYPES.ERROR,\n        nextProps.updateWorkEntryFail.message\n      );\n    }\n  };\n\n  createNotification(alertType, alertMessage) {\n    switch (alertType) {\n      case ALERT_TYPES.INFO:\n        NotificationManager.info(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.SUCCESS:\n        NotificationManager.success(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.WARNING:\n        NotificationManager.warning(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.ERROR:\n        NotificationManager.error(alertMessage, \"\", 2000);\n        break;\n      default:\n        break;\n    }\n  }\n\n  createWorkEntry = (values) => {\n    let we = this.mapWorkEntry(values);\n    we.signature = this.state.signature;\n    we.userId = parseInt(this.state.userId);\n    we.clientId = parseInt(this.state.clientId);\n    we.serviceRequestId = parseInt(this.state.serviceId);\n    we.serviceStartTime = new Date(\n      values.startDate.getFullYear(),\n      values.startDate.getMonth(),\n      values.startDate.getDate(),\n      values.startTime.getHours(),\n      values.startTime.getMinutes(),\n      values.startTime.getSeconds()\n    )\n      .toISOString()\n      .slice(0, 19)\n      .replace(\"T\", \" \");\n    we.serviceEndTime = new Date(\n      values.endDate.getFullYear(),\n      values.endDate.getMonth(),\n      values.endDate.getDate(),\n      values.endTime.getHours(),\n      values.endTime.getMinutes(),\n      values.endTime.getSeconds()\n    )\n      .toISOString()\n      .slice(0, 19)\n      .replace(\"T\", \" \");\n    we.progress = this.state.progress;\n    we.staffVerification = this.state.staffVerification;\n    we.thirdPartyVerification = this.state.thirdPartyVerification;\n    we.adminVerification = this.state.adminVerification;\n    we.timeZone = getTimeZone();\n    // we.startLongitude = this.state.startLongitude;\n    // we.startLatitude = this.state.startLatitude;\n    // we.endLongitude = this.state.endLongitude;\n    // we.endLatitude = this.state.endLatitude;\n    delete we.startDate;\n    delete we.startTime;\n    delete we.endDate;\n    delete we.endTime;\n    if (!this.state.isEditMode) {\n      this.props.dispatch(createWorkEntry(we));\n    } else {\n      we[\"workEntryId\"] = parseInt(this.state.selectedWorkEntryId);\n      this.props.dispatch(updateWorkEntry(we));\n    }\n  };\n\n  onCancelClick = () => {\n    this.props.history.push(\"/admin/work-entries\");\n  };\n\n  onLocationUpdate = (geolocation) => {\n    if (geolocation.coords) {\n      console.log(geolocation.coords);\n      // this.setState({\n      //   startLongitude: geolocation.coords.longitude,\n      //   startLatitude: geolocation.coords.latitude,\n      //   endLongitude: geolocation.coords.longitude,\n      //   endLatitude: geolocation.coords.latitude,\n      // });\n    }\n  };\n\n  render() {\n    return (\n      <div className=\"page-content\">\n        <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n          <Details\n            initialValues={this.state.initialValues}\n            isEditMode={this.state.isEditMode}\n            onSubmit={this.createWorkEntry}\n            onCancelClick={this.onCancelClick}\n            users={this.state.users}\n            onUserChange={this.onUserChange}\n            clients={this.state.clients}\n            onClientChange={this.onClientChange}\n            services={this.state.services}\n            onServiceChange={this.onServiceChange}\n            goalsAndOutcomes={this.state.goalsAndOutcomes}\n            userId={this.state.userId}\n            clientId={this.state.clientId}\n            serviceId={this.state.serviceId}\n            thirdPartyVerification={this.state.thirdPartyVerification}\n            onThirdPartyVerification={(value) => {\n              this.setState({ thirdPartyVerification: value });\n            }}\n            adminVerification={this.state.adminVerification}\n            onAdminVerification={(value) => {\n              this.setState({ adminVerification: value });\n            }}\n            staffVerification={this.state.staffVerification}\n            onStaffVerification={(value) => {\n              this.setState({ staffVerification: value });\n            }}\n            progress={this.state.progress}\n            onChangeProgress={(value) => {\n              this.setState({ progress: value });\n            }}\n            signature={this.state.signature}\n            onSignatureChange={(signature) => {\n              this.setState({ signature });\n            }}\n            // startLongitude={this.state.startLongitude}\n            // startLatitude={this.state.startLatitude}\n            // endLongitude={this.state.endLongitude}\n            // endLatitude={this.state.endLatitude}\n          />\n        </div>\n        {/* <Geolocation\n          onSuccess={this.onLocationUpdate}\n          render={({\n            fetchingPosition,\n            position: { coords: { latitude, longitude } = {} } = {},\n            error,\n            getCurrentPosition,\n          }) => (\n            <div>\n              {error && (\n                <div className=\"input-box\">\n                  <p className=\"error-message text-right\">\n                    <i>\n                      <img src=\"./images/alert-circle.svg\" alt=\"\" />\n                    </i>\n                    &nbsp; {error.message}\n                  </p>\n                </div>\n              )}\n            </div>\n          )}\n        /> */}\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  createWorkEntrySuccess: state.workEntry.createSuccess,\n  createWorkEntryFail: state.workEntry.createFail,\n  updateWorkEntrySuccess: state.workEntry.updateSuccess,\n  updateWorkEntryFail: state.workEntry.updateFail,\n});\n\nexport default withRouter(connect(mapStateToProps)(CreateTimeSheetForm));\n","import React from \"react\";\nimport \"./createTimeSheet.scss\";\nimport CreateTimeSheetForm from \"../create-timesheet/create-timesheet-form/createTimeSheetForm\";\n\nclass CreateTimeSheet extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            activeTab: 0,\n        };\n    }\n\n    render() {\n        return (\n            <div className=\"client-client\">\n                <div className=\"row\">\n                    <div className=\"row col-lg-2 col-md-2 col-sm-4\" onClick={() => {\n                        this.props.history.goBack()\n                    }}>\n                        <img src=\"./images/chevron-left-green.svg\" alt=\"\"/>\n                        <span style={{fontFamily: \"Muli\", color: '#333333', fontSize: 15, padding: 10}}>Back</span>\n                    </div>\n                </div>\n                <div className=\"row\">\n                    <div className=\"col-lg-4 col-md-6 col-sm-12\" style={{marginBottom:15}}>\n                        <div className=\"page-title\">Timesheets</div>\n                    </div>\n                    {/* <div className=\"col-lg-1 offset-lg-7 col-md-2 offset-md-4 col-sm-12\">\n            <button className=\"button submit\">\n              <span className=\"text\">SUBMIT</span>\n            </button>\n          </div> */}\n                </div>\n                {/* <div className=\"row\">\n          <span\n            className={classNames(\"tabs\", {\n              active: this.state.activeTab === 0,\n            })}\n            onClick={() => {\n              this.setState({ activeTab: 0 });\n            }}\n          >\n            Details\n          </span>\n          <span\n            className={classNames(\"tabs\", {\n              active: this.state.activeTab === 1,\n            })}\n            onClick={() => {\n              this.setState({ activeTab: 1 });\n            }}\n          >\n            Historical Entries Submited by: DMS Admin\n          </span>\n        </div> */}\n                <div className=\"row\">\n                    <CreateTimeSheetForm/>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default CreateTimeSheet;\n","import React from \"react\";\nimport { Field, Form, reduxForm } from \"redux-form\";\nimport { inputField } from \"../../shared/form-fields/formFields\";\nimport { validatePasswordFormat } from \"../../login/loginValidator\";\n\nclass ChangePassword extends React.Component {\n  state = {\n    currentPasswordShow: false,\n    newPasswordShow: false,\n    confirmPasswordShow: false,\n  };\n\n  validatePassword = (values) => {\n    const { isResetPasswordError, isSamePasswordError } = this.props;\n    if (isResetPasswordError) {\n      this.props.onPasswordValueChange();\n    } \n     if (isSamePasswordError) {\n      this.props.samePasswordValueChange();\n    }\n    return validatePasswordFormat(values);\n  };\n\n  render() {\n    const {\n      handleSubmit,\n      initialValues,\n      isResetPasswordError,\n      isSamePasswordError,\n    } = this.props;\n    return (\n      <Form style={{ width: \"100%\" }} onSubmit={handleSubmit} noValidate>\n        <div className=\"row\">\n          <div className=\"col-lg-8 offset-lg-2 col-md-12 offset-md-0 col-sm-12 offset-sm-0\">\n            <div className=\"form\">\n              <div className=\"col-12 input-box text-left\">\n                <div className=\"label\">Current Password</div>\n                <Field\n                  name=\"currentPassword\"\n                  component={inputField}\n                  type={this.state.currentPasswordShow ? \"text\" : \"password\"}\n                  placeholder={\"Current Password\"}\n                  required={true}\n                  validate={this.validatePassword}\n                />\n                <i\n                  style={{ position: \"absolute\", top: 40, right: 20 }}\n                  onClick={() => {\n                    this.setState({\n                      currentPasswordShow: !this.state.currentPasswordShow,\n                    });\n                  }}\n                >\n                  {this.state.currentPasswordShow && (\n                    <img src=\"./images/eye-off.svg\" alt=\"\" />\n                  )}\n                  {!this.state.currentPasswordShow && (\n                    <img src=\"./images/eye.svg\" alt=\"\" />\n                  )}\n                </i>\n              </div>\n              <div className=\"col-12 input-box text-left\">\n                <div className=\"label\">New Password</div>\n                <Field\n                  name=\"newPassword\"\n                  component={inputField}\n                  type={this.state.newPasswordShow ? \"text\" : \"password\"}\n                  placeholder={\"New Password\"}\n                  required={true}\n                  validate={this.validatePassword}\n                />\n                <i\n                  style={{ position: \"absolute\", top: 40, right: 20 }}\n                  onClick={() => {\n                    this.setState({\n                      newPasswordShow: !this.state.newPasswordShow,\n                    });\n                  }}\n                >\n                  {this.state.newPasswordShow && (\n                    <img src=\"./images/eye-off.svg\" alt=\"\" />\n                  )}\n                  {!this.state.newPasswordShow && (\n                    <img src=\"./images/eye.svg\" alt=\"\" />\n                  )}\n                </i>\n              </div>\n              <div className=\"col-12 input-box text-left\">\n                <div className=\"label\">Confirm Password</div>\n                <Field\n                  name=\"confirmPassword\"\n                  component={inputField}\n                  type={this.state.confirmPasswordShow ? \"text\" : \"password\"}\n                  placeholder={\"Confirm Password\"}\n                  required={true}\n                  validate={this.validatePassword}\n                />\n                <i\n                  style={{ position: \"absolute\", top: 40, right: 20 }}\n                  onClick={() => {\n                    this.setState({\n                      confirmPasswordShow: !this.state.confirmPasswordShow,\n                    });\n                  }}\n                >\n                  {this.state.confirmPasswordShow && (\n                    <img src=\"./images/eye-off.svg\" alt=\"\" />\n                  )}\n                  {!this.state.confirmPasswordShow && (\n                    <img src=\"./images/eye.svg\" alt=\"\" />\n                  )}\n                </i>\n                {isResetPasswordError && (\n                  <div className=\"col-12\">\n                    <p className=\"error-message text-right\">\n                      <i>\n                        <img src=\"./images/alert-circle.svg\" alt=\"\" />\n                      </i>\n                      &nbsp;{\"New Password and Confirm Password do not match\"}\n                    </p>\n                  </div>\n                )}{\" \"}\n                {isSamePasswordError && (\n                  <div className=\"col-12\">\n                    <p className=\"error-message text-right\">\n                      <i>\n                        <img src=\"./images/alert-circle.svg\" alt=\"\" />\n                      </i>\n                      &nbsp;\n                      {\n                        \"New Password cannot be the same as the Current Password\"\n                      }\n                    </p>\n                  </div>\n                )}\n              </div>\n              <div className=\"row\">\n                <div className=\"col-6 offset-3\">\n                  <button type=\"submit\" className=\"button submit\">\n                    <span className=\"text\">OK</span>\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </Form>\n    );\n  }\n}\n\nconst changePasswordForm = reduxForm({\n  form: \"passwordChange\",\n})(ChangePassword);\n\nexport default changePasswordForm;\n","import React from \"react\";\nimport \"./profile.scss\";\nimport PopUpModal from \"../shared/popup-modal/popUpModal\";\nimport ChangePassword from \"./change-password/changePassword\";\nimport { getAuth, getAuthData, setAuthData } from \"../../util/auth\";\nimport { updateUserPassword } from \"../../api/user\";\nimport { createNotification } from \"../../util/notificationManager\";\nimport { ALERT_TYPES } from \"../../constants/appConstants\";\nimport { Value } from \"sass\";\n\nclass Profile extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      openModal: false,\n      userData: {},\n      initials: \"\",\n      isResetPasswordError: false,\n      isSamePasswordError:false\n    };\n  }\n\n  componentDidMount = () => {\n    let userData = getAuth();\n    let initials = \"\";\n    if (userData != null) {\n      initials = (\n        userData.firstName.charAt(0) + userData.lastName.charAt(0)\n      ).toUpperCase();\n    }\n    this.setState({\n      userData: userData,\n      initials: initials,\n    });\n  };\n\n  getUserType = () => {\n    switch (this.state.userData.userType) {\n      case 0:\n        return \"SUPER ADMIN\";\n      case 1:\n        return \"ADMIN\";\n      case 2:\n        return \"STAFF\";\n      case 3:\n        return \"\";\n\n      default:\n        return \"USER\";\n    }\n  };\n\n  handleSubmit = (values) => {\n    if (values.newPassword != values.currentPassword) {\n      if (values.confirmPassword === values.newPassword) {\n      this.setState({ isSamePasswordError: false });\n        const userData = JSON.parse(getAuthData());\n        updateUserPassword(\n          values.currentPassword,\n          values.newPassword,\n          userData.userId\n        ).then((res) => {\n          if (res.status) {\n            this.setState({\n              openModal: false,\n            });\n            createNotification(ALERT_TYPES.SUCCESS, res.message);\n            setAuthData({});\n            this.props.history.push(\"/login\");\n          } else {\n            createNotification(ALERT_TYPES.ERROR, res.message);\n          }\n        });\n      } else {\n        this.setState({ isResetPasswordError: true });\n      }\n    } else {\n      this.setState({ isSamePasswordError: true });\n    }\n  };\n\n  onPasswordValueChange = () => {\n    this.setState({ isResetPasswordError: false });\n  };\n  samePasswordValueChange = () => {\n    this.setState({ isSamePasswordError: false });\n  };\n  render() {\n    return (\n      <div className=\"profile\" style={{ display: \"grid\" }}>\n        <div className=\"col-lg-8 offset-lg-2 col-md-8 offset-md-2 col-sm-12 offset-sm-0\">\n          {/*<div className='col-12'>*/}\n          <img\n            src=\"/images/banner.png\"\n            alt=\"\"\n            style={{ width: \"100%\", minHeight: 150 }}\n          />\n          <div style={{ display: \"block\", marginTop: -140 }}>\n            <center>\n              <svg viewBox=\"0 0 120 100\">\n                <path\n                  d=\"M38,2\n           L82,2\n           A12,12 0 0,1 94,10\n           L112,44\n           A12,12 0 0,1 112,56\n           L94,90\n           A12,12 0 0,1 82,98\n           L38,98\n           A12,12 0 0,1 26,90\n           L8,56\n           A12,12 0 0,1 8,44\n           L26,10\n           A12,12 0 0,1 38,2\"\n                />\n                <text x=\"40\" y=\"60\" className=\"initials\">\n                  {this.state.initials}\n                </text>\n              </svg>\n            </center>\n          </div>\n          <div\n            className=\"col-12\"\n            style={{\n              display: \"grid\",\n              padding: 20,\n              marginTop: -130,\n              backgroundColor: \"white\",\n              zIndex: 0,\n            }}\n          >\n            <div className=\"col-12 text-center\" style={{ marginTop: 120 }}>\n              <span style={{ fontSize: \"21px\" }}>\n                {this.state.userData.firstName +\n                  \" \" +\n                  this.state.userData.lastName}\n              </span>\n            </div>\n            <div\n              className=\"col-lg-2 col-md-22 col-sm-4 offset-lg-5 offset-md-5 role text-center\"\n              style={{ marginTop: \"5px\" }}\n            >\n              <span className=\"text\">{this.getUserType()}</span>\n            </div>\n          </div>\n          <div className=\"col-lg-12 col-md-12 col-sm-12 page-content\">\n            <div className=\" personal-info\" style={{ padding: 20 }}>\n              Personal Information\n            </div>\n            <hr />\n            <div className=\"row\" style={{ padding: 20 }}>\n              <div className=\"col-lg-4 col-md-4 col-sm-12\">\n                <div className=\"key\">Name</div>\n                <div className=\"value\">{this.state.userData.firstName}</div>\n              </div>\n              <div className=\"col-lg-4 col-md-4 col-sm-12\">\n                <div className=\"key\">Last Name</div>\n                <div className=\"value\">{this.state.userData.lastName}</div>\n              </div>\n              <div className=\"col-lg-4 col-md-4 col-sm-12\">\n                <div className=\"key\">Email</div>\n                <div className=\"value\">{this.state.userData.email}</div>\n              </div>\n            </div>\n            <hr />\n            <div className=\"row\">\n              <div\n                className=\" row col-lg-12 col-md-12 col-sm-12\"\n                style={{\n                  borderRadius: 8,\n                  backgroundColor: \"#F9F9F9\",\n                  margin: 10,\n                }}\n              >\n                <div\n                  className=\"col-lg-6 col-md-6 col-sm-12\"\n                  style={{\n                    padding: 10,\n                    paddingBottom: 0,\n                    margin: 0,\n                    paddingLeft: 30,\n                  }}\n                >\n                  <div className=\"key\">Password</div>\n                  <div className=\"value\">*********</div>\n                </div>\n                <div\n                  className=\"col-lg-5 col-md-5 col-sm-12 offset-lg-1 offset-md-1\"\n                  style={{ padding: 20, paddingTop: 20 }}\n                >\n                  <button\n                    // className=\"actionButton\"\n                    style={{\n                      backgroundColor: \" rgba(53,204,98,0.08)\",\n                      borderRadius: 4,\n                      border: 0,\n                    }}\n                    onClick={() => {\n                      this.setState({ openModal: true });\n                    }}\n                  >\n                    <span\n                      className=\"\"\n                      style={{\n                        fontSize: 14,\n                        fontWeight: 800,\n                        textAlign: \"center\",\n                        fontFamily: \"\",\n                        color: \"#35CC62\",\n                      }}\n                    >\n                      CHANGE PASSWORD\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        {this.state.openModal && (\n          <PopUpModal\n            show={this.state.openModal}\n            onClose={() => {\n              this.setState({ openModal: false });\n            }}\n            title={\"Change Password\"}\n            size={\"lg\"}\n          >\n            <ChangePassword\n              onSubmit={this.handleSubmit}\n              isResetPasswordError={this.state.isResetPasswordError}\n              onPasswordValueChange={this.onPasswordValueChange}\n              isSamePasswordError={this.state.isSamePasswordError}\n              samePasswordValueChange={this.samePasswordValueChange}\n            />\n          </PopUpModal>\n        )}\n      </div>\n    );\n  }\n}\n\nexport default Profile;\n","import * as React from \"react\";\nimport { Redirect, Route } from \"react-router-dom\";\nimport { getAuthData, getToken, isStaffUser, setAuthData } from \"../../../util/auth\";\n\nexport const ProtectedRoute = ({ component: Component, ...rest }) => {\n  return (\n    <Route\n      {...rest}\n      render={(props) => {\n        if (Component === null) {\n          setAuthData(null);\n          return (\n            <Redirect\n              to={{\n                pathname: \"/login\",\n                state: {\n                  from: props.location,\n                },\n              }}\n            />\n          );\n        }\n        if (getToken() !== null) {\n          if (isStaffUser() && props.location.pathname.includes('/admin/')) {\n            return (\n              <Redirect\n                to={{\n                  pathname: \"/\"\n                }}\n              />\n            );\n          }\n          return <Component {...props} />;\n        } else {\n          return (\n            <Redirect\n              to={{\n                pathname: \"/login\",\n                state: {\n                  from: props.location,\n                },\n              }}\n            />\n          );\n        }\n      }}\n    />\n  );\n};\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { getUserById } from \"../../../api/user\";\nimport { getQueryParameter } from \"../../../util/url\";\nimport {\n  get,\n  isArray,\n  isEmpty,\n  isEqual,\n  isNull,\n  isUndefined,\n  map,\n  startCase,\n  toNumber,\n} from \"lodash\";\nimport moment from \"moment\";\nimport { validatePassword } from \"../../login/loginValidator\";\nimport { changePassword } from \"../../../redux/auth/authAction\";\nimport {\n  ALERT_TYPES,\n  DATE_FORMAT,\n  RECORD_TYPES,\n} from \"../../../constants/appConstants\";\nimport { NotificationManager } from \"react-notifications\";\nimport { formatSSN, getUserStatus } from \"../../../util/util\";\n\nclass StaffDetails extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      staffDetails: null,\n      selectedStaffId: null,\n      credentials: [],\n      fileList: [],\n      password: \"*********\",\n      showPasswordError: false,\n      hasRelevantDegree: false,\n      isAuthorized: false,\n    };\n  }\n\n  componentDidMount() {\n    const userId = getQueryParameter(\"id\");\n    getUserById(userId).then((res) => {\n      const user = this.mapUser(res);\n      this.setState({\n        staffDetails: user,\n        selectedStaffId: userId,\n        credentials: isEmpty(res.credentials) ? [] : res.credentials.split(\",\"),\n        fileList: isArray(res.files) ? res.files : [],\n        hasRelevantDegree: res.hasRelevantDegree,\n        isAuthorized: res.isAuthorized,\n      });\n    });\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    if (\n      !isEqual(\n        nextProps.changePasswordSuccess,\n        this.props.changePasswordSuccess\n      ) &&\n      !isNull(nextProps.changePasswordSuccess)\n    ) {\n      this.createNotification(\n        ALERT_TYPES.SUCCESS,\n        \"Password change successful\"\n      );\n    }\n    if (\n      !isEqual(nextProps.changePasswordFail, this.props.changePasswordFail) &&\n      !isNull(nextProps.changePasswordFail)\n    ) {\n      this.createNotification(ALERT_TYPES.ERROR, \"Fail to change password\");\n    }\n  }\n\n  mapUser = (userData) => {\n    let client = {\n      firstName: get(userData, \"firstName\", \"\"),\n      middleName: get(userData, \"middleName\", \"\"),\n      lastName: get(userData, \"lastName\", \"\"),\n      email: get(userData, \"email\", \"\"),\n      password: get(userData, \"password\", \"\"),\n      userType: get(userData, \"userType\"),\n      reportTo: 0,\n      salutation: get(userData, \"salutation\", \"\"),\n      suffix: get(userData, \"suffix\", \"\"),\n      dob: get(userData, \"dob\", null),\n      title: get(userData, \"title\", \"\"),\n      ssn_tin: get(userData, \"ssn_tin\", \"\"),\n      phone: get(userData, \"phone\", \"\"),\n      mobile: get(userData, \"mobile\", \"\"),\n      memo: get(userData, \"memo\", \"\"),\n      credentials: this.state.credentials.toLocaleString(),\n      percentagePaid: parseFloat(get(userData, \"percentagePaid\", 0)),\n      billingStreet: get(userData, \"billingStreet\", \"\"),\n      billingCity: get(userData, \"billingCity\", \"\"),\n      billingState: get(userData, \"billingState\", \"\"),\n      billingZIP: get(userData, \"billingZIP\", \"\"),\n      hireDate: get(userData, \"hireDate\", null),\n      billingCountry: get(userData, \"billingCountry\", \"\"),\n      orgAuthentication: get(userData, \"orgAuthentication\", \"\"),\n      isAuthorized: get(userData, \"isAuthorized\", false),\n      status: getUserStatus(parseInt(userData.status)),\n    };\n    return client;\n  };\n\n  onEdit = () => {\n    this.props.history.push(\n      `/admin/edit-staff?id=${this.state.selectedStaffId}`\n    );\n  };\n\n  getFileIcon = (value) => {\n    switch (value.toLowerCase()) {\n      case \"pdf\":\n        return \"/images/pdf.png\";\n      case \"docx\":\n      case \"doc\":\n        return \"/images/doc.png\";\n      case \"ppt\":\n      case \"pptx\":\n        return \"/images/doc.png\";\n      case \"xls\":\n      case \"xlsm\":\n      case \"xlsx\":\n        return \"/images/excel.png\";\n      case \"png\":\n        return \"/images/doc.png\";\n      case \"jpeg\":\n        return \"/images/doc.png\";\n      default:\n        return \"/images/doc.png\";\n    }\n  };\n\n  getFileType = (value) => {\n    return value.toUpperCase();\n  };\n\n  getFileName = (value) => {\n    if (value.length > 10) {\n      value = value.substring(0, 10) + \"...\";\n    }\n    return value;\n  };\n\n  onChangePassword = () => {\n    const password = this.state.password;\n    if (isUndefined(validatePassword(password))) {\n      this.props.dispatch(changePassword(password));\n    } else {\n      this.setState({\n        showPasswordError: true,\n      });\n    }\n  };\n\n  createNotification(alertType, alertMessage) {\n    switch (alertType) {\n      case ALERT_TYPES.INFO:\n        NotificationManager.info(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.SUCCESS:\n        NotificationManager.success(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.WARNING:\n        NotificationManager.warning(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.ERROR:\n        NotificationManager.error(alertMessage, \"\", 2000);\n        break;\n      default:\n        break;\n    }\n  }\n\n  getUserType = () => {\n    let recordType = null;\n    map(RECORD_TYPES, (record) => {\n      if (record.value === toNumber(get(this.state.staffDetails, \"userType\"))) {\n        recordType = startCase(record.type);\n      }\n    });\n    return recordType;\n  };\n\n  render() {\n    const { fileList, credentials, selectedStaffId, staffDetails } = this.state;\n    return (\n      <div className=\"col-lg-10 col-md-10 col-sm-10 offset-lg-1 offset-lg-1 offset-lg-1\">\n        <div className=\"row\">\n          <div\n            className=\"row col-lg-2 col-md-2 col-sm-4\"\n            onClick={() => {\n              this.props.history.goBack();\n            }}\n          >\n            <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n            <span\n              style={{\n                fontFamily: \"Muli\",\n                color: \"#333333\",\n                fontSize: 15,\n                padding: 10,\n              }}\n            >\n              Back\n            </span>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-6 col-md-6 col-sm-12\">\n            <div className=\"client-details\">Staff Details</div>\n          </div>\n          <div className=\"col-lg-6 col-md-6 col-sm-12\">\n            {/* <button className=\"button btn_delete\" size=\"sm\">\n              DELETE\n            </button> */}\n            <div className=\"row\">\n              <div className=\"col-3 offset-9\">\n                <button className=\"button btn_edit\" onClick={this.onEdit}>\n                  EDIT\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n        {/*<div className=\"row\" style={{background: \"#FFFFFF\", marginTop:10}}>*/}\n        {/*    <div className=\"col-lg-12 col-md-12 col-sm-12\">*/}\n        {/*        <img*/}\n        {/*            className=\"banner\"*/}\n        {/*            src=\"./images/banner.png\"*/}\n        {/*            alt=\"\"*/}\n        {/*        />*/}\n        {/*    </div>*/}\n        {/*    <div className=\"col-lg-12 col-md-12 col-sm-12 text-center\">*/}\n        {/*        <div className=\"client-details\"*/}\n        {/*             style={{fontSize: 21}}>{`${get(staffDetails, 'firstName', \"\")} ${get(staffDetails, 'middleName', \"\")} ${get(staffDetails, 'lastName', \"\")}`}</div>*/}\n        {/*    </div>*/}\n        {/*</div>*/}\n        <div className=\"row col-12 offset-0\" style={{ marginTop: 20 }}>\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <span className=\"form-title\">Staff Member Information</span>\n              </div>\n            </div>\n            <hr />\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Name</div>\n                <div className=\"title_text\">\n                  {`${get(staffDetails, \"firstName\", \"\")} ${get(\n                    staffDetails,\n                    \"middleName\",\n                    \"\"\n                  )} ${get(staffDetails, \"lastName\", \"\")}`}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Staff Record Type</div>\n                <div className=\"title_text\">{this.getUserType()}</div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">First Name</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"firstName\", \"-\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Middle Name</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"middleName\", \"-\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Last Name</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"lastName\", \"-\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Suffix</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"suffix\", \"-\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Birthday</div>\n                <div className=\"title_text\">\n                  {isNull(get(staffDetails, \"dob\", null))\n                    ? \"\"\n                    : moment(staffDetails.dob).utc().format(DATE_FORMAT)}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Status</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"status\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">SSN/TIN</div>\n                <div className=\"title_text\">\n                  {formatSSN(get(staffDetails, \"ssn_tin\", \"\"))}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Phone</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"phone\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Percentage Paid</div>\n                <div className=\"title_text\">\n                  {`${get(staffDetails, \"percentagePaid\", \"\")}%`}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mobile</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"mobile\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Email</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"email\", \"\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Hire Date</div>\n                <div className=\"title_text\">\n                  {isNull(get(staffDetails, \"hireDate\", null))\n                    ? \"\"\n                    : moment(staffDetails.hireDate).utc().format(DATE_FORMAT)}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\" style={{ marginTop: 25 }}>\n                {this.state.hasRelevantDegree && (\n                  <img src=\"./images/check-box-checked.svg\" alt=\"\" />\n                )}\n                {!this.state.hasRelevantDegree && (\n                  <img src=\"./images/check-box-unchecked.svg\" alt=\"\" />\n                )}\n                <span className=\"header_text\" style={{ marginLeft: 10 }}>\n                  Has Relevant Degree\n                </span>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-12\">\n                <div className=\"header_text\">Internal Memo</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"memo\", \"\")}\n                </div>\n              </div>\n            </div>\n            {/*<hr/>*/}\n            {/*<div className=\"row page-content-grey\" style={{width: \"100%\", marginLeft: 10}}>*/}\n            {/*  <div className=\"col-4 input-box\">*/}\n            {/*    <div className=\"header_text\">Password</div>*/}\n            {/*    <input*/}\n            {/*      type=\"password\"*/}\n            {/*      name=\"hasRelevantDegree\"*/}\n            {/*      value={this.state.password}*/}\n            {/*      style={{marginRight: 5}}*/}\n            {/*      onChange={(e)=>{this.setState({*/}\n            {/*        password:e.target.value*/}\n            {/*      })}}*/}\n            {/*      className='box text-box'*/}\n            {/*    />*/}\n            {/*    {this.state.showPasswordError && <p className='error-message text-left'>*/}\n            {/*      <i><img src=\"./images/alert-circle.svg\" alt=\"\"/></i>Invalid Password</p>}*/}\n            {/*  </div>*/}\n            {/*  <div className=\"col-4 offset-4 text-right\" style={{marginTop: 25}}>*/}\n            {/*    <div className='change-password'>CHANGE PASSWORD</div>*/}\n            {/*  </div>*/}\n            {/*</div>*/}\n          </div>\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <span className=\"form-title\">Address Information</span>\n              </div>\n            </div>\n            <hr />\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing Street Address</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingStreet\", \"\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing City</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingCity\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing State/Province</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingState\", \"\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing Zip/Postal Code</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingZIP\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing Country</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingCountry\", \"\")}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <div className=\"col-12\">\n              <span className=\"form-title\">Credentials</span>\n            </div>\n            <hr />\n            <div className=\"row\">\n              {map(credentials, (cred) => {\n                return (\n                  <div className=\"col-2 text-center\">\n                    <div className=\"credential-item\">{cred}</div>\n                  </div>\n                );\n              })}\n              {credentials.length === 0 && (\n                <div className=\"col-12 text-center\">No Credentials added</div>\n              )}\n            </div>\n          </div>\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <span className=\"form-title\">Files</span>\n              </div>\n            </div>\n            <hr />\n            <div className=\"row\">\n              {map(fileList, (file, i) => {\n                return (\n                  <div className=\"col-lg-3 col-md-3 col-xs-6\" key={i}>\n                    <div className=\"col-12 file-component\">\n                      <a\n                        href={file.url}\n                        target=\"_blank\"\n                        rel=\"noopener noreferrer\"\n                      >\n                        <div className=\"card__corner\">\n                          <div className=\"card__corner-triangle\"></div>\n                        </div>\n                        <img\n                          src={this.getFileIcon(file.fileType)}\n                          alt=\"\"\n                          className=\" file-icon\"\n                        />\n                        <div className=\"col-sm-12 document-name\">\n                          {this.getFileName(file.name)}\n                        </div>\n                        <div className=\"col-sm-12 document-type\">\n                          {this.getFileType(file.fileType)}\n                        </div>\n                      </a>\n                    </div>\n                  </div>\n                );\n              })}\n              {fileList.length === 0 && (\n                <div className=\"col-12 text-center\">No Files Uploaded</div>\n              )}\n            </div>\n          </div>\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <span className=\"form-title\">System Information</span>\n              </div>\n            </div>\n            <hr />\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Organization Authentication</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"orgAuthentication\", \"\")}\n                </div>\n              </div>\n              <div className=\"col-6\" style={{ marginTop: 25 }}>\n                <div className=\"col-6\" style={{ marginTop: 25 }}>\n                  {this.state.isAuthorized && (\n                    <img src=\"./images/check-box-checked.svg\" alt=\"\" />\n                  )}\n                  {!this.state.isAuthorized && (\n                    <img src=\"./images/check-box-unchecked.svg\" alt=\"\" />\n                  )}\n                  <span className=\"header_text\" style={{ marginLeft: 10 }}>\n                    Authenticated\n                  </span>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  changePasswordSuccess: state.auth.changePasswordSuccess,\n  changePasswordFail: state.auth.changePasswordFail,\n});\n\nexport default withRouter(connect(mapStateToProps)(StaffDetails));\n","import { isEmpty } from \"lodash\";\n\nconst phoneNumberRegEx =\n  /^(1s?)?((([0-9]{3}))|[0-9]{3})[s-]?[\\0-9]{3}[s-]?[0-9]{4}$/;\nconst zipRegEx = /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/;\nconst specialCharRegEx = /[!~`@#$%^&*()_+\\=\\[\\]{};':\"\\\\|,.<>\\/?]+/;\n\nfunction hasSpecialCharacters(value) {\n  return specialCharRegEx.test(value)\n    ? \"Special characters not allowed\"\n    : undefined;\n}\n\nexport function validateFirstName(value) {\n  return isEmpty(value)\n    ? \"First name is required\"\n    : hasSpecialCharacters(value);\n}\n\nexport function validateLastName(value) {\n  return isEmpty(value) ? \"Last name is required\" : hasSpecialCharacters(value);\n}\n\nexport function validatePhoneNumber(value) {\n  // if (isEmpty(value)) {\n  //   return \"Phone Number is required\";\n  // }\n\n  if (!phoneNumberRegEx.test(value)) {\n    return \"Phone Number is invalid\";\n  }\n  return undefined;\n}\n\nexport function validateZIPCode(zip) {\n  if (!isEmpty(zip) && !zipRegEx.test(zip)) {\n    return \"Invalid ZIP Code\";\n  }\n  return undefined;\n}\n","import React from \"react\";\nimport { Field } from \"redux-form\";\nimport {\n  inputField,\n  phoneNumberField,\n  textField,\n} from \"../../../shared/form-fields/formFields\";\nimport { validateFirstName, validateLastName } from \"./staffValidator\";\nimport { validateEmailSC } from \"../../../login/loginValidator\";\n\nclass MemberInformation extends React.Component {\n  render() {\n    const recordTypes = [\n      {\n        type: \"Staff\",\n        value: 2,\n      },\n      {\n        type: \"Behavioral Specialist\",\n        value: 3,\n      },\n      {\n        type: \"Support Coordinator\",\n        value: 4,\n      },\n      {\n        type: \"Customer\",\n        value: 5,\n      },\n      {\n        type: \"Family Contact\",\n        value: 6,\n      },\n      {\n        type: \"Other\",\n        value: 7,\n      },\n    ];\n    return (\n      <div>\n        <div className=\"row\">\n          <span className=\"form-title\">Staff Information</span>\n        </div>\n        <div className=\"row\">\n          {/* <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Name</div>\n            <Field\n              name=\"name\"\n              component={searchField}\n              type=\"text\"\n              placeholder={\"Search\"}\n              required={true}\n              //   validate={validateEmail}\n            />\n          </div> */}\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Staff Record Type</div>\n            {/* <Field\n              name=\"staffType\"\n              component={inputField}\n              type=\"text\n              placeholder={\"Staff\"}\n              required={true}\n              value={\"staff\"}\n              disabled={true}\n              //   validate={validateEmail}\n            /> */}\n            <select\n              className=\"select-box\"\n              placeholder=\"Select Staff Record Type\"\n              disabled\n              value={this.props.userType}\n            >\n              {recordTypes.map((record) => {\n                return <option value={record.value}>{record.type}</option>;\n              })}\n            </select>\n          </div>\n          {/* <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Report to</div>\n            <Field\n              name=\"reportTo\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Select\"}\n              required={true}\n            />\n          </div> */}\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Salutation</div>\n            <Field\n              name=\"salutation\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Select\"}\n              required={true}\n              //   validate={validateEmail}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">First Name</div>\n            <Field\n              name=\"firstName\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"First Name\"}\n              required={true}\n              validate={validateFirstName}\n            />\n          </div>\n          {/*<div className=\"col-6 input-box text-left\">*/}\n          {/*    <div className=\"label\">Middle Name</div>*/}\n          {/*    <Field*/}\n          {/*        name=\"middleName\"*/}\n          {/*        component={inputField}*/}\n          {/*        type=\"text\"*/}\n          {/*        placeholder={\"Middle Name\"}*/}\n          {/*        required={true}*/}\n          {/*        //   validate={validateEmail}*/}\n          {/*    />*/}\n          {/*</div>*/}\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Last Name</div>\n            <Field\n              name=\"lastName\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Last Name\"}\n              required={true}\n              validate={validateLastName}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Suffix</div>\n            <Field\n              name=\"suffix\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Suffix\"}\n              required={true}\n              //   validate={validateEmail}\n            />\n          </div>\n          {/*<div className=\"col-6 input-box text-left\">*/}\n          {/*    <div className=\"label\">Birth Date</div>*/}\n          {/*    <Field*/}\n          {/*        name=\"dob\"*/}\n          {/*        component={renderDatePicker}*/}\n          {/*        type=\"text\"*/}\n          {/*        placeholder={\"Select\"}*/}\n          {/*        required={true}*/}\n          {/*        //   validate={validateEmail}*/}\n          {/*    />*/}\n          {/*</div>*/}\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Status</div>\n            {/*<Field*/}\n            {/*  name=\"title\"*/}\n            {/*  component={inputField}*/}\n            {/*  type=\"text\"*/}\n            {/*  placeholder={\"Title\"}*/}\n            {/*  required={true}*/}\n            {/*  //   validate={validateEmail}*/}\n            {/*/>*/}\n            <select\n              className=\"select-box\"\n              placeholder=\"Select Staff Status\"\n              value={this.props.staffStatus}\n              onChange={(e) => {\n                this.props.onStatusChange(e.target.value);\n              }}\n            >\n              <option value={4}>Active</option>\n              <option value={5}>Inactive</option>\n            </select>\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Title</div>\n            <Field\n              name=\"title\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Title\"}\n              required={true}\n              //   validate={validateEmail}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Phone</div>\n            <Field\n              name=\"phone\"\n              component={phoneNumberField}\n              type=\"text\"\n              placeholder={\"Phone\"}\n              required={false}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Mobile</div>\n            <Field\n              name=\"mobile\"\n              component={phoneNumberField}\n              type=\"text\"\n              placeholder={\"Mobile\"}\n              required={true}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Company Name</div>\n            <Field\n              name=\"company\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Company Name\"}\n              required={true}\n            />\n          </div>\n          <div className=\"col-6 input-box text-left\">\n            <div className=\"label\">Email</div>\n            <Field\n              name=\"email\"\n              component={inputField}\n              type=\"text\"\n              placeholder={\"Email\"}\n              required={false}\n              autofilled={false}\n              validate={validateEmailSC}\n            />\n          </div>\n        </div>\n        <div className=\"col-12 input-box text-left\">\n          <div className=\"label\">Internal Memo</div>\n          <Field\n            name=\"memo\"\n            component={textField}\n            type=\"text\"\n            placeholder={\"Internal Memo\"}\n            required={false}\n          />\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default MemberInformation;\n","import React from 'react'\nimport {Field} from 'redux-form'\nimport {inputField} from '../../../shared/form-fields/formFields'\nimport {validateZIPCode} from \"./staffValidator\";\n\nclass StaffAddressInfo extends React.Component {\n    render() {\n        return (\n            <div>\n                <div className='row'>\n                    <span className='form-title'>Address Information</span>\n                </div>\n                <div className='row'>\n                    <div className='col-12 input-box text-left'>\n                        <div className='label'>Mailing Street Address</div>\n                        <Field\n                            name='billingStreet'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing Street Address'}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                    <div className='col-6 input-box text-left'>\n                        <div className='label'>Mailing City</div>\n                        <Field\n                            name='billingCity'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing City'}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                    <div className='col-6 input-box text-left'>\n                        <div className='label'>Mailing State/Province</div>\n                        <Field\n                            name='billingState'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing State/Province'}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                    <div className='col-6 input-box text-left'>\n                        <div className='label'>Mailing Zip/Postal Code</div>\n                        <Field\n                            name='billingZIP'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing Zip/Postal Code'}\n                            required={true}\n                              validate={validateZIPCode}\n                        />\n                    </div>\n                    <div className='col-6 input-box text-left'>\n                        <div className='label'>Mailing Country</div>\n                        <Field\n                            name='billingCountry'\n                            component={inputField}\n                            type='text'\n                            placeholder={'Mailing Country'}\n                            required={true}\n                            //   validate={validateEmail}\n                        />\n                    </div>\n                </div>\n            </div>\n        )\n    }\n}\n\nexport default StaffAddressInfo\n","import React from \"react\";\nimport {Form, reduxForm} from \"redux-form\";\nimport MemberInformation from \"./memberInformation\";\nimport StaffAddressInfo from \"./staffAddressInfo\";\nimport {withRouter} from \"react-router-dom\";\n\nclass CreateSC extends React.Component {\n\n    render() {\n        const {handleSubmit, initialValues} = this.props;\n        const routeToStaff = true;\n        return (\n            <Form style={{width: \"100%\"}}>\n                <div className=\"page-content\">\n                    <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n                        <MemberInformation\n                            hasRelevantDegree={this.props.hasRelevantDegree}\n                            onHasRelevantDegree={this.props.onHasRelevantDegree}\n                            userType={this.props.userType}\n                            credentials={this.props.credentials}\n                            onCredentialsSelect={this.props.onCredentialsSelect}\n                            isEditMode={this.props.isEditMode}\n                            onStatusChange={this.props.onStatusChange}\n                            staffStatus={this.props.staffStatus}\n                        />\n                    </div>\n                </div>\n                <div className=\"page-content\">\n                    <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">\n                        <StaffAddressInfo/>\n                    </div>\n                </div>\n                {/*<div className=\"page-content\">*/}\n                {/*  <div className=\"col-lg-8 col-md-10 col-sm-10 offset-lg-2 offset-md-1 offset-sm-0\">*/}\n                {/*    <Files*/}\n                {/*      onFileUpload={this.props.onFileUpload}*/}\n                {/*      fileList={this.props.fileList}*/}\n                {/*      onRemoveImage={this.props.onRemoveImage}*/}\n                {/*    />*/}\n                {/*  </div>*/}\n                {/*</div>*/}\n                {/*<div className=\"page-content\">*/}\n                {/*  <div className=\"col-lg-6 col-md-8 col-sm-8 offset-lg-2 offset-md-1 offset-sm-0\">*/}\n                {/*    <SystemInfo*/}\n                {/*      isAuthorized={this.props.isAuthorized}*/}\n                {/*      onIsAuthorized={this.props.onIsAuthorized}*/}\n                {/*    />*/}\n                {/*  </div>*/}\n                {/*</div>*/}\n                <div className=\"row\">\n                    <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-8 offset-sm-2\">\n                        <div className=\"row\">\n                            <div className=\"col-4\">\n                                <button\n                                    className=\"button submit\"\n                                    onClick={handleSubmit((values) => {\n                                        this.props.onSubmit(values, routeToStaff);\n                                    })}\n                                >\n                                    {this.props.initialValues == null ? \"SAVE\" : \"UPDATE\"}\n                                </button>\n                            </div>\n                            {this.props.initialValues == null && (\n                                <div className=\"col-4\">\n                                    <button\n                                        className=\"button submit-save\"\n                                        onClick={handleSubmit((values) => {\n                                            this.props.onSubmit(values, !routeToStaff);\n                                        })}\n                                    >\n                                        SAVE & NEW\n                                    </button>\n                                </div>\n                            )}\n                            <div className=\"col-4\">\n                                <button\n                                    className=\"button basic\"\n                                    onClick={(event) => {\n                                        this.props.history.goBack();\n                                        event.preventDefault();\n                                    }}\n                                >\n                                    CANCEL\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </Form>\n        );\n    }\n}\n\nconst staffForm = reduxForm({\n    form: \"addSC\",\n    enableReinitialize: true,\n    keepDirtyOnReinitialize: true,\n})(CreateSC);\n\nexport default withRouter(staffForm);\n","import React from \"react\";\nimport CreateStaffForm from \"./create-sc-form/createSC\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { createSC, updateSC } from \"../../../redux/users/userActions\";\nimport { getQueryParameter } from \"../../../util/url\";\nimport {\n  clone,\n  get,\n  isEmpty,\n  isEqual,\n  isNull,\n  isUndefined,\n  remove,\n} from \"lodash\";\nimport { ALERT_TYPES } from \"../../../constants/appConstants\";\nimport { NotificationManager } from \"react-notifications\";\nimport { reset } from \"redux-form\";\n\nimport { getSCById } from \"../../../api/user\";\n\nclass CreateSC extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      initialValues: null,\n      isEditMode: false,\n      selectedUserId: \"\",\n      hasRelevantDegree: false,\n      isAuthorized: false,\n      staffType: 2,\n      credentials: [],\n      routeToStaff: false,\n      fileList: [],\n      status: 4,\n    };\n  }\n\n  componentDidMount() {\n    const userId = getQueryParameter(\"id\");\n    const userType = getQueryParameter(\"staffType\");\n    if (!isEmpty(userType) && !isUndefined(userType)) {\n      this.setState({\n        staffType: userType,\n      });\n    }\n    if (!isEmpty(userId) && !isUndefined(userId)) {\n      getSCById(userId).then((res) => {\n        const user = this.mapUser(res);\n        this.setState({\n          initialValues: user,\n          isEditMode: true,\n          selectedUserId: userId,\n          staffType: res.userType,\n          hasRelevantDegree: res.hasRelevantDegree,\n          isAuthorized: res.isAuthorized,\n          credentials: res.credentials,\n          fileList: res.files,\n          status: res.status,\n        });\n      });\n    }\n  }\n\n  createUser = (values, routeToStaff) => {\n    this.setState({\n      routeToStaff: routeToStaff,\n    });\n    values[\"status\"] = this.state.status;\n    let user = this.mapUser(values);\n    user.dob = user.dob.toISOString().slice(0, 10);\n    user.files = this.state.fileList;\n    if (!this.state.isEditMode) {\n      this.props.dispatch(createSC(user));\n    } else {\n      user[\"scId\"] = parseInt(this.state.selectedUserId);\n      this.props.dispatch(updateSC(user));\n    }\n  };\n\n  componentWillReceiveProps = (nextProps) => {\n    const { history } = this.props;\n    if (\n      !isNull(get(nextProps, \"createUserSuccess\")) &&\n      !isEqual(nextProps.createUserSuccess, this.props.createUserSuccess)\n    ) {\n      this.createNotification(ALERT_TYPES.SUCCESS, \"Staff create successful\");\n      if (this.state.routeToStaff) {\n        history.push(`/admin/view-sc?id=${nextProps.createUserSuccess.userId}`);\n      } else {\n        this.props.dispatch(reset(\"addSC\"));\n      }\n      // history.push(`/view-sc?id=${nextProps.createUserSuccess.scId}`);\n    }\n\n    if (\n      !isNull(get(nextProps, \"createUserFail\")) &&\n      !isEqual(nextProps.createUserFail, this.props.createUserFail)\n    ) {\n      this.createNotification(\n        ALERT_TYPES.ERROR,\n        nextProps.createUserFail.message\n      );\n    }\n    if (\n      !isNull(get(nextProps, \"updateUserSuccess\")) &&\n      !isEqual(nextProps.updateUserSuccess, this.props.updateUserSuccess)\n    ) {\n      this.createNotification(ALERT_TYPES.SUCCESS, \"Staff update successful\");\n      history.push(`/admin/view-sc?id=${this.state.selectedUserId}`);\n    }\n\n    if (\n      !isNull(get(nextProps, \"updateUserFail\")) &&\n      !isEqual(nextProps.updateUserFail, this.props.updateUserFail)\n    ) {\n      this.createNotification(ALERT_TYPES.ERROR, \"Staff update failed\");\n    }\n  };\n\n  createNotification(alertType, alertMessage) {\n    switch (alertType) {\n      case ALERT_TYPES.INFO:\n        NotificationManager.info(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.SUCCESS:\n        NotificationManager.success(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.WARNING:\n        NotificationManager.warning(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.ERROR:\n        NotificationManager.error(alertMessage, \"\", 2000);\n        break;\n      default:\n        break;\n    }\n  }\n\n  mapUser = (userData) => {\n    let client = {\n      firstName: get(userData, \"firstName\", \"\"),\n      middleName: get(userData, \"middleName\", \"\"),\n      lastName: get(userData, \"lastName\", \"\"),\n      email: isEmpty(get(userData, \"email\", \"\")) ? null : userData.email,\n      password: get(userData, \"password\", \"\"),\n      userType: parseInt(this.state.staffType),\n      reportTo: 0,\n      salutation: get(userData, \"salutation\", \"\"),\n      suffix: get(userData, \"suffix\", \"\"),\n      dob: new Date(get(userData, \"dob\", new Date())),\n      title: get(userData, \"title\", \"\"),\n      phone: get(userData, \"phone\", \"\"),\n      mobile: get(userData, \"mobile\", \"\"),\n      memo: get(userData, \"memo\", \"\"),\n      percentagePaid: parseFloat(get(userData, \"percentagePaid\", 0)),\n      billingStreet: get(userData, \"billingStreet\", \"\"),\n      billingCity: get(userData, \"billingCity\", \"\"),\n      billingState: get(userData, \"billingState\", \"\"),\n      billingZIP: get(userData, \"billingZIP\", \"\"),\n      billingCountry: get(userData, \"billingCountry\", \"\"),\n      company: get(userData, \"company\", \"\"),\n      entity: get(userData, \"entity\", \"\"),\n      orgAuthentication: get(userData, \"orgAuthentication\", \"\"),\n      isAuthorized: this.state.isAuthorized,\n      status: parseInt(this.state.status),\n    };\n    return client;\n  };\n\n  render() {\n    return (\n      <div className=\"client-client\">\n        <div className=\"row\">\n          <div\n            className=\"row col-lg-2 col-md-2 col-sm-4\"\n            onClick={() => {\n              this.props.history.goBack();\n            }}\n          >\n            <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n            <span\n              style={{\n                fontFamily: \"Muli\",\n                color: \"#333333\",\n                fontSize: 15,\n                padding: 10,\n              }}\n            >\n              Back\n            </span>\n          </div>\n        </div>\n        <div className=\"row\" style={{ marginBottom: 40 }}>\n          <div\n            className=\"col-lg-6 col-md-8 col-sm-12 page-title\"\n            style={{ wordBreak: \"break-word\" }}\n          >\n            {!this.state.isEditMode\n              ? \"Create Supports Coordinator\"\n              : \"Edit Supports Coordinator\"}\n          </div>\n        </div>\n        <div className=\"row\">\n          <CreateStaffForm\n            onSubmit={this.createUser}\n            userType={this.state.staffType}\n            credentials={this.state.credentials}\n            initialValues={this.state.initialValues}\n            hasRelevantDegree={this.state.hasRelevantDegree}\n            isEditMode={this.state.isEditMode}\n            staffStatus={this.state.status}\n            isAuthorized={this.state.isAuthorized}\n            onHasRelevantDegree={(value) => {\n              this.setState({ hasRelevantDegree: value });\n            }}\n            onIsAuthorized={(value) => {\n              this.setState({ isAuthorized: value });\n            }}\n            onCredentialsSelect={(value) => {\n              this.setState({ credentials: value });\n            }}\n            onStatusChange={(status) => {\n              this.setState({ status: status });\n            }}\n            onChange={this.handleFileChange}\n            fileList={this.state.fileList}\n            onFileUpload={(value, success) => {\n              if (success) {\n                let files = clone(this.state.fileList);\n                files.push(value);\n                this.createNotification(ALERT_TYPES.INFO, \"File uploaded.\");\n                this.setState({\n                  fileList: files,\n                });\n              } else {\n                this.createNotification(\n                  ALERT_TYPES.WARNING,\n                  \"File upload fail.\"\n                );\n              }\n            }}\n            onRemoveImage={(documentKey) => {\n              let files = clone(this.state.fileList);\n              remove(files, function (o) {\n                return o.documentKey == documentKey;\n              });\n              this.setState({\n                fileList: files,\n              });\n            }}\n          />\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  createUserSuccess: state.user.createSCSuccess,\n  createUserFail: state.user.createSCFail,\n  updateUserSuccess: state.user.updateSCSuccess,\n  updateUserFail: state.user.updateSCFail,\n  users: state.user.getSCSuccess,\n});\n\nexport default withRouter(connect(mapStateToProps)(CreateSC));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { getSCById } from \"../../../api/user\";\nimport { getQueryParameter } from \"../../../util/url\";\nimport {\n  get,\n  isArray,\n  isEmpty,\n  isEqual,\n  isNull,\n  isUndefined,\n  map,\n  startCase,\n  toNumber,\n} from \"lodash\";\nimport { validatePassword } from \"../../login/loginValidator\";\nimport { changePassword } from \"../../../redux/auth/authAction\";\nimport { ALERT_TYPES, RECORD_TYPES } from \"../../../constants/appConstants\";\nimport { NotificationManager } from \"react-notifications\";\nimport { getUserStatus } from \"../../../util/util\";\n\nclass SCDetails extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      staffDetails: null,\n      selectedStaffId: null,\n      credentials: [],\n      fileList: [],\n      password: \"*********\",\n      showPasswordError: false,\n    };\n  }\n\n  componentDidMount() {\n    const userId = getQueryParameter(\"id\");\n    getSCById(userId).then((res) => {\n      const user = this.mapUser(res);\n      this.setState({\n        staffDetails: user,\n        selectedStaffId: userId,\n        credentials: isEmpty(res.credentials) ? [] : res.credentials.split(\",\"),\n        fileList: isArray(res.files) ? res.files : [],\n      });\n    });\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    if (\n      !isEqual(\n        nextProps.changePasswordSuccess,\n        this.props.changePasswordSuccess\n      ) &&\n      !isNull(nextProps.changePasswordSuccess)\n    ) {\n      this.createNotification(\n        ALERT_TYPES.SUCCESS,\n        \"Password change successful\"\n      );\n    }\n    if (\n      !isEqual(nextProps.changePasswordFail, this.props.changePasswordFail) &&\n      !isNull(nextProps.changePasswordFail)\n    ) {\n      this.createNotification(ALERT_TYPES.ERROR, \"Fail to change password\");\n    }\n  }\n\n  mapUser = (userData) => {\n    let client = {\n      firstName: get(userData, \"firstName\", \"\"),\n      middleName: get(userData, \"middleName\", \"\"),\n      lastName: get(userData, \"lastName\", \"\"),\n      email: get(userData, \"email\", \"\"),\n      password: get(userData, \"password\", \"\"),\n      userType: get(userData, \"userType\"),\n      reportTo: 0,\n      salutation: get(userData, \"salutation\", \"\"),\n      suffix: get(userData, \"suffix\", \"\"),\n      dob: new Date(get(userData, \"dob\", \"\")),\n      title: get(userData, \"title\", \"\"),\n      ssn_tin: get(userData, \"ssn_tin\", \"\"),\n      phone: get(userData, \"phone\", \"\"),\n      memo: get(userData, \"memo\", \"\"),\n      mobile: get(userData, \"mobile\", \"\"),\n      hasRelevantDegree: this.state.hasRelevantDegree,\n      credentials: this.state.credentials.toLocaleString(),\n      percentagePaid: parseFloat(get(userData, \"percentagePaid\", 0)),\n      billingStreet: get(userData, \"billingStreet\", \"\"),\n      billingCity: get(userData, \"billingCity\", \"\"),\n      billingState: get(userData, \"billingState\", \"\"),\n      billingZIP: get(userData, \"billingZIP\", \"\"),\n      billingCountry: get(userData, \"billingCountry\", \"\"),\n      orgAuthentication: get(userData, \"orgAuthentication\", \"\"),\n      company: get(userData, \"company\", \"\"),\n      entity: get(userData, \"entity\", \"\"),\n      status: getUserStatus(parseInt(userData.status)),\n      isAuthorized: get(userData, \"isAuthorized\", false),\n    };\n    return client;\n  };\n\n  onEdit = () => {\n    this.props.history.push(\n      `/admin/edit-sc?id=${this.state.selectedStaffId}&staffType=4`\n    );\n  };\n\n  getFileIcon = (value) => {\n    switch (value.toLowerCase()) {\n      case \"pdf\":\n        return \"/images/pdf.png\";\n      case \"docx\":\n      case \"doc\":\n        return \"/images/doc.png\";\n      case \"ppt\":\n      case \"pptx\":\n        return \"/images/doc.png\";\n      case \"xls\":\n      case \"xlsm\":\n      case \"xlsx\":\n        return \"/images/excel.png\";\n      case \"png\":\n        return \"/images/doc.png\";\n      case \"jpeg\":\n        return \"/images/doc.png\";\n      default:\n        return \"/images/doc.png\";\n    }\n  };\n\n  getFileType = (value) => {\n    return value.toUpperCase();\n  };\n\n  getFileName = (value) => {\n    if (value.length > 10) {\n      value = value.substring(0, 10) + \"...\";\n    }\n    return value;\n  };\n\n  onChangePassword = () => {\n    const password = this.state.password;\n    if (isUndefined(validatePassword(password))) {\n      this.props.dispatch(changePassword(password));\n    } else {\n      this.setState({\n        showPasswordError: true,\n      });\n    }\n  };\n\n  createNotification(alertType, alertMessage) {\n    switch (alertType) {\n      case ALERT_TYPES.INFO:\n        NotificationManager.info(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.SUCCESS:\n        NotificationManager.success(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.WARNING:\n        NotificationManager.warning(alertMessage, \"\", 2000);\n        break;\n      case ALERT_TYPES.ERROR:\n        NotificationManager.error(alertMessage, \"\", 2000);\n        break;\n      default:\n        break;\n    }\n  }\n\n  getUserType = () => {\n    let recordType = null;\n    map(RECORD_TYPES, (record) => {\n      if (record.value === toNumber(get(this.state.staffDetails, \"userType\"))) {\n        recordType = startCase(record.type);\n      }\n    });\n    return recordType;\n  };\n\n  render() {\n    const { staffDetails } = this.state;\n    return (\n      <div className=\"col-lg-10 col-md-10 col-sm-10 offset-lg-1 offset-lg-1 offset-lg-1\">\n        <div className=\"row\">\n          <div\n            className=\"row col-lg-2 col-md-2 col-sm-4\"\n            onClick={() => {\n              this.props.history.goBack();\n            }}\n          >\n            <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n            <span\n              style={{\n                fontFamily: \"Muli\",\n                color: \"#333333\",\n                fontSize: 15,\n                padding: 10,\n              }}\n            >\n              Back\n            </span>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-6 col-md-6 col-sm-12\">\n            <div className=\"client-details\">Supports Coordinator Details</div>\n          </div>\n          <div className=\"col-lg-6 col-md-6 col-sm-12\">\n            {/* <button className=\"button btn_delete\" size=\"sm\">\n              DELETE\n            </button> */}\n            <div className=\"row\">\n              <div className=\"col-3 offset-9\">\n                <button className=\"button btn_edit\" onClick={this.onEdit}>\n                  EDIT\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n        {/*<div className=\"row\" style={{background: \"#FFFFFF\", marginTop:10}}>*/}\n        {/*    <div className=\"col-lg-12 col-md-12 col-sm-12\">*/}\n        {/*        <img*/}\n        {/*            className=\"banner\"*/}\n        {/*            src=\"./images/banner.png\"*/}\n        {/*            alt=\"\"*/}\n        {/*        />*/}\n        {/*    </div>*/}\n        {/*    <div className=\"col-lg-12 col-md-12 col-sm-12 text-center\">*/}\n        {/*        <div className=\"client-details\"*/}\n        {/*             style={{fontSize: 21}}>{`${get(staffDetails, 'firstName', \"\")} ${get(staffDetails, 'lastName', \"\")}`}</div>*/}\n        {/*    </div>*/}\n        {/*</div>*/}\n        <div className=\"row\">\n          <div\n            className=\"page-content\"\n            style={{ width: \"100%\", marginTop: 20 }}\n          >\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <span className=\"form-title\">\n                  Supports Coordinator Information\n                </span>\n              </div>\n            </div>\n            <hr />\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Name</div>\n                <div className=\"title_text\">\n                  {`${get(staffDetails, \"firstName\", \"\")} ${get(\n                    staffDetails,\n                    \"lastName\",\n                    \"\"\n                  )}`}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Company Name</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"company\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">First Name</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"firstName\", \"-\")}\n                </div>\n              </div>\n              {/*<div className=\"col-6\">*/}\n              {/*    <div className=\"header_text\">Middle Name</div>*/}\n              {/*    <div className=\"title_text\">*/}\n              {/*        {get(staffDetails, 'middleName', \"-\")}*/}\n              {/*    </div>*/}\n              {/*</div>*/}\n              <div className=\"col-6\">\n                <div className=\"header_text\">Last Name</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"lastName\", \"-\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              {/*<div className=\"col-6\">*/}\n              {/*    <div className=\"header_text\">Last Name</div>*/}\n              {/*    <div className=\"title_text\">*/}\n              {/*        {get(staffDetails, 'lastName', \"-\")}*/}\n              {/*    </div>*/}\n              {/*</div>*/}\n              <div className=\"col-6\">\n                <div className=\"header_text\">Suffix</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"suffix\", \"-\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              {/*<div className=\"col-6\">*/}\n              {/*    <div className=\"header_text\">Birthday</div>*/}\n              {/*    <div className=\"title_text\">*/}\n              {/*        {isNull(get(staffDetails, 'dob', null)) ? \"\" : moment(staffDetails.dob).format(\"DD/MM/YYYY\")}*/}\n              {/*    </div>*/}\n              {/*</div>*/}\n              <div className=\"col-6\">\n                <div className=\"header_text\">Status</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"status\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Title</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"title\", \"\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Phone</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"phone\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Email</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"email\", \"\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mobile</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"mobile\", \"\")}\n                </div>\n              </div>\n            </div>\n            {/*<hr/>*/}\n            {/*<div className=\"row page-content-grey\" style={{width: \"100%\", marginLeft: 10}}>*/}\n            {/*  <div className=\"col-4 input-box\">*/}\n            {/*    <div className=\"header_text\">Password</div>*/}\n            {/*    <input*/}\n            {/*      type=\"password\"*/}\n            {/*      name=\"hasRelevantDegree\"*/}\n            {/*      value={this.state.password}*/}\n            {/*      style={{marginRight: 5}}*/}\n            {/*      onChange={(e)=>{this.setState({*/}\n            {/*        password:e.target.value*/}\n            {/*      })}}*/}\n            {/*      className='box text-box'*/}\n            {/*    />*/}\n            {/*    {this.state.showPasswordError && <p className='error-message text-left'>*/}\n            {/*      <i><img src=\"./images/alert-circle.svg\" alt=\"\"/></i>Invalid Password</p>}*/}\n            {/*  </div>*/}\n            {/*  <div className=\"col-4 offset-4 text-right\" style={{marginTop: 25}}>*/}\n            {/*    <div className='change-password'>CHANGE PASSWORD</div>*/}\n            {/*  </div>*/}\n            {/*</div>*/}\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-12\">\n                <div className=\"header_text\">Internal Memo</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"memo\", \"\")}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <span className=\"form-title\">Address Information</span>\n              </div>\n            </div>\n            <hr />\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing Street Address</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingStreet\", \"\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing City</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingCity\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing State/Province</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingState\", \"\")}\n                </div>\n              </div>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing Zip/Postal Code</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingZIP\", \"\")}\n                </div>\n              </div>\n            </div>\n            <div className=\"row\" style={{ width: \"100%\" }}>\n              <div className=\"col-6\">\n                <div className=\"header_text\">Mailing Country</div>\n                <div className=\"title_text\">\n                  {get(staffDetails, \"billingCountry\", \"\")}\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  changePasswordSuccess: state.auth.changePasswordSuccess,\n  changePasswordFail: state.auth.changePasswordFail,\n});\n\nexport default withRouter(connect(mapStateToProps)(SCDetails));\n","import React from \"react\";\nimport { get } from \"lodash\";\nimport moment from \"moment\";\nimport \"./workEntryDetails.scss\";\nimport { getQueryParameter } from \"../../../util/url\";\nimport {\n  getWorkEntryById,\n  getWorkEntryHistoryById,\n} from \"../../../api/workEntry\";\nimport { formatDateTime } from \"../../../util/util\";\nimport { isEmpty } from \"react-select-search/src/Utils\";\nimport { getClientServiceById } from \"../../../api/clientService\";\nimport { WE_ACTIONS } from \"../../../constants/appConstants\";\n\nclass WorkEntryDetails extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      workEntry: null,\n      workEntryHistory: null,\n      id: null,\n      openNoteHistory: false,\n      clientService: null,\n    };\n  }\n\n  componentDidMount() {\n    const workEntryId = getQueryParameter(\"id\");\n    getWorkEntryById(workEntryId).then((we) => {\n      this.setState({\n        workEntry: we,\n        id: workEntryId,\n      });\n    });\n  }\n\n  getService = (serviceRequestId) => {\n    getClientServiceById(serviceRequestId).then((cs) => {\n      return cs;\n    });\n  };\n\n  onProfileLinkClick = (id) => {\n    this.props.history.push(`/admin/view-staff?id=${id}`);\n  };\n\n  onLoadWorkEntryHistory = () => {\n    if (!this.state.openNoteHistory) {\n      getWorkEntryHistoryById(this.state.id).then((res) => {\n        this.setState({\n          workEntryHistory: res,\n        });\n      });\n    }\n  };\n\n  formatDate = (date, simpleDate) => {\n    const momentDate = moment(date);\n    const hour = momentDate.format(\"h:mm A\");\n\n    if (simpleDate) {\n      const date = momentDate.format(\"MM/DD/YYYY\");\n\n      return `${date}, ${hour}`;\n    } else {\n      const weekDay = momentDate.format(\"dddd\");\n      const day = momentDate.format(\"Do\");\n      const month = momentDate.format(\"MMMM\");\n      const year = momentDate.format(\"YYYY\");\n\n      return `${weekDay}, ${day} ${month} ${year}, ${hour}`;\n    }\n  };\n\n  render() {\n    const { workEntry } = this.state;\n    const clientService =\n      workEntry && workEntry.serviceRequest ? workEntry.serviceRequest : null;\n    const userName =\n      workEntry && workEntry.user\n        ? workEntry.user.lastName + \" \" + workEntry.user.firstName\n        : \"-\";\n    const clientName =\n      workEntry && workEntry.client\n        ? workEntry.client.lastName + \" \" + workEntry.client.firstName\n        : \"-\";\n    const elapsedTime = workEntry\n      ? workEntry.serviceElapsedTime.toFixed(2)\n      : 0.0;\n    const grossAmount = workEntry ? workEntry.grossAmount.toFixed(2) : 0.0;\n    const netAmount = workEntry ? workEntry.netAmount.toFixed(2) : 0.0;\n    const lastEdit =\n      workEntry && workEntry.updatedBy != null\n        ? moment(new Date()).diff(\n            moment(new Date(workEntry.updated_on)),\n            \"days\"\n          )\n        : \"\";\n    const lastEditTime =\n      workEntry && workEntry.updatedBy != null\n        ? moment(new Date(workEntry.updated_on))\n            .subtract(lastEdit, \"days\")\n            .calendar()\n        : \"\";\n\n    return (\n      <div className=\"col-lg-10 col-md-10 col-sm-10 offset-lg-1 offset-lg-1 offset-lg-1\">\n        <div\n          className=\"row col-lg-2 col-md-2 col-sm-4\"\n          onClick={() => {\n            this.props.history.goBack();\n          }}\n        >\n          <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n          <span\n            style={{\n              fontFamily: \"Muli\",\n              color: \"#333333\",\n              fontSize: 15,\n              padding: 10,\n            }}\n          >\n            Back\n          </span>\n        </div>\n        <div\n          className=\"page-content col-lg-12 col-sm-12\"\n          style={{ padding: 50 }}\n        >\n          <div className=\"row\">\n            <div className=\"col-lg-6 col-md-6 col-sm-12\">\n              <div className=\"client-details\">Work Entry Details</div>\n            </div>\n            <div className=\"col-3 offset-3 text-right\">\n              <button\n                className=\"button btn_edit\"\n                onClick={() => {\n                  this.props.history.push(\n                    `/admin/edit-timeSheet?id=${this.state.id}`\n                  );\n                }}\n              >\n                EDIT\n              </button>\n            </div>\n          </div>\n          <hr />\n          <div className=\"row\">\n            <div className=\"col-4\">\n              <div className=\"notes-header-text\">Staff Name</div>\n              <div className=\"notes-title-text\">{userName}</div>\n            </div>\n            <div className=\"col-4\">\n              <div className=\"notes-header-text\">Client Name</div>\n              <div className=\"notes-title-text\">{clientName}</div>\n            </div>\n            <div className=\"col-4\">\n              <div className=\"notes-header-text\">Service Name</div>\n              <div className=\"notes-title-text\">\n                {get(clientService, \"serviceName\", \"-\")}\n              </div>\n            </div>\n          </div>\n          <hr />\n          <div className=\"row\">\n            <div className=\"col-4\">\n              <div className=\"notes-header-text\">Service Code</div>\n              <div className=\"notes-title-text\">\n                {get(clientService, \"serviceCode\", \"-\")}\n              </div>\n            </div>\n            <div className=\"col-4\">\n              <div className=\"notes-header-text\">Service Unit Length (Hrs)</div>\n              <div className=\"notes-title-text\">\n                {get(clientService, \"serviceUnitLength\", \"-\")}\n              </div>\n            </div>\n            <div className=\"col-4\">\n              <div className=\"notes-header-text\">Service Unit Rate</div>\n              <div className=\"notes-title-text\">\n                {get(clientService, \"serviceUnitRate\", \"-\")}\n              </div>\n            </div>\n          </div>\n          <hr />\n          <div className=\"row\">\n            <div className=\"col-3\">\n              <div className=\"notes-header-text\">Elapsed Time</div>\n              <div className=\"notes-title-text\">{elapsedTime}</div>\n            </div>\n            <div className=\"col-3\">\n              <div className=\"notes-header-text\">Used Units</div>\n              <div className=\"notes-title-text\">\n                {get(workEntry, \"unitsUsed\", \"0\")}\n              </div>\n            </div>\n            <div className=\"col-3\">\n              <div className=\"notes-header-text\">Gross Amount</div>\n              <div className=\"notes-title-text\">{grossAmount}</div>\n            </div>\n            <div className=\"col-3\">\n              <div className=\"notes-header-text\">Net Amount</div>\n              <div className=\"notes-title-text\">{netAmount}</div>\n            </div>\n          </div>\n          <div className=\"row\" style={{ marginTop: 20 }}>\n            <div className=\"col-12\">\n              <div className=\"client-details\" style={{ fontSize: 18 }}>\n                Date and Time\n              </div>\n            </div>\n          </div>\n          <hr />\n          <div className=\"row\">\n            <div className=\"col-5\">\n              <img src={\"./images/calendar.png\"} alt=\"\" />\n              <div className=\"notes-header-text\">Start Date and Time</div>\n              <div className=\"notes-title-text\">\n                {formatDateTime(\n                  get(workEntry, \"serviceStartTime\", null),\n                  \"MMMM Do YYYY, h:mm a\"\n                )}\n              </div>\n            </div>\n            <div className=\"col-5\">\n              <img src={\"./images/calendar.png\"} alt=\"\" />\n              <div className=\"notes-header-text\">End Date and Time</div>\n              <div className=\"notes-title-text\">\n                {moment(get(workEntry, \"serviceEndTime\", null)).format(\n                  \"MMMM Do YYYY, h:mm a\"\n                )}\n              </div>\n            </div>\n          </div>\n          {/*<div className='row'>*/}\n          {/*  <div className='col-12'>*/}\n          {/*    <div className=\"client-details\" style={{fontSize: 18}}>Location</div>*/}\n          {/*  </div>*/}\n          {/*</div>*/}\n          {/*<hr/>*/}\n          {/*<div className='row'>*/}\n          {/*  <div className='col-5'>*/}\n          {/*    <img src={'./images/pin.png'}/>*/}\n          {/*    <div className=\"title_text\">Start Location</div>*/}\n          {/*    <div className=\"header_text\"></div>*/}\n          {/*  </div>*/}\n          {/*  <div className='col-5'>*/}\n          {/*    <img src={'./images/pin.png'}/>*/}\n          {/*    <div className=\"title_text\">End Location</div>*/}\n          {/*    <div className=\"header_text\"></div>*/}\n          {/*  </div>*/}\n          {/*</div>*/}\n          {/*<hr/>*/}\n          <div className=\"row\" style={{ marginTop: \"2em\" }}>\n            <div className=\"col-12\">\n              <div className=\"client-details\" style={{ fontSize: 18 }}>\n                Progress\n              </div>\n            </div>\n          </div>\n          <hr />\n          <div\n            className=\"row\"\n            style={{ padding: 30, backgroundColor: \"#FAFBFC\", margin: \"2em 0\" }}\n          >\n            <div className=\"col-4 text-left progress-selection\">\n              <input\n                type=\"radio\"\n                name=\"progress\"\n                value=\"increased\"\n                checked={workEntry && workEntry.progress === 1}\n                disabled={true}\n              />\n              <label className={\"radio-text\"}>Increased</label>\n            </div>\n            <div className=\"col-4 text-left progress-selection\">\n              <input\n                type=\"radio\"\n                name=\"progress\"\n                value=\"maintained\"\n                checked={workEntry && workEntry.progress === 2}\n                disabled={true}\n              />\n              <label className={\"radio-text\"}>Maintained</label>\n            </div>\n\n            <div className=\"col-4 text-left progress-selection\">\n              <input\n                type=\"radio\"\n                name=\"progress\"\n                value=\"decreased\"\n                checked={workEntry && workEntry.progress === 3}\n                disabled={true}\n              />\n              <label className={\"radio-text\"}>Decreased</label>\n            </div>\n          </div>\n          <hr />\n\n          <div className=\"notes-container\">\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <div className=\"notes-header-text\">Service Notes</div>\n              </div>\n            </div>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <div\n                  className=\"notes-title-text\"\n                  style={{ width: \"auto\", fontSize: 14 }}\n                >\n                  {get(workEntry, \"notes\") ? (\n                    get(workEntry, \"notes\")\n                  ) : (\n                    <span style={{ fontStyle: \"italic\" }}>No notes added</span>\n                  )}\n                </div>\n              </div>\n            </div>\n          </div>\n\n          <hr />\n\n          <div\n            className=\"row col-lg-12 col-md-12 col-sm-12 align-items-center\"\n            style={{ paddingBottom: \"20px\" }}\n          >\n            <div className=\"col-lg-6 col-md-6 col-sm-12 offset-lg-1 offset-lg-1\">\n              <div className=\"header_text\">Signature</div>\n\n              <div className=\"signature-container\">\n                <div className=\"row\">\n                  <div className=\"ml-auto mr-auto\">\n                    <img\n                      className={{}}\n                      src={get(workEntry, \"signature\", \"\")}\n                      alt=\"No signature added\"\n                    />\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <div className=\"col-lg-3 col-md-3 col-sm-12\">\n              {workEntry && workEntry.adminVerification && (\n                <div className=\"admin-verified\">\n                  <div className=\"row\">\n                    <span className=\"col-2 text-right\">\n                      <img alt=\"\" src=\"./images/admin-verified.svg\" />\n                    </span>\n                    <div\n                      className=\"col-10 text-left\"\n                      style={{\n                        fontSize: 18,\n                        color: \"#35CC62\",\n                        fontWeight: \"bold\",\n                      }}\n                    >\n                      ADMIN VERIFIED\n                    </div>\n                  </div>\n                </div>\n              )}\n            </div>\n          </div>\n\n          <div className=\"row\">\n            <div className=\"col-12 text-left\">\n              <span\n                style={{ fontSize: 12 }}\n                className=\"title_text\"\n              >{`Created on ${formatDateTime(\n                get(workEntry, \"created_on\", null),\n                \"MMMM Do YYYY, h:mm a\"\n              )} by `}</span>\n              <span\n                style={{ fontSize: 12 }}\n                className=\"title_text_profile_link\"\n                onClick={() => {\n                  this.onProfileLinkClick(get(workEntry, \"createdById\", \"\"));\n                }}\n              >{`${get(workEntry, \"createdBy.lastName\", \"\")} ${get(\n                workEntry,\n                \"createdBy.firstName\",\n                \"\"\n              )}`}</span>\n            </div>\n            {workEntry && workEntry.updatedBy && (\n              <div className=\"col-12 text-left\">\n                <span\n                  style={{ fontSize: 12 }}\n                  className=\"title_text\"\n                >{`Last Modified on ${formatDateTime(\n                  get(workEntry, \"updated_on\", null),\n                  \"MMMM Do YYYY, h:mm a\"\n                )} by `}</span>\n                <span\n                  style={{ fontSize: 12 }}\n                  className=\"title_text_profile_link\"\n                  onClick={() => {\n                    this.onProfileLinkClick(get(workEntry, \"updatedById\", \"\"));\n                  }}\n                >\n                  {`${get(workEntry, \"updatedBy.lastName\", \"\")} ${get(\n                    workEntry,\n                    \"updatedBy.firstName\",\n                    \"\"\n                  )}`}\n                </span>\n              </div>\n            )}\n          </div>\n\n          <div className=\"row\">\n            <div className=\"col-12 text-left\">\n              {workEntry && workEntry.recordHistory === 1 && (\n                <span\n                  className=\"header_text\"\n                  style={{ color: \"#35cc62\", fontSize: 12 }}\n                >\n                  {`Record Imported from Salesforce on ${formatDateTime(\n                    get(workEntry, \"recordedOn\", null),\n                    \"MMMM Do YYYY, h:mm A\"\n                  )}`}\n                </span>\n              )}\n              {workEntry && workEntry.recordHistory === 2 && (\n                <span\n                  className=\"header_text\"\n                  style={{ color: \"#35cc62\" }}\n                >{`Record Created by HCBS CRM on ${formatDateTime(\n                  get(workEntry, \"recordedOn\", null),\n                  \"MMMM Do YYYY, h:mm A\"\n                )}`}</span>\n              )}\n            </div>\n          </div>\n        </div>\n\n        <div className=\"page-content col-12\" style={{ padding: \"1em 3.5em\" }}>\n          <div\n            className=\"flex-history\"\n            onClick={() => {\n              this.setState({\n                openNoteHistory: !this.state.openNoteHistory,\n              });\n              this.onLoadWorkEntryHistory();\n            }}\n          >\n            <img\n              src={\n                this.state.openNoteHistory\n                  ? \"./images/minus.svg\"\n                  : \"./images/plus.svg\"\n              }\n              alt=\"\"\n              style={{ marginRight: \"0.7em\" }}\n            />\n            <div\n              className=\"client-details\"\n              style={{ fontSize: \"16px\", color: \"#35CC62\" }}\n            >\n              View Full Edit History\n            </div>\n          </div>\n\n          {this.state.openNoteHistory\n            ? this.state.workEntryHistory?.map((entry, i) => {\n                return (\n                  <>\n                    <hr />\n\n                    <div key={entry.id} style={{ padding: \"0 3em\" }}>\n                      <div className=\"cont-info-history\">\n                        <div className=\"flex-gap\">\n                          <div className=\"notes-header-text\">Service Code:</div>\n                          <span className=\"notes-title-text\">\n                            {entry?.serviceRequest?.serviceCode}\n                          </span>\n                        </div>\n\n                        <div className=\"flex-gap\">\n                          <div className=\"notes-header-text\">Service Name:</div>\n                          <span className=\"notes-title-text\">\n                            {entry?.serviceRequest?.serviceName}\n                          </span>\n                        </div>\n\n                        <div className=\"flex-gap\">\n                          <div className=\"notes-header-text\">Start Time:</div>\n                          <span className=\"notes-title-text\">\n                            {this.formatDate(entry.serviceStartTime, true)}\n                          </span>\n                        </div>\n\n                        <div className=\"flex-gap\">\n                          <div className=\"notes-header-text\">End Time:</div>\n                          <span className=\"notes-title-text\">\n                            {this.formatDate(entry.serviceEndTime, true)}\n                          </span>\n                        </div>\n\n                        <div className=\"flex-gap\">\n                          <div className=\"notes-header-text\">\n                            Admin Approval:\n                          </div>\n                          <span className=\"notes-title-text\">\n                            {entry.adminVerification ? \"Yes\" : \"No\"}\n                          </span>\n                        </div>\n                      </div>\n\n                      <div className=\"notes-header-text\">Services Notes</div>\n\n                      <div\n                        className=\"cont-info-history\"\n                        style={{ gridTemplateColumns: \"1fr\", margin: \"0\" }}\n                      >\n                        <div\n                          className=\"notes-title-text\"\n                          style={{ height: \"auto\", fontSize: 14 }}\n                        >\n                          {entry.notes ? (\n                            entry.notes\n                          ) : (\n                            <span style={{ fontStyle: \"italic\" }}>\n                              No notes added\n                            </span>\n                          )}\n                        </div>\n                      </div>\n\n                      <div\n                        className=\"notes-header-text\"\n                        style={{\n                          textAlign: \"end\",\n                          fontSize: \"12px\",\n                          fontWeight: \"bold\",\n                        }}\n                      >\n                        {entry.recordAction === WE_ACTIONS.Created\n                          ? `Created on ${this.formatDate(\n                              entry.recordActionDate\n                            )} By ${entry?.recordedBy?.lastName}, ${entry?.recordedBy?.firstName}`\n                          : `Updated on ${this.formatDate(\n                              entry.recordActionDate\n                            )} By ${entry?.recordedBy?.lastName}, ${entry?.recordedBy?.firstName}`}\n                      </div>\n                    </div>\n                  </>\n                );\n              })\n            : null}\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default WorkEntryDetails;\n","import React from \"react\";\nimport {VISIT_STATUS} from \"../../../../constants/appConstants\";\nimport {isMobileDevice, isTablet} from \"../../../../util/deviceType\";\nimport * as ClassNames from 'classnames'\n\nclass StatusCell extends React.Component {\n\n    render() {\n        const isMobile = (!isTablet() && !isMobileDevice())\n        return (\n            <div className='status-cell text-center'>\n\n                {\n                    this.props.status === VISIT_STATUS.ABANDONED &&\n                    <div className={ClassNames('abandoned-status', {'mobile-device-status': !isMobile})}>\n                        <img src=\"./images/abandoned.svg\" alt=\"\"/>&nbsp;\n                        {isMobile &&\n                        <span>Abandoned</span>\n                        }\n\n                    </div>\n                }\n\n                {\n                    this.props.status === VISIT_STATUS.COMPLETED &&\n                    <div className={ClassNames('completed-status', {'mobile-device-status': !isMobile})}>\n                        <img src=\"./images/completed-circle.svg\" alt=\"\"/>&nbsp;\n                        {isMobile &&\n                        <span>Completed</span>\n                        }\n                    </div>\n                }\n\n                {\n                    this.props.status === VISIT_STATUS.IN_PROGRESS &&\n                    <div className={ClassNames('progress-status', {'mobile-device-status': !isMobile})}>\n                        <img src=\"./images/inprogress.svg\" alt=\"\"/>&nbsp;\n                        {isMobile &&\n                        <span>In Progress</span>}\n                    </div>\n                }\n            </div>\n        );\n    }\n}\n\nexport default StatusCell;","import * as React from 'react';\n\nclass LinkCell extends React.Component {\n\n    onEdit = (event) => {\n        this.props.onEdit(this.props.actionId, event)\n    };\n\n    render() {\n        return (\n            <div className='cell link-cell' onClick={this.onEdit}>\n                { this.props.value && (\n                    <div className='overflow link-text'>{this.props.value}</div>\n                )}\n                { !this.props.value && (\n                    <div className='overflow link-text-disabled'>Add a Note..</div>\n                )}\n            </div>\n        );\n    }\n}\n\nexport default LinkCell;\n","import React from \"react\";\nimport { VISIT_STATUS } from \"../../constants/appConstants\";\nimport * as ClassNames from \"classnames\";\nimport LinkCell from \"../shared/data-grid/custom-cells/link-cell\";\n\nconst style = { lineHeight: 1, marginBottom: 4 };\n\nclass VisitCard extends React.Component {\n  render() {\n    const visit = this.props.visit;\n    return (\n      <div className=\"col-12 visit-card\">\n        <div className=\"row\">\n          {visit.status === VISIT_STATUS.ABANDONED && (\n            <div\n              className={ClassNames(\"abandoned-status col-6\")}\n              style={{ backgroundColor: \"transparent\" }}\n            >\n              <img src=\"./images/abandoned.svg\" alt=\"\" />\n              &nbsp;\n              <span>Abandoned</span>\n            </div>\n          )}\n\n          {visit.status === VISIT_STATUS.COMPLETED && (\n            <div\n              className={ClassNames(\"completed-status col-6\")}\n              style={{ backgroundColor: \"transparent\" }}\n            >\n              <img src=\"./images/completed-circle.svg\" alt=\"\" />\n              &nbsp;\n              <span>Completed</span>\n            </div>\n          )}\n\n          {visit.status === VISIT_STATUS.IN_PROGRESS && (\n            <div\n              className={ClassNames(\"progress-status col-6\")}\n              style={{ backgroundColor: \"transparent\" }}\n            >\n              <img src=\"./images/inprogress.svg\" alt=\"\" />\n              &nbsp;\n              <span>In Progress</span>\n            </div>\n          )}\n        </div>\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\" style={style}>\n              Client Name\n            </div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Service Name</div>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 value\">{visit.clientName}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 value\">{visit.service}</div>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Clock In</div>\n            <div className=\"col-12 value\">{visit.clockIn}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Clock Out</div>\n\n            <div className=\"col-12 value\">\n              {visit.status === VISIT_STATUS.IN_PROGRESS ? \"-\" : visit.clockOut}\n            </div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Date In</div>\n            <div className=\"col-12 value\">{visit.clockInDate}</div>\n          </div>\n          <div className=\"col-6\">\n            <div className=\"col-12 label\">Date Out</div>\n            <div className=\"col-12 value\">\n              {visit.status === VISIT_STATUS.IN_PROGRESS\n                ? \"-\"\n                : visit.clockOutDate}\n            </div>\n          </div>\n        </div>\n        <hr />\n        <div className=\"row\">\n          <div className=\"col-12\">\n            <div className=\"col-12 label\">Notes</div>\n          </div>\n          <div className=\"col-12\">\n            <LinkCell\n              value={visit.notes}\n              index={visit.id}\n              actionId={visit.id}\n              onEdit={this.props.onEdit.bind(visit.id)}\n            />\n            {/*<div className='col-12 notes-content'>*/}\n            {/*    {visit.notes}*/}\n            {/*</LinkCelldiv>*/}\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default VisitCard;\n","import * as React from 'react';\n\nclass ClockInOut extends React.Component {\n    render() {\n        const value = this.props.value.original && this.props.value.original.status === 6 ? `-` : this.props.value.original.clockOut\n        return (\n            <div className='cell basic-cell'>\n                <div className='overflow'>{value}</div>\n            </div>\n        );\n    }\n}\n\nexport default ClockInOut;\n","import React from \"react\";\nimport { get } from \"lodash\";\nimport moment from \"moment\";\nimport { formatDateTime } from \"../../../util/util\";\nimport * as classNames from \"classnames\";\nimport * as ClassNames from \"classnames\";\nimport { VISIT_STATUS } from \"../../../constants/appConstants\";\nimport SignaturePad from \"../../shared/signature-pad\";\nimport isEmpty from \"lodash/isEmpty\";\n\nclass UpdateVisit extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      notes: \"\",\n      visit: {},\n      isEditMode: false,\n      signature: \"\",\n      progress: 0,\n    };\n  }\n\n  componentDidMount() {\n    const { visit } = this.props;\n    this.setState({\n      visit: visit,\n      notes: visit.notes == null ? \"\" : visit.notes,\n      progress: visit.progress,\n      signature: visit.signature,\n    });\n  }\n\n  render() {\n    let visit = this.props.visit;\n    let client = this.props.client;\n    let lastEdit = moment(new Date()).diff(\n      moment(new Date(visit.updated_on)),\n      \"days\"\n    );\n    return (\n      <div>\n        <div\n          className={classNames(\"modal fade\", { show: this.props.show })}\n          id={this.props.id ? this.props.id : \"exampleModal\"}\n          tabIndex=\"-1\"\n          role=\"dialog\"\n          aria-labelledby=\"exampleModalLabel\"\n          aria-hidden=\"true\"\n        >\n          <div className={\"modal-dialog modal-xl\"} role=\"document\">\n            <div className=\"modal-content\">\n              <div className=\"row col-12 modal-header\">\n                <div className=\"col-lg-8 col-sm-12 offset-lg-2 offset-sm-0  text-center\">\n                  <h5\n                    className=\"col-12 modal-title text-center\"\n                    id=\"exampleModalLabel\"\n                  >\n                    <span className=\"my-auto\">\n                      <img\n                        src={this.props.icon}\n                        alt=\"\"\n                        style={{ marginRight: 10 }}\n                      />\n                    </span>\n                    <span style={{ marginLeft: \"5px\" }}>\n                      {this.props.title}\n                    </span>\n                  </h5>\n                  <span className={\"col-12 text-center last-edit\"}>\n                    Last Edit {lastEdit} Days Ago\n                  </span>\n                </div>\n                <div className=\"col-lg-2 col-sm-12\">\n                  <div className=\"status-cell text-center\">\n                    {visit.status === VISIT_STATUS.ABANDONED && (\n                      <div className={ClassNames(\"abandoned-status\")}>\n                        <img src=\"./images/abandoned.svg\" alt=\"\" />\n                        &nbsp;\n                        <span>Abandoned</span>\n                      </div>\n                    )}\n                    {visit.status === VISIT_STATUS.COMPLETED && (\n                      <div className={ClassNames(\"completed-status\")}>\n                        <img src=\"./images/completed-circle.svg\" alt=\"\" />\n                        &nbsp;\n                        <span>Completed</span>\n                      </div>\n                    )}\n                    {visit.status === VISIT_STATUS.IN_PROGRESS && (\n                      <div className={ClassNames(\"progress-status\")}>\n                        <img src=\"./images/inprogress.svg\" alt=\"\" />\n                        &nbsp;\n                        <span>In Progress</span>\n                      </div>\n                    )}\n                  </div>\n                </div>\n              </div>\n              <div className=\"modal-body\">\n                <div className=\"row\">\n                  <div className=\"col-lg-12 col-sm-12 visit-notes-details\">\n                    <div className=\"row\">\n                      <div className=\"col-lg-3 col-sm-6 text-center\">\n                        <img\n                          src=\"./images/user.svg\"\n                          alt=\"\"\n                          style={{ marginRight: 2 }}\n                        />\n                        <span className=\"label\">Client Name</span>\n                        <div className=\"value\">\n                          {client.lastName +\n                            \" \" +\n                            client.firstName +\n                            \" \" +\n                            client.middleName}\n                        </div>\n                      </div>\n                      <div className=\"col-lg-3 col-sm-6 text-center\">\n                        <img\n                          src=\"./images/map-pin.svg\"\n                          alt=\"\"\n                          style={{ marginRight: 2 }}\n                        />\n                        <span className=\"label\">Address</span>\n                        <div\n                          className=\"value\"\n                          style={{\n                            overflow: \"hidden\",\n                            textOverflow: \"ellipsis\",\n                          }}\n                        >{`${get(client, \"billingStreet\", \"\")} ${get(\n                          client,\n                          \"billingCity\",\n                          \"\"\n                        )}, ${get(client, \"billingState\", \"\")} ${get(\n                          client,\n                          \"billingCountry\",\n                          \"\"\n                        )}`}</div>\n                      </div>\n                      <div className=\"col-lg-3 col-sm-6 text-center\">\n                        <img\n                          src=\"./images/calendar-green.svg\"\n                          alt=\"\"\n                          style={{ marginRight: 2 }}\n                        />\n                        <span className=\"label\">Clock In Time</span>\n                        <div className=\"value\">\n                          {formatDateTime(\n                            get(visit, \"serviceStartTime\", null),\n                            \"MMMM Do YYYY, h:mm a\"\n                          )}\n                        </div>\n                      </div>\n                      <div className=\"col-lg-3 col-sm-6 text-center\">\n                        <img\n                          src=\"./images/calendar-green.svg\"\n                          alt=\"\"\n                          style={{ marginRight: 2 }}\n                        />\n                        <span className=\"label\">Clock Out Time</span>\n\n                        {visit.status !== VISIT_STATUS.IN_PROGRESS && (\n                          <div className=\"value\">\n                            {formatDateTime(\n                              get(visit, \"serviceEndTime\", null),\n                              \"MMMM Do YYYY, h:mm a\"\n                            )}\n                          </div>\n                        )}\n                        {visit.status === VISIT_STATUS.IN_PROGRESS && (\n                          <div className=\"value\">{\"-\"}</div>\n                        )}\n                      </div>\n                    </div>\n                  </div>\n\n                  <div className=\"col-lg-12 col-md-12 col-sm-12 notes-content row\">\n                    <span className=\"col-lg-12 col-md-12 col-sm-12 label text-left\">\n                      Progress\n                    </span>\n                    {!this.state.isEditMode && (\n                      <div\n                        className=\"row col-lg-12 col-md-12 col-sm-12\"\n                        style={{ padding: 30, backgroundColor: \"#FAFBFC\" }}\n                      >\n                        <div className=\"col-lg-4 col-md-4 col-sm-12 text-left progress-selection\">\n                          <input\n                            type=\"radio\"\n                            name=\"progress\"\n                            value=\"increased\"\n                            checked={this.state.progress === 1}\n                            disabled={true}\n                            // onChange={(event) => {\n                            //     this.setState({progress: 1})\n                            // }}\n                          />\n                          <label className={\"radio-text\"}>Increased</label>\n                        </div>\n                        <div className=\"col-lg-4 col-md-4 col-sm-12 text-left progress-selection\">\n                          <input\n                            type=\"radio\"\n                            name=\"progress\"\n                            value=\"maintained\"\n                            checked={this.state.progress === 2}\n                            disabled={true}\n                            // onChange={(event) => {\n                            //     this.setState({progress: 2})\n                            // }}\n                          />\n                          <label className={\"radio-text\"}>Maintained</label>\n                        </div>\n\n                        <div className=\"col-lg-4 col-md-4 col-sm-12 text-left progress-selection\">\n                          <input\n                            type=\"radio\"\n                            name=\"progress\"\n                            value=\"decreased\"\n                            checked={this.state.progress === 3}\n                            disabled={true}\n                            // onChange={(event) => {\n                            //     this.setState({progress: 3})\n                            // }}\n                          />\n                          <label className={\"radio-text\"}>Decreased</label>\n                        </div>\n                      </div>\n                    )}\n                    {this.state.isEditMode && (\n                      <div className=\"row col-lg-12 col-md-12 col-sm-12\">\n                        <div className=\"col-lg-4 col-md-4 col-sm-12 text-left\">\n                          <input\n                            type=\"radio\"\n                            name=\"progress\"\n                            value=\"increased\"\n                            checked={this.state.progress == 1}\n                            onChange={(event) => {\n                              this.setState({ progress: 1 });\n                            }}\n                          />{\" \"}\n                          Increased\n                        </div>\n                        <div className=\"col-lg-4 col-md-4 col-sm-12 text-left\">\n                          <input\n                            type=\"radio\"\n                            name=\"progress\"\n                            value=\"maintained\"\n                            checked={this.state.progress == 2}\n                            onChange={(event) => {\n                              this.setState({ progress: 2 });\n                            }}\n                          />{\" \"}\n                          Maintained\n                        </div>\n                        <div className=\"col-lg-4 col-md-4 col-sm-12 text-left\">\n                          <input\n                            type=\"radio\"\n                            name=\"progress\"\n                            value=\"decreased\"\n                            checked={this.state.progress == 3}\n                            onChange={(event) => {\n                              this.setState({ progress: 3 });\n                            }}\n                          />{\" \"}\n                          Decreased\n                        </div>\n                      </div>\n                    )}\n                  </div>\n                  <div className=\"col-lg-12 col-md-12 col-sm-12 notes-content row\">\n                    <span className=\"col-12 label text-left\">Notes</span>\n                    {this.state.notes && (\n                      <span\n                        className={\n                          this.state.isEditMode ? \"hidden\" : \"notes-text\"\n                        }\n                      >\n                        {this.state.notes}\n                      </span>\n                    )}\n                    {!this.state.notes && (\n                      <span\n                        className={\n                          this.state.isEditMode\n                            ? \"hidden\"\n                            : \"notes-text-disabled\"\n                        }\n                      >\n                        {\"Add a notes..\"}\n                      </span>\n                    )}\n\n                    <textarea\n                      className={this.state.isEditMode ? \"notes\" : \"hidden\"}\n                      placeholder={\"Add note\"}\n                      value={this.state.notes}\n                      onChange={(e) => {\n                        this.setState({ notes: e.target.value });\n                      }}\n                    ></textarea>\n                  </div>\n\n                  {!this.state.isEditMode && visit.signature && (\n                    <div className=\"col-12 notes-content row\">\n                      <span className=\"col-12 label text-left\">Signature</span>\n                      <img\n                        className={{}}\n                        src={visit.signature}\n                        alt=\"Signature\"\n                      />\n                    </div>\n                  )}\n\n                  <div\n                    className=\"col-12 notes-content row\"\n                    style={this.state.isEditMode ? {} : { display: \"none\" }}\n                  >\n                    <span className=\"col-12 label text-left\">Signature</span>\n                    <div className=\"row\">\n                      <SignaturePad\n                        showSignaturePad={false}\n                        signature={this.state.signature}\n                        onChange={(signature) => {\n                          this.setState({ signature });\n                        }}\n                      />\n                    </div>\n                  </div>\n\n                  <div className=\"col-lg-6 offset-lg-3 col-sm-12 offset-sm-0\">\n                    <div\n                      className=\"row\"\n                      style={{ marginBottom: 20, marginTop: 20 }}\n                    >\n                      <div className=\"col-6\">\n                        <button\n                          className=\"button basic\"\n                          onClick={(event) => {\n                            if (!this.state.isEditMode) {\n                              this.props.onCloseModal();\n                            } else {\n                              this.setState({\n                                isEditMode: false,\n                              });\n                            }\n                          }}\n                        >\n                          CANCEL\n                        </button>\n                      </div>\n                      <div className={\"col-6\"}>\n                        <button\n                          className=\"button submit\"\n                          disabled={isEmpty(this.state.signature) && this.state.isEditMode}\n                          style={\n                            !this.state.isEditMode &&\n                            this.state.progress > 0 ||\n                            this.state.signature != \"\"\n                              ? null\n                              : { backgroundColor: \"#B7B6B6\" }\n                          }\n                          onClick={() => {\n                            if (this.state.isEditMode) {\n                              this.props.handleSubmit(\n                                this.state.visit,\n                                this.state.notes,\n                                this.state.progress,\n                                this.state.signature\n                              );\n                            } else {\n                              this.setState({\n                                isEditMode: true,\n                              });\n                            }\n                          }}\n                        >\n                          <span className=\"text\">\n                            {this.state.isEditMode ? \"SAVE CHANGES\" : \"EDIT\"}\n                          </span>\n                        </button>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default UpdateVisit;\n","import React from \"react\";\nimport BasicHeader from \"../shared/data-grid/custom-headers/basic-header\";\nimport BasicCell from \"../shared/data-grid/custom-cells/basic-cell\";\nimport DataGrid from \"../shared/data-grid/data-grid\";\nimport { isEmpty, isEqual, isNull, map, startCase } from \"lodash\";\nimport {\n  getAllWorkEntries,\n  setVisitDetails,\n  setVisitStatus,\n} from \"../../redux/workEntries/workEntryAction\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport StatusCell from \"../shared/data-grid/custom-cells/status-cell\";\nimport \"./visits.scss\";\nimport { isMobileDevice } from \"../../util/deviceType\";\nimport VisitCard from \"./visitCard\";\nimport {\n  getActiveClientsList,\n  getAssignedClientsList,\n  getClientById,\n} from \"../../api/client\";\nimport ClockInOut from \"../shared/data-grid/custom-cells/clockInOut\";\nimport { ALERT_TYPES, VISIT_STATUS } from \"../../constants/appConstants\";\nimport { getInProgressVisits, updateVisitNote } from \"../../api/visits\";\nimport Pagination from \"../shared/data-grid/pagination/pagination\";\nimport UpdateVisit from \"./update-visit/update-visit\";\nimport { getWorkEntryById } from \"../../api/workEntry\";\nimport LinkCell from \"../shared/data-grid/custom-cells/link-cell\";\nimport { createNotification } from \"../../util/notificationManager\";\nimport SearchableDropdown from \"../shared/searchable-dropdown\";\n\nclass Visits extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      workEntries: [],\n      selectedWorkEntryId: 0,\n      pageNumber: 0,\n      searchParam: \"\",\n      filter: \"recent\",\n      pageSize: 10,\n      totalWorkEntries: 0,\n      clients: [],\n      selectedClient: null,\n      visitInProgress: false,\n      selectedVisit: {},\n      openModal: false,\n    };\n  }\n\n  componentWillReceiveProps(nextProps, nextContext) {\n    const { workEntries } = this.props;\n    const workEntryData = [];\n    if (\n      !isEqual(nextProps.workEntries, workEntries) &&\n      !isNull(nextProps.workEntries)\n    ) {\n      map(nextProps.workEntries.data, (we) => {\n        workEntryData.push({\n          workEntry: we,\n          id: we.entryId,\n          clientName: startCase(we.clientName),\n          service: startCase(we.serviceName),\n          clockInDate: moment(we.startTime).format(\"MM-DD-YYYY\"),\n          clockIn: moment(we.startTime).format(\"hh:mm A\"),\n          clockOutDate:\n            we.status === VISIT_STATUS.IN_PROGRESS\n              ? \"-\"\n              : moment(we.endTime).format(\"MM-DD-YYYY\"),\n          clockOut: moment(we.endTime).format(\"hh:mm A\"),\n          notes: we.notes,\n          status: we.status,\n        });\n      });\n      this.setState({\n        workEntries: workEntryData,\n        totalWorkEntries: nextProps.workEntries.recordCount,\n      });\n    }\n  }\n\n  componentDidMount() {\n    this.getAllWorkEntries(\n      this.state.pageNumber,\n      this.state.pageSize,\n      this.state.filter,\n      this.state.searchParam\n    );\n\n    getAssignedClientsList().then((res) => {\n      this.setState({\n        clients: res,\n      });\n    });\n\n    getInProgressVisits().then((res) => {\n      if (!isEmpty(res.data)) {\n        this.setState({\n          visitInProgress: true,\n        });\n        this.props.dispatch(\n          setVisitStatus(VISIT_STATUS.IN_PROGRESS, res.data.serviceStartTime)\n        );\n        this.props.dispatch(setVisitDetails(res.data));\n      }\n    });\n  }\n\n  getAllWorkEntries = (pageNumber, pageSize, filter, searchParams) => {\n    this.props.dispatch(\n      getAllWorkEntries(pageNumber, pageSize, filter, searchParams)\n    );\n  };\n\n  onCreateNewWorkEntry = () => {\n    const selectedClient = this.state.selectedClient;\n    this.props.history.push(\"/staff/start-visit\", {\n      selectedClient: selectedClient,\n    });\n  };\n\n  onPageChange = (pageNumber) => {\n    this.setState({\n      pageNumber: pageNumber,\n    });\n    this.getAllWorkEntries(\n      pageNumber,\n      this.state.pageSize,\n      this.state.filter,\n      this.state.searchParam\n    );\n  };\n\n  onPageSizeChange = (pageSize) => {\n    this.setState({\n      pageNumber: 0,\n      pageSize: pageSize,\n    });\n    this.getAllWorkEntries(\n      0,\n      pageSize,\n      this.state.filter,\n      this.state.searchParam\n    );\n  };\n\n  onSearch = (event) => {\n    const searchParam = event.target.value;\n    if (searchParam.length >= 3 || searchParam.length == 0) {\n      this.getAllWorkEntries(\n        0,\n        this.state.pageSize,\n        this.state.filter,\n        searchParam\n      );\n    }\n    this.setState({\n      pageNumber: 0,\n      searchParam: searchParam,\n    });\n  };\n\n  onFilterChange = (event) => {\n    const filter = event.target.value;\n    this.setState({\n      pageNumber: 0,\n      filter: filter,\n    });\n    this.getAllWorkEntries(\n      0,\n      this.state.pageSize,\n      filter,\n      this.state.searchParam\n    );\n  };\n\n  onDetails = (workEntryId) => {\n    this.props.history.push(`/staff/view-timeSheet?id=${workEntryId}`);\n  };\n\n  onEdit = (workEntryId) => {\n    getWorkEntryById(workEntryId).then((res) => {\n      getClientById(res.clientId).then((client) => {\n        this.setState({\n          selectedWorkEntryId: workEntryId,\n          selectedVisit: res,\n          selectedClient: client,\n          openModal: true,\n        });\n      });\n    });\n  };\n\n  updateVisit = (workEntry, notes, progress, signature) => {\n    workEntry.notes = notes;\n    workEntry.progress = progress;\n    workEntry.signature = signature;\n    updateVisitNote(workEntry)\n      .then((res) => {\n        this.setState({\n          openModal: false,\n        });\n        this.getAllWorkEntries(\n          this.state.pageNumber,\n          this.state.pageSize,\n          this.state.filter,\n          this.state.searchParam\n        );\n      })\n      .catch((err) => {\n        createNotification(ALERT_TYPES.ERROR, err.message);\n      });\n  };\n\n  onClientChange = (value) => {\n    this.setState({\n      selectedClient: parseInt(value),\n    });\n  };\n\n  render() {\n    const columns = [\n      {\n        Header: () => <BasicHeader header={\"Client Name\"} />,\n        accessor: \"clientName\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n      },\n      {\n        Header: () => <BasicHeader header={\"Service Name\"} />,\n        accessor: \"service\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        },\n      },\n      {\n        Header: () => <BasicHeader header={\"Clock In Date\"} />,\n        accessor: \"clockInDate\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 125,\n      },\n      {\n        Header: () => <BasicHeader header={\"Clock In Time\"} />,\n        accessor: \"clockIn\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 125,\n      },\n      {\n        Header: () => <BasicHeader header={\"Clock Out Date\"} />,\n        accessor: \"clockOutDate\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />,\n        width: 125,\n      },\n      {\n        Header: () => <BasicHeader header={\"Clock Out Time\"} />,\n        accessor: \"clockOut\",\n        Cell: (row) => <ClockInOut value={row} index={row.index} />,\n        width: 125,\n      },\n      {\n        Header: () => <BasicHeader header={\"Notes\"} />,\n        accessor: \"notes\",\n        Cell: (row) => (\n          <LinkCell\n            value={row.value}\n            index={row.index}\n            actionId={row.original.id}\n            onEdit={this.onEdit.bind(row.original.id)}\n          />\n        ),\n      },\n      {\n        Header: () => <BasicHeader header={\"Status\"} />,\n        accessor: \"status\",\n        Cell: (row) => <StatusCell status={row.value} index={row.index} />,\n        width: 150,\n      },\n      // {\n      //     Header: \"\",\n      //     accessor: \"icon\",\n      //     Cell: (row) => (\n      //         <Actions\n      //             actionId={row.original.id}\n      //             onEdit={this.onEdit.bind(row.original.id)}\n      //         />\n      //     ),\n      //     width: 50,\n      // },\n    ];\n    return (\n      <div className=\"table-layout\">\n        {this.state.visitInProgress && (\n          <div\n            className=\"row in-progress-banner\"\n            style={{ marginBottom: 10 }}\n            onClick={() => {\n              this.props.history.push(\"/staff/visit-progress\");\n            }}\n          >\n            <div className=\"col-12 text-left\">\n              <img src=\"./images/clock-white.svg\" alt=\"\" />\n              <span style={{ marginLeft: 10 }}>\n                You have a visit in progress\n              </span>\n              <img\n                style={{ marginLeft: 10 }}\n                src=\"./images/chevron-right-white.svg\"\n                alt=\"\"\n              />\n            </div>\n            {/*<div className=\"col-lg-2 col-md-3 col-sm-3 offset-lg-7 offset-md-5 offset-sm-4 text-right\">*/}\n            {/*    /!*<span className=\"duration\">03:046:11</span>*!/*/}\n            {/*    <img src=\"./images/chevron-right-white.svg\" alt=\"\"/>*/}\n            {/*</div>*/}\n          </div>\n        )}\n        <div className=\"row col-lg-12 col-sm-12 header-container\">\n          <div className=\"row col-lg-8 col-sm-12\">\n            <span className=\"col-lg-2 col-sm-12 title\">Visits</span>\n            <span className=\"col-lg-1 col-sm-12 sub-title mobile-no-padding\">\n              Search\n            </span>\n            <div className=\"col-lg-4 col-sm-12 input-box  mobile-no-padding\">\n              <input\n                type=\"text\"\n                className=\"box text-box search-icon\"\n                value={this.state.searchParam}\n                onChange={this.onSearch}\n                placeholder={\"Search Visits\"}\n              />\n              {/*<FeatherIcon icon=\"search\"/>*/}\n            </div>\n          </div>\n          {!this.state.visitInProgress && (\n            <div className=\"col-lg-2 col-md-6 col-sm-6 header-component\">\n              <SearchableDropdown\n                options={this.state.clients}\n                value={0}\n                defaultValue={0}\n                keyIdentifier=\"clientId\"\n                valueIdentifier=\"name\"\n                placeholder=\"Search Client\"\n                onChange={this.onClientChange}\n              />\n            </div>\n          )}\n          {!this.state.visitInProgress && (\n            <div className=\"col-lg-2 col-md-6 col-sm-6 header-component\">\n              <button\n                className=\"button submit\"\n                onClick={this.onCreateNewWorkEntry}\n                disabled={this.state.selectedClient === null}\n                style={\n                  this.state.selectedClient === null\n                    ? { backgroundColor: \"#B7B6B6\" }\n                    : null\n                }\n              >\n                <span className=\"text\">CREATE NEW</span>\n              </button>\n            </div>\n          )}\n        </div>\n\n        <div className=\"body-container\">\n          <div className=\"row list-container\">\n            <div className=\"col-lg-3 col-md-4 col-sm-6\">\n              <span className=\"list-header\">Visits</span>\n            </div>\n            <div className=\"col-lg-3 offset-lg-6 col-md-4 offset-md-4 col-sm-6 offset-sm-0 list-header-component\">\n              <select\n                className=\"select-box list-dropdown\"\n                onChange={this.onFilterChange}\n                value={this.state.filter}\n              >\n                <option value=\"all\">All Visits</option>\n                <option value=\"recent\">Recently Added</option>\n              </select>\n            </div>\n          </div>\n\n          <div className=\"data-grid-container\">\n            {!isMobileDevice() && (\n              <div className=\"row\">\n                <div className=\"col-12\">\n                  <DataGrid\n                    data={this.state.workEntries}\n                    columns={columns}\n                    onRowClick={(rowInfo) => {\n                      // this.viewOrganization(get(rowInfo.original, 'id', ''))\n                    }}\n                    onPageSizeChange={this.onPageSizeChange}\n                    onPageNumberChange={this.onPageChange}\n                    total={this.state.totalWorkEntries}\n                    paginationLabel={\"Visits per page\"}\n                    showPagination={true}\n                    pageNumber={this.state.pageNumber}\n                    pageSize={this.state.pageSize}\n                  />\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && this.state.workEntries.length !== 0 && (\n              <div className=\"row\">\n                {map(this.state.workEntries, (visit) => {\n                  return <VisitCard visit={visit} onEdit={this.onEdit} />;\n                })}\n                <div className=\"row pagination pagination-align\">\n                  <div className=\"col-12\">\n                    <Pagination\n                      onPageSizeChange={this.onPageSizeChange}\n                      label={\"Visits per page\"}\n                      onPageNumberChange={this.onPageChange}\n                      total={this.state.totalWorkEntries}\n                      pageSize={this.state.pageSize}\n                      pageNumber={this.state.pageNumber}\n                    />\n                  </div>\n                </div>\n              </div>\n            )}\n\n            {isMobileDevice() && this.state.workEntries.length === 0 && (\n              <div className=\"row\">\n                <div className=\"col-12 text-center\">\n                  <span>No Visits</span>\n                </div>\n              </div>\n            )}\n          </div>\n        </div>\n\n        {this.state.openModal && (\n          <UpdateVisit\n            show={this.state.openModal}\n            onClose={() => {\n              this.setState({ openModal: false });\n            }}\n            title={\"Edit Visit Notes\"}\n            icon={\"/images/lock.svg\"}\n            size={\"xl\"}\n            visit={this.state.selectedVisit}\n            client={this.state.selectedClient}\n            handleSubmit={this.updateVisit}\n            onCloseModal={() => {\n              this.setState({ openModal: false });\n            }}\n          />\n        )}\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  workEntries: state.workEntry.getAllSuccess,\n  workEntryError: state.workEntry.getAllFail,\n  visitStatus: state.workEntry.visitStatus,\n});\n\nexport default withRouter(connect(mapStateToProps)(Visits));\n","import { post, get, put } from \"../util/httpService\";\nimport {CLIENT_URL, VISIT_URL} from \"../constants/appConstants\";\nimport * as _ from \"lodash\";\nimport { getToken, setAuthData } from \"../util/auth\";\n\nexport async function startVisit(visit) {\n    const authToken = getToken();\n    const headers = { Authorization: `bearer ${authToken}` };\n    try {\n        const response = await post(`${VISIT_URL}/start`, visit, { headers: headers });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function abandonVisit(visit) {\n    const authToken = getToken();\n    const headers = { Authorization: `bearer ${authToken}` };\n    try {\n        const response = await post(`${VISIT_URL}/abandon`, visit, { headers: headers });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function completeVisit(visit) {\n    const authToken = getToken();\n    const headers = { Authorization: `bearer ${authToken}` };\n    try {\n        const response = await post(`${VISIT_URL}/complete`, visit, { headers: headers });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n\nexport async function getInProgressVisits() {\n    const authToken = getToken();\n    const headers = { Authorization: `bearer ${authToken}` };\n    try {\n        const response = await get(`${VISIT_URL}/inprogress`, {\n            headers: headers,\n        });\n        return response;\n    } catch (e) {\n        throw e;\n    }\n}\n\nexport async function updateVisitNote(visit) {\n    const authToken = getToken();\n    const headers = { Authorization: `bearer ${authToken}` };\n    try {\n        const response = await post(`${VISIT_URL}/update`, visit, { headers: headers });\n        return _.get(response, \"data\", {});\n    } catch (e) {\n        throw _.get(e, \"response.data\", {});\n    }\n}\n","import React from \"react\";\nimport {GoogleApiWrapper, Map, Marker} from \"google-maps-react\";\nimport {geoCodeAddress} from \"../../../api/maps\";\nimport {GOOGLE} from \"../../../constants/appConstants\";\nimport {get, isEmpty} from \"lodash\";\n\nclass MapContainer extends React.Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            lat: 0,\n            lng: 0,\n        };\n    }\n\n    componentDidMount() {\n        if (this.props.address) {\n            const address = encodeURI(this.props.address);\n            geoCodeAddress(address)\n                .then((res) => {\n                    const geoLocation = !isEmpty(res)\n                        ? get(res[0], \"geometry.location\", null)\n                        : null;\n                    if (geoLocation) {\n                        this.setState({\n                            lat: geoLocation.lat,\n                            lng: geoLocation.lng,\n                        });\n                    }\n                })\n                .catch((err) => {\n                    console.log(\"Geo coding error \", err);\n                });\n        } else if (this.props.coordinates) {\n            this.setState({\n                lat: this.props.coordinates.lat,\n                lng: this.props.coordinates.lng,\n            });\n        }\n    }\n\n    render() {\n        return (\n            <Map\n                google={this.props.google}\n                zoom={8}\n                initialCenter={{\n                    lat: 43.0,\n                    lng: -89.5,\n                }}\n                center={{\n                    lat: this.state.lat,\n                    lng: this.state.lng,\n                }}\n                zoom={5}\n                onClick={() => {\n                }}\n                disableDefaultUI={true}\n            >\n                <Marker\n                    name={\"Your position\"}\n                    position={{lat: this.state.lat, lng: this.state.lng}}\n                    icon={{url: \"./images/house.png\"}}\n                />\n            </Map>\n        );\n    }\n}\n\nexport default GoogleApiWrapper({\n    apiKey: GOOGLE.MAPS_API_KEY,\n})(MapContainer);\n","import React from \"react\";\nimport {formatDateTime} from \"../../../util/util\";\nimport * as classNames from \"classnames\";\n\nclass StartVisit extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {};\n    }\n\n    render() {\n        const {client, service} = this.props\n        return (\n            <div>\n                <div\n                    className={classNames(\"modal fade\", {show: this.props.show})}\n                    id={this.props.id ? this.props.id : 'exampleModal'}\n                    tabIndex=\"-1\"\n                    role=\"dialog\"\n                    aria-labelledby=\"exampleModalLabel\"\n                    aria-hidden=\"true\"\n                >\n                    <div className={\"modal-dialog modal-xl\"} role=\"document\">\n                        <div className=\"modal-content\" style={{padding: 20}}>\n                            <div className=\"row col-12 modal-header\">\n                                <div className=\"col-lg-8 col-sm-12 offset-lg-2 offset-sm-0  text-center\">\n                                    <h5 className=\"col-12 modal-title text-center\" id=\"exampleModalLabel\">\n                                        <span className=\"my-auto\">\n                                          <img src={\"/images/lock.svg\"} alt=\"\" style={{marginRight: 10}}/>\n                                        </span>\n                                        <span style={{marginLeft: \"5px\"}}>Start Visit</span>\n                                    </h5>\n                                </div>\n                            </div>\n                            <div className=\"modal-body\">\n                                <div className='row'>\n                                    <div className=\"col-lg-12 col-sm-12 visit-notes-details\">\n                                        <div className=\"row\">\n                                            <div className=\"col-lg-3 col-sm-6 text-center\">\n                                                <img src=\"./images/user.svg\" alt=\"\" style={{marginRight: 2}}/>\n                                                <span className=\"label\">Client Name</span>\n                                                <div className=\"value\">\n                                                    {client.lastName + \" \" + client.firstName + \" \" + client.middleName}\n                                                </div>\n                                            </div>\n                                            <div className=\"col-lg-3 col-sm-6 text-center\">\n                                                <img src=\"./images/user.svg\" alt=\"\" style={{marginRight: 2}}/>\n                                                <span className=\"label\">Service Name</span>\n                                                <div className=\"value\">\n                                                    {service.serviceName}\n                                                </div>\n                                            </div>\n                                            {/*<div className=\"col-lg-3 col-sm-6 text-center\">*/}\n                                            {/*    <img src=\"./images/user.svg\" alt=\"\" style={{marginRight: 2}}/>*/}\n                                            {/*    <span className=\"label\">Service Code</span>*/}\n                                            {/*    <div className=\"value\">*/}\n                                            {/*        {service.serviceCode}*/}\n                                            {/*    </div>*/}\n                                            {/*</div>*/}\n                                            <div className=\"col-lg-3 col-sm-6 text-center\">\n                                                <img src=\"./images/user.svg\" alt=\"\" style={{marginRight: 2}}/>\n                                                <span className=\"label\">Service Unit Length</span>\n                                                <div className=\"value\">\n                                                    {service.serviceUnitLength + \" Hrs\"}\n                                                </div>\n                                            </div>\n                                            <div className=\"col-lg-3 col-sm-6 text-center\">\n                                                <img src=\"./images/calendar-green.svg\" alt=\"\"/>\n                                                <span className=\"label\">Clock In Time</span>\n                                                <div className=\"value\">\n                                                    {formatDateTime(new Date(), \"MMMM Do YYYY, h:mm a\")}\n                                                </div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                    {/*<div className=\"col-lg-12 col-sm-12 abandon-visit\">*/}\n                                    {/*    <div className='col-10 offset-1 text-left abandon-date-time'>*/}\n                                    {/*        <img src=\"./images/calendar.svg\" alt=\"\" className='calendar'/>*/}\n                                    {/*        <span className=\"label\" style={{marginRight: 10}}>Clock In Time</span>*/}\n                                    {/*        <span className='date-text'>{moment().format(\"LLLL\")}</span>*/}\n                                    {/*    </div>*/}\n                                    {/*    <div className=\"col-lg-3 col-sm-6 abandon-visit\">*/}\n                                    {/*<img*/}\n                                    {/*    src=\"./images/calendar-green.svg\"*/}\n                                    {/*    alt=\"\"*/}\n                                    {/*    style={{marginRight: 2}}*/}\n                                    {/*/>*/}\n                                    {/*<span className=\"label\">Clock In Time</span>*/}\n                                    {/*<div className=\"value\">*/}\n                                    {/*    {formatDateTime(new Date(), \"MMMM Do YYYY, h:mm a\")}*/}\n                                    {/*</div>*/}\n                                    {/*    </div>*/}\n                                    {/*</div>*/}\n                                    <div className=\"col-12 notes-content row\">\n                                        <span className=\"col-12 label text-left\">Notes</span>\n                                        <textarea className={\"notes\"}\n                                                  placeholder={\"Add note\"}\n                                                  value={this.state.notes} onChange={(e) => {\n                                            this.setState({notes: e.target.value})\n                                        }}></textarea>\n                                    </div>\n                                    <div className=\"col-lg-6 offset-lg-3 col-sm-12 offset-sm-0\">\n                                        <div className='row' style={{marginBottom: 20, marginTop: 20}}>\n                                            <div className=\"col-6\">\n                                                <button\n                                                    className=\"button basic\"\n                                                    onClick={(event) => {\n                                                        this.props.onCloseModal();\n                                                    }}\n                                                >\n                                                    CANCEL\n                                                </button>\n                                            </div>\n                                            <div className={\"col-6\"}>\n                                                <button className='button submit' onClick={() => {\n                                                    this.props.handleSubmit(this.state.notes)\n                                                }}>\n                                                    <span\n                                                        className='text'>START VISIT</span>\n                                                </button>\n                                            </div>\n\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n        );\n    }\n}\n\nexport default StartVisit;\n","import React from \"react\";\nimport { get, map, startCase } from \"lodash\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { getClientServiceByClientId } from \"../../../api/clientService\";\nimport { getClientById } from \"../../../api/client\";\nimport { isMobileDevice } from \"../../../util/deviceType\";\nimport MapContainer from \"../../shared/map-container/mapContainer\";\nimport {\n  setVisitDetails,\n  setVisitStatus\n} from \"../../../redux/workEntries/workEntryAction\";\nimport StartVisit from \"./start-visit\";\nimport { startVisit } from \"../../../api/visits\";\nimport { ALERT_TYPES, VISIT_STATUS } from \"../../../constants/appConstants\";\nimport { getWorkEntryById } from \"../../../api/workEntry\";\nimport { createNotification } from \"../../../util/notificationManager\";\nimport { getTimeZone } from \"../../../util/util\";\nimport ShowMoreText from \"react-show-more-text\";\n\nclass VisitInit extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      services: [],\n      selectedService: null,\n      selectedClient: null,\n      viewMap: false,\n      openModal: false\n    };\n  }\n\n  componentDidMount() {\n    const selectedClient = get(\n      this.props.location.state,\n      \"selectedClient\",\n      null\n    );\n    if (selectedClient != null) {\n      getClientById(selectedClient).then((res) => {\n        if (res) {\n          this.setState({ selectedClient: res });\n        }\n      });\n      getClientServiceByClientId(selectedClient).then((res) => {\n        if (res) {\n          this.setState({\n            services: res,\n            selectedService: res.length !== 0 ? res[0] : null\n          });\n        }\n      });\n    } else {\n      this.props.history.goBack();\n    }\n  }\n\n  onStartVisit = (notes) => {\n    let visit = {\n      clientId: this.state.selectedClient.clientId,\n      serviceRequestId: this.state.selectedService.serviceRequestId,\n      serviceStartTime: new Date(new Date().setSeconds(0, 0))\n        .toISOString()\n        .slice(0, 19)\n        .replace(\"T\", \" \"),\n      serviceEndTime: new Date(new Date().setSeconds(0, 0))\n        .toISOString()\n        .slice(0, 19)\n        .replace(\"T\", \" \"),\n      notes: notes,\n      timeZone: getTimeZone()\n    };\n\n    startVisit(visit)\n      .then((res) => {\n        getWorkEntryById(res.workEntryId).then((we) => {\n          this.props.dispatch(setVisitDetails(we));\n          this.props.dispatch(\n            setVisitStatus(VISIT_STATUS.IN_PROGRESS, new Date())\n          );\n          this.props.history.push(\"/staff/visit-progress\");\n        });\n      })\n      .catch((err) => {\n        createNotification(ALERT_TYPES.ERROR, err.message);\n      });\n  };\n\n  onServiceSelect = (service) => {\n    this.setState({\n      selectedService: service\n    });\n  };\n\n  render() {\n    return (\n      <div className=\"col-lg-10 col-md-10 col-sm-10 offset-lg-1 offset-lg-1 offset-lg-1\">\n        <div className=\"row\">\n          <div\n            className=\"row col-lg-2 col-md-2 col-sm-4\"\n            onClick={() => {\n              this.props.history.goBack();\n            }}\n          >\n            <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n            <span\n              style={{\n                fontFamily: \"Muli\",\n                color: \"#333333\",\n                fontSize: 15,\n                padding: 10\n              }}\n            >\n              Back\n            </span>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-6 col-md-6 col-sm-12\">\n            <div className=\"client-details\">Start Visit</div>\n          </div>\n        </div>\n\n        <div className=\"row col-12 offset-0\" style={{ marginTop: 20 }}>\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <img className=\"banner\" src=\"./images/banner-blue.png\" alt=\"\" />\n            {this.state.selectedClient && (\n              <div\n                className=\"col-lg-12 col-md-12 col-sm-12\"\n                style={{ padding: 20 }}\n              >\n                <div className=\"client-details text-center\" style={{ fontSize: 21 }}>\n                  {startCase(\n                    `${get(this.state.selectedClient, \"firstName\")} ${get(\n                      this.state.selectedClient,\n                      \"middleName\"\n                    )} ${get(this.state.selectedClient, \"lastName\")}`\n                  )}\n                </div>\n                <div>\n                  <span className=\"label\">Goals & Outcomes : </span>\n                  {get(this.state.selectedClient, \"goalsOutcomes\")? (\n                    <ShowMoreText\n                      lines={3}\n                      more=\"Show more\"\n                      less=\"Show less\"\n                      className=\"content-css\"\n                      anchorClass=\"show-more-less-clickable\"\n                      expanded={false}\n                      truncatedEndingComponent={\"... \"}\n                    >\n                    <span className=\"text\">\n                  {get(this.state.selectedClient, \"goalsOutcomes\")}\n                  </span>\n                    </ShowMoreText>\n                  ) : (\n                    <span className=\"text\" style={{ fontStyle: \"italic\", fontSize: 12 }}>No notes added</span>\n                  )}\n\n\n                </div>\n\n              </div>\n            )}\n            {/*<div className='row'>*/}\n            {/*    <div className='col-lg-4 col-md-4 col-sm-6 text-center'>*/}\n            {/*        <img src=\"./images/map-pin.svg\" alt=\"\" style={{marginRight: 10, padding: 10}}/>*/}\n            {/*        <span className='label' style={{padding: 10}}>Address</span>*/}\n            {/*        <div className='value' style={{*/}\n            {/*            padding: 10,*/}\n            {/*            paddingBottom: 0,*/}\n            {/*            overflow: 'hidden',*/}\n            {/*            textOverflow: 'ellipsis'*/}\n            {/*        }}>{`${get(this.state.selectedClient, \"billingStreet\", \"\")}, ${get(this.state.selectedClient, \"billingCity\", \"\")}, ${get(this.state.selectedClient, \"billingState\", \"\")}`}</div>*/}\n            {/*        <span style={{*/}\n            {/*            fontSize: 12,*/}\n            {/*            color: \"#35cc62\",*/}\n            {/*            textDecoration: \"underline\",*/}\n            {/*            cursor: \"pointer\"*/}\n            {/*        }}*/}\n            {/*              onClick={() => {*/}\n            {/*                  this.setState({viewMap: !this.state.viewMap})*/}\n            {/*              }}>View Client Address in Map</span>*/}\n            {/*    </div>*/}\n            {/*    <div className='col-lg-4 col-md-4 col-sm-6 text-center'>*/}\n            {/*        <img src=\"./images/phone.svg\" alt=\"\" style={{marginRight: 10, padding: 10}}/>*/}\n            {/*        <span className='label' style={{padding: 10}}>Client Contact</span>*/}\n            {/*        <div className='value'*/}\n            {/*             style={{padding: 10}}>{get(this.state.selectedClient, \"phone\", \"-\")}</div>*/}\n            {/*    </div>*/}\n            {/*    <div className='col-lg-4 col-md-4 col-sm-6 text-center'>*/}\n            {/*        <img src=\"./images/bookmark.svg\" alt=\"\" style={{marginRight: 10, padding: 10}}/>*/}\n            {/*        <span className='label' style={{padding: 10}}>Medicaid ID</span>*/}\n            {/*        <div className='value'*/}\n            {/*             style={{padding: 10}}>{get(this.state.selectedClient, \"mci\", \"-\")}</div>*/}\n            {/*    </div>*/}\n            {/*</div>*/}\n          </div>\n\n          {this.state.viewMap && (\n            <div className=\"page-content\" style={{ width: \"100%\" }}>\n              <div className=\"row\" style={{ marginBottom: 10 }}>\n                <div className=\"col-1 offset-11\">\n                  <span\n                    style={{\n                      fontSize: 12,\n                      color: \"#5B6576\",\n                      textDecoration: \"underline\",\n                      cursor: \"pointer\"\n                    }}\n                    onClick={() => {\n                      this.setState({ viewMap: !this.state.viewMap });\n                    }}\n                  >\n                    Hide Map\n                  </span>\n                </div>\n              </div>\n              <div className=\"row\" style={{ marginBottom: 10 }}>\n                <div\n                  className=\"col-12\"\n                  style={{ height: isMobileDevice() ? \"100vw\" : \"50vw\" }}\n                >\n                  <MapContainer\n                    address={`${get(\n                      this.state.selectedClient,\n                      \"billingStreet\",\n                      \"\"\n                    )} ${get(\n                      this.state.selectedClient,\n                      \"billingCity\",\n                      \"\"\n                    )}, ${get(\n                      this.state.selectedClient,\n                      \"billingState\",\n                      \"\"\n                    )} ${get(this.state.selectedClient, \"billingCountry\", \"\")}`}\n                  />\n                </div>\n              </div>\n            </div>\n          )}\n\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <div className=\"row\" style={{ marginBottom: 20 }}>\n              <div className=\"col-12\">\n                <span className=\"label\">Services Associated:</span>\n              </div>\n            </div>\n            <div className=\"row\">\n              {map(this.state.services, (service, index) => {\n                return (\n                  <div key={index} className=\"col-12\" style={{ margin: 10 }}>\n                    <input\n                      type=\"radio\"\n                      value={service.serviceRequestId}\n                      name={\"service\"}\n                      onChange={() => {\n                        this.onServiceSelect(service);\n                      }}\n                      checked={\n                        this.state.selectedService\n                          ? service.serviceRequestId ===\n                          this.state.selectedService.serviceRequestId\n                          : false\n                      }\n                    />\n                    <span style={{ marginLeft: 10 }}>\n                      {service.serviceName}\n                    </span>\n                  </div>\n                );\n              })}\n              {this.state.services.length === 0 && (\n                <div className=\"col-12 text-center\">\n                  <span style={{ marginLeft: 10 }}>\n                    No Service associated to this client\n                  </span>\n                </div>\n              )}\n            </div>\n            <div className=\"row\">\n              <div className=\"col-lg-4 col-md-4 col-sm-6 offset-lg-4 offset-md-4 offset-sm-3\">\n                <button\n                  className=\"button submit\"\n                  onClick={() => {\n                    this.setState({ openModal: true });\n                  }}\n                  style={\n                    this.state.selectedService === null\n                      ? { backgroundColor: \"#B7B6B6\" }\n                      : null\n                  }\n                  disabled={this.state.selectedService === null}\n                >\n                  <span className=\"text\">START VISIT</span>\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n\n        {this.state.openModal && (\n          <StartVisit\n            show={this.state.openModal}\n            onClose={() => {\n              this.setState({ openModal: false });\n            }}\n            client={this.state.selectedClient}\n            service={this.state.selectedService}\n            handleSubmit={this.onStartVisit}\n            onCloseModal={() => {\n              this.setState({ openModal: false });\n            }}\n          />\n        )}\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({});\n\nexport default withRouter(connect(mapStateToProps)(VisitInit));\n","import React from \"react\";\nimport * as classNames from \"classnames\";\nimport {formatDateTime} from \"../../../util/util\";\nimport {get} from \"lodash\";\n\nclass CompleteVisit extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {};\n    }\n\n    render() {\n        const {client, service, visit, notes} = this.props\n        return (\n            <div>\n                <div\n                    className={classNames(\"modal fade\", {show: this.props.show})}\n                    id={this.props.id ? this.props.id : 'exampleModal'}\n                    tabIndex=\"-1\"\n                    role=\"dialog\"\n                    aria-labelledby=\"exampleModalLabel\"\n                    aria-hidden=\"true\"\n                >\n                    <div className={\"modal-dialog modal-xl\"} role=\"document\">\n                        <div className=\"modal-content\" style={{padding: 20}}>\n                            <div className=\"row col-12 modal-header\">\n                                <div className=\"col-lg-8 col-sm-12 offset-lg-2 offset-sm-0  text-center\">\n                                    <h5 className=\"col-12 modal-title text-center\" id=\"exampleModalLabel\">\n                                        <span className=\"my-auto\">\n                                          <img src={\"/images/lock.svg\"} alt=\"\" style={{marginRight: 10}}/>\n                                        </span>\n                                        <span style={{marginLeft: \"5px\"}}>Complete Visit</span>\n                                    </h5>\n                                </div>\n                            </div>\n                            <div className=\"modal-body\">\n                                <div className='row'>\n                                    <div className=\"col-lg-12 col-sm-12 visit-notes-details\">\n                                        <div className=\"row\">\n                                            <div className=\"col-lg-3 col-sm-6 text-center\">\n                                                <img src=\"./images/user.svg\" alt=\"\" style={{marginRight: 2}}/>\n                                                <span className=\"label\">Client Name</span>\n                                                <div className=\"value\">\n                                                    {client.lastName + \" \" + client.firstName + \" \" + client.middleName}\n                                                </div>\n                                            </div>\n                                            <div className=\"col-lg-3 col-sm-6 text-center\">\n                                                <img src=\"./images/user.svg\" alt=\"\" style={{marginRight: 2}}/>\n                                                <span className=\"label\">Service Name</span>\n                                                <div className=\"value\">\n                                                    {service.serviceName}\n                                                </div>\n                                            </div>\n                                            <div className=\"col-lg-3 col-sm-6 text-center\">\n                                                <img src=\"../images/calendar-green.svg\" alt=\"\"\n                                                     style={{marginRight: 2}}/>\n                                                <span className=\"label\">Clock In Time</span>\n                                                <div className=\"value\">\n                                                    {formatDateTime(new Date(get(visit, 'serviceStartTime', null)), \"MMMM Do YYYY, h:mm a\")}\n                                                </div>\n                                            </div>\n                                            <div className=\"col-lg-3 col-sm-6 text-center\">\n                                                <img src=\"../images/calendar-green.svg\" alt=\"\"\n                                                     style={{marginRight: 2}}/>\n                                                <span className=\"label\">Clock Out Time</span>\n                                                <div className=\"value\">\n                                                    {formatDateTime(new Date(), \"MMMM Do YYYY, h:mm a\")}\n                                                </div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                    {/*<div className=\"col-lg-12 col-sm-12 abandon-visit\">*/}\n                                    {/*    <div className='col-10 offset-1 text-left abandon-date-time'*/}\n                                    {/*         style={{marginBottom: 10}}>*/}\n                                    {/*        <img src=\"./images/calendar.svg\" alt=\"\" className='calendar'/>*/}\n                                    {/*        <span className=\"label\" style={{marginRight: 10}}>Clock In Time</span>*/}\n                                    {/*        <span*/}\n                                    {/*            className='date-text'>{moment(visit.serviceStartTime).format(\"LLLL\")}</span>*/}\n                                    {/*    </div>*/}\n                                    {/*    <div className='col-10 offset-1 text-left abandon-date-time'>*/}\n                                    {/*        <img src=\"./images/calendar.svg\" alt=\"\" className='calendar'/>*/}\n                                    {/*        <span className=\"label\" style={{marginRight: 10}}>Clock Out Time</span>*/}\n                                    {/*        <span className='date-text'>{moment().format(\"LLLL\")}</span>*/}\n                                    {/*    </div>*/}\n                                    {/*<div className=\"col-lg-3 col-sm-6 abandon-visit\">*/}\n                                    {/*<img*/}\n                                    {/*    src=\"./images/calendar-green.svg\"*/}\n                                    {/*    alt=\"\"*/}\n                                    {/*    style={{marginRight: 2}}*/}\n                                    {/*/>*/}\n                                    {/*<span className=\"label\">Clock In Time</span>*/}\n                                    {/*<div className=\"value\">*/}\n                                    {/*    {formatDateTime(new Date(), \"MMMM Do YYYY, h:mm a\")}*/}\n                                    {/*</div>*/}\n                                    {/*</div>*/}\n                                    {/*</div>*/}\n\n                                    <div className='col-lg-12 col-md-12 col-sm-12'>\n                                        <div className=\"client-details\" style={{fontSize: 18}}>Progress</div>\n                                        <div className=\"row\" style={{padding: 30, backgroundColor: '#FAFBFC'}}>\n                                            <div className=\"col-lg-4 col-md-4 col-sm-12 text-left progress-selection\">\n                                                <input\n                                                    type=\"radio\"\n                                                    name=\"progress\"\n                                                    value=\"increased\"\n                                                    checked={this.props.progress === 1}\n                                                    disabled={true}\n                                                />\n                                                <label className={\"radio-text\"}>Increased</label>\n                                            </div>\n                                            <div className=\"col-lg-4 col-md-4 col-sm-12 text-left progress-selection\">\n                                                <input\n                                                    type=\"radio\"\n                                                    name=\"progress\"\n                                                    value=\"maintained\"\n                                                    checked={this.props.progress === 2}\n                                                    disabled={true}\n                                                />\n                                                <label className={\"radio-text\"}>Maintained</label>\n                                            </div>\n\n                                            <div className=\"col-lg-4 col-md-4 col-sm-12 text-left progress-selection\">\n                                                <input\n                                                    type=\"radio\"\n                                                    name=\"progress\"\n                                                    value=\"decreased\"\n                                                    checked={this.props.progress === 3}\n                                                    disabled={true}\n                                                />\n                                                <label className={\"radio-text\"}>Decreased</label>\n                                            </div>\n                                        </div>\n                                    </div>\n                                    <hr/>\n                                    <div className=\"col-lg-12 col-md-12 col-sm-12 notes-content row\">\n                                        <span className=\"col-12 label text-left\">Notes</span>\n                                        {notes && (\n                                            <span className={\"notes-text\"}>\n                                            {notes}\n                                        </span>\n                                        )}\n                                        {!notes && (\n                                            <span className={\"notes-text-disabled\"} style={{\n                                                textDecoration: \"underline\",\n                                                fontStyle: \"italic\",\n                                                cursor: \"pointer\"\n                                            }} onClick={(event) => {\n                                                this.props.onCloseModal();\n                                            }}>\n                                            {\"Add a notes..\"}\n                                        </span>\n                                        )}\n                                    </div>\n                                    {this.props.signature && (\n                                        <div className=\"col-12 notes-content row\">\n                                            <span className=\"col-12 label text-left\">Signature</span>\n                                            <img className={{}} src={this.props.signature} alt=\"Signature\"/>\n                                        </div>\n                                    )}\n                                    <div className=\"col-lg-6 offset-lg-3 col-sm-12 offset-sm-0\">\n                                        <div className='row' style={{marginBottom: 20, marginTop: 20}}>\n                                            <div className=\"col-6\">\n                                                <button\n                                                    className=\"button basic\"\n                                                    onClick={(event) => {\n                                                        this.props.onCloseModal();\n                                                    }}\n                                                >\n                                                    CANCEL\n                                                </button>\n                                            </div>\n                                            <div className={\"col-6\"}>\n                                                <button className='button submit' onClick={this.props.handleSubmit}>\n                                                    <span\n                                                        className='text'>COMPLETE VISIT</span>\n                                                </button>\n                                            </div>\n\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n        );\n    }\n}\n\nexport default CompleteVisit;\n","import React from \"react\";\nimport * as classNames from \"classnames\";\nimport { formatDateTime } from \"../../../util/util\";\nimport { get } from \"lodash\";\n\nclass AbandonVisit extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {};\n  }\n\n  render() {\n    const { client, service, visit, notes } = this.props;\n    return (\n      <div>\n        <div\n          className={classNames(\"modal fade\", { show: this.props.show })}\n          id={this.props.id ? this.props.id : \"exampleModal\"}\n          tabIndex=\"-1\"\n          role=\"dialog\"\n          aria-labelledby=\"exampleModalLabel\"\n          aria-hidden=\"true\"\n        >\n          <div className={\"modal-dialog modal-xl\"} role=\"document\">\n            <div className=\"modal-content\" style={{ padding: 20 }}>\n              <div className=\"row col-12 modal-header\">\n                <div className=\"col-lg-8 col-sm-12 offset-lg-2 offset-sm-0  text-center\">\n                  <h5\n                    className=\"col-12 modal-title text-center\"\n                    id=\"exampleModalLabel\"\n                  >\n                    <span className=\"my-auto\">\n                      <img\n                        src={\"/images/lock.svg\"}\n                        alt=\"\"\n                        style={{ marginRight: 10 }}\n                      />\n                    </span>\n                    <span style={{ marginLeft: \"5px\" }}>Abandon Visit</span>\n                  </h5>\n                </div>\n              </div>\n              <div className=\"modal-body\">\n                <div className=\"row\">\n                  <div className=\"col-lg-12 col-sm-12 visit-notes-details\">\n                    <div className=\"row\">\n                      <div className=\"col-lg-3 col-sm-6 text-center\">\n                        <img\n                          src=\"./images/user.svg\"\n                          alt=\"\"\n                          style={{ marginRight: 2 }}\n                        />\n                        <span className=\"label\">Client Name</span>\n                        <div className=\"value\">\n                          {client.lastName +\n                            \" \" +\n                            client.firstName +\n                            \" \" +\n                            client.middleName}\n                        </div>\n                      </div>\n                      <div className=\"col-lg-3 col-sm-6 text-center\">\n                        <img\n                          src=\"./images/user.svg\"\n                          alt=\"\"\n                          style={{ marginRight: 2 }}\n                        />\n                        <span className=\"label\">Service Name</span>\n                        <div className=\"value\">{service.serviceName}</div>\n                      </div>\n                      <div className=\"col-lg-3 col-sm-6 text-center\">\n                        <img\n                          src=\"../images/calendar-green.svg\"\n                          alt=\"\"\n                          style={{ marginRight: 2 }}\n                        />\n                        <span className=\"label\">Clock In Time</span>\n                        <div className=\"value\">\n                          {formatDateTime(\n                            new Date(get(visit, \"serviceStartTime\", null)),\n                            \"MMMM Do YYYY, h:mm a\"\n                          )}\n                        </div>\n                      </div>\n                      <div className=\"col-lg-3 col-sm-6 text-center\">\n                        <img\n                          src=\"../images/calendar-green.svg\"\n                          alt=\"\"\n                          style={{ marginRight: 2 }}\n                        />\n                        <span className=\"label\">Clock Out Time</span>\n                        <div className=\"value\">\n                          {formatDateTime(new Date(), \"MMMM Do YYYY, h:mm a\")}\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  {/*<div className=\"col-lg-12 col-sm-12 abandon-visit\">*/}\n                  {/*    <div className='col-10 offset-1 text-left abandon-date-time'*/}\n                  {/*         style={{marginBottom: 10}}>*/}\n                  {/*        <img src=\"./images/calendar.svg\" alt=\"\" className='calendar'/>*/}\n                  {/*        <span className=\"label\" style={{marginRight: 10}}>Clock In Time</span>*/}\n                  {/*        <span*/}\n                  {/*            className='date-text'>{moment(visit.serviceStartTime).format(\"LLLL\")}</span>*/}\n                  {/*    </div>*/}\n                  {/*    <div className='col-10 offset-1 text-left abandon-date-time'>*/}\n                  {/*        <img src=\"./images/calendar.svg\" alt=\"\" className='calendar'/>*/}\n                  {/*        <span className=\"label\" style={{marginRight: 10}}>Clock Out Time</span>*/}\n                  {/*        <span className='date-text'>{moment().format(\"LLLL\")}</span>*/}\n                  {/*    </div>*/}\n                  {/*<div className=\"col-lg-3 col-sm-6 abandon-visit\">*/}\n                  {/*<img*/}\n                  {/*    src=\"./images/calendar-green.svg\"*/}\n                  {/*    alt=\"\"*/}\n                  {/*    style={{marginRight: 2}}*/}\n                  {/*/>*/}\n                  {/*<span className=\"label\">Clock In Time</span>*/}\n                  {/*<div className=\"value\">*/}\n                  {/*    {formatDateTime(new Date(), \"MMMM Do YYYY, h:mm a\")}*/}\n                  {/*</div>*/}\n                  {/*</div>*/}\n                  {/*</div>*/}\n                  <div className=\"col-12 notes-content row\">\n                    <span className=\"col-12 label text-left\">Notes</span>\n                    {notes && <span className={\"notes-text\"}>{notes}</span>}\n                    {!notes && (\n                      <span\n                        className={\"notes-text-disabled\"}\n                        style={{\n                          textDecoration: \"underline\",\n                          fontStyle: \"italic\",\n                          cursor: \"pointer\",\n                        }}\n                        onClick={(event) => {\n                          this.props.onCloseModal();\n                        }}\n                      >\n                        {\"Add a notes..\"}\n                      </span>\n                    )}\n                  </div>\n                  <div className=\"col-lg-6 offset-lg-3 col-sm-12 offset-sm-0\">\n                    <div\n                      className=\"row\"\n                      style={{ marginBottom: 20, marginTop: 20 }}\n                    >\n                      <div className=\"col-6\">\n                        <button\n                          className=\"button basic\"\n                          onClick={(event) => {\n                            this.props.onCloseModal();\n                          }}\n                        >\n                          CANCEL\n                        </button>\n                      </div>\n                      <div className={\"col-6\"}>\n                        <button\n                          className=\"button submit\"\n                          style={{\n                            backgroundColor: \"rgb(39, 57, 90)\",\n                            color: \"#FFFFFF\",\n                          }}\n                          onClick={this.props.handleSubmit}\n                          disabled={true}\n                        >\n                          <span className=\"text\">ABANDON VISIT</span>\n                        </button>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default AbandonVisit;\n","import React from \"react\";\nimport { isMobileDevice } from \"../../../util/deviceType\";\nimport MapContainer from \"../../shared/map-container/mapContainer\";\nimport { get, startCase } from \"lodash\";\nimport { abandonVisit, completeVisit } from \"../../../api/visits\";\nimport { connect } from \"react-redux\";\nimport { resetVisitDetails } from \"../../../redux/workEntries/workEntryAction\";\nimport { getClientById } from \"../../../api/client\";\nimport { getClientServiceById } from \"../../../api/clientService\";\nimport CompleteVisit from \"./complete-visit\";\nimport AbandonVisit from \"./abandon-visit\";\nimport { createNotification } from \"../../../util/notificationManager\";\nimport { ALERT_TYPES } from \"../../../constants/appConstants\";\nimport SignaturePad from \"../../shared/signature-pad\";\n\nclass VisitProgress extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      visit: null,\n      progress: 0,\n      notes: \"\",\n      visitDuration: 0,\n      selectedClient: null,\n      selectedService: null,\n      serviceUnitLength: 15,\n      onCompleteVisitModal: false,\n      onAbandonVisitModal: false,\n      signature: \"\",\n    };\n  }\n\n  componentDidMount() {\n    const visit = get(this.props, \"visit\", null);\n    const { startedTime } = this.props;\n    if (visit === null) {\n      this.props.history.push(\"/staff/visits\");\n    } else {\n      this.setState({ visit: visit, notes: visit.notes });\n\n      getClientById(visit.clientId).then((res) => {\n        this.setState({ selectedClient: res });\n      });\n\n      getClientServiceById(visit.serviceRequestId).then((res) => {\n        this.setState({ selectedService: res });\n      });\n\n      if (visit.status === 6) {\n        // visit started status\n        this.setState(\n          {\n            visitDuration: startedTime\n              ? parseInt(\n                  (new Date().getTime() - new Date(startedTime).getTime()) /\n                    1000\n                )\n              : 0,\n          },\n          () => {\n            setInterval(() => {\n              this.setState({\n                visitDuration: startedTime\n                  ? parseInt(\n                      (new Date().getTime() - new Date(startedTime).getTime()) /\n                        1000\n                    )\n                  : 0,\n              });\n            }, 1000);\n            // setInterval(this.calculateVisitDuration, 1000)\n          }\n        );\n      }\n    }\n  }\n  manipulateVisit = () => {\n    let visit = this.state.visit;\n    visit.notes = this.state.notes;\n    visit.progress = this.state.progress;\n    visit.signature = this.state.signature;\n    visit.serviceStartTime = visit.serviceStartTime\n      .replace(\"T\", \" \")\n      .replace(\"Z\", \"\");\n    visit.serviceEndTime = new Date(new Date().setSeconds(0,0))\n      .toISOString()\n      .slice(0, 19)\n      .replace(\"T\", \" \");\n    return visit;\n  };\n\n  onAbandonedVisit = () => {\n    const visit = this.manipulateVisit();\n    abandonVisit(visit)\n      .then((res) => {\n        this.setState({ onAbandonVisitModal: false });\n        createNotification(ALERT_TYPES.WARNING, \"Visit Abandoned\");\n        this.props.dispatch(resetVisitDetails());\n\n        this.props.history.push(\"/staff/visits\");\n      })\n      .catch((err) => {\n        createNotification(ALERT_TYPES.ERROR, err.message);\n      });\n  };\n\n  onCompleteVisit = () => {\n    const visit = this.manipulateVisit();\n    completeVisit(visit)\n      .then((res) => {\n        this.setState({ onCompleteVisitModal: false });\n        createNotification(ALERT_TYPES.SUCCESS, res);\n        this.props.dispatch(resetVisitDetails());\n\n        this.props.history.push(\"/staff/visits\");\n      })\n      .catch((err) => {\n        createNotification(ALERT_TYPES.ERROR, err.message);\n      });\n  };\n\n  getVisitDuration = () => {\n    let hours =\n      this.state.visitDuration / 3600 > 0\n        ? parseInt(this.state.visitDuration / 3600)\n        : 0;\n    let minuites = \"\";\n    let seconds = \"\";\n    if (hours > 0) {\n      const remaining = this.state.visitDuration - hours * 3600;\n      minuites = parseInt(remaining / 60);\n      seconds = this.state.visitDuration - hours * 3600 - minuites * 60;\n    } else {\n      minuites = parseInt(this.state.visitDuration / 60);\n      seconds = parseInt(this.state.visitDuration - minuites * 60);\n    }\n    return `${hours.toString().length === 2 ? hours : `0${hours}`}:${\n      minuites.toString().length === 2 ? minuites : `0${minuites}`\n    }:${seconds.toString().length === 2 ? seconds : `0${seconds}`}`;\n  };\n\n  calculateVisitDuration = () => {\n    let visitDuration = this.state.visitDuration;\n    visitDuration++;\n    this.setState({ visitDuration: visitDuration });\n  };\n\n  render() {\n    return (\n      <div className=\"col-lg-10 col-md-10 col-sm-10 offset-lg-1 offset-lg-1 offset-lg-1\">\n        <div className=\"row\">\n          <div\n            className=\"row col-lg-2 col-md-2 col-sm-4\"\n            onClick={() => {\n              this.props.history.push(\"/staff/visits\");\n            }}\n          >\n            <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n            <span\n              style={{\n                fontFamily: \"Muli\",\n                color: \"#333333\",\n                fontSize: 15,\n                padding: 10,\n              }}\n            >\n              Back\n            </span>\n          </div>\n        </div>\n        <div className=\"row\">\n          <div className=\"col-lg-4 col-md-6 col-sm-8\">\n            <div className=\"page-title\">Visit Progress</div>\n          </div>\n          <div className=\"col-lg-3 col-md-4 col-sm-3 offset-lg-5 offset-md-2 offset-sm-0 text-center\">\n            <div\n              style={{\n                backgroundColor: \"#c3eed0\",\n                color: \"#35CC62\",\n                fontSize: 28,\n                height: 42,\n                paddingTop: 10,\n                borderRadius: 10,\n              }}\n            >\n              <img src=\"./images/clock.svg\" style={{ marginRight: 10 }} />\n              <span>{this.getVisitDuration()}</span>\n            </div>\n          </div>\n        </div>\n\n        <div className=\"row col-12 offset-0\" style={{ marginTop: 20 }}>\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <img className=\"banner\" src=\"./images/banner-blue.png\" alt=\"\" />\n            {this.state.selectedClient && (\n              <div\n                className=\"col-lg-12 col-md-12 col-sm-12 text-center\"\n                style={{ padding: 20 }}\n              >\n                <div className=\"client-details\" style={{ fontSize: 21 }}>\n                  {startCase(\n                    `${get(this.state.selectedClient, \"firstName\")} ${get(\n                      this.state.selectedClient,\n                      \"middleName\"\n                    )} ${get(this.state.selectedClient, \"lastName\")}`\n                  )}\n                </div>\n              </div>\n            )}\n            {/*<div className='row'>*/}\n            {/*    <div className='col-lg-4 col-md-4 col-sm-6 text-center'>*/}\n            {/*        <img src=\"./images/map-pin.svg\" alt=\"\" style={{padding: 10, paddingRight: 0}}/>*/}\n            {/*        <span className='label' style={{padding: 10}}>Address</span>*/}\n            {/*        <div className='value' style={{*/}\n            {/*            padding: 10,*/}\n            {/*            paddingBottom: 0,*/}\n            {/*            overflow: 'hidden',*/}\n            {/*            textOverflow: 'ellipsis'*/}\n            {/*        }}>{`${get(this.state.selectedClient, \"billingStreet\", \"\")}, ${get(this.state.selectedClient, \"billingCity\", \"\")}, ${get(this.state.selectedClient, \"billingState\", \"\")}`}</div>*/}\n            {/*        <span style={{*/}\n            {/*            fontSize: 12,*/}\n            {/*            color: \"#35cc62\",*/}\n            {/*            textDecoration: \"underline\",*/}\n            {/*            cursor: \"pointer\"*/}\n            {/*        }}*/}\n            {/*              onClick={() => {*/}\n            {/*                  this.setState({viewMap: !this.state.viewMap})*/}\n            {/*              }}>View Client Address in Map</span>*/}\n            {/*    </div>*/}\n            {/*    <div className='col-lg-4 col-md-4 col-sm-6 text-center'>*/}\n            {/*        <img src=\"./images/phone.svg\" alt=\"\" style={{padding: 10, paddingRight: 0}}/>*/}\n            {/*        <span className='label' style={{padding: 10}}>Client Contact</span>*/}\n            {/*        <div className='value'*/}\n            {/*             style={{padding: 10}}>{get(this.state.selectedClient, \"phone\", \"-\")}</div>*/}\n            {/*    </div>*/}\n            {/*    <div className='col-lg-4 col-md-4 col-sm-6 text-center'>*/}\n            {/*        <img src=\"./images/bookmark.svg\" alt=\"\" style={{padding: 10, paddingRight: 0}}/>*/}\n            {/*        <span className='label' style={{padding: 10}}>Medicaid ID</span>*/}\n            {/*        <div className='value'*/}\n            {/*             style={{padding: 10}}>{get(this.state.selectedClient, \"mci\", \"-\")}</div>*/}\n            {/*    </div>*/}\n            {/*</div>*/}\n          </div>\n\n          {this.state.viewMap && (\n            <div className=\"page-content\" style={{ width: \"100%\" }}>\n              <div className=\"row\" style={{ marginBottom: 10 }}>\n                <div className=\"col-1 offset-11\">\n                  <span\n                    style={{\n                      fontSize: 12,\n                      color: \"#5B6576\",\n                      textDecoration: \"underline\",\n                      cursor: \"pointer\",\n                    }}\n                    onClick={() => {\n                      this.setState({ viewMap: !this.state.viewMap });\n                    }}\n                  >\n                    Hide Map\n                  </span>\n                </div>\n              </div>\n              <div className=\"row\" style={{ marginBottom: 10 }}>\n                <div\n                  className=\"col-12\"\n                  style={{ height: isMobileDevice() ? \"100vw\" : \"50vw\" }}\n                >\n                  <MapContainer\n                    address={`${get(\n                      this.state.selectedClient,\n                      \"billingStreet\",\n                      \"\"\n                    )} ${get(\n                      this.state.selectedClient,\n                      \"billingCity\",\n                      \"\"\n                    )}, ${get(\n                      this.state.selectedClient,\n                      \"billingState\",\n                      \"\"\n                    )} ${get(this.state.selectedClient, \"billingCountry\", \"\")}`}\n                  />\n                </div>\n              </div>\n            </div>\n          )}\n\n          <div className=\"page-content\" style={{ width: \"100%\" }}>\n            <div className=\"row\">\n              <div className=\"col-12 grey-area\" style={{ marginBottom: 10 }}>\n                <div className=\"col-lg-12 col-md-12 col-sm-12\">\n                  <div className=\"label\">Progress</div>\n                </div>\n                <div className=\"row col-lg-12 col-md-12 col-sm-12\">\n                  <div\n                    className=\"col-lg-4 col-md-4 col-sm-12 text-left\"\n                    style={{ padding: \"10px\" }}\n                  >\n                    <input\n                      type=\"radio\"\n                      name=\"progress\"\n                      value=\"increased\"\n                      checked={this.state.progress == 1}\n                      onChange={(event) => {\n                        this.setState({ progress: 1 });\n                      }}\n                    />{\" \"}\n                    Increased\n                  </div>\n                  <div\n                    className=\"col-lg-4 col-md-4 col-sm-12 text-left\"\n                    style={{ padding: \"10px\" }}\n                  >\n                    <input\n                      type=\"radio\"\n                      name=\"progress\"\n                      value=\"maintained\"\n                      checked={this.state.progress == 2}\n                      onChange={(event) => {\n                        this.setState({ progress: 2 });\n                      }}\n                    />{\" \"}\n                    Maintained\n                  </div>\n                  <div\n                    className=\"col-lg-4 col-md-4 col-sm-12 text-left\"\n                    style={{ padding: \"10px\" }}\n                  >\n                    <input\n                      type=\"radio\"\n                      name=\"progress\"\n                      value=\"decreased\"\n                      checked={this.state.progress == 3}\n                      onChange={(event) => {\n                        this.setState({ progress: 3 });\n                      }}\n                    />{\" \"}\n                    Decreased\n                  </div>\n                </div>\n              </div>\n              <div className=\"col-12\" style={{ padding: 20 }}>\n                <div className=\"visit-notes\" style={{ padding: 10 }}>\n                  Visit notes\n                </div>\n                <textarea\n                  ref={(input) => {\n                    this.notesText = input;\n                  }}\n                  className=\"notes-text-area\"\n                  placeholder=\"Notes\"\n                  value={this.state.notes}\n                  onChange={(event) => {\n                    this.setState({ notes: event.target.value });\n                  }}\n                />\n\n                <div>\n                  <SignaturePad\n                    showSignaturePad={true}\n                    signature={this.state.signature}\n                    onChange={(signature) => {\n                      this.setState({ signature });\n                    }}\n                  />\n                </div>\n              </div>\n            </div>\n            <div className=\"row\">\n              <div className=\"col-lg-3 col-md-6 col-sm-12 offset-lg-9 offset-md-6 offset-sm-0\">\n                <div className=\"row\">\n                  <div className=\"col-6\">\n                    <button\n                      className=\"button submit\"\n                      style={\n                        this.state.progress > 0 && this.state.signature != \"\"\n                          ? null\n                          : { backgroundColor: \"#B7B6B6\" }\n                      }\n                      onClick={() => {\n                        this.setState({\n                          onCompleteVisitModal: true,\n                        });\n                      }}\n                      disabled={\n                        this.state.progress > 0 && this.state.signature != \"\"\n                          ? false\n                          : true\n                      }\n                    >\n                      <span className=\"text\">COMPLETE VISIT</span>\n                    </button>\n                  </div>\n                  <div className=\"col-6\">\n                    <button\n                      className=\"button btn-edit-black\"\n                      onClick={() => {\n                        this.setState({ onAbandonVisitModal: true });\n                      }}\n                      style={{ backgroundColor: \"#B7B6B6\", color: \"#ffffff\" }}\n                      disabled\n                    >\n                      <span className=\"text\">ABANDON VISIT</span>\n                    </button>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n\n        {this.state.onCompleteVisitModal && (\n          <CompleteVisit\n            show={this.state.onCompleteVisitModal}\n            onClose={() => {\n              this.notesText.focus();\n              this.setState({ onCompleteVisitModal: false });\n            }}\n            visit={this.state.visit}\n            client={this.state.selectedClient}\n            service={this.state.selectedService}\n            progress={this.state.progress}\n            notes={this.state.notes}\n            signature={this.state.signature}\n            handleSubmit={this.onCompleteVisit}\n            onCloseModal={() => {\n              this.notesText.focus();\n              this.setState({ onCompleteVisitModal: false });\n            }}\n          />\n        )}\n\n        {this.state.onAbandonVisitModal && (\n          <AbandonVisit\n            show={this.state.onAbandonVisitModal}\n            onClose={() => {\n              this.notesText.focus();\n              this.setState({ onAbandonVisitModal: false });\n            }}\n            visit={this.state.visit}\n            client={this.state.selectedClient}\n            service={this.state.selectedService}\n            notes={this.state.notes}\n            handleSubmit={this.onAbandonedVisit}\n            onCloseModal={() => {\n              this.notesText.focus();\n              this.setState({ onAbandonVisitModal: false });\n            }}\n          />\n        )}\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  visit: state.workEntry.visit,\n  startedTime: state.workEntry.visitDuration,\n  visitStatus: state.workEntry.visitStatus,\n});\nexport default connect(mapStateToProps)(VisitProgress);\n","import * as React from \"react\";\nimport \"./faq.scss\";\nimport { withRouter } from \"react-router-dom\";\nimport { getAuth } from \"../../util/auth\";\nimport { map } from \"lodash\";\n\nclass FAQBox extends React.Component {\n  constructor(props) {\n    super(props);\n    let userData = getAuth();\n    this.state = {\n      isOpen: false,\n    };\n  }\n\n  render() {\n    return (\n      <div className=\"faq col-lg-10 offset-lg-1 col-md-10 offset-md-1 col-sm-12\">\n        <div\n          className=\"question-container\"\n          onClick={() => {\n            this.setState({ isOpen: !this.state.isOpen });\n          }}\n        >\n          <div className=\"question\">{this.props.question}</div>\n\n          <div>\n            {this.state.isOpen ? (\n              <img\n                src=\"./images/chevron-up-green.svg\"\n                className=\"show-hide\"\n                alt=\"\"\n              />\n            ) : (\n              <img\n                src=\"./images/chevron-down-green.svg\"\n                className=\"show-hide\"\n                alt=\"\"\n              />\n            )}\n          </div>\n        </div>\n        {this.state.isOpen && this.props.isTextAnswer && (\n          <div className=\"answer-container\">\n            <span className=\"answer\">{this.props.answer}</span>\n          </div>\n        )}\n        {this.state.isOpen && !this.props.isTextAnswer && (\n          <div className=\"answer-container\">\n            <ul>\n              {map(this.props.answer, (answer, key) => {\n                return <li>{answer}</li>;\n              })}\n            </ul>\n          </div>\n        )}\n      </div>\n    );\n  }\n}\n\nexport default withRouter(FAQBox);\n","import * as React from 'react';\nimport './faq.scss';\nimport {withRouter} from 'react-router-dom';\nimport Footer from \"../shared/footer/footer\";\nimport FAQBox from \"./faq-box\";\nimport {map} from \"lodash\";\n\n\nclass FAQ extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {}\n    }\n\n    faqList = [\n        {\n            question: \"Does this count as my EVV entry?\",\n            isTextAnswer: true,\n            answer: \"NO.  Before START VISIT, login to the SMC app and start the EVV.  After COMPLETE VISIT, please logout of hcbsbillingsolutions.com and then go into the SMC app to logout of EVV there.\"\n        },\n        {\n            question: \"How do l start a visit? \",\n            isTextAnswer: true,\n            answer: \"Select your client from the drop down list, click CREATE NEW\"\n        },\n        {\n            question: \"How do I select the service for this visit? \",\n            isTextAnswer: true,\n            answer: \"After clicking CREATE NEW, your client and their authorized service codes should appear.  Select the service by clicking on the dot to the left of the correct code.\"\n        },\n        {\n            question: \"Which code is correct?\",\n            isTextAnswer: false,\n            answer: [\n                \"W1726 is Companion\",\n                \"W7060 is IHCS 2(1:1)\",\n                \"W7061 is IHCS 2(1:1)- Enhanced\",\n                \"W9862 is Respite 3(1:1)- 15 min\",\n                \"W9798 is Respite 3(1:1)- 24 hours\",\n                \"W5996 is CPS- Community Participation Services\",\n                \"W9794 is Supported Employment\",\n                \"H2023 is Job Finding\",\n                \"T2025 is Nursing\",\n                \"W7095 is Behavioral\"\n            ]\n        },\n        {\n            question: \"How do I enter my Service Notes?\",\n            isTextAnswer: true,\n            answer: \"After completing the visit, on your main page, choose the visit you want to add Service Notes to by clicking the green Notes area in the list.  Then click EDIT and begin entering your Service Notes.  Be sure to SAVE them.\"\n        },\n        {\n            question: \"How do I fill in the signature pad? \",\n            isTextAnswer: true,\n            answer: \"Using your mouse or stylus, click and hold while making your signature.  It will be visible.  To redo the signature, please click CLEAR under the signature box.\"\n        },\n        {\n            question: \"How do I end the visit?\",\n            isTextAnswer: false,\n            answer: [\n                \"Click on YOU HAVE A VISIT IN PROGRESS (big blue bar at the top of your screen)\",\n                \"Make the appropriate selections for progress\",\n                \"Enter your notes (can do this after completing the visit)\",\n                \"Sign the signature pad\",\n                \"Check that the start time is correct and that you are finishing the unit (15 minute increments)\",\n                \"Click COMPLETE VISIT - a summary page will open for your review.\",\n                \"Click COMPLETE VISIT.\",\n            ]\n        },\n        {\n            question: \"Can I edit my Notes after completing the visit? \",\n            isTextAnswer: true,\n            answer: \"YES. Select the visit you want to edit and click on the green Notes area. Select EDIT, begin typing, then SAVE\"\n        },\n        {\n            question: \"What if I made a mistake?\",\n            isTextAnswer: true,\n            answer: \" I haven’t allowed for any mistakes, check back in a bit.\\n\"\n        }\n    ];\n\n    render() {\n        return (\n            <div className=\"col-lg-12 col-md-12 col-sm-12\">\n                <div className=\"row\">\n                    <div className=\"row col-lg-2 col-md-2 col-sm-4\" onClick={() => {\n                        this.props.history.goBack()\n                    }}>\n                        <img src=\"./images/chevron-left-green.svg\" alt=\"\"/>\n                        <span style={{fontFamily: \"Muli\", color: '#333333', fontSize: 15, padding: 10}}>Back</span>\n                    </div>\n                </div>\n                <div className=\"row\">\n                    <div className=\"col-lg-6 col-md-6 col-sm-12\">\n                        <div className=\"client-details\">Frequently Asked Questions</div>\n                    </div>\n                </div>\n                <div className='row page-content' style={{width: '100%', marginTop: 30}}>\n                    {map(this.faqList, (faq, key) => {\n                        return (\n                            <FAQBox key={key} question={faq.question} isTextAnswer={faq.isTextAnswer} answer={faq.answer}/>\n                        )\n                    })}\n                </div>\n            </div>\n\n        );\n    }\n}\n\nexport default withRouter(FAQ);\n","import * as React from 'react';\nimport '../data-grid.scss';\n\nclass ClickableCell extends React.Component {\n\n    onClick = (event) => {\n        this.props.onClick(this.props.actionId, event)\n    };\n\n    render() {\n        return (\n          <div className='cell action-cell'>\n              <div className='col-12 text-center' onClick={this.onClick}>\n                  <img src={this.props.icon} alt=\"\" />\n              </div>\n          </div>\n        );\n    }\n}\n\nexport default ClickableCell;","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport \"./../services.scss\";\nimport { clone, get, isNull, map, pullAllBy, remove } from \"lodash\";\nimport { getAllUsersList } from \"../../../api/user\";\nimport * as classNames from \"classnames\";\nimport moment from \"moment\";\nimport { isEmpty } from \"lodash/lang\";\n\nclass StaffAllocation extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      allOptions: [],\n      availableOptions: [],\n      filteredAvailableOptions: [],\n      selectedOptions: [],\n      filteredSelectedOptions: [],\n      markedAvailableOptions: [],\n      markedSelectedOptions: [],\n      selectedStaff: [],\n      chosenFilter: \"\",\n      availableFilter: \"\"\n    };\n  }\n\n  componentDidMount() {\n    const { service, usersList } = this.props;\n    let allOptions = usersList;\n    let availableOptions = clone(allOptions);\n    let selectedOptions = service.assignedStaff ? service.assignedStaff : [];\n    pullAllBy(availableOptions, selectedOptions, \"userId\");\n    this.setState({\n      allOptions: allOptions,\n      availableOptions: availableOptions,\n      selectedOptions: selectedOptions,\n      filteredAvailableOptions: availableOptions,\n      filteredSelectedOptions: selectedOptions,\n      selectedStaff: selectedOptions\n    });\n  }\n\n  componentWillReceiveProps = (nextProps) => {\n    if (nextProps.selectedOptions !== this.props.selectedOptions) {\n      if (nextProps.selectedOptions) {\n        let availableOptions = clone(this.state.allOptions);\n        let selectedOptions = nextProps.selectedOptions;\n        pullAllBy(availableOptions, selectedOptions, \"userId\");\n        this.setState({\n          availableOptions: availableOptions,\n          selectedOptions: selectedOptions,\n          filteredAvailableOptions: availableOptions,\n          filteredSelectedOptions: selectedOptions\n        });\n      }\n    }\n  };\n\n  onSelectAvailableOption = (option) => {\n    let markedOptions = this.state.markedAvailableOptions;\n    if (markedOptions.includes(option)) {\n      remove(markedOptions, function(o) {\n        return o == option;\n      });\n    } else {\n      markedOptions.push(option);\n    }\n    this.setState({\n      markedAvailableOptions: markedOptions,\n      availableFilter: \"\",\n      filteredAvailableOptions: this.filterOptions(\n        this.state.availableOptions,\n        \"name\",\n        \"\"\n      )\n    });\n  };\n\n  onOptionSelect = () => {\n    let availableOptions = clone(this.state.allOptions);\n    let selectedOptions = this.state.selectedOptions;\n    let markedOptions = this.state.markedAvailableOptions;\n    markedOptions.forEach((element) => {\n      selectedOptions.push(\n        availableOptions.find((option) => option.userId === element.userId)\n      );\n    });\n    pullAllBy(availableOptions, selectedOptions, \"userId\");\n    this.setState({\n      availableOptions: availableOptions,\n      selectedOptions: selectedOptions,\n      selectedStaff: selectedOptions,\n      markedAvailableOptions: []\n    });\n  };\n\n  onSelectSelectedOption = (option) => {\n    let markedOptions = this.state.markedSelectedOptions;\n    if (markedOptions.includes(option)) {\n      remove(markedOptions, function(o) {\n        return o == option;\n      });\n    } else {\n      markedOptions.push(option);\n    }\n    this.setState({\n      markedSelectedOptions: markedOptions,\n      chosenFilter: \"\",\n      filteredSelectedOptions: this.filterOptions(\n        this.state.selectedOptions,\n        \"name\",\n        \"\"\n      )\n    });\n  };\n\n  onOptionDeselect = () => {\n    let availableOptions = clone(this.state.allOptions);\n    let selectedOptions = this.state.selectedOptions;\n    let markedOptions = this.state.markedSelectedOptions;\n    pullAllBy(selectedOptions, markedOptions, \"userId\");\n    pullAllBy(availableOptions, selectedOptions, \"userId\");\n    this.setState({\n      availableOptions: availableOptions,\n      selectedOptions: selectedOptions,\n      selectedStaff: selectedOptions,\n      markedSelectedOptions: []\n    });\n  };\n\n  onChosenFilterChange = (e) => {\n    const searchParam = e.target.value;\n    this.setState({\n      chosenFilter: searchParam,\n      filteredSelectedOptions: this.filterOptions(\n        this.state.selectedOptions,\n        \"name\",\n        searchParam\n      )\n    });\n  };\n\n  onAvailableFilterChange = (e) => {\n    const searchParam = e.target.value;\n    this.setState({\n      availableFilter: searchParam,\n      filteredAvailableOptions: this.filterOptions(\n        this.state.availableOptions,\n        \"name\",\n        searchParam\n      )\n    });\n  };\n\n  filterOptions = (options, valueIdentifier, selectedValue) => {\n    selectedValue = selectedValue.trim();\n    if (isNull(selectedValue) || isEmpty(selectedValue)) {\n      return options;\n    }\n    return options.filter(\n      (option) =>\n        option[valueIdentifier]\n          .toLowerCase()\n          .replaceAll(\",\", \"\")\n          .includes(selectedValue.toLowerCase()) ||\n        option[valueIdentifier].toLowerCase().replaceAll(\",\", \"\") ==\n        selectedValue.toLowerCase()\n    );\n  };\n\n  render() {\n    const { service } = this.props;\n    return (\n      <div className={\"col-sm-12 col-lg-12 staff-allocation\"}>\n        <div className={\"row col-sm-12 col-lg-12\"} style={{ marginBottom: 30 }}>\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">Service Name</div>\n            <div className=\"title_text\">{get(service, \"serviceName\", \"-\")}</div>\n          </div>\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">Service Code</div>\n            <div className=\"title_text\">{get(service, \"serviceCode\", \"-\")}</div>\n          </div>\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">Begin Date</div>\n            <div className=\"title_text\">\n              {moment(service.serviceStartDate).utc().format(\"MM-DD-YYYY\")}\n            </div>\n          </div>\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">End Date</div>\n            <div className=\"title_text\">\n              {moment(service.serviceEndDate).utc().format(\"MM-DD-YYYY\")}\n            </div>\n          </div>\n        </div>\n        <div className=\"row dual-list-box\">\n          <div className={\"col-5\"}>\n            <div className=\"box-header text-center\">Available Staff</div>\n            <div className=\"input-box\">\n              <input\n                type=\"text\"\n                className=\"box text-box staff-allocation-search search-icon\"\n                value={this.state.availableFilter}\n                onChange={this.onAvailableFilterChange}\n              />\n            </div>\n            <div className=\" list-box text-center\">\n              {this.state.filteredAvailableOptions.map((option, index) => {\n                return (\n                  <div\n                    key={index}\n                    className={classNames(\"list-ite\", {\n                      active:\n                        this.state.markedAvailableOptions.includes(option)\n                    })}\n                    onClick={() => {\n                      this.onSelectAvailableOption(option);\n                    }}\n                  >\n                    <div className=\"child-item\">{option.name}</div>\n                  </div>\n                );\n              })}\n              {this.state.filteredAvailableOptions.length === 0 &&\n                this.state.availableFilter != \"\" && (\n                  <div className=\"box-header text-center\">No Matches found</div>\n                )}\n            </div>\n          </div>\n\n          <div className=\"col-2 my-auto\">\n            <div\n              className=\"list-box-arrow text-center\"\n              onClick={this.onOptionSelect}\n            >\n              <span>\n                <img src=\"./images/chevron-right-grey.svg\" alt=\"\" />\n              </span>\n            </div>\n            <div\n              className=\"list-box-arrow text-center\"\n              onClick={this.onOptionDeselect}\n            >\n              <span>\n                <img src=\"./images/chevron-left-grey.svg\" alt=\"\" />\n              </span>\n            </div>\n          </div>\n          <div className=\"col-5\">\n            <div className=\"box-header text-center\">Chosen Staff</div>\n            <div className=\"input-box\">\n              <input\n                type=\"text\"\n                className=\"box text-box staff-allocation-search search-icon\"\n                value={this.state.chosenFilter}\n                onChange={this.onChosenFilterChange}\n              />\n            </div>\n            <div className=\"list-box text-center\">\n              {this.state.filteredSelectedOptions.map((option, index) => {\n                return (\n                  <div\n                    key={index}\n                    className={classNames(\"list-ite\", {\n                      active: this.state.markedSelectedOptions.includes(option)\n                    })}\n                    // style={{\n                    //   backgroundColor: \"#35cc62\",\n\n                    //   margin: 15,\n                    //   minHeight: 31,\n                    //   justifyContent: \"stretch\",\n                    //   justifyItems: \"center\",\n                    //   borderRadius: 15.5,\n                    // }}\n                    onClick={() => {\n                      this.onSelectSelectedOption(option);\n                    }}\n                  >\n                    <div\n                      className=\"child-item\"\n                      //   style={{\n                      //     backgroundColor: \"red\",\n                      //     wordWrap: \"break-word\",\n                      //     margin: 4,\n                      //   }}\n                    >\n                      {option.name}\n                    </div>\n                  </div>\n                );\n              })}\n              {this.state.filteredSelectedOptions.length === 0 &&\n                this.state.chosenFilter != \"\" && (\n                  <div className=\"box-header text-center\">No Matches found</div>\n                )}\n            </div>\n          </div>\n        </div>\n        <div\n          className=\"row\"\n          style={{\n            marginTop: 30\n          }}\n        >\n          <div className=\"col-lg-6 offset-lg-3 col-md-8 offset-md-2 col-sm-10 offset-sm-1\">\n            <div className=\"row\">\n              <div className=\"col-6\">\n                <button\n                  type=\"submit\"\n                  className=\"button submit\"\n                  onClick={() => {\n                    this.props.onUpdate(service, this.state.selectedStaff);\n                  }}\n                >\n                  {\"PROCEED\"}\n                </button>\n              </div>\n              <div className=\"col-6\">\n                <button\n                  className=\"button basic\"\n                  onClick={(event) => {\n                    this.props.onCloseModal();\n                  }}\n                >\n                  CANCEL\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({});\n\nexport default withRouter(connect(mapStateToProps)(StaffAllocation));\n","import React, { useEffect, useState } from \"react\";\nimport { get } from \"lodash\";\nimport moment from \"moment/moment\";\nimport * as classNames from \"classnames\";\n\nconst ConfirmNewService = ({ service, allServices, staffAllocationData, onConfirm, onCloseModal, goBack }) => {\n\n  const [serviceDetails, setServiceDetails] = useState({});\n  const [serviceRequest, setServiceRequest] = useState({\n    serviceName: \"\", // Client Name - Service Code\n    serviceCode: \"\",\n    serviceUnitRate: 0,\n    serviceUnitLength: 0,\n    serviceStartDate: \"\",\n    serviceEndDate: \"\",\n    serviceUnitsAuthorized: 0,\n    serviceIsNegetiveUnitsAllowed: false,\n    serviceIsAuthorized: false,\n    isDegreeRequired: false,\n    isDatesConfirmed: false,\n    isOverlappable: false,\n    authorizedDate: \"\",\n    clientName: \"\",\n    recipientId: \"\",\n    serviceId: 0,\n    unitsUtilized: 0,\n    assignedStaff: []\n  });\n  const [isAllowedNegativeUnits, setIsAllowedNegativeUnits] = useState(false);\n\n  useEffect(() => {\n\n    let selectedService = {};\n    allServices.map((s) => {\n      if (s.code === service.service_code) {\n        selectedService = s;\n      }\n    });\n    setServiceDetails(selectedService);\n\n    const servReq = {\n      clientName: service.individual_name,\n      recipientId: service.recipient_id,\n      serviceName: `${toTitleCase(service.individual_name)} - ${service.service_code}`,\n      serviceCode: service.service_code,\n      serviceStartDate: service.service_start_date,\n      serviceEndDate: service.service_end_date,\n      authorizedDate: service.date_last_authorized,\n      isDegreeRequired: selectedService.isDegreeRequired,\n      isOverlappable: selectedService.isOverlappable,\n      serviceId: selectedService.serviceId,\n      serviceUnitRate: parseFloat(selectedService.unitRate),\n      serviceUnitLength: parseFloat(selectedService.unitLength),\n      assignedStaff: staffAllocationData.assignedStaff,\n      serviceUnitsAuthorized: parseFloat(service.units_authorized),\n      unitsUtilized: parseFloat(service.utilized_units)\n    };\n    setServiceRequest(servReq);\n    console.log(servReq);\n    console.log(service);\n    console.log(staffAllocationData);\n    console.log(selectedService);\n\n  }, []);\n\n  const toTitleCase = (name) => {\n    return name.toLowerCase().split(\" \").map(word => {\n      return word.charAt(0).toUpperCase() + word.slice(1);\n    }).join(\" \");\n  };\n\n  const getStartDate = () => {\n    return moment(\n      get(serviceRequest, \"serviceStartDate\", new Date())\n    ).format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n  };\n\n  const getEndDate = () => {\n    return moment(\n      get(serviceRequest, \"serviceEndDate\", new Date())\n    ).format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n  };\n\n  const allowNegativeUnits = (val) => {\n    setIsAllowedNegativeUnits(val);\n    setServiceRequest({\n      ...serviceRequest,\n      serviceIsNegetiveUnitsAllowed: val\n    });\n  };\n\n  return (\n    <div className={\"col-sm-12 col-lg-12 staff-allocation\"}>\n      <div\n        className=\"row col-lg-2 col-md-2 col-sm-4\"\n        onClick={() => {\n          goBack();\n        }}\n      >\n        <img src=\"./images/chevron-left-green.svg\" alt=\"\" />\n        <span\n          style={{\n            fontFamily: \"Muli\",\n            color: \"#333333\",\n            fontSize: 15,\n            padding: 10\n          }}\n        >\n            Back\n          </span>\n      </div>\n      <div className={\"row col-sm-12 col-lg-12\"} style={{ marginBottom: 10 }}>\n        <div className=\"col-lg-6 col-sm-12\">\n          <div className=\"header_text\">Client Name</div>\n          <div className=\"title_text\">{get(serviceRequest, \"clientName\", \"-\")}</div>\n        </div>\n        <div className=\"col-lg-6 col-sm-12\">\n          <div className=\"header_text\">Service Name</div>\n          <div className=\"title_text\">{get(serviceRequest, \"serviceName\", \"-\")}</div>\n        </div>\n      </div>\n      <div className={\"row col-sm-12 col-lg-12\"} style={{ marginBottom: 10 }}>\n        <div className=\"col-lg-3 col-sm-6\">\n          <div className=\"header_text\">Service Code</div>\n          <div className=\"title_text\">{get(serviceRequest, \"serviceCode\", \"-\")}</div>\n        </div>\n        <div className=\"col-lg-3 col-sm-6\">\n          <div className=\"header_text\">Authorized Date</div>\n          <div className=\"title_text\">{serviceRequest.authorizedDate}</div>\n        </div>\n        <div className=\"col-lg-3 col-sm-6\">\n          <div className=\"header_text\">Begin Date</div>\n          <div className=\"title_text\">\n            {serviceRequest.serviceStartDate}\n          </div>\n        </div>\n        <div className=\"col-lg-3 col-sm-6\">\n          <div className=\"header_text\">End Date</div>\n          <div className=\"title_text\">\n            {serviceRequest.serviceEndDate}\n          </div>\n        </div>\n      </div>\n      <div className={\"row col-sm-12 col-lg-12\"} style={{ marginBottom: 10 }}>\n        <div className=\"col-lg-3 col-sm-6\">\n          <div className=\"header_text\">Units Authorized</div>\n          <div className=\"title_text\">{get(serviceRequest, \"serviceUnitsAuthorized\", \"-\")}</div>\n        </div>\n        <div className=\"col-lg-3 col-sm-6\">\n          <div className=\"header_text\">Unit Rate</div>\n          <div className=\"title_text\">{get(serviceRequest, \"serviceUnitRate\", \"-\")}</div>\n        </div>\n        <div className=\"col-lg-3 col-sm-6\">\n          <div className=\"header_text\">Unit Length</div>\n          <div className=\"title_text\">{get(serviceRequest, \"serviceUnitLength\", \"-\")}</div>\n        </div>\n        {serviceRequest?.unitsUtilized > 0 && (\n          <div className=\"col-lg-3 col-sm-6\">\n            <div className=\"header_text\">Units Utilized</div>\n            <div className=\"title_text\">{get(serviceRequest, \"unitsUtilized\", \"-\")}</div>\n          </div>\n        )}\n      </div>\n      <div className={\"row col-sm-12 col-lg-12\"} style={{ marginBottom: 10 }}>\n        <div className=\"col-6 input-box text-left my-auto\">\n          <input\n            type=\"checkbox\"\n            name=\"isAllowedNegativeUnits\"\n            value=\"isAllowedNegativeUnits\"\n            checked={isAllowedNegativeUnits}\n            onChange={(event) => {\n              allowNegativeUnits(event.target.checked);\n            }}\n            style={{ marginRight: 5 }}\n          />\n          <span className=\"header_text\">Allow Negative Units Remaining</span>\n        </div>\n      </div>\n      <div className={\"row col-sm-12 col-lg-12\"} style={{ marginBottom: 30 }}>\n        <div className=\"col-lg-12 col-sm-12\">\n          <div className=\"header_text\">Allocated Staff</div>\n          <div className=\"title_text\">\n            <ul>\n              {serviceRequest.assignedStaff.map((staff, index) => (\n                <li key={index}>{staff.name}</li>\n              ))}\n              {serviceRequest?.assignedStaff.length === 0 && (\n                <li key={\"none\"}>No Staff Members have been allocated.</li>\n              )}\n            </ul>\n          </div>\n        </div>\n      </div>\n\n\n      <div\n        className=\"row\"\n        style={{\n          marginTop: 30\n        }}\n      >\n        <div className=\"col-lg-6 offset-lg-3 col-md-8 offset-md-2 col-sm-10 offset-sm-1\">\n          <div className=\"row\">\n            <div className=\"col-6\">\n              <button\n                type=\"submit\"\n                className=\"button submit\"\n                onClick={() => {\n                  onConfirm(serviceRequest);\n                }}\n              >\n                {\"CONFIRM\"}\n              </button>\n            </div>\n            <div className=\"col-6\">\n              <button\n                className=\"button basic\"\n                onClick={(event) => {\n                  onCloseModal();\n                }}\n              >\n                CANCEL\n              </button>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default ConfirmNewService;","import React, { useEffect, useState } from \"react\";\nimport { FileUploader } from \"react-drag-drop-files\";\nimport { createService, getAllServices, importService, processImportFile, updateService } from \"../../../api/service\";\nimport \"./../services.scss\";\nimport DataGrid from \"../../shared/data-grid/data-grid\";\nimport BasicHeader from \"../../shared/data-grid/custom-headers/basic-header\";\nimport BasicCell from \"../../shared/data-grid/custom-cells/basic-cell\";\nimport ClickableCell from \"../../shared/data-grid/custom-cells/clicable-cell\";\nimport PopUpModal from \"../../shared/popup-modal/popUpModal\";\nimport StaffAllocationAction from \"../../shared/data-grid/custom-cells/staffAssign\";\nimport * as XLSX from \"sheetjs-style\";\nimport { saveAs } from \"file-saver\";\nimport StaffAllocation from \"./staff-allocation\";\nimport ConfirmNewService from \"./confirm\";\nimport ServiceCreateUpdate from \"./../service-create/create\";\nimport { updateStaffAllocation } from \"../../../api/clientService\";\nimport { getAllUsersList } from \"../../../api/user\";\nimport { clone, pullAllBy } from \"lodash\";\n\nexport const ImportServices = () => {\n\n    /*\n    * Supported file formats : https://pkg.go.dev/github.com/xuri/excelize/v2\n    * XLAM / XLSM / XLSX / XLTM / XLTX\n    * */\n    const fileTypes = [\"XLSX\"];\n\n    const columns = [\n      {\n        Header: () => <BasicHeader header={\"Service Code\"} />,\n        accessor: \"service_code\",\n        width: 150,\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={\"Service Name\"} />,\n        accessor: \"service_name\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={\"Unit Rate\"} />,\n        accessor: \"unit_cost\",\n        width: 150,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <ClickableCell\n            actionId={row.original}\n            onClick={onServiceAdd}\n            icon={\"/images/plus.svg\"}\n          />\n        ),\n        width: 50\n      }\n    ];\n\n    const newServicesColumn = [\n      {\n        Header: () => <BasicHeader header={\"Service Code\"} />,\n        accessor: \"service_code\",\n        width: 120,\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={\"Service Name\"} />,\n        accessor: \"service_name\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={\"Client Name\"} />,\n        accessor: \"individual_name\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Recipient ID\"} />,\n        accessor: \"recipient_id\",\n        width: 120,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Start Date\"} />,\n        accessor: \"service_start_date\",\n        width: 100,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"End Date\"} />,\n        accessor: \"service_end_date\",\n        width: 100,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Unit Rate\"} />,\n        accessor: \"unit_cost\",\n        width: 100,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Units Authorized\"} />,\n        accessor: \"units_authorized\",\n        width: 100,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      // {\n      //   Header: \"\",\n      //   accessor: \"icon\",\n      //   Cell: (row) => (\n      //     <StaffAllocationAction\n      //       actionId={row.original}\n      //       onClick={() => {\n      //         onStaffAllocation(row.original);\n      //       }}\n      //       value={\"Assign\"}\n      //     />\n      //   ),\n      //   width: 50\n      // },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <ClickableCell\n            actionId={row.original}\n            onClick={() => {\n              onStaffAllocation(row.original);\n            }}\n            icon={\"/images/check-green.svg\"}\n          />\n        ),\n        width: 50\n      }\n    ];\n\n    const updatedServicesColumn = [\n      {\n        Header: () => <BasicHeader header={\"Service Code\"} />,\n        accessor: \"service_code\",\n        width: 150,\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={\"Service Name\"} />,\n        accessor: \"service_name\",\n        Cell: (row) => {\n          return <BasicCell value={row.value} index={row.index} />;\n        }\n      },\n      {\n        Header: () => <BasicHeader header={\"Client Name\"} />,\n        accessor: \"individual_name\",\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Recipient ID\"} />,\n        accessor: \"recipient_id\",\n        width: 150,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Start Date\"} />,\n        accessor: \"service_start_date\",\n        width: 150,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"End Date\"} />,\n        accessor: \"service_end_date\",\n        width: 150,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Unit Rate\"} />,\n        accessor: \"unit_cost\",\n        width: 150,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: () => <BasicHeader header={\"Date Authorized\"} />,\n        accessor: \"date_last_authorized\",\n        width: 150,\n        Cell: (row) => <BasicCell value={row.value} index={row.index} />\n      },\n      {\n        Header: \"\",\n        accessor: \"icon\",\n        Cell: (row) => (\n          <ClickableCell\n            actionId={row.original.id}\n            onClick={() => {\n            }}\n            icon={\"/images/check-green.svg\"}\n          />\n        ),\n        width: 50\n      }\n    ];\n\n\n    const [usersList, setUsersList] = useState([]);\n    const [allServices, setAllServices] = useState([]);\n    const [file, setFile] = useState(null);\n    const [missingClients, setMissingClients] = useState([]);\n    const [missingServices, setMissingServices] = useState([]);\n    const [openModal, setOpenModal] = useState(false);\n    const [newServices, setNewServives] = useState([]);\n    const [updatedServices, setUpdatedServives] = useState([]);\n    const [reload, setReload] = useState(false);\n    const [openAllocationModal, setOpenAllocationModal] = useState(false);\n    const [none, setNone] = useState(false);\n\n    const [openConfirmModal, setOpenConfirmModal] = useState(false);\n\n    const [serviceInitialData, setServiceInitialData] = useState({\n      serviceName: \"\",\n      serviceCode: \"\",\n      serviceDescription: \"\",\n      serviceUnitRate: 0,\n      serviceUnitLength: \"\",\n      isDegreeRequired: false,\n      isOverlappable: false\n    });\n    const [staffAllocationData, setStaffAllocationData] = useState({\n      id: 0,\n      recipient_id: \"\",\n      serviceName: \"\",\n      serviceCode: \"\",\n      serviceStartDate: \"\",\n      serviceEndDate: \"\",\n      assignedStaff: []\n    });\n\n    const [importedData, setImportedData] = useState({});\n\n    useEffect(() => {\n      getAllUsersList().then((res) => {\n        setUsersList(res);\n      });\n      getAllServices(1, 100, \"recent\", \"\", 0).then((res) => {\n        setAllServices(res.data);\n      });\n    }, []);\n\n    const exportToExcel = () => {\n      // Define your data\n      const data = missingClients;\n\n      // Define custom headers\n      const headers = [\n        { v: \"Individual Name\", s: { font: { bold: true }, alignment: { horizontal: \"center\" } } },\n        { v: \"Recipient ID\", s: { font: { bold: true }, alignment: { horizontal: \"center\" } } },\n        { v: \"ICD-10 Diagnosis Code\", s: { font: { bold: true }, alignment: { horizontal: \"center\" } } },\n        { v: \"Funding Source\", s: { font: { bold: true }, alignment: { horizontal: \"center\" } } }\n      ];\n\n      // Convert data to worksheet and add headers\n      const worksheet = XLSX.utils.json_to_sheet([]);\n      XLSX.utils.sheet_add_aoa(worksheet, [headers.map(h => h.v)], { origin: \"A1\" });\n      XLSX.utils.sheet_add_json(worksheet, data, { origin: \"A2\", skipHeader: true });\n\n      // Apply styles to headers\n      headers.forEach((header, index) => {\n        const cellAddress = XLSX.utils.encode_cell({ c: index, r: 0 });\n        worksheet[cellAddress].s = header.s;\n      });\n\n      // Set custom column widths\n      worksheet[\"!cols\"] = [\n        { wpx: 150 }, // Individual Name\n        { wpx: 100 }, // Recipient ID\n        { wpx: 150 }, // ICD-10 Diagnosis Code\n        { wpx: 175 } // Funding Source\n      ];\n\n      // Create a new workbook\n      const workbook = XLSX.utils.book_new();\n      XLSX.utils.book_append_sheet(workbook, worksheet, \"Sheet1\");\n\n      // Write the workbook to a binary string\n      const wbout = XLSX.write(workbook, {\n        bookType: \"xlsx\",\n        type: \"binary\"\n      });\n\n      // Convert the binary string to a Blob\n      const buf = new ArrayBuffer(wbout.length);\n      const view = new Uint8Array(buf);\n      for (let i = 0; i < wbout.length; i++) {\n        view[i] = wbout.charCodeAt(i) & 0xFF;\n      }\n      const blob = new Blob([buf], { type: \"application/octet-stream\" });\n\n      // Save the file using FileSaver\n      saveAs(blob, \"Missing Client List.xlsx\");\n    };\n\n    const handleChange = (file) => {\n      setFile(file);\n    };\n\n    const processFile = () => {\n      if (file !== null) {\n        // alert(`Are sure you want to process the file: ${file.name}`);\n        processImportFile(file).then((res) => {\n          splitData(res);\n        });\n      } else {\n        alert(\"Please select a file to proceed.\");\n      }\n    };\n\n    const splitData = (data) => {\n      const mc = data.missing_clients ? data.missing_clients : [];\n      setMissingClients(mc);\n      const ms = data.missing_services ? data.missing_services : [];\n      setMissingServices(ms);\n      const ns = data.new_services ? data.new_services : [];\n      setNewServives(ns);\n      const us = data.updated_services ? data.updated_services : [];\n      setUpdatedServives(us);\n      if (ms.length > 0) {\n        setReload(true);\n      }\n\n      if (mc.length === 0 && ms.length === 0 && ns.length === 0 && us.length === 0) {\n        setNone(true);\n      } else {\n        setNone(false);\n      }\n\n    };\n\n    const handleConfirmImport = (service) => {\n      console.log(service);\n      importService(service).then((res) => {\n        cleanServiceData();\n        processFile();\n        setOpenConfirmModal(false);\n      });\n    };\n\n    const resetServiceDetails = () => {\n      setOpenConfirmModal(false);\n      setStaffAllocationData({\n        id: 0,\n        recipient_id: \"\",\n        serviceName: \"\",\n        serviceCode: \"\",\n        serviceStartDate: \"\",\n        serviceEndDate: \"\",\n        assignedStaff: []\n      });\n      setImportedData({});\n    };\n\n    const goBack = () => {\n      setOpenConfirmModal(false);\n      setOpenAllocationModal(true);\n    };\n\n    const onServiceAdd = (row) => {\n      setServiceInitialData({\n        ...serviceInitialData,\n        serviceName: row.service_name,\n        serviceCode: row.service_code,\n        serviceUnitRate: parseFloat(parseFloat(row.unit_cost.replace(\"$\", \"\")))\n      });\n      setOpenModal(true);\n    };\n\n    const handleNewServices = (service) => {\n\n      const req = {\n        name: service.serviceName,\n        code: service.serviceCode,\n        description: service.serviceDescription,\n        unitRate: parseFloat(service.serviceUnitRate),\n        unitLength: parseFloat(service.serviceUnitLength),\n        isDegreeRequired: service.isDegreeRequired,\n        isOverlappable: service.isOverlappable\n      };\n\n      createService(req).then((res) => {\n        const filteredData = missingServices.filter(item => item.service_code !== service.serviceCode);\n        setMissingServices(filteredData);\n        setOpenModal(false);\n        setServiceInitialData({\n          serviceName: \"\",\n          serviceCode: \"\",\n          serviceDescription: \"\",\n          serviceUnitRate: 0,\n          serviceUnitLength: \"\",\n          isDegreeRequired: false,\n          isOverlappable: false\n        });\n      });\n\n    };\n\n    const onStaffAllocation = (service) => {\n      setOpenAllocationModal(true);\n      const serv = {\n        id: service.id,\n        recipient_id: service.recipient_id,\n        serviceName: service.service_code,\n        serviceCode: service.service_code,\n        serviceStartDate: service.service_start_date,\n        serviceEndDate: service.service_end_date,\n        assignedStaff: []\n      };\n      setStaffAllocationData(serv);\n      setImportedData(service);\n    };\n\n    const onStaffAllocationUpdate = (service, staff) => {\n      setStaffAllocationData({\n        ...staffAllocationData,\n        assignedStaff: staff\n      });\n      setOpenAllocationModal(false);\n      setOpenConfirmModal(true);\n    };\n\n    const cleanServiceData = () => {\n      setOpenAllocationModal(false);\n      setStaffAllocationData({\n        id: 0,\n        recipient_id: \"\",\n        serviceName: \"\",\n        serviceCode: \"\",\n        serviceStartDate: \"\",\n        serviceEndDate: \"\",\n        assignedStaff: []\n      });\n    };\n\n    return (\n      <>\n        <div className=\"page-content\">\n          <div className=\"row upload-wrapper\">\n            <div className=\"col-lg-10 col-sm-12\">\n              {file == null && (\n                <center>\n                  <FileUploader\n                    multiple={false}\n                    handleChange={handleChange}\n                    name=\"file\"\n                    types={fileTypes}\n                  />\n                </center>\n              )}\n              {file &&\n                (<>\n                    <div className=\"row file-upload\">\n                      <div className=\"col-lg-10 col-sm-12 text\">\n                        <img src={\"/images/file-text.svg\"} alt=\"\" className={\"img\"} />\n                        Uploaded succesfully!\n                      </div>\n                    </div>\n                  </>\n                )}\n            </div>\n\n            <div className=\"col-lg-2 col-sm-12\">\n              <button className=\"button submit\" onClick={processFile}>\n                <span className=\"text\">Process</span>\n              </button>\n            </div>\n          </div>\n\n          {none && (\n            <div className=\"row import-none\">\n              <div className=\"col-lg-10 col-sm-8 text\">\n                <img src={\"/images/check-grey.svg\"} alt=\"\" className={\"img\"} />\n                No new changes has been detected.\n              </div>\n            </div>\n          )}\n\n\n          {missingClients.length > 0 && (\n            <div className=\"row missing-clients\">\n              <div className=\"col-lg-10 col-sm-8 text\">\n                <img src={\"/images/alert-triangle.svg\"} alt=\"\" className={\"img\"} />\n                REQUIRES ACTION : Missing records of {missingClients.length} clients.\n              </div>\n              <div className=\"col-lg-2 col-sm-4\">\n              <span\n                className=\"text\"\n                onClick={exportToExcel}\n              >\n                <img src={\"/images/download-cloud.svg\"} alt=\"\" className={\"img\"} />\n                Download\n              </span>\n              </div>\n            </div>\n          )}\n\n          {(missingServices.length > 0 || (missingServices.length === 0 && reload)) && (\n            <div className=\"row missing-services\">\n              <div className=\"col-lg-10 col-sm-8 text\">\n                <img src={\"/images/tool.svg\"} alt=\"\" className={\"img\"} />\n                {missingServices.length === 0 ? \"Missing Services has been added. Please Reload the data\"\n                  : `REQUIRES ACTION : Missing records of ${missingServices.length} services.`}\n              </div>\n              <div className=\"col-lg-2 col-sm-4\">\n                {missingServices.length === 0 && reload &&\n                  <span\n                    className=\"text\"\n                    onClick={processFile}\n                  >\n                  <img src={\"/images/refresh.svg\"} alt=\"\" className={\"img\"} />\n                  Reload Data\n                </span>\n                }\n              </div>\n              <div className=\"col-lg-12 col-sm-12\" style={{ marginTop: 20 }}>\n                <DataGrid\n                  data={missingServices}\n                  columns={columns}\n                  onRowClick={(rowInfo) => {\n                    // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                  }}\n                  total={missingServices.length}\n                  paginationLabel={\"\"}\n                  showPagination={false}\n                  pageSize={missingServices.length}\n                  pageNumber={1}\n                />\n              </div>\n            </div>\n          )}\n\n        </div>\n\n        {newServices.length > 0 && (\n          <div className=\"page-content\">\n          <span\n            className=\"col-lg-2 col-sm-12 title\"\n            style={{ cursor: \"default\" }}\n          >\n            New Services\n          </span>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <DataGrid\n                  data={newServices}\n                  columns={newServicesColumn}\n                  onRowClick={(rowInfo) => {\n                    // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                  }}\n                  total={newServices.length}\n                  paginationLabel={\"\"}\n                  showPagination={false}\n                  pageSize={newServices.length}\n                  pageNumber={1}\n                />\n              </div>\n            </div>\n          </div>\n        )}\n\n        {updatedServices.length > 0 && (\n          <div className=\"page-content\">\n          <span\n            className=\"col-lg-2 col-sm-12 title\"\n            style={{ cursor: \"default\" }}\n          >\n            Updated Services\n          </span>\n            <div className=\"row\">\n              <div className=\"col-12\">\n                <DataGrid\n                  data={updatedServices}\n                  columns={updatedServicesColumn}\n                  onRowClick={(rowInfo) => {\n                    // this.onDetails(get(rowInfo.original, \"id\", \"\"));\n                  }}\n                  total={newServices.length}\n                  paginationLabel={\"\"}\n                  showPagination={false}\n                  pageSize={newServices.length}\n                  pageNumber={1}\n                />\n              </div>\n            </div>\n          </div>\n        )}\n\n        {openModal && (\n          <PopUpModal\n            show={openModal}\n            onClose={() => {\n              setOpenModal(false);\n            }}\n            title={\"Create New Service\"}\n            icon={\"/images/clipboard.png\"}\n            size={\"lg\"}\n          >\n            <ServiceCreateUpdate\n              onSubmit={handleNewServices}\n              initialValues={serviceInitialData}\n              isEdit={false}\n              onCloseModal={() => {\n                setOpenModal(false);\n              }}\n              isOverlappable={serviceInitialData.isOverlappable}\n              onOverlapable={(val) => {\n                setServiceInitialData(\n                  { ...serviceInitialData, isOverlappable: val }\n                );\n              }}\n              isDegreeRequired={serviceInitialData.isDegreeRequired}\n              onDegreeRequired={(value) => {\n                setServiceInitialData(\n                  { ...serviceInitialData, isDegreeRequired: value }\n                );\n              }}\n\n            />\n\n\n          </PopUpModal>\n        )}\n\n        {openAllocationModal && (\n          <PopUpModal\n            show={openAllocationModal}\n            onClose={() => {\n              setOpenAllocationModal(false);\n            }}\n            title={\"Staff Allocation\"}\n            icon={\"/images/staff-allocation.svg\"}\n            size={\"lg\"}\n          >\n            <StaffAllocation\n              service={staffAllocationData}\n              usersList={usersList}\n              onUpdate={onStaffAllocationUpdate}\n              onCloseModal={() => {\n                setOpenAllocationModal(false);\n              }}\n            />\n          </PopUpModal>\n        )}\n\n        {openConfirmModal && (\n          <PopUpModal\n            show={openConfirmModal}\n            onClose={() => {\n              resetServiceDetails();\n            }}\n            title={\"Confirm Import Service\"}\n            icon={\"/images/clipboard.png\"}\n            size={\"lg\"}\n          >\n            <ConfirmNewService\n              service={importedData}\n              allServices={allServices}\n              staffAllocationData={staffAllocationData}\n              onConfirm={handleConfirmImport}\n              onCloseModal={resetServiceDetails}\n              goBack={goBack} />\n          </PopUpModal>\n        )}\n\n\n      </>);\n  }\n;\n","import * as React from \"react\";\nimport { Field, Form, reduxForm } from \"redux-form\";\nimport { inputField } from \"../shared/form-fields/formFields\";\nimport { validateChangePassword, validateConfirmPassword, validatePasswordFormat } from \"./loginValidator\";\n\nclass PasswordForm extends React.Component {\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      showPassword: false,\n      showConfirmationPassword: false,\n      password: \"\",\n      confirmPassword: \"\"\n    };\n  }\n\n\n  render() {\n\n    const { handleForm } = this.props;\n\n    return (\n\n      <Form onSubmit={(event) => {\n        event.preventDefault();\n        handleForm({\n          password: this.state.password,\n          confirmPassword: this.state.confirmPassword\n        });\n      }}>\n        <div className=\"row\">\n          <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 form-container text-center\">\n            <div className=\"form\">\n              <div className=\"col-12 input-box text-left\">\n                <div className=\"label\">New Password</div>\n                <Field\n                  name=\"password\"\n                  component={inputField}\n                  type={this.state.showPassword ? \"text\" : \"password\"}\n                  placeholder={\"password\"}\n                  required={true}\n                  validate={[validateChangePassword, validatePasswordFormat]}\n                  onChange={(event) => {\n                    this.setState({ password: event.target.value });\n                  }}\n                />\n                <i className=\"text-right icon\" onClick={() => {\n                  this.setState({\n                    showPassword: !this.state.showPassword\n                  });\n                }}>\n                  <img src=\"./images/eye.svg\" alt=\"\" />\n                </i>\n              </div>\n              <div className=\"col-12 input-box text-left\">\n                <div className=\"label\">Confirm New Password</div>\n                <Field\n                  name=\"confirmationPassword\"\n                  component={inputField}\n                  type={this.state.showConfirmationPassword ? \"text\" : \"password\"}\n                  placeholder={\"password\"}\n                  required={true}\n                  validate={validateConfirmPassword}\n                  onChange={(event) => {\n                    this.setState({ confirmPassword: event.target.value });\n                  }}\n                />\n                <i className=\"text-right icon\" onClick={() => {\n                  this.setState({\n                    showConfirmationPassword: !this.state.showConfirmationPassword\n                  });\n                }}>\n                  <img src=\"./images/eye.svg\" alt=\"\" />\n                </i>\n              </div>\n              <br />\n              <div className=\"row\">\n                <div className=\"col-lg-8 offset-lg-2 col-md-10 offset-md-1 col-sm-12\">\n                  <button type=\"submit\" className=\"button submit\">\n                                            <span className=\"text\">\n                                                Change Password\n                                            </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </Form>\n    );\n  }\n}\n\n\nconst resetForm = reduxForm({\n  form: \"resetPasswordForm\"\n})(PasswordForm);\n\nexport default resetForm;\n\n","import * as React from \"react\";\nimport Footer from \"../shared/footer/footer\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { reduxForm } from \"redux-form\";\nimport PasswordForm from \"./PasswordForm\";\nimport { resetStaffPassword } from \"../../api/user\";\nimport { createNotification } from \"../../util/notificationManager\";\nimport { ALERT_TYPES } from \"../../constants/appConstants\";\n\nclass ForceChangePassword extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {};\n  }\n\n  resetPassword = (data) => {\n\n    if (data.password !== data.confirmPassword) {\n      return\n    }\n\n    const { history, auth } = this.props;\n\n    resetStaffPassword(data.password, auth.data.data.userId).then((res) => {\n      if (res.status) {\n        createNotification(ALERT_TYPES.SUCCESS, res.message);\n        history.push(\"/dashboard\");\n      } else {\n        createNotification(ALERT_TYPES.ERROR, res.message);\n      }\n    });\n  };\n\n  onShowConfirmationPassword = () => {\n    this.setState({\n      showConfirmationPassword: !this.state.showConfirmationPassword\n    });\n  };\n\n  render() {\n    return (\n\n      <div>\n        <nav\n          className=\"navbar navbar-expand navbar-white navbar-light main-nav\"\n          style={{ position: \"fixed\", top: 0, right: 0, left: 0 }}\n        >\n          <ul className=\"navbar-nav\">\n            <li className=\"nav-item\">\n              <img src=\"./images/logo.svg\" alt=\"\" />\n              <a className=\"text-center\">\n                <span className=\"navigation-title title\">HCBS</span>\n              </a>\n            </li>\n          </ul>\n          ;\n        </nav>\n        <div className=\"login\">\n          <div className=\"row\">\n            <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 text-center title\">\n              <span>Reset Password</span>\n            </div>\n          </div>\n          <PasswordForm handleForm={this.resetPassword} />\n        </div>\n        ;\n        <Footer />;\n      </div>);\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  auth: state.auth\n});\n\nexport default withRouter(connect(mapStateToProps)(ForceChangePassword));\n","import * as React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport Header from \"../components/shared/header/header\";\nimport SideNavigation from \"../components/shared/side-navigation/side-navigation\";\nimport Clients from \"../components/clients/clients\";\nimport \"./appContainter.scss\";\nimport CreateClient from \"../components/clients/create-client/createClient\";\nimport ClientDetails from \"../components/clients/client-details/clientDetails\";\nimport Staff from \"../components/staff/staff\";\nimport StaffType from \"../components/staff/staff-type/staffType\";\nimport CreateStaff from \"../components/staff/create-staff/createStaff\";\nimport WorkEntries from \"../components/work-entries/workEntries\";\nimport CreateTimeSheet from \"../components/work-entries/create-timesheet/createTimeSheet\";\nimport BillingReport from \"../components/reports/billingReport\";\nimport Profile from \"../components/profile/profile\";\nimport { ProtectedRoute } from \"../components/shared/protected-route/protectedRoute\";\nimport StaffDetails from \"../components/staff/staff-details/staff-details\";\nimport SupportCoordinator from \"../components/support-cordinator/support-cordinator\";\nimport CreateSC from \"../components/support-cordinator/create-sc/createSC\";\nimport SCDetails from \"../components/support-cordinator/SC-details/SC-details\";\nimport WorkEntryDetails from \"../components/work-entries/work-entry-details/workEntryDetails\";\nimport visits from \"../components/visits/visits\";\nimport { getAuthData } from \"../util/auth\";\nimport VisitStart from \"../components/visits/create-visit/visit-init\";\nimport VisitProgress from \"../components/visits/visit-progress/visit-progress\";\nimport FAQ from \"../components/faq/faq\";\nimport StaffReports from \"../components/reports/report-views/staffReports\";\nimport { USER_TYPES } from \"../constants/user\";\nimport { ServiceSummary } from \"../components/reports/report-views/serviceSummary/serviceSummary\";\nimport Services from \"../components/services/services\";\nimport { ImportServices } from \"../components/services/services-import/import\";\nimport ForceChangePassword from \"../components/login/ForceChangePassword\";\n\nclass AppContainer extends React.Component {\n  render() {\n    const userType = JSON.parse(getAuthData()).userType;\n\n    return (\n      <div>\n        <base href=\"/\" />\n        <Header />\n        <SideNavigation />\n        <div className=\"content-wrapper app-container\">\n          <ProtectedRoute exact path=\"/\" component={Dashboard} />\n\n          <ProtectedRoute exact path=\"/admin/clients\" component={Clients} />\n\n          <ProtectedRoute\n            exact\n            path=\"/admin/services\"\n            component={Services}\n          />\n\n          <ProtectedRoute\n            exact\n            path=\"/admin/import-services\"\n            component={ImportServices}\n          />\n\n          <ProtectedRoute\n            exact\n            path=\"/admin/create-client\"\n            component={CreateClient}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/admin/edit-client\"\n            component={CreateClient}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/admin/client-details\"\n            component={ClientDetails}\n          />\n          <ProtectedRoute exact path=\"/admin/staff\" component={Staff} />\n          <ProtectedRoute\n            exact\n            path=\"/admin/support-coordinator\"\n            component={SupportCoordinator}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/admin/staff-type\"\n            component={StaffType}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/admin/create-staff\"\n            component={CreateStaff}\n          />\n          <ProtectedRoute exact path=\"/admin/create-sc\" component={CreateSC} />\n          <ProtectedRoute\n            exact\n            path=\"/admin/edit-staff\"\n            component={CreateStaff}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/admin/view-staff\"\n            component={StaffDetails}\n          />\n          <ProtectedRoute exact path=\"/admin/edit-sc\" component={CreateSC} />\n          <ProtectedRoute exact path=\"/admin/view-sc\" component={SCDetails} />\n          <ProtectedRoute\n            exact\n            path=\"/admin/work-entries\"\n            component={WorkEntries}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/admin/create-timeSheet\"\n            component={CreateTimeSheet}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/admin/edit-timeSheet\"\n            component={CreateTimeSheet}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/admin/view-timeSheet\"\n            component={WorkEntryDetails}\n          />\n          <ProtectedRoute path=\"/admin/reports\" component={BillingReport} />\n          {(userType === USER_TYPES.SUPER_ADMIN ||\n            userType === USER_TYPES.ADMIN) && (\n            <ProtectedRoute exact path=\"/admin/profile\" component={Profile} />\n          )}\n          {userType === USER_TYPES.STAFF && (\n            <ProtectedRoute exact path=\"/staff/profile\" component={Profile} />\n          )}\n          {(userType === USER_TYPES.SUPER_ADMIN ||\n            userType === USER_TYPES.ADMIN) && (\n            <ProtectedRoute exact path=\"/admin/visits\" component={visits} />\n          )}\n          {userType === USER_TYPES.STAFF && (\n            <ProtectedRoute exact path=\"/staff/visits\" component={visits} />\n          )}\n          {userType === USER_TYPES.STAFF && (\n            <ProtectedRoute\n              exact\n              path=\"/staff/reports\"\n              component={StaffReports}\n            />\n          )}\n          {userType === USER_TYPES.STAFF && (\n            <ProtectedRoute\n              exact\n              path=\"/service/reports\"\n              component={ServiceSummary}\n            />\n          )}\n\n          <ProtectedRoute\n            exact\n            path=\"/staff/start-visit\"\n            component={VisitStart}\n          />\n          <ProtectedRoute\n            exact\n            path=\"/staff/visit-progress\"\n            component={VisitProgress}\n          />\n          <ProtectedRoute exact path=\"/dashboard\" component={Dashboard} />\n\n          {(userType === USER_TYPES.SUPER_ADMIN ||\n            userType === USER_TYPES.ADMIN) && (\n            <ProtectedRoute exact path=\"/admin/faq\" component={FAQ} />\n          )}\n          {userType === USER_TYPES.STAFF && (\n            <ProtectedRoute exact path=\"/staff/faq\" component={FAQ} />\n          )}\n\n\n\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default withRouter(AppContainer);\n\nclass Dashboard extends React.Component {\n  componentDidMount() {\n    const { history } = this.props;\n    let authData = JSON.parse(getAuthData());\n    if (authData.userType === USER_TYPES.STAFF) {\n      history.push(\"/staff/visits\");\n    } else if (\n      authData.userType === USER_TYPES.SUPER_ADMIN ||\n      authData.userType === USER_TYPES.ADMIN\n    ) {\n      // if user is admin or super Admin\n      history.push(\"/admin/clients\");\n    } else {\n      history.push(\"/dashboard\");\n    }\n  }\n\n  render() {\n    return null;\n  }\n}\n","export default {\"v\":\"5.5.7\",\"meta\":{\"g\":\"LottieFiles AE 0.1.20\",\"a\":\"\",\"k\":\"\",\"d\":\"\",\"tc\":\"\"},\"fr\":24,\"ip\":0,\"op\":72,\"w\":1000,\"h\":1000,\"nm\":\"LOADING MATT\",\"ddd\":0,\"assets\":[],\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":1,\"nm\":\"Auto-traced LOADING MATT.mov\",\"cl\":\"mov\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[500,500,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[500,500,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"hasMask\":true,\"masksProperties\":[{\"inv\":false,\"mode\":\"f\",\"pt\":{\"a\":1,\"k\":[{\"t\":0,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":1,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":2,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":3,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":4,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":5,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":6,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":7,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":8,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":9,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":10,\"s\":[{\"i\":[[73.457,-8.46],[11.835,-14.619],[0.17,-18.491],[-12.125,-14.252],[-25.051,-1.9],[0.033,42.704]],\"o\":[[-22.87,2.634],[-11.835,14.619],[-0.17,18.491],[12.125,14.252],[70.59,5.356],[-0.033,-42.704]],\"v\":[[694,422],[641.784,449.907],[623.619,501.6],[641.394,552.743],[697,579],[803.535,498.172]],\"c\":true}],\"h\":1},{\"t\":11,\"s\":[{\"i\":[[55.811,-6.707],[10.541,-18.254],[-5.408,-20.93],[-18.244,-11.586],[-27.969,9.777],[7.617,36.382]],\"o\":[[-29.601,3.558],[-10.541,18.254],[5.408,20.93],[18.244,11.586],[46.28,-16.178],[-7.617,-36.382]],\"v\":[[694,421],[634.566,456.722],[627.645,518.502],[663.901,570.281],[734,576],[790.568,481.336]],\"c\":true}],\"h\":1},{\"t\":12,\"s\":[{\"i\":[[23.686,-1.529],[8.574,-4.31],[5.731,-5.793],[-45.305,-22.249],[-7.504,73.254],[15.797,15.864]],\"o\":[[-14.973,0.967],[-8.574,4.31],[-49.724,50.259],[45.305,22.249],[2.875,-28.073],[-15.797,-15.864]],\"v\":[[700,419],[665.568,427.381],[645,443],[671.579,568.634],[784,509],[761.921,441.798]],\"c\":true}],\"h\":1},{\"t\":13,\"s\":[{\"i\":[[56.682,-6.06],[12.002,-16.135],[-0.899,-20.083],[-13.577,-14.532],[-26.03,0.52],[1.096,42.505]],\"o\":[[-25.127,2.687],[-12.002,16.135],[0.899,20.083],[13.577,14.532],[52.068,-1.039],[-1.096,-42.505]],\"v\":[[694,418],[638.363,448.607],[621.764,505.309],[643.534,559.607],[703,583],[780.063,495.175]],\"c\":true}],\"h\":1},{\"t\":14,\"s\":[{\"i\":[[55.869,-9.272],[10.765,-16.896],[-2.684,-20.496],[-15.233,-13.727],[-26.879,3.412],[4.551,41.511]],\"o\":[[-25.117,2.927],[-10.765,16.896],[2.685,20.496],[15.233,13.727],[49.072,-6.229],[-4.551,-41.511]],\"v\":[[685,419],[631.401,451.328],[619.505,510.009],[646.607,563.935],[710,582],[776.206,488.875]],\"c\":true}],\"h\":1},{\"t\":15,\"s\":[{\"i\":[[69.833,-2.854],[19.708,-15.468],[-0.932,-18.349],[-13.803,-13.577],[-9.111,-4.344],[-10.473,46.109]],\"o\":[[-19.1,0.78],[-19.708,15.468],[0.678,13.35],[13.803,13.577],[59.942,28.581],[10.473,-46.109]],\"v\":[[691,420],[627.476,447.324],[594,501],[620.175,543.754],[659,573],[772.332,515.795]],\"c\":true}],\"h\":1},{\"t\":16,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":17,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":18,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":19,\"s\":[{\"i\":[[65.239,-8.281],[11.118,-22.723],[-53.019,36.554],[-37.496,-27.767],[128.955,12.014],[34.376,-0.612]],\"o\":[[-29.862,3.79],[-54.272,110.917],[45.269,-31.211],[106.562,78.915],[-56.172,-5.233],[-40.217,0.716]],\"v\":[[492,422],[429,466],[576,554],[653,563],[708,422],[614,472]],\"c\":true}],\"h\":1},{\"t\":20,\"s\":[{\"i\":[[55.447,-4.593],[12.301,-15.859],[-0.515,-20.104],[-13.309,-14.818],[-26.08,0],[1.021,42.398]],\"o\":[[-25.141,2.082],[-12.301,15.859],[0.515,20.104],[13.309,14.818],[53.529,0],[-1.02,-42.398]],\"v\":[[496,418],[439.842,447.295],[422.169,503.624],[442.911,558.39],[502,583],[580.732,497.055]],\"c\":true}],\"h\":1},{\"t\":21,\"s\":[{\"i\":[[69.993,-7.858],[12.145,-12.621],[1.256,-16.768],[-8.642,-15.138],[-17.548,-7.731],[-7.953,47.452]],\"o\":[[-24.025,2.697],[-12.145,12.621],[-1.256,16.768],[8.642,15.138],[61.179,26.952],[7.953,-47.452]],\"v\":[[486,420],[431.993,444.422],[412.141,489.95],[423.468,539.253],[463,575],[572.879,511.82]],\"c\":true}],\"h\":1},{\"t\":22,\"s\":[{\"i\":[[44.622,-5.363],[-111.694,34.049],[-19.536,1.346],[-39.472,-2.995],[115.501,-8.763],[46.16,4.305]],\"o\":[[-102.452,12.312],[18.034,-5.497],[40.295,-2.777],[110.922,8.416],[-41.996,3.186],[-30.098,-2.807]],\"v\":[[290,423],[324,575],[375,549],[491,578],[491,422],[374,451]],\"c\":true}],\"h\":1},{\"t\":23,\"s\":[{\"i\":[[49.195,-5.912],[-105.695,9.847],[-48.343,-8.135],[-18.634,-4.094],[121.475,-23.442],[22.017,-3.271]],\"o\":[[-91.849,11.038],[40.674,-3.79],[22.37,3.764],[123.114,27.052],[-22.999,4.438],[-53.781,7.99]],\"v\":[[290,423],[308,578],[436,558],[483,576],[484,423],[435,442]],\"c\":true}],\"h\":1},{\"t\":24,\"s\":[{\"i\":[[54.125,-5.303],[-5.174,-50.116],[-57.016,29.403],[-42.696,-22.381],[142.783,-69.864],[22.879,-0.465]],\"o\":[[-43.056,4.219],[8.031,77.791],[53.132,-27.401],[143.104,75.014],[-18.264,8.936],[-38.214,0.777]],\"v\":[[296,422],[222,509],[376,558],[464,570],[466,429],[417,464]],\"c\":true}],\"h\":1},{\"t\":25,\"s\":[{\"i\":[[6.07,-0.649],[12.697,-24.463],[-19.041,-27.128],[-29.757,39.076],[62.118,24.813],[6.698,0.749]],\"o\":[[-28.255,3.021],[-12.697,24.463],[40.091,57.115],[29.757,-39.075],[-4.139,-1.654],[-6.698,-0.749]],\"v\":[[296,419],[230.528,464.92],[236,547],[361.156,546.445],[333,423],[315.948,419.273]],\"c\":true}],\"h\":1},{\"t\":26,\"s\":[{\"i\":[[58.079,-4.552],[12.106,-15.729],[-0.557,-20.05],[-13.009,-14.921],[-25.252,-0.343],[-0.365,42.563]],\"o\":[[-24.979,1.957],[-12.106,15.729],[0.557,20.05],[13.009,14.921],[51.62,0.701],[0.365,-42.563]],\"v\":[[292,418],[236.425,446.892],[219.153,502.922],[239.555,557.741],[297,583],[376.774,497.612]],\"c\":true}],\"h\":1},{\"t\":27,\"s\":[{\"i\":[[68.095,-3.624],[13.164,-12.348],[1.878,-17.096],[-8.85,-15.575],[-19.02,-7.785],[-8.697,45.827]],\"o\":[[-25.009,1.331],[-13.164,12.348],[-1.878,17.096],[8.85,15.575],[60.306,24.685],[8.697,-45.827]],\"v\":[[290,420],[232.879,442.086],[210.456,487.819],[221.055,538.392],[263,575],[372.801,513.296]],\"c\":true}],\"h\":1},{\"t\":28,\"s\":[{\"i\":[[47.445,-3.94],[0.336,0.007],[0.329,0],[-13.554,-44.141],[-67.134,24.418],[7.891,35.256]],\"o\":[[-0.327,0.027],[-0.336,-0.007],[-81.348,-0.144],[13.554,44.141],[41.009,-14.916],[-7.891,-35.256]],\"v\":[[289,422],[288.001,422.021],[287,422],[195.639,516.205],[327,574],[374.34,483.858]],\"c\":true}],\"h\":1},{\"t\":29,\"s\":[{\"i\":[[57.684,-6.476],[24.367,-11.096],[-0.459,-30.698],[-25.141,-11.698],[-25.012,-1.792],[0.256,41.367]],\"o\":[[-25.993,2.918],[-24.367,11.096],[0.425,28.418],[25.141,11.698],[55.709,3.99],[-0.256,-41.367]],\"v\":[[289,423],[207.661,441.165],[166,501],[210.559,559.469],[292,578],[375.545,498.636]],\"c\":true}],\"h\":1},{\"t\":30,\"s\":[{\"i\":[[114.997,-13.82],[18.478,-3.345],[12.388,-4.972],[0.853,-23.435],[-23.492,-10.398],[-23.074,-2.15]],\"o\":[[-13.698,1.646],[-18.478,3.345],[-22.08,8.863],[-0.853,23.435],[26.75,11.84],[109.628,10.213]],\"v\":[[290,423],[239.017,430.505],[190,443],[154.821,498.349],[188,556],[292,578]],\"c\":true}],\"h\":1},{\"t\":31,\"s\":[{\"i\":[[117.055,-14.067],[19.891,-3.109],[15.01,-4.95],[1.171,-24.177],[-25.777,-10.347],[-20.893,-3.271]],\"o\":[[-13.425,1.613],[-19.891,3.109],[-24.092,7.945],[-1.171,24.177],[26.562,10.662],[112.409,17.598]],\"v\":[[290,423],[237.188,429.998],[182,442],[143.098,497.698],[179,557],[287,577]],\"c\":true}],\"h\":1},{\"t\":32,\"s\":[{\"i\":[[120.725,-14.508],[7.947,-3.798],[9.988,-1.339],[22.447,-9.735],[-14.646,-38.729],[-43.321,-11.277]],\"o\":[[-12.225,1.469],[-7.947,3.798],[-24.86,3.331],[-22.446,9.735],[16.557,43.781],[116.478,30.322]],\"v\":[[290,423],[261.322,432.098],[236,441],[156.37,454.952],[136,522],[280,576]],\"c\":true}],\"h\":1},{\"t\":33,\"s\":[{\"i\":[[120.366,-14.465],[7.942,-4.197],[10.249,-1.651],[23.193,-9.31],[-63.966,-4.99],[-32.307,-9.304]],\"o\":[[-12.983,1.56],[-7.942,4.197],[-29.691,4.783],[-56.143,22.536],[42.855,3.343],[118.395,34.097]],\"v\":[[290,423],[260.449,432.932],[235,443],[164,443],[182,561],[278,575]],\"c\":true}],\"h\":1},{\"t\":34,\"s\":[{\"i\":[[120.966,-14.537],[22.291,-2.392],[14.033,-0.876],[-52.604,-21.115],[-25.269,-3.225],[-15.6,-4.755]],\"o\":[[-26.986,3.243],[-22.72,2.439],[-69.145,4.317],[25.439,10.211],[19.159,2.445],[119.897,36.549]],\"v\":[[290,423],[231,445],[179,439],[160,557],[232,555],[276,575]],\"c\":true}],\"h\":1},{\"t\":35,\"s\":[{\"i\":[[120.663,-14.501],[22.518,-2.21],[18.198,-1.589],[-70.92,-5.13],[-24.952,-2.941],[-16.006,-4.879]],\"o\":[[-27.407,3.294],[-22.305,2.189],[-72.959,6.369],[21.632,1.565],[19.505,2.299],[120.094,36.609]],\"v\":[[290,423],[230,446],[175,439],[176,561],[231,554],[276,575]],\"c\":true}],\"h\":1},{\"t\":36,\"s\":[{\"i\":[[120.627,-14.497],[22.299,-2.736],[16.668,-0.971],[-73.738,-3.123],[-25.711,-3.539],[-15.901,-4.847]],\"o\":[[-27.704,3.329],[-22.224,2.727],[-74.877,4.362],[21.182,0.897],[19.067,2.624],[120.105,36.613]],\"v\":[[290,423],[231,446],[176,439],[177,561],[232,554],[276,575]],\"c\":true}],\"h\":1},{\"t\":37,\"s\":[{\"i\":[[120.669,-14.502],[21.944,-2.606],[20.142,-1.571],[-70.246,-4.385],[-22.092,-3.059],[-15.803,-4.817]],\"o\":[[-27.521,3.307],[-26.409,3.136],[-73.971,5.77],[20.703,1.292],[18.864,2.612],[120.087,36.607]],\"v\":[[290,423],[231,446],[175,439],[176,561],[232,554],[276,575]],\"c\":true}],\"h\":1},{\"t\":38,\"s\":[{\"i\":[[-64.33,23.393],[-6.192,-3.802],[-7.686,-2.343],[124.679,-12.872],[19.926,-2.725],[20.677,-48.292]],\"o\":[[9.544,2.45],[6.192,3.802],[118.422,36.1],[-23.893,2.467],[-50.676,6.931],[-26.964,62.976]],\"v\":[[234,555],[256.394,565.08],[276,575],[291,422],[233,445],[126,475]],\"c\":true}],\"h\":1},{\"t\":39,\"s\":[{\"i\":[[121.377,-14.587],[20.202,-2.781],[24.916,-10.001],[-49.411,-21.87],[-27.325,-3.761],[-14.814,-4.516]],\"o\":[[-26.002,3.125],[-33.005,4.543],[-44.976,18.054],[25.536,11.303],[17.894,2.463],[119.718,36.495]],\"v\":[[290,423],[234,444],[162,443],[160,556],[234,556],[276,575]],\"c\":true}],\"h\":1},{\"t\":40,\"s\":[{\"i\":[[121.044,-14.547],[8.773,-4.407],[11.046,-0.827],[-27.518,-76.176],[-52.493,-4.626],[-16.389,-4.72]],\"o\":[[-12.863,1.546],[-8.773,4.407],[-49.803,3.726],[16.601,45.956],[19.949,1.758],[118.005,33.984]],\"v\":[[290,423],[259.137,433.54],[231,443],[132,521],[232,557],[278,575]],\"c\":true}],\"h\":1},{\"t\":41,\"s\":[{\"i\":[[102.967,-12.374],[19.424,-3.602],[20.223,-9.036],[-45.308,-20.244],[-23.546,-2.431],[-31.131,3.214]],\"o\":[[-22.991,2.763],[-22.083,4.095],[-46.751,20.889],[20.079,8.971],[28.636,2.956],[96.803,-9.995]],\"v\":[[290,423],[239,440],[170,444],[170,556],[234,559],[309,578]],\"c\":true}],\"h\":1},{\"t\":42,\"s\":[{\"i\":[[116.022,-13.943],[19.667,-3.129],[14.7,-4.847],[-0.021,-25.236],[-27.796,-7.851],[-24.978,-3.91]],\"o\":[[-13.634,1.639],[-19.667,3.129],[-24.88,8.205],[0.021,25.236],[34.9,9.858],[114.205,17.879]],\"v\":[[290,423],[237.3,430.093],[183,442],[144.993,500.765],[186,559],[287,577]],\"c\":true}],\"h\":1},{\"t\":43,\"s\":[{\"i\":[[57.685,-6.933],[30.23,-13.69],[-14.383,-39.817],[-26.655,-8.803],[-23.296,-2.17],[-0.391,41.744]],\"o\":[[-28.465,3.421],[-30.23,13.69],[7.086,19.615],[26.655,8.803],[54.12,5.042],[0.391,-41.744]],\"v\":[[290,423],[190.364,444.703],[155,521],[211.343,562.584],[292,578],[374.854,499.082]],\"c\":true}],\"h\":1},{\"t\":44,\"s\":[{\"i\":[[53.091,-5.677],[27.736,-15.817],[-18.413,-37.688],[-27.578,-9.389],[-22.007,2.272],[3.442,38.934]],\"o\":[[-28.468,3.043],[-27.736,15.817],[7.68,15.718],[27.578,9.388],[47.858,-4.941],[-3.442,-38.934]],\"v\":[[290,423],[194.339,449.016],[169,527],[228.254,565.993],[309,578],[375.212,492.537]],\"c\":true}],\"h\":1},{\"t\":45,\"s\":[{\"i\":[[62.137,-7.156],[16.471,-14.531],[-1.169,-17.74],[-17.43,-13.714],[-32.314,-2.452],[-0.475,41.625]],\"o\":[[-35.488,4.087],[-16.471,14.531],[1.169,17.74],[17.43,13.714],[57.238,4.342],[0.475,-41.625]],\"v\":[[284,423],[206.406,452.736],[183.797,502.953],[212.04,551.943],[287,578],[375.031,498.39]],\"c\":true}],\"h\":1},{\"t\":46,\"s\":[{\"i\":[[56.487,-2.652],[14.748,-15.124],[-0.798,-19.468],[-15.647,-14.484],[-29.8,-0.175],[0.4,40.492]],\"o\":[[-30.991,1.455],[-14.748,15.124],[0.798,19.468],[15.647,14.484],[54.089,0.317],[-0.401,-40.492]],\"v\":[[290,421],[221.565,448.201],[200.813,502.42],[225.655,555.679],[294,580],[374.932,498.749]],\"c\":true}],\"h\":1},{\"t\":47,\"s\":[{\"i\":[[72.563,-12.384],[10.806,-12.326],[1.861,-16.543],[-7.251,-15.196],[-16.528,-8.284],[-7.788,49.417]],\"o\":[[-19.586,2.545],[-10.806,12.326],[-1.861,16.543],[7.251,15.196],[62.411,31.284],[7.788,-49.417]],\"v\":[[282,420],[236.371,443.697],[217.331,488.39],[225.374,537.389],[261,574],[372.731,511.175]],\"c\":true}],\"h\":1},{\"t\":48,\"s\":[{\"i\":[[56.973,-6.396],[11.52,-16.734],[-2.031,-20.47],[-14.66,-14.126],[-26.368,2.3],[2.96,41.719]],\"o\":[[-25.993,2.918],[-11.52,16.734],[2.031,20.47],[14.66,14.126],[51.814,-4.519],[-2.96,-41.719]],\"v\":[[290,418],[233.962,449.999],[219.959,508.326],[245.227,562.741],[307,583],[380.09,492.314]],\"c\":true}],\"h\":1},{\"t\":49,\"s\":[{\"i\":[[50.875,-5.855],[9.659,-19.503],[-6.998,-22.15],[-19.283,-10.697],[-27.195,14.856],[7.942,35.119]],\"o\":[[-30.689,2.757],[-9.659,19.503],[6.998,22.15],[19.283,10.697],[33.644,-18.378],[-7.942,-35.119]],\"v\":[[292,420],[232.572,456.915],[229.674,522.919],[270.189,575.713],[341,573],[379.889,478.325]],\"c\":true}],\"h\":1},{\"t\":50,\"s\":[{\"i\":[[51.535,-4.775],[-76.245,-27.732],[-45.672,-2.863],[-15.095,-7.386],[140.676,-68.832],[22.958,-0.799]],\"o\":[[-86.142,7.981],[65.975,23.996],[22.267,1.396],[143.185,70.06],[-18.399,9.002],[-38.486,1.339]],\"v\":[[297,422],[273,574],[419,538],[466,571],[466,429],[418,462]],\"c\":true}],\"h\":1},{\"t\":51,\"s\":[{\"i\":[[47.46,-5.704],[-105.513,9.831],[-48.246,-4.452],[-18.859,-4.4],[122.075,-22.007],[25.487,-2.005]],\"o\":[[-92.151,11.074],[39.468,-3.677],[23.927,2.208],[122.818,28.654],[-25.19,4.541],[-53.003,4.17]],\"v\":[[290,423],[308,578],[432,557],[482,576],[485,423],[431,443]],\"c\":true}],\"h\":1},{\"t\":52,\"s\":[{\"i\":[[42.361,-5.091],[-111.888,34.108],[-19.309,2.481],[-41.962,-2.67],[111.484,-7.815],[46.799,6.932]],\"o\":[[-102.163,12.278],[16.978,-5.176],[41.536,-5.337],[108.79,6.922],[-41.174,2.886],[-28.015,-4.15]],\"v\":[[290,423],[324,575],[371,551],[494,578],[493,422],[370,449]],\"c\":true}],\"h\":1},{\"t\":53,\"s\":[{\"i\":[[69.682,-3.708],[18.924,-15.26],[-0.869,-18.942],[-13.644,-13.546],[-9.765,-4.425],[-9.704,46.209]],\"o\":[[-19.173,1.02],[-18.924,15.26],[0.66,14.391],[13.644,13.546],[59.865,27.127],[9.704,-46.209]],\"v\":[[490,420],[427.968,447.059],[396,501],[421.671,544.975],[461,574],[572.661,514.564]],\"c\":true}],\"h\":1},{\"t\":54,\"s\":[{\"i\":[[58.738,-6.595],[11.935,-15.717],[-0.568,-19.716],[-12.844,-14.766],[-24.893,-0.867],[0.066,43.369]],\"o\":[[-24.665,2.769],[-11.935,15.717],[0.568,19.716],[12.844,14.766],[54.001,1.881],[-0.066,-43.369]],\"v\":[[493,418],[438.156,447.966],[421.163,503.353],[441.338,557.313],[498,583],[580.055,496.965]],\"c\":true}],\"h\":1},{\"t\":55,\"s\":[{\"i\":[[55.016,-2.99],[-107.506,1.66],[-32.469,-1.603],[-59.19,6.111],[107.973,-11.147],[27.46,-0.111]],\"o\":[[-102.565,5.574],[44.755,-0.691],[38.731,1.912],[93.289,-9.632],[-39.419,4.07],[-35.936,0.145]],\"v\":[[501,421],[507,580],[614,526],[709,578],[691,422],[613,474]],\"c\":true}],\"h\":1},{\"t\":56,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":57,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":58,\"s\":[{\"i\":[[117.905,-10.422],[35.167,1.837],[17.549,8.587],[-142.608,69.778],[-22.846,0.548],[-33.11,-4.904]],\"o\":[[-46.242,4.087],[-24.154,-1.262],[-140.144,-68.572],[16.353,-8.002],[31.255,-0.749],[120.834,17.898]],\"v\":[[688,422],[582,463],[534,429],[534,571],[583,537],[681,578]],\"c\":true}],\"h\":1},{\"t\":59,\"s\":[{\"i\":[[70.924,-9.977],[11.283,-12.935],[1.247,-16.927],[-8.41,-15.028],[-17.686,-7.239],[-6.836,47.796]],\"o\":[[-21.699,3.053],[-11.283,12.935],[-1.247,16.927],[8.41,15.028],[61.581,25.206],[6.836,-47.796]],\"v\":[[683,420],[633.621,445.454],[614.922,491.72],[625.761,541.126],[665,576],[773.378,509.421]],\"c\":true}],\"h\":1},{\"t\":60,\"s\":[{\"i\":[[57.394,-6.443],[11.678,-16.593],[-1.71,-20.368],[-14.408,-14.216],[-26.415,1.863],[1.821,41.985]],\"o\":[[-25.756,2.892],[-11.678,16.593],[1.71,20.368],[14.408,14.216],[49.678,-3.504],[-1.821,-41.985]],\"v\":[[690,418],[634.022,449.709],[619.243,507.632],[643.593,561.989],[705,583],[777.803,493.04]],\"c\":true}],\"h\":1},{\"t\":61,\"s\":[{\"i\":[[26.779,-3.218],[13.001,-15.896],[-3.332,-27.731],[-40.37,3.349],[6.19,58.123],[15.285,13.42]],\"o\":[[-22.327,2.683],[-13.002,15.896],[5.711,47.518],[40.37,-3.349],[-2.081,-19.538],[-15.285,-13.42]],\"v\":[[693,419],[638.256,447.214],[622,513],[711.426,580.231],[783,489],[756.523,436.933]],\"c\":true}],\"h\":1},{\"t\":62,\"s\":[{\"i\":[[55.852,-3.254],[12.555,-15.517],[-1.262,-19.823],[-13.936,-14.519],[-25.468,0.393],[1.793,40.843]],\"o\":[[-27.515,1.603],[-12.555,15.517],[1.262,19.823],[13.936,14.519],[57.026,-0.88],[-1.793,-40.843]],\"v\":[[701,420],[641.179,448.083],[624.524,503.494],[647.607,557.409],[707,581],[788.659,497.399]],\"c\":true}],\"h\":1},{\"t\":63,\"s\":[{\"i\":[[63.418,-7.621],[11.08,-16.685],[-3.145,-19.879],[-16.277,-12.755],[-28.317,4.688],[6.671,38.376]],\"o\":[[-26.396,3.172],[-11.08,16.685],[3.145,19.879],[16.277,12.755],[61.101,-10.116],[-6.671,-38.376]],\"v\":[[693,422],[637.06,454.365],[625.43,511.791],[654.835,563.321],[722,578],[800.889,486.697]],\"c\":true}],\"h\":1},{\"t\":64,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":65,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":66,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":67,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":68,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":69,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":70,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":71,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1}],\"ix\":1},\"o\":{\"a\":0,\"k\":100,\"ix\":3},\"x\":{\"a\":0,\"k\":0,\"ix\":4},\"nm\":\"Mask 1\"},{\"inv\":false,\"mode\":\"f\",\"pt\":{\"a\":1,\"k\":[{\"t\":0,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":1,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":2,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":3,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":4,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":5,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":6,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":7,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":8,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":9,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":10,\"s\":[{\"i\":[[-58.234,1.348],[0.24,18.232],[2.309,12.679]],\"o\":[[5.271,-11.392],[-0.24,-18.232],[-57.774,-6.157]],\"v\":[[686,549],[692.685,501.466],[688,452]],\"c\":true}],\"h\":1},{\"t\":11,\"s\":[{\"i\":[[-41.194,6.929],[0.124,13.088],[1.12,9.203]],\"o\":[[2.618,-8.446],[-0.124,-13.088],[-42.046,-8.007]],\"v\":[[674,535],[677.304,500.568],[675,465]],\"c\":true}],\"h\":1},{\"t\":12,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":13,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":14,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":15,\"s\":[{\"i\":[[32.05,-7.385],[0.243,-11.591],[-4.814,-5.818]],\"o\":[[-0.841,7.817],[-0.243,11.591],[33.294,-1.319]],\"v\":[[730,471],[727.259,502.499],[733,531]],\"c\":true}],\"h\":1},{\"t\":16,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":17,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":18,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":19,\"s\":[{\"i\":[[-71.109,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.26,7.36]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":20,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":21,\"s\":[{\"i\":[[-7.794,-2.656],[0,7.969],[7.263,1.063]],\"o\":[[7.263,-1.063],[0,-7.969],[-7.794,2.656]],\"v\":[[542,517],[552.894,500],[542,483]],\"c\":true}],\"h\":1},{\"t\":22,\"s\":[{\"i\":[[-51.948,94.96],[10.488,17.228],[21.235,-2.193]],\"o\":[[12.188,-22.28],[-10.488,-17.228],[-118.962,12.287]],\"v\":[[346,532],[345.567,469.145],[295,443]],\"c\":true}],\"h\":1},{\"t\":23,\"s\":[{\"i\":[[-100.393,50.967],[0,18.798],[5.524,11.403]],\"o\":[[5.524,-11.403],[0,-18.798],[-100.394,-50.967]],\"v\":[[323,549],[331.287,500],[323,451]],\"c\":true}],\"h\":1},{\"t\":24,\"s\":[{\"i\":[[-64.127,0],[0.996,29.75],[38.734,-4]],\"o\":[[37.72,0],[-0.997,-29.75],[-74.194,7.663]],\"v\":[[500,558],[554.841,497.5],[495,443]],\"c\":true}],\"h\":1},{\"t\":25,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":26,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":27,\"s\":[{\"i\":[[32.921,-5.438],[0,-10.989],[-1.886,-7.023]],\"o\":[[-1.886,7.023],[0,10.989],[32.921,5.438]],\"v\":[[331,471],[328.171,500],[331,529]],\"c\":true}],\"h\":1},{\"t\":28,\"s\":[{\"i\":[[57.79,-14.039],[-1.247,-23.366],[-1.506,-7.229]],\"o\":[[-9.494,2.306],[1.247,23.366],[66.507,14.448]],\"v\":[[311,448],[301.25,495.808],[308,551]],\"c\":true}],\"h\":1},{\"t\":29,\"s\":[{\"i\":[[-13.506,-13.909],[-9.618,35.019],[50.427,-8.408]],\"o\":[[23.953,24.668],[9.618,-35.019],[-21.492,3.583]],\"v\":[[290,551],[351.785,509.695],[302,444]],\"c\":true}],\"h\":1},{\"t\":30,\"s\":[{\"i\":[[-17.057,-24.706],[-13.841,36.713],[59.469,-7.94]],\"o\":[[24.103,34.913],[13.841,-36.713],[-28.002,3.739]],\"v\":[[277,547],[349.679,515.229],[297,443]],\"c\":true}],\"h\":1},{\"t\":31,\"s\":[{\"i\":[[-34.971,-17.189],[-6.285,33.815],[49.066,-5.618]],\"o\":[[37.924,18.641],[6.285,-33.815],[-38.299,4.385]],\"v\":[[281,554],[353.243,508.267],[295,443]],\"c\":true}],\"h\":1},{\"t\":32,\"s\":[{\"i\":[[-26.407,-31.138],[-14.312,36.171],[60.036,-6.201]],\"o\":[[31.788,37.484],[14.312,-36.171],[-40.338,4.166]],\"v\":[[266,544],[349.368,516.962],[295,443]],\"c\":true}],\"h\":1},{\"t\":33,\"s\":[{\"i\":[[-24.771,-39.121],[-17.364,36.882],[63.216,-6.529]],\"o\":[[29.758,46.997],[17.364,-36.882],[-39.496,4.079]],\"v\":[[259,537],[346.73,520.351],[295,443]],\"c\":true}],\"h\":1},{\"t\":34,\"s\":[{\"i\":[[-65.023,0.888],[1.317,29.603],[37.937,-3.918]],\"o\":[[37.204,-0.508],[-1.317,-29.603],[-67.039,6.924]],\"v\":[[301,558],[354.355,497.18],[295,443]],\"c\":true}],\"h\":1},{\"t\":35,\"s\":[{\"i\":[[114.624,-80.108],[0,-16.673],[-9.177,-8.655]],\"o\":[[-9.177,8.655],[0,16.673],[119.882,78.46]],\"v\":[[262,458],[248.235,500],[262,542]],\"c\":true}],\"h\":1},{\"t\":36,\"s\":[{\"i\":[[114.624,-80.108],[0,-16.702],[-9.192,-8.596]],\"o\":[[-9.192,8.596],[0,16.702],[119.882,78.46]],\"v\":[[262,458],[248.211,500],[262,542]],\"c\":true}],\"h\":1},{\"t\":37,\"s\":[{\"i\":[[114.624,-80.108],[0,-16.702],[-9.192,-8.596]],\"o\":[[-9.192,8.596],[0,16.702],[119.882,78.46]],\"v\":[[262,458],[248.211,500],[262,542]],\"c\":true}],\"h\":1},{\"t\":38,\"s\":[{\"i\":[[115.766,-76.59],[0,-17.09],[-9.743,-8.821]],\"o\":[[-9.743,8.821],[0,17.09],[115.764,76.59]],\"v\":[[263,457],[248.385,500],[263,543]],\"c\":true}],\"h\":1},{\"t\":39,\"s\":[{\"i\":[[-63.992,0],[1.073,29.737],[38.226,-3.948]],\"o\":[[37.516,0],[-1.073,-29.737],[-65.176,6.732]],\"v\":[[300,558],[354.306,497.539],[295,443]],\"c\":true}],\"h\":1},{\"t\":40,\"s\":[{\"i\":[[-31.87,-31.195],[-12.358,35.807],[56.582,-5.844]],\"o\":[[36.15,35.385],[12.358,-35.807],[-41.815,4.319]],\"v\":[[266,545],[350.049,516.156],[295,443]],\"c\":true}],\"h\":1},{\"t\":41,\"s\":[{\"i\":[[-19.188,-38.107],[-18.954,37.063],[66.668,-6.886]],\"o\":[[23.851,47.368],[18.954,-37.063],[-36.413,3.761]],\"v\":[[262,537],[346.389,520.361],[295,443]],\"c\":true}],\"h\":1},{\"t\":42,\"s\":[{\"i\":[[-31.574,-18.756],[-7.423,34.429],[50.599,-5.793]],\"o\":[[36.905,21.923],[7.423,-34.429],[-36.533,4.183]],\"v\":[[279,553],[352.628,510.097],[295,443]],\"c\":true}],\"h\":1},{\"t\":43,\"s\":[{\"i\":[[-14.754,-27.448],[-15.915,36.963],[62.552,-7.982]],\"o\":[[20.892,38.869],[15.915,-36.963],[-28.785,3.673]],\"v\":[[275,544],[348.583,516.664],[297,443]],\"c\":true}],\"h\":1},{\"t\":44,\"s\":[{\"i\":[[-20.07,-9.672],[-3.695,34.112],[43.165,-8.877]],\"o\":[[34.383,16.57],[3.695,-34.112],[-22.59,4.646]],\"v\":[[293,555],[354.161,505.27],[299,444]],\"c\":true}],\"h\":1},{\"t\":45,\"s\":[{\"i\":[[-18.161,-12.948],[-3.116,35.598],[42.903,-20.116]],\"o\":[[28.44,20.276],[3.116,-35.598],[4.922,20.123]],\"v\":[[301,552],[353.507,501.12],[299,450]],\"c\":true}],\"h\":1},{\"t\":46,\"s\":[{\"i\":[[44.416,-10.233],[-0.766,-20.884],[-3.213,-4.786]],\"o\":[[-7.278,1.677],[0.766,20.884],[52.615,6.12]],\"v\":[[321,455],[312.632,497.668],[320,545]],\"c\":true}],\"h\":1},{\"t\":47,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":48,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":49,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":50,\"s\":[{\"i\":[[-18.417,-41.871],[-21.646,37.648],[67.141,-6.935]],\"o\":[[27.559,62.657],[21.646,-37.648],[-34.646,3.578]],\"v\":[[448,524],[542.525,525.291],[495,443]],\"c\":true}],\"h\":1},{\"t\":51,\"s\":[{\"i\":[[0,-30.863],[-20.439,42.672],[38.076,-3.787]],\"o\":[[0,38.219],[15.991,-33.385],[-31.917,3.174]],\"v\":[[242,500],[327,542],[295,443]],\"c\":true}],\"h\":1},{\"t\":52,\"s\":[{\"i\":[[-56.161,88.075],[10.139,18.216],[22.105,-2.283]],\"o\":[[13.659,-21.42],[-10.138,-18.216],[-115.27,11.906]],\"v\":[[344,535],[346.323,471.222],[295,443]],\"c\":true}],\"h\":1},{\"t\":53,\"s\":[{\"i\":[[29.266,1.755],[-0.077,-12.407],[-3.249,-5.564]],\"o\":[[-4.555,4.81],[0.077,12.407],[30.287,-0.628]],\"v\":[[534,470],[527.647,499.434],[533,530]],\"c\":true}],\"h\":1},{\"t\":54,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":55,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":56,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":57,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":58,\"s\":[{\"i\":[[-43.71,115.974],[11.997,14.58],[18.529,-1.914]],\"o\":[[8.515,-22.594],[-11.997,-14.58],[-126.982,13.115]],\"v\":[[553,522],[544.283,464.119],[495,443]],\"c\":true}],\"h\":1},{\"t\":59,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":60,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":61,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":62,\"s\":[{\"i\":[[-20.451,-8.834],[6.817,2.945],[3.039,-10.24]],\"o\":[[9.118,-30.719],[-6.817,-2.945],[-3.039,10.24]],\"v\":[[667,528],[665.524,481.152],[645.811,495.742]],\"c\":true}],\"h\":1},{\"t\":63,\"s\":[{\"i\":[[-55.656,0.561],[0.238,17.91],[2.301,12.32]],\"o\":[[5.253,-11.039],[-0.238,-17.91],[-55.268,-5.394]],\"v\":[[684,548],[690.665,501.46],[686,453]],\"c\":true}],\"h\":1},{\"t\":64,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":65,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":66,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":67,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":68,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":69,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":70,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":71,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1}],\"ix\":1},\"o\":{\"a\":0,\"k\":100,\"ix\":3},\"x\":{\"a\":0,\"k\":0,\"ix\":4},\"nm\":\"Mask 2\"},{\"inv\":false,\"mode\":\"f\",\"pt\":{\"a\":1,\"k\":[{\"t\":0,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":1,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":2,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":3,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":4,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":5,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":6,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":7,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":8,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":9,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":10,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":11,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":12,\"s\":[{\"i\":[[-35.562,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.521,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[342.395,538.483],[354.879,497.135],[338.924,457.47],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":13,\"s\":[{\"i\":[[-35.562,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.521,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[342.395,538.483],[354.879,497.135],[338.924,457.47],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":14,\"s\":[{\"i\":[[-35.562,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.521,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[342.395,538.483],[354.879,497.135],[338.924,457.47],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":15,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":16,\"s\":[{\"i\":[[50.472,-6.066],[-107.625,51.473],[-18.639,1.378],[-39.491,-3.444],[123.235,-12.025],[39.231,2.9]],\"o\":[[-112.744,13.549],[15.972,-7.639],[36.519,-2.7],[120.57,10.515],[-38.77,3.783],[-32.651,-2.414]],\"v\":[[490,423],[533,571],[579,542],[685,578],[684,422],[579,458]],\"c\":true}],\"h\":1},{\"t\":17,\"s\":[{\"i\":[[36.903,-4.435],[-109.19,31.446],[-17.487,2.146],[-37.347,-3.066],[112.216,-10.455],[51.976,7.154]],\"o\":[[-104.121,12.513],[16.92,-4.873],[43.919,-5.389],[110.254,9.051],[-36.001,3.354],[-26.311,-3.622]],\"v\":[[490,423],[522,575],[566,557],[693,578],[692,422],[565,443]],\"c\":true}],\"h\":1},{\"t\":18,\"s\":[{\"i\":[[49.272,-5.921],[-27.194,-55.576],[-74.426,-9.125],[-17.316,-4.987],[28.483,59.555],[45.442,-4.662]],\"o\":[[-42.37,5.092],[41.07,83.937],[19.919,2.442],[68.22,19.647],[-34.099,-71.298],[-48.362,4.961]],\"v\":[[490,423],[429,534],[631,554],[678,575],[771,467],[630,446]],\"c\":true}],\"h\":1},{\"t\":19,\"s\":[{\"i\":[[-27.22,0.804],[-0.841,7.478],[0.196,8.391],[0.563,7.967],[0.263,6.207],[0.965,-23.977]],\"o\":[[2.545,-5.229],[0.841,-7.478],[-0.196,-8.391],[-0.563,-7.967],[-26.361,-5.105],[-0.965,23.977]],\"v\":[[482,546],[486.912,526.605],[487.712,502.467],[486.406,477.596],[485,456],[443.314,497.775]],\"c\":true}],\"h\":1},{\"t\":20,\"s\":[{\"i\":[[-35.562,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.521,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[342.395,538.483],[354.879,497.135],[338.924,457.47],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":21,\"s\":[{\"i\":[[52.748,-6.339],[10.801,-15.909],[-2.21,-19.287],[-14.281,-13.11],[-25.412,2.624],[3.642,39.088]],\"o\":[[-24.754,2.975],[-10.801,15.909],[2.21,19.287],[14.281,13.11],[48.315,-4.988],[-3.642,-39.088]],\"v\":[[290,423],[236.903,453.714],[224.252,508.898],[249.225,559.882],[309,578],[375.297,492.004]],\"c\":true}],\"h\":1},{\"t\":22,\"s\":[{\"i\":[[-7.98,-3.171],[-9.975,10.331],[-1.429,16.427],[8.885,11.633],[20.969,-4.053],[0.394,-25.823]],\"o\":[[16.752,6.656],[9.975,-10.331],[1.429,-16.427],[-8.885,-11.633],[-9.405,3.538],[-0.394,25.823]],\"v\":[[497,555],[537.533,546.765],[555.082,503.905],[544.34,459.092],[500,445],[485.461,500.275]],\"c\":true}],\"h\":1},{\"t\":23,\"s\":[{\"i\":[[-12.605,-17.736],[-15.638,6.044],[-8.023,18.322],[7.502,15.242],[30.935,-3.195],[6.371,-19.297]],\"o\":[[15.345,21.591],[15.638,-6.044],[8.023,-18.322],[-7.502,-15.242],[-20.122,2.078],[-6.371,19.296]],\"v\":[[462,540],[510.451,559.482],[547.919,519.094],[550.678,464.909],[495,443],[453.955,479.757]],\"c\":true}],\"h\":1},{\"t\":24,\"s\":[{\"i\":[[-31.547,3.401],[-0.852,8.285],[0.132,9.041],[0.669,8.611],[0.756,6.995],[0.581,-27.043]],\"o\":[[2.286,-6.342],[0.852,-8.285],[-0.132,-9.041],[-0.669,-8.611],[-31.223,-5.771],[-0.581,27.043]],\"v\":[[290,550],[294.595,527.764],[295.563,501.479],[294.25,474.705],[292,451],[243.923,498.723]],\"c\":true}],\"h\":1},{\"t\":25,\"s\":[{\"i\":[[-35.563,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.52,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[542.395,538.483],[554.879,497.135],[538.924,457.47],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":26,\"s\":[{\"i\":[[-35.563,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.52,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[542.395,538.483],[554.879,497.135],[538.924,457.47],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":27,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":28,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":29,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":30,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":31,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":32,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":33,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":34,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":35,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":36,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":37,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":38,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":39,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":40,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":41,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":42,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":43,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":44,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":45,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":46,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":47,\"s\":[{\"i\":[[-35.563,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.52,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[542.395,538.483],[554.879,497.135],[538.924,457.47],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":48,\"s\":[{\"i\":[[-35.563,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.52,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[542.395,538.483],[554.879,497.135],[538.924,457.47],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":49,\"s\":[{\"i\":[[-35.563,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.52,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[542.395,538.483],[554.879,497.135],[538.924,457.47],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":50,\"s\":[{\"i\":[[-31.576,0.72],[-1.294,8.715],[0.104,9.752],[1.096,9.037],[1.681,6.567],[0.569,-26.706]],\"o\":[[3.099,-5.923],[1.294,-8.715],[-0.104,-9.752],[-1.096,-9.037],[-31.3,-3.105],[-0.569,26.706]],\"v\":[[290,552],[296.487,529.605],[298.169,501.466],[296.267,472.844],[292,449],[243.843,498.711]],\"c\":true}],\"h\":1},{\"t\":51,\"s\":[{\"i\":[[-16.023,-15.683],[-14.949,7.158],[-6.179,17.904],[8.234,14.544],[28.291,-2.922],[6.04,-21.04]],\"o\":[[18.075,17.692],[14.949,-7.158],[6.179,-17.904],[-8.234,-14.544],[-20.863,2.155],[-6.04,21.04]],\"v\":[[466,545],[516.947,557.275],[550.049,516.156],[548.377,463.959],[495,443],[452.836,483.854]],\"c\":true}],\"h\":1},{\"t\":52,\"s\":[{\"i\":[[39.111,-4.81],[2.813,-8.61],[-0.356,-11.943],[-1.491,-10.987],[-0.591,-5.74],[-2.987,32.296]],\"o\":[[-8.017,0.986],[-2.813,8.61],[0.356,11.943],[1.491,10.987],[39.161,15.374],[2.987,-32.296]],\"v\":[[502,443],[486.264,458.466],[483.088,490.368],[486.368,525.836],[490,552],[554.704,505.423]],\"c\":true}],\"h\":1},{\"t\":53,\"s\":[{\"i\":[[37.894,-4.554],[11.313,-12.565],[1.508,-16.189],[-31.182,-9.28],[-19.381,25.226],[13.461,25.966]],\"o\":[[-21.238,2.553],[-11.313,12.565],[-4.109,44.106],[31.182,9.28],[19.737,-25.688],[-13.461,-25.966]],\"v\":[[290,423],[241.203,447.273],[222,492],[274.382,571.999],[362,548],[369.223,462.818]],\"c\":true}],\"h\":1},{\"t\":54,\"s\":[{\"i\":[[-35.562,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.521,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[342.395,538.483],[354.879,497.135],[338.924,457.47],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":55,\"s\":[{\"i\":[[-25.254,-0.484],[-1.045,7.239],[0.237,8.283],[0.663,7.903],[0.235,6.097],[1.083,-22.97]],\"o\":[[3.181,-4.77],[1.045,-7.239],[-0.237,-8.283],[-0.663,-7.903],[-24.92,-4.364],[-1.084,22.97]],\"v\":[[479,545],[485.125,526.63],[486.124,502.991],[484.56,478.356],[483,457],[443.37,497.364]],\"c\":true}],\"h\":1},{\"t\":56,\"s\":[{\"i\":[[48.828,-5.868],[-103.918,7.285],[-45.219,-3.502],[-19.122,-5.507],[82.012,40.129],[33.736,-2.174]],\"o\":[[-91.519,10.998],[41.003,-2.874],[19.648,1.522],[93.989,27.068],[-43.858,-21.46],[-48.611,3.132]],\"v\":[[490,423],[506,578],[629,554],[678,575],[734,429],[628,446]],\"c\":true}],\"h\":1},{\"t\":57,\"s\":[{\"i\":[[37.592,-4.518],[-27.939,-57.1],[-49.971,7.203],[-36.764,-2.577],[113.303,-10.556],[50.348,8.143]],\"o\":[[-41.899,5.035],[32.194,65.797],[39.437,-5.684],[107.734,7.552],[-37.33,3.478],[-26.683,-4.316]],\"v\":[[490,423],[429,534],[567,556],[694,578],[692,422],[566,444]],\"c\":true}],\"h\":1},{\"t\":58,\"s\":[{\"i\":[[-6.442,-2.716],[-7.729,9.64],[-0.951,15.082],[6.878,10.65],[15.759,-3.654],[0.813,-24.462]],\"o\":[[13.455,5.674],[7.729,-9.64],[0.951,-15.082],[-6.878,-10.65],[-6.188,1.435],[-0.814,24.462]],\"v\":[[710,551],[742.038,542.582],[755.321,503.03],[746.693,461.963],[713,449],[702.028,499.038]],\"c\":true}],\"h\":1},{\"t\":59,\"s\":[{\"i\":[[-35.562,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.521,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[342.395,538.483],[354.879,497.135],[338.924,457.47],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":60,\"s\":[{\"i\":[[-35.562,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.521,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[342.395,538.483],[354.879,497.135],[338.924,457.47],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":61,\"s\":[{\"i\":[[-35.562,0.486],[-8.954,11.45],[0.605,14.808],[10.006,10.329],[19.25,-1.988],[-1.521,-27.951]],\"o\":[[18.669,-0.255],[8.954,-11.45],[-0.605,-14.808],[-10.006,-10.329],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[342.395,538.483],[354.879,497.135],[338.924,457.47],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":62,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":63,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[290,423],[239.959,450.621],[224.166,501.468],[241.79,551.83],[292,578],[374.781,499.063]],\"c\":true}],\"h\":1},{\"t\":64,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":65,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":66,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":67,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":68,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":69,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":70,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":71,\"s\":[{\"i\":[[57.764,-6.942],[10.926,-14.395],[-0.351,-18.185],[-11.352,-14.073],[-22.076,-2.057],[-0.455,41.742]],\"o\":[[-22.481,2.702],[-10.926,14.395],[0.351,18.185],[11.352,14.073],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[439.959,450.621],[424.166,501.468],[441.789,551.83],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1}],\"ix\":1},\"o\":{\"a\":0,\"k\":100,\"ix\":3},\"x\":{\"a\":0,\"k\":0,\"ix\":4},\"nm\":\"Mask 3\"},{\"inv\":false,\"mode\":\"f\",\"pt\":{\"a\":1,\"k\":[{\"t\":0,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":1,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":2,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":3,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":4,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":5,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":6,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":7,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":8,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":9,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":10,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":11,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":12,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":13,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":14,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":15,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":16,\"s\":[{\"i\":[[-42.981,111.959],[11.429,14.973],[19.148,-1.977]],\"o\":[[8.863,-23.087],[-11.429,-14.973],[-126.82,13.099]],\"v\":[[551,524],[544.008,464.702],[495,443]],\"c\":true}],\"h\":1},{\"t\":17,\"s\":[{\"i\":[[-67.693,0],[0.558,29.675],[35.815,-3.699]],\"o\":[[33.048,0],[-0.558,-29.675],[-72.081,7.445]],\"v\":[[500,558],[549.148,497.726],[495,443]],\"c\":true}],\"h\":1},{\"t\":18,\"s\":[{\"i\":[[114.624,-80.108],[0,-16.673],[-9.177,-8.655]],\"o\":[[-9.177,8.655],[0,16.673],[119.882,78.46]],\"v\":[[662,458],[648.235,500],[662,542]],\"c\":true}],\"h\":1},{\"t\":19,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":20,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":21,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":22,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":23,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":24,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":25,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":26,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":27,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":28,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":29,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":30,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":31,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":32,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":33,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":34,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":35,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":36,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":37,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":38,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":39,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":40,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":41,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":42,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":43,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":44,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":45,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":46,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":47,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":48,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":49,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":50,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":51,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":52,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":53,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":54,\"s\":[{\"i\":[[115.526,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.052]],\"v\":[[690,423],[624.166,501.468],[692,578]],\"c\":true}],\"h\":1},{\"t\":55,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":56,\"s\":[{\"i\":[[104.849,-7.561],[6.189,-20.42],[-14.804,-17.659]],\"o\":[[-23.046,1.662],[-6.189,20.42],[84.523,70.007]],\"v\":[[696,442],[651.112,480.502],[663,543]],\"c\":true}],\"h\":1},{\"t\":57,\"s\":[{\"i\":[[-67.733,0],[0.583,29.696],[36.64,-3.784]],\"o\":[[33.971,0],[-0.583,-29.696],[-72.059,7.443]],\"v\":[[500,558],[550.458,497.662],[495,443]],\"c\":true}],\"h\":1},{\"t\":58,\"s\":[{\"i\":[[115.527,-13.884],[-0.703,-36.371],[-44.151,-4.113]],\"o\":[[-44.962,5.404],[0.703,36.371],[107.889,10.051]],\"v\":[[290,423],[224.166,501.468],[292,578]],\"c\":true}],\"h\":1},{\"t\":59,\"s\":[{\"i\":[[50.797,-6.105],[-4.786,-46.353],[-8.793,85.842]],\"o\":[[-45.501,5.468],[9.731,94.256],[5.639,-55.049]],\"v\":[[490,423],[422,509],[578,509]],\"c\":true}],\"h\":1},{\"t\":60,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":61,\"s\":[{\"i\":[[115.527,-13.884],[-0.702,-36.371],[-44.151,-4.113]],\"o\":[[-44.961,5.404],[0.702,36.371],[107.889,10.051]],\"v\":[[490,423],[424.166,501.468],[492,578]],\"c\":true}],\"h\":1},{\"t\":62,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":63,\"s\":[{\"i\":[[-71.124,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[301,558],[354.879,497.135],[295,443]],\"c\":true}],\"h\":1},{\"t\":64,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":65,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":66,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":67,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":68,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":69,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":70,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":71,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1}],\"ix\":1},\"o\":{\"a\":0,\"k\":100,\"ix\":3},\"x\":{\"a\":0,\"k\":0,\"ix\":4},\"nm\":\"Mask 4\"},{\"inv\":false,\"mode\":\"f\",\"pt\":{\"a\":1,\"k\":[{\"t\":0,\"s\":[{\"i\":[[32.464,-3.901],[-5.546,-39.384],[-53.221,9.594],[-15.95,39.736],[52.532,9.154]],\"o\":[[-50.404,6.058],[5.546,39.384],[43.949,-7.923],[29.331,-73.069],[-24.403,-4.252]],\"v\":[[690,423],[624.781,511.739],[715,577],[857,523],[761,439]],\"c\":true}],\"h\":1},{\"t\":1,\"s\":[{\"i\":[[31.028,-3.729],[-107.546,19.388],[-36.359,7.666],[56.719,25.343],[26.808,4.87]],\"o\":[[-98.844,11.879],[25.367,-4.573],[49.792,-10.498],[-20.705,-9.251],[-25.709,-4.671]],\"v\":[[690,423],[715,577],[813,560],[825,444],[760,439]],\"c\":true}],\"h\":1},{\"t\":2,\"s\":[{\"i\":[[30.068,-3.613],[-5.568,-39.377],[-52.923,9.541],[-34.153,7.285],[64.163,13.686]],\"o\":[[-50.196,6.033],[5.568,39.377],[23.688,-4.27],[58.392,-12.455],[-29.201,-6.229]],\"v\":[[690,423],[625.161,511.68],[715,577],[812,560],[812,440]],\"c\":true}],\"h\":1},{\"t\":3,\"s\":[{\"i\":[[49.595,-5.96],[-4.884,-39.243],[-53.678,8.887],[-32.865,13.664],[17.603,42.18]],\"o\":[[-49.212,5.914],[4.884,39.243],[25.141,-4.163],[32.865,-13.664],[-14.259,-34.166]],\"v\":[[690,423],[624.832,511.101],[714,577],[815.559,555.013],[853,476]],\"c\":true}],\"h\":1},{\"t\":4,\"s\":[{\"i\":[[28.878,-3.471],[-5.174,-39.201],[-52.987,8.773],[-17.229,37.493],[48.001,8.653]],\"o\":[[-49.682,5.971],[5.174,39.201],[40.452,-6.697],[33.204,-72.258],[-22.617,-4.077]],\"v\":[[690,423],[624.998,511.058],[714,577],[849,526],[758,437]],\"c\":true}],\"h\":1},{\"t\":5,\"s\":[{\"i\":[[28.161,-3.384],[-3.801,-38.49],[-50.992,4.751],[-31.86,11.196],[54.84,19.271]],\"o\":[[-48.197,5.792],[3.801,38.49],[22.404,-2.087],[47.727,-16.772],[-22.7,-7.977]],\"v\":[[690,423],[624.609,508.407],[708,578],[810,558],[810,442]],\"c\":true}],\"h\":1},{\"t\":6,\"s\":[{\"i\":[[28.798,-3.461],[-4.07,-38.46],[-50.536,4.708],[-27.488,10.765],[50.592,19.813]],\"o\":[[-48.815,5.866],[4.07,38.461],[24.764,-2.307],[47.37,-18.552],[-23.578,-9.234]],\"v\":[[690,423],[624.486,508.431],[708,578],[807,557],[807,443]],\"c\":true}],\"h\":1},{\"t\":7,\"s\":[{\"i\":[[58.167,-6.99],[-3.678,-38.205],[-50.57,3.622],[-24.831,8.884],[-7.196,17.928]],\"o\":[[-48.282,5.803],[3.678,38.205],[21.478,-1.538],[24.832,-8.884],[31.025,-77.291]],\"v\":[[690,423],[624.361,507.569],[707,578],[781.711,562.792],[835,523]],\"c\":true}],\"h\":1},{\"t\":8,\"s\":[{\"i\":[[35.938,-4.319],[-4.248,-38.413],[-51.842,4.521],[-27.908,24.13],[46.643,29.952]],\"o\":[[-48.836,5.869],[4.248,38.413],[29.011,-2.53],[27.908,-24.13],[-19.252,-12.362]],\"v\":[[690,423],[624.492,508.293],[710,578],[813.74,534.067],[804,449]],\"c\":true}],\"h\":1},{\"t\":9,\"s\":[{\"i\":[[81.973,-9.851],[-5.097,-38.418],[-53.436,4.66],[-15.289,5.109],[-10.06,7.45]],\"o\":[[-49.822,5.988],[5.097,38.418],[12.784,-1.115],[15.289,-5.109],[75.242,-55.721]],\"v\":[[690,423],[624.556,508.486],[714,578],[758.043,568.251],[798,549]],\"c\":true}],\"h\":1},{\"t\":10,\"s\":[{\"i\":[[57.764,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[430.93,466.16],[432.253,536.56],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":11,\"s\":[{\"i\":[[57.764,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[430.93,466.16],[432.253,536.56],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":12,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[549.745,525.965],[547.373,469.053],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":13,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[549.745,525.965],[547.373,469.053],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":14,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[549.745,525.965],[547.373,469.053],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":15,\"s\":[{\"i\":[[41.643,-5.005],[1.07,-30.299],[-25.142,-17.839],[-32.099,31.785],[11.977,28.423]],\"o\":[[-46.537,5.593],[-1.07,30.299],[25.142,17.839],[24.552,-24.311],[-11.977,-28.423]],\"v\":[[490,423],[423.403,486.128],[464.325,567.627],[555,556],[572.146,467.513]],\"c\":true}],\"h\":1},{\"t\":16,\"s\":[{\"i\":[[-7.077,-3.05],[-8.107,17.751],[6.268,18.596],[22.988,-6.143],[0.834,-25.287]],\"o\":[[20.137,8.678],[8.107,-17.751],[-6.268,-18.596],[-6.739,1.8],[-0.834,25.287]],\"v\":[[705,553],[747.952,532.995],[751.297,472.077],[708,447],[696.138,499.063]],\"c\":true}],\"h\":1},{\"t\":17,\"s\":[{\"i\":[[-17.94,-16.315],[-10.993,34.835],[54.8,-4.125],[3.015,-1.444],[3.133,-1.938]],\"o\":[[28.827,26.214],[10.993,-34.835],[-3.808,0.286],[-3.015,1.444],[-7.302,22.161]],\"v\":[[680,551],[751.719,513.067],[698,442],[687.993,444.761],[679,450]],\"c\":true}],\"h\":1},{\"t\":18,\"s\":[{\"i\":[[-25.686,26.137],[-0.745,17.883],[5.868,13.951],[14.234,-6.094],[-11.925,-33.856]],\"o\":[[5.603,-5.702],[0.745,-17.883],[-5.868,-13.951],[-46.385,-2.289],[11.925,33.856]],\"v\":[[516,551],[525.96,511.594],[518.714,459.814],[489,444],[448.447,515.386]],\"c\":true}],\"h\":1},{\"t\":19,\"s\":[{\"i\":[[-35.562,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.521,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[349.745,525.965],[347.373,469.053],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":20,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":21,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":22,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":23,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":24,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":25,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":26,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":27,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":28,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":29,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":30,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":31,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":32,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":33,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":34,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":35,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":36,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":37,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":38,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":39,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":40,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":41,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":42,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":43,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":44,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":45,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":46,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":47,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":48,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":49,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":50,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":51,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":52,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":53,\"s\":[{\"i\":[[57.763,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.026],[0.455,-41.742]],\"v\":[[690,423],[630.931,466.16],[632.253,536.56],[692,578],[774.781,499.063]],\"c\":true}],\"h\":1},{\"t\":54,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[701,558],[749.745,525.965],[747.373,469.053],[695,443],[644.595,503.625]],\"c\":true}],\"h\":1},{\"t\":55,\"s\":[{\"i\":[[-35.562,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.521,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[349.745,525.965],[347.373,469.053],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":56,\"s\":[{\"i\":[[-30.22,22.105],[-1.409,18.39],[5.648,14.726],[15.337,-6.726],[-9.149,-33.132]],\"o\":[[5.833,-4.266],[1.409,-18.39],[-5.648,-14.726],[-41.816,-1.423],[9.149,33.132]],\"v\":[[514,553],[525.52,514.568],[519.82,460.447],[489,444],[447.473,514.011]],\"c\":true}],\"h\":1},{\"t\":57,\"s\":[{\"i\":[[-11.502,-8.356],[-13.327,17.364],[4.674,21.306],[33.314,-3.202],[2.83,-25.046]],\"o\":[[20.689,15.03],[13.327,-17.364],[-4.674,-21.306],[-15.181,1.459],[-2.83,25.046]],\"v\":[[684,553],[737.684,542.387],[753.322,477.269],[699,443],[671.488,492.828]],\"c\":true}],\"h\":1},{\"t\":58,\"s\":[{\"i\":[[-35.562,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.521,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[301,558],[349.745,525.965],[347.373,469.053],[295,443],[244.595,503.625]],\"c\":true}],\"h\":1},{\"t\":59,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[549.745,525.965],[547.373,469.053],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":60,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[549.745,525.965],[547.373,469.053],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":61,\"s\":[{\"i\":[[-35.563,0.486],[-7.667,17.921],[9.186,16.924],[25.667,-2.651],[-1.52,-27.951]],\"o\":[[24.892,-0.34],[7.667,-17.921],[-9.186,-16.924],[-35.644,3.682],[1.521,27.951]],\"v\":[[501,558],[549.745,525.965],[547.373,469.053],[495,443],[444.595,503.625]],\"c\":true}],\"h\":1},{\"t\":62,\"s\":[{\"i\":[[57.764,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[430.93,466.16],[432.253,536.56],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":63,\"s\":[{\"i\":[[57.764,-6.942],[9.515,-22.049],[-10.288,-21.762],[-29.434,-2.742],[-0.455,41.742]],\"o\":[[-29.974,3.602],[-9.515,22.049],[10.288,21.762],[53.945,5.025],[0.455,-41.742]],\"v\":[[490,423],[430.93,466.16],[432.253,536.56],[492,578],[574.781,499.063]],\"c\":true}],\"h\":1},{\"t\":64,\"s\":[{\"i\":[[63.78,-7.665],[2.245,-33.528],[-35.64,-11.88],[-27.81,10.792],[-6.369,19.628]],\"o\":[[-41.659,5.006],[-2.245,33.528],[26.391,8.798],[27.81,-10.792],[22.07,-68.016]],\"v\":[[690,423],[624.525,493.345],[675,574],[762.017,568.319],[819,520]],\"c\":true}],\"h\":1},{\"t\":65,\"s\":[{\"i\":[[35.607,16.307],[18.238,6.102],[22.285,-2.301],[-106.95,8.115],[-32.797,9.632]],\"o\":[[-17.762,-3.893],[-18.238,-6.102],[-96.169,9.929],[33.612,-2.55],[35.607,-16.307]],\"v\":[[804,448],[750.892,430.355],[691,422],[709,578],[804,552]],\"c\":true}],\"h\":1},{\"t\":66,\"s\":[{\"i\":[[30.451,-3.66],[-3.874,-38.406],[-50.918,4.44],[-26.643,12.167],[48.14,21.984]],\"o\":[[-48.412,5.818],[3.874,38.406],[22.219,-1.938],[41.716,-19.05],[-20.249,-9.247]],\"v\":[[690,423],[624.503,508.194],[708,578],[805,556],[805,444]],\"c\":true}],\"h\":1},{\"t\":67,\"s\":[{\"i\":[[30.294,-3.641],[-4.048,-38.463],[-50.563,4.711],[-27.879,10.918],[50.319,19.706]],\"o\":[[-48.753,5.859],[4.048,38.463],[23.157,-2.157],[46.953,-18.388],[-22.161,-8.679]],\"v\":[[690,423],[624.513,508.428],[708,578],[809,557],[809,443]],\"c\":true}],\"h\":1},{\"t\":68,\"s\":[{\"i\":[[55.389,-6.656],[-4.199,-38.6],[-51.039,5.269],[-27.849,8.855],[-6.937,18.343]],\"o\":[[-48.835,5.869],[4.199,38.6],[21.666,-2.237],[27.849,-8.855],[30.518,-80.7]],\"v\":[[690,423],[624.594,508.854],[709,578],[790.046,562.08],[849,522]],\"c\":true}],\"h\":1},{\"t\":69,\"s\":[{\"i\":[[30.633,-3.681],[-5.155,-39.203],[-53.003,8.775],[-38.966,8.62],[61.779,13.667]],\"o\":[[-49.622,5.964],[5.155,39.203],[27.761,-4.596],[58.879,-13.026],[-31.133,-6.887]],\"v\":[[690,423],[625.031,511.054],[714,577],[809,560],[809,440]],\"c\":true}],\"h\":1},{\"t\":70,\"s\":[{\"i\":[[33.002,-3.966],[-105.813,19.075],[-27.477,9.061],[55.061,18.158],[23.364,2.966]],\"o\":[[-100.709,12.103],[21.053,-3.795],[49.884,-16.451],[-16.722,-5.515],[-24.934,-3.165]],\"v\":[[690,423],[715,577],[818,558],[818,442],[762,439]],\"c\":true}],\"h\":1},{\"t\":71,\"s\":[{\"i\":[[30.923,-3.716],[-5.22,-39.432],[-53.766,9.692],[30.887,85.505],[49.558,8.454]],\"o\":[[-49.645,5.966],[5.22,39.432],[50.258,-9.06],[-15.366,-42.537],[-25.716,-4.387]],\"v\":[[690,423],[624.941,511.744],[715,577],[857,479],[761,439]],\"c\":true}],\"h\":1}],\"ix\":1},\"o\":{\"a\":0,\"k\":100,\"ix\":3},\"x\":{\"a\":0,\"k\":0,\"ix\":4},\"nm\":\"Mask 5\"},{\"inv\":false,\"mode\":\"f\",\"pt\":{\"a\":1,\"k\":[{\"t\":0,\"s\":[{\"i\":[[-52.19,60.312],[6.756,22.208],[22.221,-2.295]],\"o\":[[14.245,-16.462],[-6.756,-22.208],[-110.291,11.391]],\"v\":[[730,546],[739.85,480.432],[695,443]],\"c\":true}],\"h\":1},{\"t\":1,\"s\":[{\"i\":[[-42.391,69.653],[6.768,20.721],[22.128,-2.286]],\"o\":[[11.199,-18.401],[-6.768,-20.721],[-119.415,12.334]],\"v\":[[733,542],[738.995,476.985],[695,443]],\"c\":true}],\"h\":1},{\"t\":2,\"s\":[{\"i\":[[-41.178,71.854],[6.829,20.402],[21.341,-2.204]],\"o\":[[10.658,-18.597],[-6.829,-20.402],[-120.244,12.419]],\"v\":[[733,541],[737.999,476.399],[695,443]],\"c\":true}],\"h\":1},{\"t\":3,\"s\":[{\"i\":[[-104.295,60.046],[0.038,18.52],[6.664,10.137]],\"o\":[[5.815,-10.784],[-0.038,-18.52],[-106.751,-56.773]],\"v\":[[728,547],[736.859,499.015],[727,452]],\"c\":true}],\"h\":1},{\"t\":4,\"s\":[{\"i\":[[-65.262,35.234],[4.465,26.024],[22.166,-2.289]],\"o\":[[17.025,-9.192],[-4.465,-26.024],[-90.604,9.358]],\"v\":[[718,554],[735.893,489.889],[695,443]],\"c\":true}],\"h\":1},{\"t\":5,\"s\":[{\"i\":[[0,-30.863],[-20.439,42.672],[38.076,-3.787]],\"o\":[[0,38.219],[15.991,-33.385],[-31.917,3.174]],\"v\":[[642,500],[727,542],[695,443]],\"c\":true}],\"h\":1},{\"t\":6,\"s\":[{\"i\":[[-51.635,43.554],[4.119,25.029],[17.704,-1.393]],\"o\":[[12.182,-10.275],[-4.119,-25.03],[-99.703,7.846]],\"v\":[[717,552],[728.414,488.749],[695,443]],\"c\":true}],\"h\":1},{\"t\":7,\"s\":[{\"i\":[[-73.374,31.929],[0.213,23.975],[25.089,-3.404]],\"o\":[[0.939,-14.503],[-0.212,-23.975],[-73.264,7.437]],\"v\":[[714,551],[721.021,484.07],[689,444]],\"c\":true}],\"h\":1},{\"t\":8,\"s\":[{\"i\":[[-62.623,23.405],[0.94,28.685],[20.266,-7.741]],\"o\":[[8.026,-3],[-0.94,-28.685],[-67.362,1.087]],\"v\":[[702,555],[715.219,491.945],[686,445]],\"c\":true}],\"h\":1},{\"t\":9,\"s\":[{\"i\":[[-54.95,23.173],[0.914,27.572],[16.469,-6.87]],\"o\":[[6.127,-2.583],[-0.914,-27.572],[-62.422,-0.773]],\"v\":[[696,553],[705.947,492.91],[682,447]],\"c\":true}],\"h\":1},{\"t\":10,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":11,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":15,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":21,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":27,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":28,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":29,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":30,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":31,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":32,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":33,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":34,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":35,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":36,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":37,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":38,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":39,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":40,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":41,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":42,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":43,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":44,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":45,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":46,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":53,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[701,558],[754.879,497.135],[695,443]],\"c\":true}],\"h\":1},{\"t\":62,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":63,\"s\":[{\"i\":[[-71.125,0.971],[1.209,29.617],[38.5,-3.976]],\"o\":[[37.338,-0.51],[-1.209,-29.617],[-71.289,7.363]],\"v\":[[501,558],[554.879,497.135],[495,443]],\"c\":true}],\"h\":1},{\"t\":64,\"s\":[{\"i\":[[-54.917,24.108],[0.865,27.19],[16.567,-5.405]],\"o\":[[6.027,-2.646],[-0.865,-27.19],[-62.216,-0.595]],\"v\":[[696,553],[705.946,493.962],[682,447]],\"c\":true}],\"h\":1},{\"t\":65,\"s\":[{\"i\":[[-84.228,28.516],[0.115,18.558],[2.368,14.698]],\"o\":[[3.827,-14.071],[-0.115,-18.558],[-82.315,-32.02]],\"v\":[[708,552],[713.146,500.971],[709,449]],\"c\":true}],\"h\":1},{\"t\":66,\"s\":[{\"i\":[[-58.905,45.013],[2.422,27.826],[22.531,-8.584]],\"o\":[[8.22,-6.282],[-2.422,-27.826],[-83.677,-4.208]],\"v\":[[713,553],[724.063,487.351],[689,444]],\"c\":true}],\"h\":1},{\"t\":67,\"s\":[{\"i\":[[-49.3,45.742],[3.9,24.864],[19.434,-1.692]],\"o\":[[11.033,-10.237],[-3.9,-24.864],[-103.653,9.022]],\"v\":[[719,551],[729.85,488.054],[695,443]],\"c\":true}],\"h\":1},{\"t\":68,\"s\":[{\"i\":[[-35.146,65.386],[5.803,21.073],[19.262,-1.916]],\"o\":[[9.474,-17.625],[-5.803,-21.073],[-121.165,12.051]],\"v\":[[728,543],[733.051,478.345],[695,443]],\"c\":true}],\"h\":1},{\"t\":69,\"s\":[{\"i\":[[0,-29.087],[-16.416,46.393],[40.729,-4.207]],\"o\":[[0,46.674],[14.657,-41.422],[-33.023,3.411]],\"v\":[[642,500],[733,537],[695,443]],\"c\":true}],\"h\":1},{\"t\":70,\"s\":[{\"i\":[[-68.529,33.684],[4.811,25.997],[24.083,-2.488]],\"o\":[[19.327,-9.5],[-4.811,-25.997],[-89.598,9.254]],\"v\":[[719,554],[739.558,489.509],[695,443]],\"c\":true}],\"h\":1},{\"t\":71,\"s\":[{\"i\":[[-56.616,54.755],[6.509,23.07],[22.521,-2.326]],\"o\":[[15.558,-15.047],[-6.509,-23.07],[-105.624,10.909]],\"v\":[[728,548],[740.06,482.47],[695,443]],\"c\":true}],\"h\":1}],\"ix\":1},\"o\":{\"a\":1,\"k\":[{\"t\":0,\"s\":[100],\"h\":1},{\"t\":12,\"s\":[0],\"h\":1},{\"t\":15,\"s\":[100],\"h\":1},{\"t\":16,\"s\":[0],\"h\":1},{\"t\":21,\"s\":[100],\"h\":1},{\"t\":22,\"s\":[0],\"h\":1},{\"t\":27,\"s\":[100],\"h\":1},{\"t\":47,\"s\":[0],\"h\":1},{\"t\":53,\"s\":[100],\"h\":1},{\"t\":54,\"s\":[0],\"h\":1},{\"t\":62,\"s\":[100],\"h\":1}],\"ix\":3},\"x\":{\"a\":0,\"k\":0,\"ix\":4},\"nm\":\"Mask 6\"}],\"sw\":1000,\"sh\":1000,\"sc\":\"#626262\",\"ip\":0,\"op\":72,\"st\":0,\"bm\":0}],\"markers\":[]}\n","import React from \"react\";\nimport {usePromiseTracker} from \"react-promise-tracker\";\nimport animationData from './loaderData.js';\nimport Lottie from 'react-lottie';\nimport './loader.css';\n\nconst LoadingIndicator = props => {\n\n    const {promiseInProgress} = usePromiseTracker()\n    const defaultOptions = {\n        loop: true,\n        autoplay: true,\n        animationData: animationData,\n        rendererSettings: {\n            preserveAspectRatio: 'xMidYMid slice'\n        }\n    };\n    return (\n        <div>\n            {\n                promiseInProgress &&\n                <div className='loader'>\n                    <div className='spinner'>\n                        <Lottie options={defaultOptions} height={75} width={75}/>\n                    </div>\n                </div>\n            }\n        </div>\n    );\n}\n\nexport default LoadingIndicator;\n","// // todo-done : remove this file and do the implementation on verify-otp.jsx file\n// // todo-done : the email must be stored on redux store not local store!!\n// // todo-done : if the user email is not in the redux store the page should be redirected into the login page!\n// // todo-done : do not use the notification toast for validation messages!!! refer the invision design - ex: invalid token\n\nimport * as React from \"react\";\nimport Footer from \"../shared/footer/footer\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { Form, reduxForm } from \"redux-form\";\nimport OtpInput from \"react-otp-input\";\nimport {\n  resendOtp,\n  resetOtpReset,\n  verifyOtp,\n} from \"../../redux/auth/authAction\";\nimport { NotificationManager } from \"react-notifications\";\n\nclass VerifyOTP extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      enteredOtp: \"\",\n      wrongOtp: false,\n      sendNewOtp: false,\n    };\n  }\n\n  componentDidMount = () => {\n    const { history } = this.props;\n    if (this.props.auth.otpEmail === undefined) {\n      history.push(\"/\");\n    }\n  };\n\n  componentWillReceiveProps = (nextProps) => {\n    const { history } = this.props;\n\n    if (nextProps.auth.otpVerified) {\n      history.push(\"/save-browser\");\n    } else if (\n      nextProps.auth.resendOtp == true &&\n      nextProps.auth.otpVerified == false\n    ) {\n      this.setState({ wrongOtp: false, enteredOtp: \"\", sendNewOtp: true });\n    } else if (\n      nextProps.auth.resendOtp == true &&\n      nextProps.auth.otpVerified == false\n    ) {\n      this.setState({ wrongOtp: true, sendNewOtp: false });\n    } else if (nextProps.auth.otpVerified == false) {\n      this.setState({ wrongOtp: true, enteredOtp: \"\", sendNewOtp: false });\n    } else if (\n      nextProps.auth.resendOtp == true &&\n      nextProps.auth.otpVerified == null\n    ) {\n      this.setState({ wrongOtp: false, enteredOtp: \"\", sendNewOtp: true });\n    } else {\n      this.setState({ wrongOtp: false, enteredOtp: \"\", sendNewOtp: false });\n    }\n  };\n\n  newOtpSend = () => {\n    const { dispatch } = this.props;\n    dispatch(resendOtp(this.props.auth.otpEmail));\n  };\n\n  wrongOtpSend = () => {\n    this.setState({ enteredOtp: \"\", wrongOtp: true });\n  };\n\n  onSubmit = () => {\n    const { dispatch } = this.props;\n    if (this.state.enteredOtp.length < 6) {\n      NotificationManager.warning(\"OTP must be 6 digit\", \"\", 2000);\n    } else if (this.state.enteredOtp.length == 6) {\n      dispatch(verifyOtp(this.state.enteredOtp, this.props.auth.otpEmail));\n    }\n  };\n\n  onFocus = () => {\n    const { dispatch } = this.props;\n    this.setState({\n      wrongOtp: false,\n      sendNewOtp: false,\n    });\n    dispatch(resetOtpReset());\n  };\n\n  render() {\n    return (\n      <div>\n        <nav\n          className=\"navbar navbar-expand navbar-white navbar-light main-nav\"\n          style={{ position: \"fixed\", top: 0, right: 0, left: 0 }}\n        >\n          <ul className=\"navbar-nav\">\n            <li className=\"nav-item\">\n              <img src=\"./images/logo.svg\" alt=\"\" />\n              <a className=\"text-center\">\n                <span className=\"navigation-title title\">HCBS</span>\n              </a>\n            </li>\n          </ul>\n        </nav>\n        <div className=\"login\">\n          <div className=\"row\">\n            <div\n              className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 text-center title\"\n              style={{ height: \"auto\" }}\n            >\n              <span>Enter Verification Code</span>\n            </div>\n          </div>\n          {/* <OtpInputForm /> */}\n\n          <Form>\n            <div className=\"row\">\n              <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 form-container text-center\">\n                <div className=\"form\">\n                  {this.state.wrongOtp && (\n                    <div\n                      className=\"col-12 reset-token-note\"\n                      style={{\n                        backgroundColor: \"#FA7B6F\",\n                        color: \"#FAFBFC\",\n                      }}\n                    >\n                      The verification code entered is incorrect. Please try\n                      again or request a new code by clicking Resend link below.\n                    </div>\n                  )}\n\n                  {this.state.sendNewOtp && (\n                    <div\n                      className=\"col-12 reset-token-note\"\n                      style={{\n                        backgroundColor: \"rgba(53,204,98,0.13)\",\n                        color: \"#35CC62\",\n                      }}\n                    >\n                      A new verification code has been sent.\n                    </div>\n                  )}\n\n                  <div className=\"col-12 reset-token-note\">\n                    <span>For your security we sent an SMS with a</span>\n                    <br />\n                    <span>6-digit code to your phone.</span>\n                  </div>\n\n                  <div className=\"col-12 input-box text-left\">\n                    <div\n                      className=\"label text-center\"\n                      style={{\n                        color: \"#333333\",\n                        fontSize: 16,\n                        marginTop: 16,\n                        marginBottom: 16,\n                      }}\n                    >\n                      This code is valid only for 10 minutes.\n                    </div>\n                    <div\n                      onFocus={this.onFocus}\n                      style={{\n                        display: \"flex\",\n                        paddingTop: 20,\n                        paddingBottom: 20,\n                        justifyContent: \"center\",\n                        textAlign: \"center\",\n                        alignSelf: \"center\",\n                        alignItems: \"center\",\n                      }}\n                    >\n                      <OtpInput\n                        isInputNum={true}\n                        inputStyle={{\n                          height: 50,\n                          width: 50,\n                        }}\n                        value={this.state.enteredOtp}\n                        onChange={(otp) => {\n                          this.setState({ enteredOtp: otp });\n                        }}\n                        numInputs={6}\n                        separator={<div style={{ paddingRight: 10 }}></div>}\n                      />\n                    </div>\n                  </div>\n\n                  <br />\n                  <div className=\"row\">\n                    <div className=\"col-lg-8 offset-lg-2 col-md-10 offset-md-1 col-sm-12\">\n                      <button\n                        onClick={this.onSubmit}\n                        type=\"button\"\n                        className=\"button submit\"\n                      >\n                        <span className=\"text\">VERIFY</span>\n                      </button>\n                    </div>\n                  </div>\n\n                  <div className=\"col-12 reset-token-note\">\n                    Didn’t receive a code?\n                    <span\n                      className=\"click-here\"\n                      style={{ cursor: \"pointer\" }}\n                      onClick={this.newOtpSend}\n                    >\n                      &nbsp;Resend&nbsp;\n                    </span>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </Form>\n        </div>\n        <Footer />\n      </div>\n    );\n  }\n}\n\nconst EnterOtpForm = reduxForm({\n  form: \"otpInputForm\",\n})(VerifyOTP);\n\nconst mapStateToProps = (state) => ({\n  auth: state.auth,\n});\nexport default withRouter(connect(mapStateToProps)(EnterOtpForm));\n","import * as React from \"react\";\nimport Footer from \"../shared/footer/footer\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { creteJwtToken } from \"../../util/util\";\n\nimport { browserName, browserVersion, isMobile } from \"react-device-detect\";\nimport { trustBrowserApiCall } from \"../../redux/auth/authAction\";\nimport { USER_TYPES } from \"../../constants/user\";\nimport { setLoginTokenArray } from \"../../util/auth\";\n\nclass SaveBrowser extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {};\n  }\n\n  // todo-done : move the jwt token creation into util file\n  // todo-done  : if the user email is not in the redux store the page should be redirected into the login page!\n\n  componentDidMount = () => {\n    const { history } = this.props;\n    if (this.props.auth.otpEmail === undefined) {\n      history.push(\"/login\");\n    }\n  };\n\n  onNoPress = () => {\n    this.navigateToPage();\n  };\n\n  onYesPress = () => {\n    const userEmail = this.props.auth.data.email;\n    const browser = browserName;\n    const channel = isMobile ? \"mobile\" : \"web\";\n    const userId = this.props.auth.data.userId;\n    const browserId = creteJwtToken(userEmail, userId, browserName, channel);\n    const { dispatch } = this.props;\n\n    dispatch(\n      trustBrowserApiCall(browserId, userEmail, browser, channel, userId)\n    );\n\n    this.navigateToPage();\n  };\n\n  navigateToPage = () => {\n    const { history } = this.props;\n    if (this.props.auth.data.userType === USER_TYPES.STAFF) {\n      history.push(\"/staff/visits\");\n    } else if (\n      this.props.auth.data.userType === USER_TYPES.SUPER_ADMIN ||\n      this.props.auth.data.userType === USER_TYPES.ADMIN\n    ) {\n      history.push(\"/admin/clients\");\n    } else {\n      history.push(\"/dashboard\");\n    }\n  };\n\n  render() {\n    return (\n      <div>\n        <nav\n          className=\"navbar navbar-expand navbar-white navbar-light main-nav\"\n          style={{ position: \"fixed\", top: 0, right: 0, left: 0 }}\n        >\n          <ul className=\"navbar-nav\">\n            <li className=\"nav-item\">\n              <img src=\"./images/logo.svg\" alt=\"\" />\n              <a className=\"text-center\">\n                <span className=\"navigation-title title\">HCBS</span>\n              </a>\n            </li>\n          </ul>\n        </nav>\n        <div className=\"login\">\n          <div className=\"row\">\n            <div\n              className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 text-center title\"\n              style={{ height: \"auto\" }}\n            >\n              <span>Your security is important to us</span>\n            </div>\n          </div>\n          <div className=\"row\">\n            <div className=\"col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-12 form-container text-center\">\n              <div className=\"form\">\n                <div className=\"col-12 reset-token-note\">\n                  <span>Do you trust this browser?</span>\n                </div>\n\n                <div className=\"col-12 input-box text-left\">\n                  <div\n                    className=\"label text-center\"\n                    style={{\n                      color: \"#333333\",\n                      fontSize: 16,\n                      marginTop: 40,\n                      marginBottom: 40,\n                    }}\n                  >\n                    By clicking “yes” below, you will not be asked for a\n                    verification code for the next 60 days.\n                  </div>\n                </div>\n\n                <br />\n                <div className=\"row\">\n                  <div\n                    style={{ display: \"flex\", justifyContent: \"space-evenly\" }}\n                    className=\"col-lg-8 offset-lg-2 col-md-10 offset-md-1 col-sm-12\"\n                  >\n                    <button\n                      onClick={this.onNoPress}\n                      type=\"button\"\n                      className=\"button basic\"\n                    >\n                      <span className=\"text\">NO</span>\n                    </button>\n\n                    <button\n                      style={{ marginRight: 10, marginLeft: 10 }}\n                      onClick={this.onYesPress}\n                      type=\"button\"\n                      className=\"button submit\"\n                    >\n                      <span className=\"text\">YES</span>\n                    </button>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <Footer />\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = (state) => ({\n  auth: state.auth,\n});\n\nexport default withRouter(connect(mapStateToProps)(SaveBrowser));\n","import React from \"react\";\nimport \"./App.scss\";\nimport { Provider } from \"react-redux\";\nimport store from \"./redux/store\";\nimport { Route, Switch, BrowserRouter } from \"react-router-dom\";\nimport Login from \"./components/login/login\";\nimport VerifyEmail from \"./components/reset-password/verify-email/verifyEmail\";\nimport ChangePassword from \"./components/reset-password/resetPassword\";\nimport AppContainer from \"./containers/appContainer\";\nimport \"react-table/react-table.css\";\nimport { NotificationContainer } from \"react-notifications\";\nimport { ProtectedRoute } from \"./components/shared/protected-route/protectedRoute\";\nimport LoadingIndicator from \"./components/shared/loader/loader\";\nimport \"semantic-ui-css/semantic.min.css\";\nimport FAQ from \"./components/faq/faq\";\nimport VerifyOTP from \"./components/two-factor-authentication/verify-otp\";\nimport SaveBrowser from \"./components/two-factor-authentication/save-browser\";\nimport ForceChangePassword from \"./components/login/ForceChangePassword\";\n\nfunction App() {\n  return (\n    <div>\n      <LoadingIndicator />\n\n      <Provider store={store}>\n        <BrowserRouter>\n          <div className=\"App\">\n            <Switch>\n              <Route exact path=\"/login\" component={Login} />\n              <Route exact path=\"/verify-email\" component={VerifyEmail} />\n              <Route exact path=\"/change-password\" component={ChangePassword} />\n              <Route exact path=\"/verify-otp\" component={VerifyOTP} />\n              <Route exact path=\"/save-browser\" component={SaveBrowser} />\n              <Route exact path=\"/reset-password\" component={ForceChangePassword} />\n              <ProtectedRoute path=\"/\" component={AppContainer} />\n            </Switch>\n          </div>\n        </BrowserRouter>\n        <NotificationContainer />\n      </Provider>\n    </div>\n  );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\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 subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\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 function register(config) {\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.href);\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/facebook/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. Let's check if a service worker still exists or not.\n        checkValidServiceWorker(swUrl, config);\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://bit.ly/CRA-PWA'\n          );\n        });\n      } else {\n        // Is not localhost. Just register service worker\n        registerValidSW(swUrl, config);\n      }\n    });\n  }\n}\n\nfunction registerValidSW(swUrl, config) {\n  navigator.serviceWorker\n    .register(swUrl)\n    .then(registration => {\n      registration.onupdatefound = () => {\n        const installingWorker = registration.installing;\n        if (installingWorker == null) {\n          return;\n        }\n        installingWorker.onstatechange = () => {\n          if (installingWorker.state === 'installed') {\n            if (navigator.serviceWorker.controller) {\n              // At this point, the updated precached content has been fetched,\n              // but the previous service worker will still serve the older\n              // content until all client tabs are closed.\n              console.log(\n                'New content is available and will be used when all ' +\n                  'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n              );\n\n              // Execute callback\n              if (config && config.onUpdate) {\n                config.onUpdate(registration);\n              }\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              // Execute callback\n              if (config && config.onSuccess) {\n                config.onSuccess(registration);\n              }\n            }\n          }\n        };\n      };\n    })\n    .catch(error => {\n      console.error('Error during service worker registration:', error);\n    });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\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      const contentType = response.headers.get('content-type');\n      if (\n        response.status === 404 ||\n        (contentType != null && contentType.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, config);\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 from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport \"@trendmicro/react-sidenav/dist/react-sidenav.css\";\nimport \"react-notifications/lib/notifications.css\";\n\nReactDOM.render(<App />, document.getElementById(\"root\"));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}