{"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 {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 {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 {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 {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 {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 {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 {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 {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 {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 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 click here \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 Resend \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> {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 → Z</option>\n <option value=\"name_desc\">Name Z → A</option>\n <option value=\"city_asc\">Billing City A → Z</option>\n <option value=\"city_desc\">Billing City Z → 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\">×</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 → Z</option>\n <option value=\"name_desc\">Name Z → A</option>\n <option value=\"city_asc\">City A → Z</option>\n <option value=\"city_desc\">City Z → 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 → Z</option>\n <option value=\"name_desc\">Name Z → A</option>\n <option value=\"city_asc\">Billing City A → Z</option>\n <option value=\"city_desc\">Billing City Z → 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\"> </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 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 {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 {\"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 \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=\"\"/> \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=\"\"/> \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=\"\"/> \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 \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 \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 \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 \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 \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 \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 Resend \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":""}