{"version":3,"sources":["Components/SideBar/SideBarConfig.js","config.js","Components/Card/Card1.js","Components/Card/Card2.js","Redux/Store.js","Redux/Reducer.js","Queries.js","FetchMethod.js","Components/Campaign/campaignQueries.js","Components/Home/Home.js","Components/dropzone/Dropzone.js","Components/dropzone/Dropzone2.js","Components/Customers/Customerquery.js","Components/LinkedinForm/AddLinkedinProfile.js","Components/Customers/CustomerConfig.js","Components/LinkedinForm/EditLinkedinProfile.js","Components/Customers/customerLinkedinData.js","Components/Campaign/CampaignModal.js","Components/Campaign/CampaignConfig.js","Components/Campaign/EditModal.js","Components/Campaign/StepAdd.js","Components/Form/FormComponent.js","Components/Form/EditForm.js","Components/tables/ReactTable.js","Components/Form/AddNewForm.js","Components/Users/UsersConfig.js","Components/Users/Userquery.js","Components/Users/Users.js","Components/Customers/Customer.js","Components/Contacts/ContactTriggerDetail.js","Components/Card/TriggersCard.js","Components/Contacts/ContactDetail.js","Components/Card/LeadsCard.js","Components/Card/ContactsCard.js","Components/Card/EngagementCard.js","Components/Contacts/contact.js","Components/Campaign/SearchCampaignQuery.js","Components/Campaign/SearchCampaign.js","Components/variables/THeaders.jsx","Components/Campaign/CampaignActiveTab.js","Components/Campaign/CampaignTabs.js","Components/Campaign/CampaignTabs/EngagedToExcel.js","Components/Campaign/CampaignTabs/EngagedTo.js","Components/LinkedinForm/EditCompany.js","Components/LinkedinForm/EditPosition.js","Components/LinkedinForm/EditName.js","Components/LinkedinForm/EditSurname.js","Components/LinkedinForm/EditGender.js","Components/LinkedinForm/EditEmail.js","Components/LinkedinForm/EditPhone.js","Components/LinkedinForm/EditCountry.js","Components/LinkedinForm/EditState.js","Components/Campaign/CampaignTabs/ContactDetailsAction.js","Components/Campaign/CampaignTabs/EngagedDetails.js","Components/Campaign/CampaignTabs/CampaignEngagedTab.js","Components/Campaign/CampaignTabs/ConvertToTemp.js","Components/Campaign/CampaignTabs/CampaignTempListDetails.js","Components/Campaign/CampaignTabs/CampaignTempList.js","Components/Campaign/CampaignTabs/NoOppExcel.js","Components/Campaign/CampaignTabs/NoOppTo.js","Components/Campaign/CampaignTabs/ContactDetails.js","Components/Campaign/CampaignTabs/CampaignNoOpTab.js","Components/Campaign/CampaignTabs/CampaignOpenTab.js","Components/Campaign/CampaignTabs/LeadToExcel.js","Components/Campaign/CampaignTabs/LeadsDetails.js","Components/Campaign/CampaignTabs/LeadTo.js","Components/Campaign/CampaignTabs/CampaignLeadsTab.js","Components/Campaign/CampaignTabs/CampaignDetailsTab.js","Components/Campaign/CampaignTabs/ExportToExcel.js","Components/Campaign/CampaignTabs/ConvertTo.js","Components/Campaign/CampaignTabs/CampaignContactsTab.js","Components/Campaign/CampaignTabs/CampaignTriggersTab.js","Components/Card/Card5.js","Components/Campaign/CampaignTabs/CampaignDetailsTab2.js","Components/Campaign/CampaignTables.js","Components/Campaign/Campaign.js","Components/Leads/LeadsQuery.js","Components/Leads/steeper.js","Components/Leads/LeadDetails.js","Components/Leads/ExportToExcel.js","Components/Leads/Leads.js","Components/SystemSettings/SystemConfig.js","Components/SystemSettings/SystemSettings.js","Components/Monitoring/ExportToMonitoring.js","Components/Monitoring/SearchCampaignQuery.js","Components/Monitoring/SearchCampaign.js","Components/Monitoring/CampaignConfig.js","Components/Monitoring/campaignQueries.js","Components/Monitoring/CampaignTables.js","Components/Monitoring/Campaign.js","Components/SideBar/RouteContent.js","Components/SideBar/SidebarQuery.js","Components/SideBar/Sidebar.js","Components/Contacts/contactQuery.js","App.js","serviceWorker.js","Components/Login/LoginQueries.js","Components/Login/ForgotPassword.js","Thanks.js","ThanksHubspot.js","Components/Login/Login.js","NotFound.js","index.js","Components/assets/marketing.svg","Components/assets/market.svg","Components/assets/target.svg","Components/assets/upAerrow.png","Components/assets/invitesent.png","Components/assets/delete1.png","Components/assets/logo.png","Components/assets/delete.png","Components/assets/calendar.png","Components/assets/Active.png","Components/assets/Inactive.png","Components/assets/profile.jpg","Components/assets/leftArrow.png","Components/assets/search.png","Components/assets/photo.png","Components/assets/SideBarMonitoring.png","Components/assets/setting.png","Components/assets/dashboard-users-icon.png","Components/assets/dashboard-customers-icon.png","Components/assets/dashboard-contacts-icon.png","Components/assets/dashboard-campaigns-icon.png","Components/assets/dashboard-leads-icon.png","Components/assets/Monitorlogo.png","Components/assets/rocket.svg","Components/assets/clock.png","Components/assets/edit-icon.png","Components/assets/step001.png","Components/assets/step01.png","Components/assets/step02.png","Components/assets/step1.png","Components/assets/step2.png","Components/assets/step3.png","Components/assets/step21.png","Components/assets/step22.png","Components/assets/step23.png","Components/assets/step24.png","Components/assets/step31.png","Components/assets/step32.png","Components/assets/step33.png","Components/assets/step34.png","Components/assets/step35.png","Components/assets/editButton.png","Components/assets/profile1.png","Components/assets/password1.png","Components/assets/log_out.png","Components/assets/loginbg.jpg","Components/assets/salesforce.png","Components/assets/hubspot.png","Components/assets/pencil.png","Components/assets/edit.png","Components/assets/next-arrow.png"],"names":["editProfile","title","fields","type","name","label","active","value","data","placeholder","isRequired","disabled","addPasswordForm","editUsersValidation","Yup","shape","contactnumber","matches","message","excludeEmptyString","max","firstName","required","test","undefined","trim","length","lastName","changePasswordValidation","oldPassword","newPassword","min","confirmPassword","this","parent","API_URL","URLDATA","url","queryFile","URLDATA2","uploadUrl","MoveToContact","token","localStorage","getItem","createdBy","RemoveToContact","getContactImageUrl","MoveAllContactToTemp","ResetPassword","profileImageUrl","campaignImageUrl","getProfileImageUrl","getCampaignImageUrl","salesforceApi","hubspotApi","MediaCard","props","className","to","headerPath","onClick","currentHeader","setItem","onClickCard","CardContent","Typography","gutterBottom","variant","component","header","DashboardData","LiveCompaign","TotalCampaign","src","LiveCompaignIcon","alt","TotalConnectRate","ConnectRateIcon","TotalEngaged","TotalEngagedIcon","TotalLeads","TotalLeadIcon","Monitorlogo","width","imgTotalUsers","totalCounts","allUsersdata","totalCount","imgCustomers","allCustomers","imgContacts","allContacts","imgCampaings","allCampaigns","imgLeads","leads","calculate","color","connect","dispatch","onHandleCampaign","payload","history","useHistory","rows","newRecentdata","TableContainer","Paper","Table","sx","minWidth","size","aria-label","TableHead","TableRow","TableBody","class","map","row","key","company","border","TableCell","scope","push","pathname","state","onNameClick","campaignLogo","campaignName","charAt","toUpperCase","Linkedin","align","invitedContact","connectedPer","toFixed","engagedPer","leadPer","date","dd","Date","split","reverse","join","getDate","mm","getMonth","yyyy","getFullYear","formatDate","startdate","initialState","Header","emailVerification","userName","addLinkedinStep","addModalStep","addNewCampaign","stepName","isEditMode","id","offset","formData","selectDateResponse","campaignId","customerFilter","campaignDetail","store","createStore","action","showTab","show","loggedInUserName","loggedInUserID","modalData","updateArray","filter","linkedinemail","LinkedinId","updateArrayData","Linkedindata","updateStep","stepname","Modal_step","updateData","StepId","stepData","editMode","lenghtCount","userSearch","gql","limit","customersInfo","CampaignInfo","CampaignTempListsInfo","CampaignTempListsSelectAll","fetchTempListDetail","campaignDetails","campaignZapierurlDetails","campaignContactsTabList","campaigIdData","campaignContactsTabList2","campaignContactStatusMutation","triggerStatusMutation","tempcontactsdetailsMuttion","campaignContactLogMaintain","contactExport","campaignEngagedTabList","campaignLeadsTabList","CustomerInfo","LeadsInfo","campaignContactsTabSelectList","campaignContactsExport","EditRunningCampaignQuery","GetAllCampaign","fetchMethod","Query","Variables","fetch","method","mode","body","JSON","stringify","query","variables","headers","access_token","then","res","getCampaignCustomers","getlinkedinprofiles","getcampaignmanager","getcampaignmanagerassignto","saveCampaignstep","EditCampaignQuery","EditCampaignStepsQuery","getLimitPerDay","getCampaignsSteps","async","CampaignsSteps","response","json","catch","e","console","log","swal","icon","contacts","SendMessages","Engaged","dateFilter","engagedData","UpdatefName","UpdateCompany","UpdatePosition","UpdateSurname","UpdateCountry","UpdateState","UpdateGender","UpdatefNameContact","UpdateSurnameContact","UpdateEmailContact","UpdatePhoneContact","UpdatePositionContact","UpdateCountryContact","UpdateStateContact","UpdateCompanyContact","UpdateGenderContact","Profileid","UpdatefollowUp","plannedDate","HomePage","Component","constructor","super","getDashboardData2","dasId","setState","DashboardlistData2","setDataCalculation2","DashboardData2","engData","leadData","connectData","engagedRate","leadsRate","connectRate","TotalCompaigns","LiveCompaigns","loading","toggleDrawer","side","open","event","OnClear","clear","fetchData","where","contactstatus","nlike","options","headerText","onHandleSidebarText","DashboardlistData","routeconfig","routeconfig2","openForm","LiveConnectRate","LiveEngaged","LiveLeads","hiddenRoute","hiddenRoute2","componentDidMount","i","routeConfig","routeAdmin","routeCustomer","routeCampaign","route","x","reduce","y","z","route2","DashboardPath2","DashboardPath","filter1","createdby","order","custdata","Customers","filter2","custdata1","role","status","Usersdata","campmanager","filter3","campmanager1","assignTo","render","curHr","getHours","currentTime","cards","pageHeader","path","Dropzone","files","setFiles","React","useState","getRootProps","getInputProps","useDropzone","accept","onDrop","acceptedFiles","file","Object","assign","preview","URL","createObjectURL","useEffect","setFilePreview","forEach","revokeObjectURL","thumbs","profileImage","style","height","minHeight","Photo","addorEditCustomer","addorEditLinkedinProfile","updateCustomer","updateCustomerLinkedinCreate","DialogTitle","withStyles","theme","root","margin","padding","spacing","closeButton","position","right","top","palette","grey","children","classes","onClose","IconButton","DialogContent","MuiDialogContent","addCustomerForm","compo","setOpen","showButton","handleClose","Link","cursor","Dialog","aria-labelledby","formConfig","addLinkedinForm","modalClose","mtitle","formValidation","customerLinkedinValidation","buttonName","getState","addoredit","AddStepsSection","customersValidation","contactno","email","address","linkedinpassword","signature","editCustomersValidation","CustomizedDialogs","marginRight","Edit","editableData","renderModalContent","AddLinkedinModal","changePassword","str","b","onDelete","item","buttons","dangerMode","willDelete","OnDeleteData","Fragment","borderBottom","textAlign","wordBreak","OnDelete","Delete","salesforcetoken","hubspottoken","addsteps","setsteps","maxLimits","setMaxlimit","limitsPerDay","setlimitsPerDay","addcampaignModalValidation","ensure","limitperday","daysdelay","when","is","personalmessage","replyMessage","allSystemsettings","Systemsettings","datas","textDecoration","CampaignModalConfig","statedata","setLimit","storeArray","addCampaignForm","onSubmit","args","key1","key2","minDate","campaignModal","column","editCampaignForm","link","buttontext","iconname","funName","delete","campaignValidation","description","targetconnections","customerid","linkedinid","campaignmanagerid","dataoption","datafromcampaign","timezone","editcampaignValidation","editcampaignModalValidation","maxconnectionperday","maxfollowperday","maxvisitperday","maxmessageperday","updateSequence","index","sequence","OnEditData","text","pos","count","marginLeft","step","FormComponent","linkedinpro","linkedinprofileid","params2","allCustomerlinkedinprofiles","Customerlinkedinprofiles","getlinkedInCampaign","Campaigns","params3","EditcampaignTypeId","array","setPauseStatus","pauseStatus","definitions","setEndStatus","setLiveStatus","setDeleteStatus","window","location","setHubspotId","loadingData1","profileId","getTime","Math","round","random","timer","setInterval","Accept","clearInterval","EditLinkedinData","setTimeout","setSalesforceId","loadingData","handleButton","displayNote","target","editdisplayNote","subject","limits","onChange","removeItem","campaignType","campaignDataOptionType","daysdelays","personalNoteActive","thanksActive","textAreaData","personalNoteAreaData","thanksAreaData","parseInt","handleDateChange","String","starttime","handleCheck","handleDelete","m","_id","MessageClick","substring","currentPosition","filePreview","image","newFile","File","fileData","setFilePreview2","onUpdateData","renderFields","touched","errors","handleChange","handleBlur","inputRef","useRef","updateSelectionStart","current","selectionStart","TextField","InputLabelProps","shrink","onBlur","helperText","defaultValue","onSelect","multiline","Button","startIcon","functionName","connectingButton","connectedButton","connectButton","utils","DateFnsUtils","format","KeyboardButtonProps","keyboardIcon","Calender","Clock","ModalComponent","iconbuttonname","ComponentName","MenuItem","maxWidth","overflow","textOverflow","whiteSpace","display","unshift","fontSize","select","InputProps","endAdornment","NextArrow","params3Options","FormControlLabel","control","Radio","FormControl","FormLabel","RadioGroup","hasOwnProperty","Checkbox","checked","holdModalData","buildQueryParams","query1","linkedIn","linked","addCampaignStep","addstep","buildParams","OnEdit","submitHandler","keys","list","tz","getTimezoneOffset","organization","designation","fname","country","surname","phonenumber","gender","obj","query2","test1","message1","onButton","FormData","append","xhttp","XMLHttpRequest","send","onreadystatechange","readyState","DONE","EditData","componentWillMount","abm","getInitialValues","inputs","initialValues","field","validationSchema","isSubmitting","DialogActions","fontFamily","background","borderRadius","editLinkedinData","getName","params1","params","getData","renderContent","ReactTableComponent","searchFetch","clickToSearch","pageNo","fetchQuery","onPageLimitChange","pageSize","onPageNumberChange","page","pageSizeOptions","listData","LIMIT","OFFSET","responseAsJson","setListData","setData","setOffset","listConfig","reactTableBlankMessage","classsName","manual","columns","minRows","showPagination","defaultPageSize","pages","ceil","onPageSizeChange","onPageChange","sortable","NoDataComponent","addUsersForm","editUsersForm","usersValidation","password","val","addorEditUser","updateUser","updatePassword","Users","userCustomer","customerData","customerData1","user","handleMenuClose","Row","users","editData","handleSearchChange","search","searchFlag","onSearchClick","debounceTimer","debounce","child","func","delay","clearTimeout","onStatusChange","checkvalue","checkStatus","status2","status3","onStatusChange2","all","SetLimit","SetOffset","handleMenuOpen","anchorEl2","userData","anchorEl","onCloseEngagedPopup","selectedEngagedRow","showUserToPopup","selectedUserRow","original","currentTarget","clientY","clientX","ActionMenu","Menu","Boolean","keepMounted","left","NameFilter","filterColumn","shortfilter","NameFilter1","RoleFilter","RoleFilter1","StatusFilter","StatusFilter1","AbmFilter","AbmFilter1","setUsersRowClick","rowInfo","onSearchKeyDown","createRef","right1","allUsers","userExportData","Search","replace","like1","filt","or","like","and","Theaders","accessor","homeActions","Cell","lname","Name","Role","Status","Active","Inactive","Abm","textTransform","onKeyDown","SearchIcon","Drawer","anchor","ref","concat","onRowClick","customer","LinkedinData","customerLinkedin","getLinkedinData","onEditMode","getId","customers","showCustomerToPopup","selectedCustomerRow","isSearching","setCustomerRowClick","hubSpotCode","queryString","parse","thCustomersArray","customerActions","Notstarted","NotStarted","Live","LIVE","Paused","PAUSED","Completed","COMPLETED","Company_Name","withRouter","ContactTriggerDetails","campaignSteps","Campaignid","campaignSteps2","triggerid","ContactDetailsWorkflow","Contacts","Contactworkflowhistoryfk","Contactworkflowhistories","ContactDetailsMessages","Contactmessagesfk","Contactmessages","ContactDetailsTrigger","Contacttriggerfk","Triggernotifications","getCampaignId","campaignid","getCampaignId2","getCustomer","contactStatus","campaignStatus","campaignstatus","contactId","formatDate1","hours","am_pm","getMinutes","RecieveddateFomate","time1","time2","ConnectedOnformatDate","handleSubmit","preventDefault","SendMessage","OnSubmit","firstConn","details","connectedon","messageText","contactid","realmsgdatetime","now","messagetobesent","refreshMessage","ContactmessagesCreate","handleOpen","fName","validationAlert","workflowStep","profileimage","substr","heading","Close","onError","onerror","borderColor","photo","dateofbirth","twitter","skype","numberoffollowers","href","industry","triggerdata","triggertype","triggerstatus","lastactiondate","followup","workflow","contactworkflowhistoryIbfk2rel","Campaignsteps","successflag","executedon","messagedatetime","openPoup","SetOpenPopup","userid","SetUserid","campaign","linkedinprofile","ContactTriggerDetail","ContactDetails","connectedOn","lastResponse","currentstatus","currentstatusdate","SearchCompany","customerlist","toggleSelectAllRow","isChecked","gettingAllDataFromQuery","selectAll","selectedArray","selected","handleChange2","selectListChange","v","searchVar","companySearch","flag","ManagerId","ManagerId1","convertArrayToObject","selectedArrayIds","SelectedIds","a","searchData","TotalSent","TotalConnection","TotalEngagedCon","TotalLeadsCon","recentLeads","recentTrigger","recentNoop","recentContact","stepLength","stepContacts","TotalLength","step1","stepname1","step2","totalDone","stepname2","step2Remain","totalPen","step3","stepname3","step3Remain","step4","stepname4","step4Remain","step5","stepname5","step5Remain","step2Remain1st","selectedOptions","selectAllLabel","PreValueSelected","valueSelected","campManagerFirstName","campManagerLastName","campAdminFirstName","campAdminLastName","linkedInProfile","selectedCampaignStatus","connectionsToBeSent","startDate","startTime","steps","recentcontactCount","labels","countryCount","datacount","totalCountryCount","countryPer","countryName","data2","checkedIcon","onNameClick2","createFilterOptions","Autocomplete","multiple","limitTags","disableCloseOnSelect","getOptionLabel","option","getOptionSelected","reason","All2","preData","result","el","selectArr","_targetInst","alternate","innerText","filterOptions","renderOption","renderInput","fullWidth","inputProps","TotalinvitesentIcon","chartType","Company","SearchCampaign","fetchdata","customerIbfk1rel","clearFilters","options2","CustomerId","fetchmanager","onHandleSearchChange","cust","campaignfk","Manager","fetchManagerData","CampaignManagerList","selectAssignToChange","FirstName","LastName","outerText","onhandleSearch","onHandleClickSearch","blurOnSelect","thCampaignsArray","thCampaignsArray2","CampaignActiveTab","activeTab","CampaignTabs","onClickTabItem","tab","LastResponse","ExportToExcel","ExcelRecieveddateFomate","minutes","time","exportToClick","stopPropagation","exportToClose","exportToSalesforce","salesforceData","SalesforceToken","Profile","err","exportToHubspot","hubspotData","HubspotToken","createExportHistory","setDataWithZapierurl","zapierurl","setDataWithZapier","filedata","currentStage","Messages","wholeMessages","executedonVisit","executedonFollow","movetolink","moveto","campaignIbfk4rel","campaignname","Location","Industry","Email","Twitter","Skype","DOB","Visit","Follow","InvitationSent","Connectedon","CurrentStage","movedby","State","Country","Source","LR","setDataWithHeader","exportToExcel","fileName","fileType","fileExtension","wb","Sheets","XLSX","json_to_sheet","SheetNames","excelBuffer","bookType","Blob","FileSaver","exportToZapier","urldata","selectedcontactData","selectedArrayIds2","thanksmsgdate","dataT","request","require","error","aria-controls","aria-haspopup","SalesHubdata","EngagedTo","convertToList","convertToMessage","toLowerCase","convertTo","convertToClickList","clickToConvertStatus","newStatus","currentStatus","changeContactStatus","updateStatus","engaged","updatedon","updatedby","noop","willConvert","ContactsUpsertWithWhere","tableRerender","logMaintain","newstatus","updateLog","createdon","onClickToConvertCampaignStatus","changeCampaignStatus","updatedBy","convertToClose","cb","newCamp","Editcompany","Editvalidation","Editposition","Editname","Editsurname","Editgender","Editemail","Editphone","EditCountry","EditState","ContactDetailsAction","handleClick","convertToClose2","convertToClose1","anchorE2","EngagedDetails","stepDate","utctasktime","messageDate","utcmessagetime","CampaignEngagedTab","ExportData","campaignEngegedExportData","profileid","customercredentialsIbfk1rel","emptySelectedArray","EngagedData","dataGrid","handleStartDate1","handleStartDate","endDate","selected_Response","Engage","formatDate4","handleEndDate","campaignDateListData","setEngagedListData","campaignEngagedList","afterCampaignEnddateData","gt","EndDateResponse","allContactmessages","campaignGridData","DateResponse","between","formatDate3","formatDate2","allselectedIds","campaignEngagedAllSelectedList","selectedArr","consolidateArray","onRowSelected","sarray","toggleRowNew","newSelected","arr","fetchRefresh","fetchMessage","onTableRowClick","fetchContactDrawerDetails","closeDetails","openDetails","columnFilter","CompanyFilter","CompanyFilter1","PositionFilter","PositionFilter1","LocationFilter","LocationFilter1","connectedonFilter","connectedonFilter1","InvitationsentFilter","InvitationsentFilter1","currentstatusFilter","currentstatusFilter1","lastResponseFilter","lastResponseFilter1","handleStatusChange2","showEngagedToPopup","showEngagedToPopup2","Currentstage","invitationSent","detailEdit","CampaignEngagedListHeaders","defaultChecked","followup2","editicon","disableUnderline","lastresponse","cmTime","getDay","lastDay","setDate","today","Image","CampaignStatus","invitationsent","invitesent","Customer","refresh","ConvertToTemp","TempcontactsdetailsUpsertWithWhere","campaignContactsExportData","isOpen","CampaignTempListDetails","handleUpdatefName","profileurl","moment","CampaignTempListTab","allTempcontactsdetails","Tempcontactsdetails","fetchCampaignList","CampaignList","filterId","campaignNatureType","salesNavigator","fetchTempList","tempLists","allTemplists","Templists","sortedList","getAllData","totalDataLength","campaignTempListResponse","campaignTempList","tempListTotalCount","handleList","selectedListValue","moveToContactCount","tempListId","selectedListName","ExportCampaignListData","selectedCampaignValue","HeaderinExcel","JobTitle","EmailAddress","LinkedInProfile","handleCampaignExportList","selectCamp","floor","acceptedFile","selectExcel","uploadExcel","xhr","NewCampaignid","TempcontactsdetailsUploadUserExcel","campaignTempAllSelectedList","OnMoveToContactClick","OnRemoveToContactClick","Tempcontactmessages","fetchName","templistid","first","last","campaignTempListIds","tempRow","totalContactAll","newCampaignTempList","profile","CampaignTempLists","visible","htmlFor","NoOppTo","CampaignContactsTab","selectedDate","setContactsListData","campaignContacts","fetchSequence","fetchRefresh1","campaignContactAllSelectedList","responsee","l","plannedDateFilter","nextStep","allCampaignsteps","daysDelay","NextStepName","someDate","addDate","dd1","oldDate","todayDate","diffDays","Planndate","current_date","addDay","nextstep","toDate","current_date1","utc","offset_time","planDate","add","date1","campaignContactsTableList","campStatus","defaultCampStatus","contStatus","defaultContStatus","CampaignContactsListHeaders","refreshMessage1","LeadsDetails","LeadTo","CampaignLeadsTab","campaignLeadsExportData","setLeadsListData","campaignLeadsList","campaignLeadsTabSelectList","LeadsTypeFilter","LeadsTypeFilter1","coulmnFilter","campaignLeadsTableList","campaignLeadsAllSelectedList","CampaignLeadsListHeaders","ContactStatus","filterr","CampaignDetailsTab","fetchDetails","setDetails","setTimeZone","stime","t","c","Admin","Campaignstepfk","sort","dateArray","reverseDate","StartTime","reverseTime","Timestart","campaignManager","stepclass","ConvertTo","totalTabDataCount","contactcountfortab","exportQuery","FreeData","totalFreeCount","fontWeight","nextstepname","nextstepdate","nextDate1","Next_Step","shownextstepname","refresh2","ExportData2","confil","allTriggernotifications","onSearchClick2","row2","TriggernotificationUpsertWithWhere","onSearchClick3","handleSearchChange2","search2","handleStatusChange","toISOString","slice","notificationdateFilter","notificationdateFilter1","triggertypeFilter","triggertypeFilter1","triggerstatusFilter","triggerstatusFilter1","lastactiondateFilter","lastactiondateFilter1","followupFilter","followupFilter1","like2","Select","displayEmpty","notificationdate","ChartJS","register","CategoryScale","LinearScale","PointElement","LineElement","Title","Tooltip","Legend","Filler","CampaignDetailsTab2","monthsData","monthsCount","monthsEngCount","monthsleaCount","engcount","leacount","connectList","months","month","countdata","engagedList","leadList","CHART_COLORS","transparentize","opacity","alpha","colorLib","rgbString","datasets","animations","duration","backgroundColor","fill","tension","easing","from","ctx","dropped","plugins","filler","propagate","Step001","Step01","Step02","Step1","Step2","Step3","Step21","Step22","Step23","Step24","Step31","Step32","Step33","Step34","Step35","CampaignTablesComponent","EditDetails","reponse","campaignTabDetailFetch","CampaignName","getEditCampaign","getEdit","editFormData","editCampaignStepsData","backToCampaignMainList","LeftArrow","EditButton","CampaignNoOpTab","Campaign","setLinkedinData","linkedinProfile","campaigns","SearchClick","setCampaignRowClick","backToCampaignList","customerId","managerId","setmanagerId","DateFilter","DateFilter1","statusChange","setCustomerId","handleSearch","handleonclickSearch","openEdit","campaingnEditid","campaignTempListData","editCampaignData","customerfilter","campaignsProfile","campaignadminid","filterSort","styles","datearray","runningCampaign","runonWeb","campaignProps","selectedCampaignName","onOpen","AdminId","setAdminId","Customer_Filter","allcampaigns","ManagerName","ManagersName","ProfileName","useQontoStepIconStyles","makeStyles","alignItems","circle","completed","zIndex","ColorlibConnector","alternativeLabel","line","StepConnector","QontoStepIcon","clsx","useStyles","button","instructions","marginTop","marginBottom","CustomizedSteppers","Stepper","activeStep","connector","Step","StepLabel","StepIconComponent","LeadDetails","headline","rel","Send_Msg","Received_Msg","PaperProps","Leads","LeadsExportData","leadsCustomer","LeadCompany","CustomerData","leadsCampaignsId","Check","allLeads","camp1","camp","campaignlist","profilename","profilelist","setContactRowClick","drawerOpenClose","getCampaign","handleCompany","Customerlinkedinprofilesfk","handleProfile","campaignProfilelist","campaignNames","handleCampaign","LeadStatusFilter","LeadStatusFilter1","flag1","_campaignStatusList","lead","Campaign_Status","Organization","Designation","Contactlogs","Received_time","Send_time","Opportunity","Prospect","Suspect","thLeadsArray","systemSettingForm","systemSettingValidation","systemSetting","SystemSetting","systemData","ExportToMonitoring","systemipadd","invitelimit","freecontact","calculateDataStatus","loginTime","logoutTime","Running","invitedcount","connectedcount","connectedper","engagedcount","engagedper","leadcount","leadper","Error","selectedData","Iinvitelimit","ratio","isNaN","customerIbfk5rel","getlistData","handlerunningCampaignFilter","prevState","weekReqFree","weekreqfree","logintime","toLocaleString","hour12","todayStatus","invitetoday","toString","systemIP","logouttime","ConStatus","OnOff","Switch","exact","Settings","main","customClass","People","SettingsInputAntenna","Dvr","FiberDvr","LinkedCamera","setting","SystemSettings","routeAdmin2","routeCustomer2","routeCampaign2","showDialogbox","showModal","TimeDelay","seconds","loggedInUserId","setAnchorEl","Pdf","setPdf","openModal","setopenModal","selectPdf","setselectPdf","disableViewpdf","setdisableViewpdf","getEditProfileData","successMessage","setMessage","severity","alertmsg","isFileUpload","setError","setLoading","isMenuOpen","isPdfOpen","initialMinute","initialSeconds","setMinutes","setSeconds","selectedIndex","setSelectedIndex","firstname","lastname","menuId","handleClosePdf","renderPdf","anchorOrigin","vertical","horizontal","transformOrigin","renderMenu","Password","Logout","radius","DialogContentText","autoFocus","ariadescribedby","xmlns","version","viewBox","preserveAspectRatio","transform","stroke","d","CssBaseline","AppBar","Logo","List","items","sidebarRoute","ListItem","ListItemText","primary","App","contactCampaignsId","handleCampaignId","sessionTime","setHours","handleSessionTime","handleUserDetails","sessionStorage","hostname","match","ChangePassword","ForgotPassword","validateForm","validEmailRegex","RegExp","handleClickShowPassword","showPassword","SendPassword","reset","UsersdataSetPassword","willOk","handleMouseDownPassword","loggedIn","email1","password1","forgot","backgroundImage","CCTV","Container","TsiLogo","autoComplete","Grid","container","xs","Thanks","thanks","thanksRecieved","ThanksHubspot","Login","validateId","idVerification","Id","UserExist","userId","fetchCustomer","forceUpdate","Validate","storageToken","OutlinedInput","InputAdornment","onMouseDown","VisibilityOutlined","VisibilityOffOutlined","font","ReactDOM","Sidebar","document","getElementById","navigator","serviceWorker","ready","registration","unregister","module","exports"],"mappings":"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","file":"static/js/main.5cae4274.chunk.js","sourcesContent":["import * as Yup from \"yup\";\r\n\r\nexport const editProfile = {\r\n title: \"Edit Profile\",\r\n fields: [\r\n { type: \"photo\", name: \"profileImage\" },\r\n {\r\n label: \"Role\",\r\n type: \"staticSelect\",\r\n name: \"role\",\r\n active: true,\r\n value: \"\",\r\n data: [\r\n { name: \"SADMIN\", value: \"SADMIN\" },\r\n { name: \"Admin\", value: \"ADMIN\" },\r\n { name: \"Campaign Manager\", value: \"CAMPAIGNMANAGER\" },\r\n { name: \"Customer\", value: \"CUSTOMER\" }\r\n ]\r\n },\r\n {\r\n label: \"Email\",\r\n type: \"input\",\r\n active: true,\r\n placeholder: \"e.g. smith.doe@gmail.com\",\r\n name: \"email\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"First Name\",\r\n type: \"input\",\r\n placeholder: \"e.g. John\",\r\n isRequired: true,\r\n name: \"firstName\",\r\n value: \"\",\r\n disabled: true\r\n },\r\n {\r\n label: \"Last Name\",\r\n type: \"input\",\r\n placeholder: \"e.g. Smith\",\r\n name: \"lastName\",\r\n value: \"\",\r\n disabled: true\r\n },\r\n {\r\n label: \"Phone Number\",\r\n placeholder: \"e.g. 9854795626\",\r\n type: \"input\",\r\n name: \"contactnumber\",\r\n value: \"\",\r\n disabled: true\r\n }\r\n\r\n ]\r\n};\r\nexport const addPasswordForm = {\r\n title: \"Change Password\",\r\n fields: [\r\n {\r\n label: \"Old Password\",\r\n placeholder: \"Enter Old Password\",\r\n type: \"password\",\r\n name: \"oldPassword\",\r\n isRequired: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"New Password\",\r\n type: \"password\",\r\n placeholder: \"Enter New Password\",\r\n isRequired: true,\r\n name: \"newPassword\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Confirm Password\",\r\n type: \"password\",\r\n placeholder: \"Confirm New Password\",\r\n name: \"confirmPassword\",\r\n isRequired: true,\r\n value: \"\"\r\n }\r\n ]\r\n};\r\n\r\nexport const getName = id => `query{\r\nallUsersdata(where:{id:${id}}){\r\nUsersdata{\r\nid\r\nfirstName\r\nprofileImage\r\nlastName\r\nrole\r\nemail\r\ncontactnumber\r\n customerIbfk5rel{\r\n Customers{\r\n company\r\n }\r\n }\r\n}\r\n}\r\n}`;\r\nexport const editUsersValidation = Yup.object().shape({\r\n\r\n contactnumber: Yup.string()\r\n .matches(/^\\+?[0-9]*$/, {\r\n message: \"Please enter valid phone no.\",\r\n excludeEmptyString: true\r\n })\r\n .max(16, \"Phone number should be less than 16 digits\"),\r\n firstName: Yup.string()\r\n .required(\"Please enter name\")\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"First name should be less than 30 characters\"),\r\n lastName: Yup.string()\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", data => {\r\n if (data !== undefined && data.trim().length === 0 && data !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"Last name should be less than 30 characters\")\r\n});\r\n\r\nexport const changePasswordValidation = Yup.object().shape({\r\n oldPassword: Yup.string()\r\n .required(\"Please enter current password\")\r\n .matches(/^[^\\s]+([^\\s]+)*$/, {\r\n message: \"Please enter valid current password\",\r\n excludeEmptyString: true\r\n }),\r\n newPassword: Yup.string()\r\n .required(\"Please enter password\")\r\n .matches(/^[^\\s]+([^\\s]+)*$/, {\r\n message: \"Password can't contain spaces\",\r\n excludeEmptyString: true\r\n })\r\n .min(8, \"Password should be minimum 8 characters\")\r\n .max(60, \"Password should be maximum 60 characters\"),\r\n confirmPassword: Yup.string()\r\n .required(\"Please re-enter password\")\r\n .matches(/^[^\\s]+([^\\s]+)*$/, {\r\n message: \"Please enter valid confirm password\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"passwords-match\", \"Passwords do not match! please check.\", function(\r\n value\r\n ) {\r\n return this.parent.newPassword === value;\r\n })\r\n .min(8, \"Confirm password should be minimum 8 characters\")\r\n});\r\n","export const API_URL = //\"http://139.59.93.36:3001\";\r\n// \"https://genie-backend.testbase.online\";\r\n //\"https://devupi.xseller8.org\";\r\n // \"http://54.246.227.215:4000\";\r\n \"https://api.xseller8.org\";\r\n//\"http://34.245.239.29:4100\"\r\n //\"http://localhost:4000\";\r\nexport const URLDATA = { \r\n url: API_URL + \"/graphql\",\r\n queryFile: \"\"\r\n};\r\nexport const URLDATA2 = {\r\n url: API_URL + \"/graphql\",\r\n uploadUrl: API_URL + \"/api/Containers/files/upload\",\r\n queryFile: \"\"\r\n};\r\n// export const URLDATA2 = {\r\n// url: API_URL + \"/graphql\",\r\n// uploadUrl: API_URL + \"/api/Containers/files/upload\",\r\n// queryFile: \"\"\r\n// };\r\nexport const MoveToContact = {\r\n url: API_URL + \"/api/Usersdata/moveContactsData?contactArray=\",\r\n\r\n token: localStorage.getItem(\"token\"),\r\n createdBy: localStorage.getItem(\"id\")\r\n};\r\nexport const RemoveToContact = {\r\n url: API_URL + \"/api/Usersdata/removeContactsData?contactArray=\",\r\n\r\n token: localStorage.getItem(\"token\"),\r\n createdBy: localStorage.getItem(\"id\")\r\n};\r\nexport const getContactImageUrl = {\r\n url: API_URL + \"/api/Containers/imagefiles/download/\"\r\n};\r\nexport const MoveAllContactToTemp = {\r\n url: API_URL + \"/api/Usersdata/moveAllContactToTemp?campaignId=\",\r\n token: localStorage.getItem(\"token\")\r\n};\r\nexport const ResetPassword = {\r\n url: API_URL + \"/api/Usersdata/forgotPassword?email=\"\r\n};\r\n\r\nexport const profileImageUrl = {\r\n url: API_URL + \"/api/Usersdata/upload?access_token=\"\r\n};\r\nexport const campaignImageUrl = {\r\n url: API_URL + \"/api/Campaigns/upload?access_token=\"\r\n};\r\n\r\nexport const getProfileImageUrl = {\r\n url: API_URL + \"/api/Containers/files/download/\"\r\n};\r\nexport const getCampaignImageUrl = {\r\n url: API_URL + \"/api/Containers/campaignslogo/download/\"\r\n};\r\nexport const salesforceApi = {\r\n url:\r\n API_URL + \"/api/Customerlinkedinprofiles/SalesForcePostData?contactArray=\"\r\n};\r\n\r\nexport const hubspotApi = {\r\n url: API_URL + \"/api/Customerlinkedinprofiles/HubspotPostData?contactArray=\"\r\n};\r\n\r\n// (\"use strict\");\r\n\r\n// var pkg = require(\"./package.json\");\r\n// var Greenlock = require(\"greenlock\");\r\n// var greenlock = Greenlock.create({\r\n// configDir: \"./greenlock.d/config.json\",\r\n// packageAgent: pkg.name + \"/\" + pkg.version,\r\n// maintainerEmail: pkg.author,\r\n// staging: true,\r\n// notify: function(event, details) {\r\n// if (\"error\" === event) {\r\n// // `details` is an error object in this case\r\n// console.error(details);\r\n// }\r\n// }\r\n// });\r\n\r\n// greenlock.manager\r\n// .defaults({\r\n// agreeToTerms: true,\r\n// subscriberEmail: \"webhosting@example.com\"\r\n// })\r\n// .then(function(fullConfig) {\r\n// // ...\r\n// });\r\n","import React from \"react\";\r\n// import { makeStyles } from \"@material-ui/core/styles\";\r\n// import Card from \"@material-ui/core/Card\";\r\n// import CardActionArea from \"@material-ui/core/CardActionArea\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./card1.css\";\r\nimport imgTotalUsers from \"../assets/dashboard-users-icon.png\";\r\nimport imgCustomers from \"../assets/dashboard-customers-icon.png\";\r\nimport imgContacts from \"../assets/dashboard-contacts-icon.png\";\r\nimport imgCampaings from \"../assets/dashboard-campaigns-icon.png\";\r\nimport imgLeads from \"../assets/dashboard-leads-icon.png\";\r\n// import megaphone from \"../assets/megaphone.png\";\r\n// import network1 from \"../assets/network1.png\";\r\n// import Icons from \"../assets/Icons.png\";\r\n// import recruitment from \"../assets/recruitment.png\";\r\nimport Monitorlogo from \"../assets/Monitorlogo.png\";\r\nimport LiveCompaignIcon from \"../assets/rocket.svg\";\r\nimport ConnectRateIcon from \"../assets/marketing.svg\";\r\nimport TotalEngagedIcon from \"../assets/market.svg\";\r\nimport TotalLeadIcon from \"../assets/target.svg\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n// const useStyles = makeStyles({\r\n\r\n// });\r\n\r\nfunction MediaCard(props) {\r\n function calculate() {\r\n let length = \"\";\r\n switch (props.header) {\r\n case \"CAMPAIGNS\":\r\n return (\r\n
\r\n
\r\n
\r\n {\" \"}\r\n
{props.DashboardData.LiveCompaign}
{\" \"}\r\n ({props.DashboardData.TotalCampaign})\r\n
\r\n\r\n
{\"Live Campaigns\"}
\r\n
\r\n
\r\n \"users\"\r\n
\r\n
\r\n );\r\n case \"CONNECT RATE\":\r\n return (\r\n
\r\n
\r\n
\r\n {\" \"}\r\n
{props.DashboardData.TotalConnectRate}%
{\" \"}\r\n
\r\n\r\n
{\"Total Connect Rate\"}
\r\n
\r\n
\r\n \"users\"\r\n
\r\n
\r\n );\r\n case \"% ENGAGED\":\r\n return (\r\n
\r\n
\r\n
\r\n {\" \"}\r\n
{props.DashboardData.TotalEngaged}%
{\" \"}\r\n
\r\n\r\n
{\"Total Engaged\"}
\r\n
\r\n
\r\n \"users\"\r\n
\r\n
\r\n );\r\n case \"% LEADS\":\r\n return (\r\n
\r\n
\r\n
\r\n {\" \"}\r\n
{props.DashboardData.TotalLeads}%
{\" \"}\r\n
\r\n\r\n
{\"Total Leads\"}
\r\n
\r\n
\r\n \"users\"\r\n
\r\n
\r\n );\r\n case \"Monitoring\":\r\n return (\r\n
\r\n
\r\n \"users\"\r\n
\r\n
\r\n );\r\n case \"Users\":\r\n return (\r\n
\r\n
\r\n \"users\"\r\n
\r\n
\r\n \r\n {\r\n (length =\r\n props.totalCounts === \"\" ||\r\n props.totalCounts.allUsersdata === null\r\n ? 0\r\n : props.totalCounts.allUsersdata.totalCount)\r\n }\r\n \r\n Total {props.header}\r\n
\r\n
\r\n );\r\n case \"Customers\":\r\n return (\r\n
\r\n
\r\n \"Customers\"\r\n
\r\n
\r\n \r\n {\r\n (length =\r\n props.totalCounts === \"\" ||\r\n props.totalCounts.allCustomers === null\r\n ? 0\r\n : props.totalCounts.allCustomers.totalCount)\r\n }\r\n \r\n Total {props.header}\r\n
\r\n
\r\n );\r\n case \"Contacts\":\r\n return (\r\n
\r\n
\r\n \"contacts\"\r\n
\r\n
\r\n \r\n {\r\n (length =\r\n props.totalCount === \"\" ||\r\n props.totalCount.allContacts === null\r\n ? 0\r\n : props.totalCount.allContacts.totalCount)\r\n }\r\n \r\n Total {props.header}\r\n
\r\n
\r\n );\r\n case \"Campaigns\":\r\n return (\r\n
\r\n
\r\n \"Campaigns\"\r\n
\r\n
\r\n \r\n {\r\n (length =\r\n props.totalCounts === \"\" ||\r\n props.totalCounts.allCampaigns === null\r\n ? 0\r\n : props.totalCounts.allCampaigns.totalCount)\r\n }\r\n \r\n Total {props.header}\r\n
\r\n
\r\n );\r\n case \"Leads\":\r\n return (\r\n
\r\n
\r\n \"Leads\"\r\n
\r\n
\r\n \r\n {\r\n (length =\r\n props.totalCount === \"\" || props.totalCount.leads === null\r\n ? 0\r\n : props.totalCount.leads.totalCount)\r\n }\r\n \r\n Total {props.header}\r\n
\r\n
\r\n );\r\n default:\r\n }\r\n }\r\n\r\n function onClickCard(currentHeader) {\r\n props.onClickCard(currentHeader);\r\n }\r\n\r\n return (\r\n
\r\n {\r\n localStorage.setItem(\"path\", props.headerPath);\r\n\r\n onClickCard(props.currentHeader);\r\n }}\r\n >\r\n \r\n \r\n \r\n {calculate()}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default MediaCard;\r\n","import React from \"react\";\r\nimport \"./card2.css\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { connect } from \"react-redux\";\r\nimport { getCampaignImageUrl } from \"../../config\";\r\n\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow\r\n} from \"@material-ui/core\";\r\n\r\nfunction MediaCard2(props) {\r\n\r\n\r\n const formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n const history = useHistory();\r\n\r\n const onNameClick = row => {\r\n \r\n props.onHandleCampaign(row);\r\n localStorage.setItem(\"path\", \"/campaigns\");\r\n\r\n history.push({ pathname: \"/campaigns\", state: row });\r\n\r\n };\r\n\r\n\r\n\r\n const rows = props.DashboardData.newRecentdata;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rows.map(row => (\r\n \r\n onNameClick(row)}\r\n >\r\n
\r\n
\r\n {\" \"}\r\n {row.campaignLogo != null && (\r\n \r\n )}\r\n {row.campaignLogo == null && (\r\n
{row.campaignName.charAt(0).toUpperCase()}
\r\n )}\r\n
\r\n
\r\n \r\n

{row.campaignName}

\r\n

for {row.company}

\r\n

Profile {row.Linkedin}

\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n {row.invitedContact}\r\n \r\n \r\n \r\n {row.connectedPer\r\n ? row.connectedPer.toFixed(0) + \"%\"\r\n : 0 + \"%\"}\r\n \r\n \r\n\r\n \r\n \r\n {row.engagedPer ? row.engagedPer.toFixed(0) + \"%\" : 0 + \"%\"}\r\n \r\n \r\n \r\n \r\n {row.leadPer ? row.leadPer.toFixed(0) + \"%\" : 0 + \"%\"}\r\n \r\n \r\n\r\n {formatDate(row.startdate)}\r\n \r\n ))}\r\n \r\n \r\n
\r\n Campaigns\r\n \r\n Invitation\r\n \r\n Connections\r\n \r\n Engagement\r\n \r\n Leads\r\n \r\n Start Date\r\n
\r\n
\r\n );\r\n \r\n\r\n function onClickCard(currentHeader) {\r\n props.onClickCard(currentHeader);\r\n }\r\n\r\n\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n \r\n return {\r\n onHandleCampaign: data =>\r\n dispatch({\r\n type: \"Campaign_Detail\",\r\n payload: data\r\n })\r\n };\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps)(MediaCard2);\r\n\r\n","import { createStore } from \"redux\";\r\nimport rootReducer from \"./Reducer\";\r\n\r\nconst initialState = {\r\n Header: \"Home\",\r\n emailVerification: null,\r\n userName: [],\r\n addLinkedinStep: [],\r\n addModalStep: [],\r\n addNewCampaign: {},\r\n stepName: \"\",\r\n isEditMode: false,\r\n id: 0,\r\n offset: 0,\r\n formData: [],\r\n selectDateResponse: undefined,\r\n campaignId: undefined,\r\n customerFilter: \"\",\r\n campaignDetail: null\r\n};\r\n\r\nconst store = createStore(rootReducer, initialState);\r\nexport default store;\r\n","export default (state, action) => {\r\n switch (action.type) {\r\n case \"Show_Tab_Data\": {\r\n return {\r\n ...state,\r\n showTab: action.payload.show\r\n // Status: action.payload.status\r\n };\r\n }\r\n\r\n case \"Email_Verification\": {\r\n return {\r\n ...state,\r\n emailVerification: action.payload\r\n };\r\n }\r\n\r\n case \"NAME_TEXT\": {\r\n return { ...state, userName: action.payload };\r\n }\r\n case \"HANDLE_SIDEBAR_TEXT\":\r\n return { ...state, Header: action.payload };\r\n\r\n case \"LOGGEDIN_USER_NAME\":\r\n return { ...state, loggedInUserName: action.payload };\r\n\r\n case \"LOGGEDIN_USERID\":\r\n return { ...state, loggedInUserID: action.payload };\r\n\r\n case \"ADD_NEW_CAMPAIGN\":\r\n return { ...state, loggedInUserID: action.payload };\r\n\r\n case \"ADD_LINKEDIN\":\r\n return {\r\n ...state,\r\n addLinkedinStep: [...state.addLinkedinStep, action.modalData]\r\n };\r\n\r\n case \"EDIT_LINKEDIN\":\r\n return {\r\n ...state,\r\n addLinkedinStep: [...state.addLinkedinStep]\r\n };\r\n\r\n case \"Delete_Result\":\r\n const updateArray = state.addLinkedinStep.filter(\r\n addLinkedinStep => addLinkedinStep.linkedinemail !== action.LinkedinId\r\n );\r\n return {\r\n ...state,\r\n addLinkedinStep: updateArray\r\n };\r\n case \"Delete_Result_Data\":\r\n const updateArrayData = state.addLinkedinStep.filter(\r\n addLinkedinStep => addLinkedinStep.id !== action.LinkedinId\r\n );\r\n return {\r\n ...state,\r\n addLinkedinStep: updateArrayData\r\n };\r\n\r\n case \"Edit_Linkedin_Data\":\r\n return { ...state, addLinkedinStep: action.LinkedinId };\r\n\r\n case \"Clear_Linkedin_Data\": {\r\n return { ...state, addLinkedinStep: action.Linkedindata };\r\n }\r\n\r\n case \"ADD_NEW_CAMPAIGN\":\r\n return { ...state, loggedInUserID: action.payload };\r\n\r\n case \"Form_data\":\r\n return { ...state, formData: action.payload };\r\n\r\n case \"ADD_STEP\":\r\n return {\r\n ...state,\r\n addModalStep: [...state.addModalStep, action.modalData]\r\n };\r\n\r\n case \"DELETE_ADDSTEPS\":\r\n const updateStep = state.addModalStep.filter(\r\n addModalStep => addModalStep.stepname !== action.Modal_step\r\n );\r\n return {\r\n ...state,\r\n addModalStep: updateStep\r\n };\r\n\r\n case \"Delete_Results_Data\":\r\n const updateData = state.addModalStep.filter(\r\n addModalStep => addModalStep.id !== action.Modal_step\r\n );\r\n return {\r\n ...state,\r\n addModalStep: updateData\r\n };\r\n\r\n case \"EDIT_MODAL_STEP\":\r\n return { ...state, addModalStep: [...state.addModalStep] };\r\n\r\n case \"Edit_Step_Data\":\r\n return { ...state, addModalStep: action.StepId };\r\n\r\n case \"Clear_ADD_STEP\": {\r\n return { ...state, addModalStep: action.stepData };\r\n }\r\n case \"STEPS_NAME\": {\r\n return { ...state, stepName: action.stepname };\r\n }\r\n\r\n case \"IsEditModeable\": {\r\n return {\r\n ...state,\r\n isEditMode: action.editMode\r\n };\r\n }\r\n\r\n case \"GetId\": {\r\n return {\r\n ...state,\r\n id: action.id\r\n };\r\n }\r\n\r\n case \"Last_Response\": {\r\n return { ...state, selectDateResponse: action.payload };\r\n }\r\n\r\n case \"Handle_CampaignId\": {\r\n return { ...state, campaignId: action.payload };\r\n }\r\n\r\n case \"Customer_Filter\": {\r\n return { ...state, customerFilter: action.payload };\r\n }\r\n case \"Campaign_Detail\": {\r\n return { ...state, campaignDetail: action.payload };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import gql from \"graphql-tag\";\r\nimport store from \"./Redux/Store\";\r\nexport const lenghtCount =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? `query{\r\n allUsersdata(where:{createdby:${localStorage.getItem(\"id\")}}) {\r\n totalCount\r\n }\r\n allCampaigns(where:{active:1,campaignadminid:${localStorage.getItem(\"id\")}}) {\r\n totalCount\r\n Campaigns {\r\n id\r\n }\r\n }\r\n allCustomers(where:{createdby:${localStorage.getItem(\"id\")}}){\r\n totalCount\r\n }\r\n }`\r\n : localStorage.getItem(\"role\") === \"SADMIN\"\r\n ? `query{\r\n allUsersdata {\r\n totalCount\r\n }\r\n allCampaigns(where:{active:1}) {\r\n totalCount\r\n }\r\n allCustomers{\r\n totalCount\r\n }\r\n }`\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? `query{\r\n allCampaigns(where:{active:1,campaignmanagerid:${localStorage.getItem(\r\n \"id\"\r\n )}}) {\r\n totalCount\r\n Campaigns {\r\n id\r\n }\r\n }\r\n }`\r\n : `query{\r\n allCampaigns(where:{active:1,customerid:${localStorage.getItem(\r\n \"customer\"\r\n )}}) {\r\n totalCount\r\n Campaigns {\r\n id\r\n }\r\n }\r\n \r\n }`;\r\n\r\nexport const contactCount = gql`\r\n query($obj: JSON, $where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n }\r\n leads: allContacts(where: $obj) {\r\n totalCount\r\n }\r\n }\r\n`;\r\n\r\nexport const usersQuery = (limit, offset) => {\r\n return `query{\r\n all: allUsersdata(last:${limit}, first:${offset}){\r\n totalCount\r\n Usersdata{\r\n firstName\r\n lastName\r\n email \r\n role\r\n contactnumber\r\n status\r\n id\r\n }\r\n } \r\n active: allUsersdata (last:${limit}, first:${offset},where:{status:1}){\r\n totalCount\r\n Usersdata{\r\n firstName\r\n lastName\r\n email \r\n role\r\n contactnumber\r\n status\r\n id\r\n }\r\n }\r\n inactive: allUsersdata (last:${limit}, first:${offset},where:{status:0}){\r\n totalCount\r\n Usersdata{\r\n firstName\r\n lastName\r\n email \r\n role\r\n contactnumber\r\n status\r\n id\r\n }\r\n }\r\n }`;\r\n};\r\n\r\nexport const userSearch = (limit, offset) => {\r\n return `query ($where: JSON) {\r\n all:allUsersdata(where: $where,last:${limit}, first:${offset}) {\r\n totalCount\r\n Usersdata{\r\n firstName\r\n lastName\r\n email \r\n role\r\n contactnumber\r\n status\r\n id\r\n abm\r\n createdby\r\n }\r\n }\r\n}`;\r\n};\r\nexport const userData = `query ($where: JSON) {\r\n allUsersdata(where: $where) {\r\n \r\n Usersdata{\r\n firstName\r\n lastName\r\n email \r\n role\r\n contactnumber\r\n status\r\n id\r\n createdby\r\n }\r\n }\r\n}`;\r\n\r\nexport const customersInfo = (limit, offset) => {\r\n return localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? `query ($where: JSON) {\r\n allCustomers(where: $where, last: ${limit}, first: ${offset}) {\r\n totalCount\r\n Customers {\r\n id\r\n firstName\r\n lastName\r\n company\r\n contactno\r\n email\r\n active \r\n LIVE: campaignfk(where:{status:LIVE,createdby:${localStorage.getItem(\r\n \"id\"\r\n )}}) {\r\n totalCount\r\n }\r\n NotStarted: campaignfk(where:{status:NOTSTARTED,createdby:${localStorage.getItem(\r\n \"id\"\r\n )}}) {\r\n totalCount\r\n Campaigns{\r\n createdby\r\n }\r\n }\r\n PAUSED: campaignfk(where:{status:PAUSED,createdby:${localStorage.getItem(\r\n \"id\"\r\n )}}) {\r\n totalCount\r\n \r\n }\r\n COMPLETED: campaignfk(where:{status:COMPLETED,createdby:${localStorage.getItem(\r\n \"id\"\r\n )}}) {\r\n totalCount \r\n }\r\n }\r\n }\r\n }`\r\n : `query ($where: JSON) {\r\n allCustomers(where: $where, last: ${limit}, first: ${offset}) {\r\n totalCount\r\n Customers {\r\n id\r\n firstName\r\n lastName\r\n company\r\n contactno\r\n email\r\n active\r\n Campaigns: campaignfk {\r\n totalCount\r\n Campaigns{\r\n status\r\n createdby\r\n }\r\n }\r\n LIVE: campaignfk(where:{status:LIVE}) {\r\n totalCount\r\n }\r\n NotStarted: campaignfk(where:{status:NOTSTARTED}) {\r\n totalCount\r\n }\r\n PAUSED: campaignfk(where:{status:PAUSED}) {\r\n totalCount\r\n }\r\n COMPLETED: campaignfk(where:{status:COMPLETED}) {\r\n totalCount\r\n }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\nexport const contactInfo = (limit, offset) => {\r\n return `query($where: JSON) {\r\n allContacts(where: $where,last:${limit}, first:${offset}) {\r\n totalCount\r\n Contacts {\r\n id\r\n profileimage\r\n image\r\n name\r\n linkedinid\r\n campaignid\r\n designation\r\n organization\r\n campaignstatus\r\n location\r\n country\r\n state \r\n Campaigns: campaignIbfk4rel{\r\n Campaigns{\r\n name\r\n Profile:customercredentialsIbfk1rel{\r\n Customerlinkedinprofiles{\r\n name\r\n }\r\n }\r\n Customers: customerIbfk1rel{\r\n Customers{\r\n company\r\n firstName\r\n lastName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}`;\r\n};\r\n\r\nexport const queryConfig1 = obj => {\r\n return {\r\n query: gql`\r\n query Usersdata($id: ID!) {\r\n result: Usersdata(id: $id) {\r\n totalCount\r\n results(where:{id:${obj}} ) {\r\n name\r\n email\r\n id\r\n }\r\n }\r\n }\r\n `\r\n };\r\n};\r\n\r\nexport const CampaignInfo = (limit, offset) => {\r\n return gql`query($where: JSON) {\r\n allCampaigns(where: $where, last: ${limit}, first: ${offset}) {\r\n totalCount\r\n Campaigns {\r\n id\r\n name\r\n customerid\r\n linkedinid\r\n targetconnections\r\n campaignmanagerid\r\n startdate\r\n status\r\n logintime\r\n logouttime\r\n salesNavigator\r\n runningCampaign\r\n invitedcount\r\n connectedcount\r\n connectedper\r\n engagedcount\r\n engagedper\r\n leadcount\r\n leadper\r\n error\r\n systemipadd\r\n datafromcampaign\r\n type\r\n freecontact \r\n weekreqfree\r\n invitelimit\r\n invitetoday\r\n \r\n customercredentialsIbfk1rel{\r\n Customerlinkedinprofiles{\r\n name \r\n }\r\n }\r\n customerIbfk1rel{\r\n Customers {\r\n firstName\r\n lastName\r\n company\r\n }\r\n } \r\n }\r\n }\r\n }`;\r\n};\r\n// export const CampaignInfo = (limit, offset) => {\r\n// return gql`query($where: JSON) {\r\n// allCampaigns(where: $where, last: ${limit}, first: ${offset}) {\r\n// totalCount\r\n// Campaigns {\r\n// id\r\n// name\r\n// customerid\r\n// linkedinid\r\n// targetconnections\r\n// campaignmanagerid\r\n// startdate\r\n// status\r\n// logintime\r\n// logouttime\r\n// salesNavigator\r\n// runningCampaign\r\n// error\r\n// systemipadd\r\n// datafromcampaign\r\n// type\r\n// customercredentialsIbfk1rel{\r\n// Customerlinkedinprofiles{\r\n// name \r\n// }\r\n// }\r\n// customerIbfk1rel{\r\n// Customers {\r\n// firstName\r\n// lastName\r\n// company\r\n// }\r\n// }\r\n \r\n// totalInvited: contactfk(where: { active: 1, invitesent:1}) {\r\n// totalCount \r\n// }\r\n// totalConnected: contactfk(where: { active: 1, inviteconnect: 1, invitesent:1}) {\r\n// totalCount \r\n// }\r\n// totalEngaged: contactfk(where: { active: 1, engaged: 1 }) {\r\n// totalCount\r\n// }\r\n// totalLeads: contactfk(where: { active: 1, leads: 1 }) {\r\n// totalCount \r\n// }\r\n// }\r\n// }\r\n// }`;\r\n// };\r\n\r\nexport const CampaignTempListsInfo = (limit, offset) => {\r\n return `query ($where: JSON){\r\n allTempcontactsdetails(last:${limit}, first:${offset},where:$where) {\r\n totalCount\r\n Tempcontactsdetails {\r\n id\r\n campaignid\r\n profileimage\r\n name\r\n fname\r\n headline\r\n location\r\n email\r\n phonenumber\r\n organization\r\n designation\r\n surname\r\n gender\r\n country\r\n state\r\n ContactDetailsMessages: tempcontactmessages_ibfk_1 {\r\n Tempcontactmessages {\r\n type\r\n message\r\n messagedatetime\r\n realmsgdatetime\r\n createdon\r\n }\r\n }\r\n }\r\n } \r\n}`;\r\n};\r\n\r\nexport const CampaignTempListsSelectAll = `query ($where: JSON ,$first:Int, $last:Int){\r\n allTempcontactsdetails(where:$where , first:$first, last:$last) {\r\n totalCount\r\n Tempcontactsdetails {\r\n id\r\n campaignid\r\n profileimage\r\n name\r\n templistid\r\n email\r\n phonenumber\r\n country\r\n city\r\n organization\r\n designation\r\n surname\r\n gender\r\n country\r\n state\r\n ContactDetailsMessages: tempcontactmessages_ibfk_1 {\r\n Tempcontactmessages {\r\n type\r\n message\r\n messagedatetime\r\n realmsgdatetime\r\n createdon\r\n }\r\n }\r\n }\r\n } \r\n }`;\r\n//Campaigns\r\n\r\nexport const getCampaignType= `query ($where:JSON){\r\n allCampaigns(where:$where){\r\n Campaigns{\r\n salesNavigator\r\n }\r\n }\r\n }`;\r\n\r\nexport const listCampaignTempList = `query ($where:JSON){\r\n allTemplists(where:$where){\r\n Templists{\r\n id\r\n name\r\n campaignid\r\n }\r\n }\r\n }`;\r\n\r\nexport const fetchTempListDetail = `query($where: JSON){\r\n allTempcontactsdetails(where: $where) {\r\n totalCount\r\n Tempcontactsdetails {\r\n id\r\n campaignid\r\n profileimage\r\n profileurl\r\n name\r\n fname\r\n headline\r\n location\r\n email\r\n phonenumber\r\n dateofbirth\r\n connectedon\r\n organization\r\n designation\r\n twitter\r\n industry\r\n skype\r\n numberoffollowers\r\n surname\r\n gender\r\n country\r\n state\r\n ContactDetailsMessages: tempcontactmessages_ibfk_1 {\r\n Tempcontactmessages {\r\n type\r\n message\r\n messagedatetime\r\n realmsgdatetime\r\n createdon\r\n }\r\n }\r\n\r\n }\r\n } \r\n}`;\r\n\r\n\r\n// export const TempContacts = id =>\r\n// `query {\r\n// allTempcontactsdetails(where:{id: ${id}}) {\r\n// totalCount\r\n// Tempcontactsdetails {\r\n// twitter\r\n// id\r\n// campaignid\r\n// profileimage\r\n// profileurl\r\n// name\r\n// fname\r\n// headline\r\n// location\r\n// email\r\n// phonenumber\r\n// dateofbirth\r\n// connectedon\r\n// organization\r\n// designation\r\n// twitter\r\n// industry\r\n// skype\r\n// numberoffollowers\r\n// surname\r\n// gender\r\n// country\r\n// state\r\n// ContactDetailsMessages: tempcontactmessages_ibfk_1 {\r\n// Tempcontactmessages {\r\n// type\r\n// message\r\n// messagedatetime\r\n// realmsgdatetime\r\n// createdon\r\n// }\r\n// }\r\n\r\n// }\r\n// }\r\n// }`;\r\nexport const TempMesg = id =>\r\n `query{\r\n allTempcontactmessages(where: {contactid: ${id}}) {\r\n Tempcontactmessages{\r\n type\r\nmessage\r\nmessagedatetime\r\nrealmsgdatetime\r\ncreatedon\r\n }\r\n }\r\n}\r\n`;\r\nexport const campaignDetails = id => {\r\n return `query{\r\n Campaigns(id: ${id}) {\r\n id\r\n name\r\n description\r\n linkedinid\r\n status\r\n startdate\r\n targetconnections\r\n customerid\r\n datafromcampaign\r\n type\r\n contactcountfortab\r\n customercredentialsIbfk1rel{\r\n Customerlinkedinprofiles {\r\n name\r\n }\r\n }\r\n timezone\r\n Admin: usersIbfk3rel {\r\n Usersdata {\r\n id\r\n firstName\r\n lastName\r\n role\r\n }\r\n }\r\n customerIbfk1rel {\r\n Customers {\r\n id\r\n company\r\n }\r\n }\r\n Manager:usersIbfk1rel {\r\n Usersdata {\r\n firstName\r\n lastName\r\n }\r\n }\r\n Campaignstepfk (where:{active:1}){\r\n Campaignsteps {\r\n id\r\n stepname\r\n limitperday\r\n subject\r\n message\r\n daysdelay\r\n sequence\r\n }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\nexport const campaignZapierurlDetails = id => {\r\n return `query{\r\n Campaigns(id: ${id}) {\r\n id\r\n name\r\n zapierurl\r\n }\r\n }`;\r\n};\r\n\r\nexport const campaignContactsTabList = (limit, offset, campaigIdData) => {\r\n return `query ($where: JSON) {\r\n allContacts(where: $where,last:${limit}, first:${offset}) {\r\n totalCount\r\n Contacts {\r\n id\r\n name\r\n campaignid\r\n fname \r\n designation\r\n organization\r\n location\r\n profileimage\r\n image\r\ninvitationsent\r\ncurrentstatus\r\n connect\r\n campaignstatus\r\n contactstatus\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n thanksmsgdate\r\n dateofbirth\r\n currentstatus\r\n lastresponse\r\n followup\r\nnextstepname\r\nnextstepdate\r\ninvitesent\r\nsurname\r\ngender\r\n country\r\n state \r\n }\r\n }\r\n \r\n }`;\r\n};\r\nexport const campaignContactsTabList2 = (limit, offset) => {\r\n return `query ($where: JSON) {\r\n allTriggernotifications (where: $where,last:${limit}, first:${offset}){\r\n totalCount\r\n Triggernotifications{\r\n id,\r\n name,\r\n contactid,\r\n organization,\r\n date,\r\n location,\r\n position,\r\n triggerdata,\r\n triggertype,\r\n triggerstatus,\r\n url,\r\n lastactiondate,\r\n followup,\r\n notificationdate\r\n \r\n }\r\n }\r\n}\r\n`;\r\n};\r\n\r\nexport const campaignContactStatusMutation = gql`\r\n mutation($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n// triger status update\r\nexport const triggerStatusMutation = gql`\r\n mutation($where: JSON, $data: JSON) {\r\n TriggernotificationUpsertWithWhere(where: $where, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const tempcontactsdetailsMuttion = gql`\r\n mutation($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const campaignContactLogMaintain = gql`\r\n mutation($data: JSON) {\r\n ContactlogsCreate(data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const contactExport = gql`\r\n mutation($data: JSON) {\r\n ContactexporthistoryCreate(data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\n// export const CampaignMoveAllContactToTemp = gql`\r\n// mutation($campaignId:string,$newCampaignId:string){\r\n// UsersdataMoveAllContactToTemp(campaignId:$campaignId ,newCampaignId:$newCampaignId){\r\n// id\r\n// }\r\n// }\r\n// `;\r\nexport const campaignEngagedTabList = (limit, offset) => {\r\n return `query ($where: JSON) {\r\n allContacts(where: $where,last:${limit}, first:${offset}) {\r\n totalCount\r\n Contacts {\r\n id\r\n campaignid\r\n name\r\n fname \r\n designation\r\n organization\r\n location\r\n profileimage\r\n image\r\ninvitationsent\r\ncurrentstatus\r\n connect\r\n campaignstatus\r\n contactstatus\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n thanksmsgdate\r\n dateofbirth\r\n currentstatus\r\n lastresponse\r\n followup\r\nnextstepname\r\nnextstepdate\r\ninvitesent\r\n country\r\n state \r\n }\r\n }\r\n }`;\r\n};\r\n\r\nexport const campaignNoOpTabList = (limit, offset) => {\r\n return `query ($where: JSON) {\r\nallContacts(where: $where,last:${limit}, first:${offset}) {\r\ntotalCount\r\nContacts {\r\nid\r\ncampaignid\r\nname\r\ndesignation\r\norganization\r\nlocation\r\ninvitationsent\r\ncurrentstatus\r\nprofileimage\r\nimage\r\nconnectedon\r\nconnect\r\ncampaignstatus\r\ncontactstatus\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n thanksmsgdate\r\n dateofbirth\r\n country\r\n state \r\nContactmessagesfk(where:{order:\"id asc\" }){\r\n Contactmessages{\r\n type\r\n message\r\n messagedatetime\r\n createdon\r\n }\r\n }\r\ncurrentStage: Contactworkflowhistoryfk(where: {order: executedon, status: \"SUCCESS\"}) {\r\nContactworkflowhistories {\r\ncampaignstepid\r\nsuccessflag\r\nstatus\r\nexecutedon\r\nnextstep\r\ncontactid\r\ncontactworkflowhistoryIbfk2rel {\r\nCampaignsteps {\r\n campaignid\r\n sequence\r\n subject\r\nstepname\r\ndaysdelay\r\n}\r\n}\r\n}\r\n}\r\n\r\n}\r\n}\r\n}`;\r\n};\r\n\r\nexport const campaignLeadsTabList = (limit, offset) => {\r\n return `query ($where: JSON) {\r\n allContacts(where: $where,last:${limit}, first:${offset}) {\r\n totalCount\r\n Contacts {\r\n id\r\n campaignid\r\n name\r\n fname \r\n designation\r\n organization\r\n location\r\n profileimage\r\n image\r\ninvitationsent\r\ncurrentstatus\r\n connect\r\n campaignstatus\r\n contactstatus\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n thanksmsgdate\r\n dateofbirth\r\n currentstatus\r\n lastresponse\r\n followup\r\nnextstepname\r\nnextstepdate\r\ninvitesent\r\n country\r\n state \r\n }\r\n }\r\n }`;\r\n};\r\n\r\nexport const CustomerInfo = `query ($where: JSON) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n email\r\n firstName\r\n lastName\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const LeadsInfo = (limit, offset) => {\r\n return `query ($where:JSON){\r\nallContacts(where: $where,last:${limit}, first:${offset}){\r\ntotalCount\r\nContacts{\r\nid\r\ncampaignid\r\nname\r\nprofileimage\r\nimage\r\nlinkedinid\r\ncontactstatus\r\ncampaignstatus\r\norganization\r\ndesignation\r\nlocation\r\n country\r\n state \r\nContactmessagesfk{\r\nContactmessages{\r\ncontactid\r\ntype\r\nmessage\r\nmessagedatetime\r\ncreatedon\r\n}\r\n}\r\nContactlogs:Contactlogsfk{\r\nContactlogs{\r\ncontactid\r\naction\r\ncreatedon\r\n}\r\n}\r\nCampaigns: campaignIbfk4rel {\r\nCampaigns {\r\nname\r\ncustomerid\r\n Profile:customercredentialsIbfk1rel{\r\n Customerlinkedinprofiles{\r\n name\r\n }\r\n }\r\nCustomers: customerIbfk1rel {\r\nCustomers {\r\ncompany\r\n}\r\n}\r\n}\r\n}\r\n}\r\n}\r\n}`;\r\n};\r\nexport const queryConfig = obj => {\r\n return {\r\n query: gql`\r\n query Usersdata($id: ID!) {\r\n result: Usersdata(id: $id) {\r\n totalCount\r\n results {\r\n name\r\n email\r\n id\r\n }\r\n }\r\n }\r\n `\r\n };\r\n};\r\n\r\nexport const campaignContactsTabSelectList = `query ($where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n campaignid\r\n name\r\n designation\r\n organization\r\n location\r\n profileimage\r\n image\r\n invitationsent\r\ncurrentstatus\r\n connectedon\r\n thanksmsgdate\r\n connect\r\n campaignstatus\r\n contactstatus\r\n country\r\n state \r\n Contactmessagesfk(where:{order: \"id desc\", type: \"RECEIVED\"},last:1){\r\nContactmessages{\r\nmessage\r\ncreatedon\r\n}\r\n}\r\n currentStage: Contactworkflowhistoryfk(where: {order: executedon, status: \"SUCCESS\"}) {\r\n Contactworkflowhistories {\r\n campaignstepid\r\n successflag\r\n status\r\n executedon\r\n nextstep\r\n contactid\r\n contactworkflowhistoryIbfk2rel {\r\n Campaignsteps {\r\n stepname\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n }`;\r\n\r\nexport const campaignContactsTabSelectList2 = `query ($where: JSON) {\r\n allTriggernotifications (where: $where){\r\n totalCount\r\n Triggernotifications{\r\n id,\r\n name,\r\n contactid,\r\n organization,\r\n date,\r\n location,\r\n position,\r\n triggerdata,\r\n triggertype,\r\n campaignstatus,\r\n url,\r\n lastactiondate\r\n }\r\n }\r\n }`;\r\n\r\nexport const campaignEngagedTabSelectList = `query ($where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n campaignid\r\n name\r\n designation\r\n organization\r\n location\r\n engaged\r\n profileimage\r\n image\r\n connectedon\r\n thanksmsgdate\r\n connect\r\n campaignstatus\r\n contactstatus\r\n followup\r\n Contactmessagesfk(where:{order: \"id desc\", type: \"RECEIVED\"},last:1){\r\nContactmessages{\r\nmessage\r\ncreatedon\r\n}\r\n}\r\n currentStage: Contactworkflowhistoryfk(where: {order: executedon, status: \"SUCCESS\"}) {\r\n Contactworkflowhistories {\r\n campaignstepid\r\n successflag\r\n status\r\n executedon\r\n nextstep\r\n contactid\r\n contactworkflowhistoryIbfk2rel {\r\n Campaignsteps {\r\n stepname\r\n }\r\n }\r\n }\r\n }\r\n \r\n }\r\n }\r\n }`;\r\n\r\nexport const campaignLeadsTabSelectList = `query ($where: JSON) {\r\nallContacts(where: $where) {\r\ntotalCount\r\nContacts {\r\nid\r\ncampaignid\r\nname\r\nlinkedinid\r\ndesignation\r\ncontactstatus\r\norganization\r\nprofileimage\r\nimage\r\ncampaignstatus\r\nlocation\r\nconnectedon\r\nthanksmsgdate\r\nconnect\r\n country\r\n state \r\nContactmessagesfk(where:{order: \"id desc\", type: \"RECEIVED\"},last:1){\r\nContactmessages{\r\nmessage\r\ncreatedon\r\n}\r\n}\r\ncurrentStage: Contactworkflowhistoryfk(where: {order: executedon, status: \"SUCCESS\"}) {\r\nContactworkflowhistories {\r\ncampaignstepid\r\nsuccessflag\r\nstatus\r\nexecutedon\r\nnextstep\r\ncontactid\r\ncontactworkflowhistoryIbfk2rel {\r\nCampaignsteps {\r\nstepname\r\n}\r\n}\r\n}\r\n}\r\n\r\nCampaigns: campaignIbfk4rel {\r\nCampaigns {\r\nname\r\ncustomerid\r\nCustomers: customerIbfk1rel {\r\nCustomers {\r\ncompany\r\n}\r\n}\r\n}\r\n}\r\n}\r\n} \r\n}`;\r\n\r\nexport const campaignContactsExport = `query ($where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n campaignid\r\n name\r\n fname \r\n designation\r\n organization\r\n location\r\n profileimage\r\n image\r\ninvitationsent\r\ncurrentstatus\r\n\r\n connect\r\n campaignstatus\r\n contactstatus\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n thanksmsgdate\r\n dateofbirth\r\n country\r\n state \r\n surname\r\n campaignIbfk4rel{\r\n Campaigns{\r\n zapierurl\r\n name\r\n }\r\n}\r\nContactmessagesfk(where:{order:\"id asc\" }){\r\n Contactmessages{\r\n type\r\n message\r\n messagedatetime\r\n createdon\r\n }\r\n }\r\n currentStage: Contactworkflowhistoryfk(where: {order: executedon, status: \"SUCCESS\"}) {\r\n Contactworkflowhistories{\r\n campaignstepid\r\n successflag\r\n status\r\n executedon\r\n nextstep\r\n contactid\r\n contactworkflowhistoryIbfk2rel{\r\n Campaignsteps {\r\n campaignid\r\n sequence\r\n subject\r\n stepname\r\n daysdelay\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n }`;\r\nexport const campaignContactsExport2 = `query ($where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n campaignid\r\n name\r\n fname \r\n designation\r\n organization\r\n location\r\n profileimage\r\n image\r\ninvitationsent\r\ncurrentstatus\r\n\r\n connect\r\n campaignstatus\r\n contactstatus\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n thanksmsgdate\r\n dateofbirth\r\n country\r\n state \r\n surname\r\n campaignIbfk4rel{\r\n Campaigns{\r\n zapierurl\r\n name\r\n }\r\n}\r\n\r\n }\r\n }\r\n }`;\r\nexport const campaignFreeContacts = `query ($where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n \r\n }\r\n }`;\r\n \r\n\r\nexport const campaignEngegedExport = `query ($where: JSON){\r\n \r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n campaignid\r\n name\r\n fname \r\n designation\r\n organization\r\n location\r\n engaged\r\n profileimage\r\n image\r\n invitationsent\r\n currentstatus\r\n connect\r\n campaignstatus\r\n contactstatus\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n dateofbirth\r\n followup\r\n country\r\n state \r\n surname\r\n campaignIbfk4rel{\r\n Campaigns{\r\n zapierurl\r\n name\r\n }\r\n}\r\n Contactmessagesfk(where:{order:\"id asc\" }){\r\n Contactmessages{\r\n type\r\n message\r\n messagedatetime\r\n createdon\r\n }\r\n }\r\n currentStage: Contactworkflowhistoryfk(where: {order: executedon, status: \"SUCCESS\"}) {\r\n Contactworkflowhistories {\r\n campaignstepid\r\n successflag\r\n status\r\n executedon\r\n nextstep\r\n contactid\r\n contactworkflowhistoryIbfk2rel {\r\n Campaignsteps {\r\n campaignid\r\n sequence\r\n subject\r\n stepname\r\n daysdelay\r\n }\r\n }\r\n }\r\n }\r\n \r\n }\r\n }\r\n }`;\r\n\r\nexport const campaignLeadsExport = `query ($where: JSON) { \r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n name\r\n fname\r\n linkedinid\r\n campaignid\r\n designation\r\n contactstatus\r\n organization\r\n profileimage\r\n image\r\n campaignstatus\r\n location\r\n invitationsent\r\n currentstatus\r\n connect\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n dateofbirth\r\n country\r\n state \r\n surname\r\n campaignIbfk4rel{\r\n Campaigns{\r\n zapierurl\r\n name\r\n }\r\n}\r\n Contactmessagesfk(where:{order:\"id asc\" }){\r\n Contactmessages{\r\n type\r\n message\r\n messagedatetime\r\n createdon\r\n }\r\n }\r\n currentStage: Contactworkflowhistoryfk(where: {order: executedon, status: \"SUCCESS\"}) {\r\n Contactworkflowhistories {\r\n campaignstepid\r\n successflag\r\n status\r\n executedon\r\n nextstep\r\n contactid\r\n contactworkflowhistoryIbfk2rel {\r\n Campaignsteps {\r\n campaignid\r\n sequence\r\n subject\r\n stepname\r\n daysdelay\r\n }\r\n }\r\n }\r\n }\r\n \r\n Campaigns: campaignIbfk4rel {\r\n Campaigns {\r\n name\r\n customerid\r\n Customers: customerIbfk1rel {\r\n Customers {\r\n company\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } \r\n }`;\r\n\r\nexport const campaignNoOppExport = `query ($where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n name\r\n campaignid\r\n fname\r\n designation\r\n organization\r\n location\r\n profileimage\r\n image\r\n connectedon\r\n connect\r\n campaignstatus\r\n contactstatus\r\n industry\r\n linkedinid\r\n email\r\n twitter\r\n skype\r\n phonenumber\r\n connectedon\r\n dateofbirth\r\n country\r\n state \r\n Contactmessagesfk(where:{order:\"id asc\" }){\r\n Contactmessages{\r\n type\r\n message\r\n messagedatetime\r\n createdon\r\n }\r\n }\r\n currentStage: Contactworkflowhistoryfk(where: {order: executedon, status: \"SUCCESS\"}) {\r\n Contactworkflowhistories {\r\n campaignstepid\r\n successflag\r\n status\r\n executedon\r\n nextstep\r\n contactid\r\n contactworkflowhistoryIbfk2rel {\r\n Campaignsteps {\r\n campaignid\r\n sequence\r\n subject\r\n stepname\r\n daysdelay\r\n }\r\n }\r\n }\r\n }\r\n \r\n }\r\n }\r\n }`;\r\n\r\nexport const LeadsExport = `query ($where:JSON) {\r\n\r\nallContacts(where: $where){\r\ntotalCount\r\nContacts{\r\nid\r\ncampaignid\r\nname\r\nfname\r\nprofileimage\r\nimage\r\nlinkedinid\r\ncontactstatus\r\ncampaignstatus\r\norganization\r\ndesignation\r\nlocation\r\n country\r\n state \r\nContactmessagesfk{\r\nContactmessages{\r\ncontactid\r\ntype\r\nmessage\r\nmessagedatetime\r\ncreatedon\r\n}\r\n}\r\nContactlogs:Contactlogsfk{\r\nContactlogs{\r\ncontactid\r\naction\r\ncreatedon\r\n}\r\n}\r\nCampaigns: campaignIbfk4rel {\r\nCampaigns {\r\nname\r\ncustomerid\r\n Profile:customercredentialsIbfk1rel{\r\n Customerlinkedinprofiles{\r\n name\r\n }\r\n }\r\nCustomers: customerIbfk1rel {\r\nCustomers {\r\ncompany\r\n}\r\n}\r\n}\r\n}\r\n}\r\n}\r\n}`;\r\n\r\nexport const EditRunningCampaignQuery = gql`\r\n mutation CampaignsUpsertWithWhere($where: JSON, $data: JSON) {\r\n CampaignsUpsertWithWhere(where: $where, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\nexport const GetAllCampaign = gql`\r\n query($where: JSON) {\r\n allCampaigns(where: $where, first:20) {\r\n totalCount\r\n Campaigns {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const ExcelDataQuery = file => gql`mutation{\r\nTempcontactsdetailsUploadUserExcel(fileName:${JSON.stringify(file)})\r\n}`;\r\n\r\nexport const contactCompany = gql`\r\nquery {\r\n allContactscompanies(where: {order: name},first: 20 ){\r\n Contactscompanies{\r\n id\r\n name\r\n }\r\n }\r\n}\r\n`;\r\n// export const contactCompany = gql`\r\n// query ($where: JSON ){\r\n// allContactscompanies(where: $where, first: 20 ){\r\n// Contactscompanies{\r\n// id\r\n// name\r\n// }\r\n// }\r\n// }\r\n// `;\r\n","import { URLDATA } from \"./config\";\r\nimport swal from \"sweetalert\";\r\nconst token = localStorage.getItem(\"token\");\r\nexport const fetchMethod = (Query, Variables) => {\r\n return fetch(URLDATA.url, {\r\n method: \"POST\",\r\n mode: \"cors\",\r\n body: JSON.stringify({\r\n query: Query,\r\n variables: Variables\r\n }),\r\n headers: {\r\n \"Content-type\": \"application/json\",\r\n access_token: token\r\n }\r\n }).then(res => res);\r\n};\r\n","import gql from \"graphql-tag\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport swal from \"sweetalert\";\r\nexport const addNewCampaign = gql`\r\n mutation CampaignsCreate($obj: JSON) {\r\n CampaignsCreate(data: $obj) {\r\n id\r\n }\r\n }\r\n`;\r\nexport const getCampaignCustomers = gql`\r\n query($where: JSON) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n }\r\n }\r\n }\r\n`;\r\nexport const getlinkedinprofiles = gql`\r\n query($where: JSON) {\r\n allCustomerlinkedinprofiles(where: $where) {\r\n Customerlinkedinprofiles {\r\n id\r\n linkedinemail\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const getcampaignmanager = gql`\r\n query($where: JSON) {\r\n allUsersdata(where: $where) {\r\n Usersdata {\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const getcampaignmanagerassignto = gql`\r\n query {\r\n allUsersdata(where: { role: \"CAMPAIGNMANAGER\", order: \"firstName\" }) {\r\n Usersdata {\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const saveCampaignstep = gql`\r\n mutation CampaignstepsCreate($data: JSON) {\r\n CampaignstepsCreate(data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const getEditCampaign = id => `\r\n query {\r\n allCampaigns(where:{id: ${id},active:${1}}) {\r\n Campaigns {\r\n id\r\n name\r\n description\r\n customerid\r\n linkedinid\r\n startdate\r\n timezone\r\n salesNavigator\r\n targetconnections\r\n zapierurl\r\n campaignadminid\r\n campaignmanagerid\r\n status\r\n active\r\n type\r\n dataoption\r\n datafromcampaign\r\n campaignLogo\r\n }\r\n }\r\n }\r\n`;\r\nexport const getEdit = async id =>\r\n await fetchMethod(getEditCampaign(id))\r\n .then(response => response.json().then(data => data))\r\n .catch(e => swal({ title: \"Unable to reach server\", icon: \"warning\" }));\r\n\r\nexport const getStepEdit = campaignid => `\r\n query {\r\n allCampaignsteps(where: { campaignid: ${campaignid},active:1 }) {\r\n Campaignsteps {\r\n id\r\n campaignid\r\n stepname\r\n sequence\r\n message\r\n limitperday\r\n daysdelay\r\n active\r\n subject\r\n \r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const EditCampaignQuery = gql`\r\n mutation CampaignsUpsertWithWhere($id: JSON, $data: JSON) {\r\n CampaignsUpsertWithWhere(where: $id, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const EditCampaignStepsQuery = gql`\r\n mutation CampaignstepsUpsertWithWhere($id: JSON, $data: JSON) {\r\n CampaignstepsUpsertWithWhere(where: $id, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\nexport const getLimitPerDay = gql`\r\n query {\r\n allSystemsettings {\r\n Systemsettings {\r\n maxvisitperday\r\n maxfollowperday\r\n maxconnectionperday\r\n maxmessageperday\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst CampaignsSteps = id => `query {\r\n allCampaignsteps(where: { campaignid: ${id}, active: 1 }) {\r\n Campaignsteps {\r\n id\r\n campaignid\r\n stepname\r\n sequence\r\n message\r\n limitperday\r\n daysdelay\r\n active\r\n subject\r\n }\r\n }\r\n}`;\r\n\r\nexport const getCampaignsSteps = async id =>\r\n await fetchMethod(CampaignsSteps(id))\r\n .then(response => response.json().then(data => data))\r\n .catch(e => {\r\n console.log(e);\r\n swal({ title: \"Unable to reach server\", icon: \"warning\" });\r\n });\r\n\r\nexport const triggerContacts = (id, triggerid)=>\r\n\r\n `query {\r\n allContacts(where:{id: ${id}}) {\r\n totalCount\r\n Contacts {\r\n id\r\n name\r\n fname\r\n invitationsent\r\n currentstatus\r\n linkedinid\r\n campaignid\r\n profileimage\r\n image\r\n profileurl\r\n connectedon\r\n email\r\n industry\r\n dateofbirth\r\n location\r\n organization\r\n surname\r\n gender\r\n country\r\n state \r\n Contactworkflowhistoryfk (where:{status:\"SUCCESS\"}){\r\n Contactworkflowhistories{\r\n campaignstepid\r\n successflag\r\n executedon\r\n nextstep\r\n contactworkflowhistoryIbfk2rel{\r\n Campaignsteps{\r\n stepname \r\n \r\n }\r\n }\r\n }\r\n }\r\n Contactmessagesfk(where:{order:\"realmsgdatetime\"}){\r\nContactmessages{\r\ntype\r\nmessage\r\nmessagedatetime\r\nrealmsgdatetime\r\ncreatedon\r\n}\r\n}\r\n \r\n Campaigns: campaignIbfk4rel {\r\n Campaigns {\r\n name\r\n customerid\r\n status\r\n active\r\n Customers: customerIbfk1rel {\r\n Customers {\r\n company\r\n }\r\n }\r\n }\r\n }\r\n designation\r\n joiningdate\r\n country\r\n state\r\n \r\n lasteducationinstitute\r\n twitter\r\n skype\r\n phonenumber\r\n phonetype\r\n numberoffollowers\r\n connectedon\r\n \r\n createdon\r\n contactstatus\r\n campaignstatus\r\n updatedon\r\n active\r\n Contacttriggerfk(where:{id: ${triggerid}}){\r\n Triggernotifications{\r\n id\r\n triggerdata\r\n triggertype\r\n url\r\n date\r\n triggerstatus\r\n lastactiondate\r\n followup\r\n }\r\n }\r\n \r\n }\r\n }\r\n }`;\r\nexport const contacts = id =>\r\n\r\n `query {\r\n allContacts(where:{id: ${id}}) {\r\n totalCount\r\n Contacts {\r\n id\r\n name\r\n fname\r\n invitationsent\r\n currentstatus\r\n linkedinid\r\n campaignid\r\n profileimage\r\n image\r\n profileurl\r\n connectedon\r\n email\r\n industry\r\n dateofbirth\r\n location\r\n organization\r\n surname\r\n gender\r\n country\r\n state \r\n Contactworkflowhistoryfk (where:{status:\"SUCCESS\"}){\r\n Contactworkflowhistories{\r\n campaignstepid\r\n successflag\r\n executedon\r\n nextstep\r\n utctasktime\r\n contactworkflowhistoryIbfk2rel{\r\n Campaignsteps{\r\n stepname \r\n \r\n }\r\n }\r\n }\r\n }\r\n Contactmessagesfk(where:{active:1, order:\"realmsgdatetime\"}){\r\nContactmessages{\r\ntype\r\nmessage\r\nmessagedatetime\r\nrealmsgdatetime\r\ncreatedon\r\nutcmessagetime\r\n}\r\n}\r\n \r\n Campaigns: campaignIbfk4rel {\r\n Campaigns {\r\n name\r\n customerid\r\n status\r\n active\r\n Customers: customerIbfk1rel {\r\n Customers {\r\n company\r\n }\r\n }\r\n }\r\n }\r\n designation\r\n joiningdate\r\n country\r\n state\r\n \r\n lasteducationinstitute\r\n twitter\r\n skype\r\n phonenumber\r\n phonetype\r\n numberoffollowers\r\n connectedon\r\n \r\n createdon\r\n contactstatus\r\n campaignstatus\r\n updatedon\r\n active \r\n }\r\n }\r\n }`;\r\n\r\nexport const getContactData = async id =>\r\n await fetchMethod(contacts(id))\r\n .then(response => response.json().then(data => data))\r\n .catch(e => {\r\n console.log(e);\r\n swal({ title: e, icon: \"warning\" });\r\n });\r\n\r\nexport const SendMessages = gql`\r\n mutation($data: JSON) {\r\n ContactmessagesCreate(data: $data) {\r\n id\r\n message\r\n createdon\r\n realmsgdatetime\r\n }\r\n }\r\n`;\r\n\r\nexport const Engaged = id =>\r\n `query {\r\n allContacts(where: {id: ${id}}) {\r\n totalCount\r\n Contacts {\r\n id\r\n name\r\n fname\r\n surname\r\n gender\r\n linkedinid\r\n campaignid\r\n profileimage\r\n image\r\n profileurl\r\n contactstatus\r\n connectedon\r\n email\r\n invitationsent\r\n currentstatus\r\n industry\r\n dateofbirth\r\n location\r\n organization\r\n Contactworkflowhistoryfk(where: {status: \"SUCCESS\"}) {\r\n Contactworkflowhistories {\r\n campaignstepid\r\n successflag\r\n executedon\r\n utctasktime\r\n contactworkflowhistoryIbfk2rel {\r\n Campaignsteps {\r\n stepname\r\n }\r\n }\r\n }\r\n }\r\n Contactmessagesfk(where:{active:1, order:\"realmsgdatetime\"}){\r\nContactmessages{\r\ntype\r\nmessage\r\nmessagedatetime\r\nrealmsgdatetime\r\ncreatedon\r\nutcmessagetime\r\n}\r\n}\r\n Campaigns: campaignIbfk4rel {\r\n Campaigns {\r\n name\r\n customerid\r\n status\r\n active\r\n Customers: customerIbfk1rel {\r\n Customers {\r\n company\r\n }\r\n }\r\n }\r\n }\r\n designation\r\n joiningdate\r\n country\r\n lasteducationinstitute\r\n twitter\r\n skype\r\n phonenumber\r\n phonetype\r\n numberoffollowers\r\n createdon\r\n contactstatus\r\n campaignstatus\r\n updatedon\r\n active\r\n state \r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const dateFilter = gql`\r\n query($where: JSON) {\r\n allContactmessages(where: $where) {\r\n Contactmessages {\r\n contactid\r\n type\r\n messagedatetime\r\n contactmessagesIbfk1rel {\r\n Contacts {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const messageId = gql`\r\n query($where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const engagedData = gql`\r\n query($where: JSON) {\r\n allContacts(where: $where) {\r\n Contacts {\r\n id\r\n }\r\n }\r\n }\r\n`;\r\n\r\n//update fname in templist\r\nexport const UpdatefName = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n fname\r\n }\r\n }\r\n`;\r\n//update company in templist\r\nexport const UpdateCompany = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n organization\r\n }\r\n }\r\n`;\r\n//update posotion in templist\r\nexport const UpdatePosition = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n designation\r\n }\r\n }\r\n`;\r\n//update Surname in templist\r\nexport const UpdateSurname = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n surname\r\n }\r\n }\r\n`;\r\n//update country in templist\r\nexport const UpdateCountry = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n country\r\n }\r\n }\r\n`;\r\n//update state in templist\r\nexport const UpdateState = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n state\r\n }\r\n }\r\n`;\r\n//update Gender in templist\r\nexport const UpdateGender = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n gender\r\n }\r\n }\r\n`;\r\n//update fname in contactlist\r\nexport const UpdatefNameContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n fname\r\n }\r\n }\r\n`;\r\n//update Surname in contactlist\r\nexport const UpdateSurnameContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n surname\r\n }\r\n }\r\n`;\r\n//update Email in contactlist\r\nexport const UpdateEmailContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n email\r\n }\r\n }\r\n`;\r\n//update Phone in contactlist\r\nexport const UpdatePhoneContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n phonenumber\r\n }\r\n }\r\n`;\r\n//update company in contactlist\r\nexport const UpdatePositionContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n designation\r\n }\r\n }\r\n`;\r\n//update country in contactlist\r\nexport const UpdateCountryContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n country\r\n }\r\n }\r\n`;\r\n//update state in contactlist\r\nexport const UpdateStateContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n state\r\n }\r\n }\r\n`;\r\n//update company in contactlist\r\nexport const UpdateCompanyContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n organization\r\n }\r\n }\r\n`;\r\n//\r\n//Update Gender in contactlist\r\nexport const UpdateGenderContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n organization\r\n }\r\n }\r\n`;\r\n\r\nexport const Profileid = id => {\r\n return `query{\r\n Campaigns(id: ${id}) {\r\n id\r\n name\r\n customercredentialsIbfk1rel{\r\n Customerlinkedinprofiles {\r\n id\r\n name\r\n hubspottoken\r\n salesforcetoken\r\n }\r\n }\r\n }\r\n }`;\r\n};\r\n//Update Gender in contactlist\r\nexport const UpdatefollowUp = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n followup\r\n }\r\n }\r\n`;\r\nexport const plannedDate = `query($where:JSON)\r\n{\r\n allCampaignsteps(where:$where){\r\n Campaignsteps{\r\n stepname\r\n campaignid\r\n daysdelay\r\n sequence\r\n subject\r\n }\r\n}\r\n }`;\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { API_URL } from \"../../config\";\r\n// import AddCircleOutlineOutlinedIcon from \"@material-ui/icons/AddCircleOutlineOutlined\";\r\n// import CampaignTablesComponent from \"./CampaignTables\";\r\n\r\nimport {\r\n routeConfig,\r\n routeAdmin,\r\n routeCustomer,\r\n routeCampaign,\r\n DashboardPath,\r\n DashboardPath2\r\n} from \"../SideBar/RouteContent\";\r\nimport MediaCard from \"../Card/Card1\";\r\nimport MediaCard2 from \"../Card/Card2\";\r\n\r\nimport \"./Home.css\";\r\nimport { lenghtCount } from \"../../Queries\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\n// import { Button, Drawer } from \"@material-ui/core\";\r\n\r\n// import AddCampaign from \".././Form/AddNewForm\";\r\n// import {\r\n// addCampaignForm,\r\n// campaignValidation\r\n// } from \"./../Campaign/CampaignConfig\";\r\n\r\nimport {\r\n getCampaignCustomers,\r\n getcampaignmanager,\r\n // addNewCampaign,\r\n // saveCampaignstep,\r\n getcampaignmanagerassignto,\r\n // EditCampaignQuery\r\n} from \"./../Campaign/campaignQueries\";\r\nclass HomePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n DashboardlistData: [],\r\n totalCounts: \"\",\r\n totalCount: \"\",\r\n header: \"Home\",\r\n loading: false,\r\n routeconfig: [],\r\n routeconfig2: [],\r\n openForm: false,\r\n DashboardData2: {\r\n TotalCampaign: 0,\r\n LiveCompaign: 0,\r\n TotalConnectRate: \"\",\r\n LiveConnectRate: \"\",\r\n TotalEngaged: \"\",\r\n LiveEngaged: \"\",\r\n TotalLeads: \"\",\r\n LiveLeads: \"\",\r\n newRecentdata: \"\"\r\n },\r\n hiddenRoute: [\r\n {\r\n title: \"Users\"\r\n },\r\n {\r\n title: \"Customers\"\r\n },\r\n {\r\n title: \"ABM\"\r\n },\r\n {\r\n title: \"Monitoring\"\r\n },\r\n {\r\n title: \"Leads\"\r\n },\r\n {\r\n title: \"Campaigns\"\r\n }\r\n ],\r\n hiddenRoute2: [\r\n {\r\n title: \"Users\"\r\n }\r\n ]\r\n };\r\n }\r\n\r\n getDashboardData2 = () => {\r\n var dasId = 0;\r\n if (localStorage.getItem(\"role\") === \"CUSTOMER\") {\r\n dasId = localStorage.getItem(\"customer\");\r\n } else {\r\n dasId = localStorage.getItem(\"id\");\r\n }\r\n\r\n fetch(\r\n `${API_URL}/api/Campaigns/getHomeDas?role=${localStorage.getItem(\r\n \"role\"\r\n )}&userid=${dasId}&access_token=${localStorage.getItem(\"token\")}`,\r\n {\r\n method: \"POST\",\r\n mode: \"cors\",\r\n headers: {\r\n \"Content-type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n\r\n .then(res => {\r\n this.setState(\r\n {\r\n DashboardlistData2: res.response\r\n },\r\n () => {\r\n this.setDataCalculation2();\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n });\r\n };\r\n setDataCalculation2 = () => {\r\n const { DashboardlistData2, DashboardData2 } = this.state;\r\n\r\n var engData = \"0\";\r\n var leadData = \"0\";\r\n var connectData = \"0\";\r\n\r\n\r\n if (DashboardlistData2[3].engagedRate !== undefined && DashboardlistData2[3].engagedRate !== null ) {\r\n\r\n engData = DashboardlistData2[3].engagedRate.toFixed(0);\r\n }\r\n if (DashboardlistData2[4].leadsRate != null) {\r\n leadData = DashboardlistData2[4].leadsRate.toFixed(0);\r\n }\r\n if (DashboardlistData2[2].connectRate != null) {\r\n connectData = DashboardlistData2[2].connectRate.toFixed(0);\r\n }\r\n DashboardData2.TotalCampaign = DashboardlistData2[1].TotalCompaigns;\r\n DashboardData2.LiveCompaign = DashboardlistData2[0].LiveCompaigns;\r\n DashboardData2.TotalEngaged = engData;\r\n DashboardData2.TotalLeads = leadData;\r\n DashboardData2.TotalConnectRate = connectData;\r\n DashboardData2.newRecentdata = DashboardlistData2[5];\r\n\r\n this.setState({\r\n DashboardlistData2,\r\n loading: false\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n localStorage.setItem(\"path\", \"/\");\r\n let routeconfig = [];\r\n let routeconfig2 = [];\r\n\r\n if (localStorage.getItem(\"role\") === \"SADMIN\") {\r\n for (let i = 0; i < routeConfig.length - 2; i++) {\r\n routeconfig[i] = routeConfig[i + 1];\r\n routeconfig2[i] = routeConfig[0];\r\n }\r\n }\r\n if (localStorage.getItem(\"role\") === \"ADMIN\") {\r\n for (let i = 0; i < routeAdmin.length - 1; i++) {\r\n routeconfig[i] = routeAdmin[i + 1];\r\n routeconfig2[i] = routeConfig[0];\r\n }\r\n }\r\n if (localStorage.getItem(\"role\") === \"CUSTOMER\") {\r\n for (let i = 0; i < routeCustomer.length - 1; i++) {\r\n routeconfig[i] = routeCustomer[i + 1];\r\n routeconfig2[i] = routeConfig[0];\r\n }\r\n }\r\n if (localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\") {\r\n for (let i = 0; i < routeCampaign.length - 1; i++) {\r\n routeconfig[i] = routeCampaign[i + 1];\r\n routeconfig2[i] = routeConfig[0];\r\n }\r\n }\r\n const { hiddenRoute, hiddenRoute2 } = this.state;\r\n\r\n var route = routeconfig.filter(function(x) {\r\n return !hiddenRoute.reduce(function(y, z) {\r\n return x.title === y.title || x.title === z.title || y === true;\r\n });\r\n });\r\n var route2 = routeconfig2.filter(function(x) {\r\n return !hiddenRoute2.reduce(function(y, z) {\r\n return x.title === y.title || x.title === z.title || y === true;\r\n });\r\n });\r\n\r\n route2.push(...DashboardPath2);\r\n this.setState({\r\n routeconfig2: route2\r\n });\r\n route.push(...DashboardPath);\r\n this.setState({\r\n routeconfig: route\r\n });\r\n\r\n this.fetchData();\r\n this.getDashboardData2();\r\n this.props.onHandleCampaign();\r\n this.props.onHandleSidebarText(\"/\");\r\n\r\n const filter1 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n active: 1,\r\n createdby: localStorage.getItem(\"id\"),\r\n order: \"company asc\"\r\n }\r\n }\r\n : { where: { active: 1, order: \"company asc\" } };\r\n fetchMethod(getCampaignCustomers, filter1)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ custdata: res.data.allCustomers.Customers }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter2 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n order: \"company asc\",\r\n createdby: localStorage.getItem(\"id\")\r\n }\r\n }\r\n : { where: { order: \"company asc\" } };\r\n fetchMethod(getCampaignCustomers, filter2)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ custdata1: res.data.allCustomers.Customers }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n role: \"CAMPAIGNMANAGER\",\r\n status: 1,\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n role: \"CAMPAIGNMANAGER\",\r\n status: 1,\r\n order: \"firstName asc\"\r\n }\r\n };\r\n\r\n fetchMethod(getcampaignmanager, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n let data =\r\n res.data.allUsersdata !== undefined && res.data.allUsersdata !== null\r\n ? res.data.allUsersdata.Usersdata\r\n : \"\";\r\n\r\n this.setState({ campmanager: data }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter3 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n };\r\n\r\n fetchMethod(getcampaignmanager, filter3)\r\n .then(res => res.json())\r\n .then(res => {\r\n let data =\r\n res.data.allUsersdata !== undefined && res.data.allUsersdata !== null\r\n ? res.data.allUsersdata.Usersdata\r\n : \"\";\r\n\r\n this.setState({ campmanager1: data }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n fetchMethod(getcampaignmanagerassignto)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ assignTo: res.data.allUsersdata.Usersdata }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n }\r\n\r\n toggleDrawer = (side, open) => event => {\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.props.OnClear(this.state.clear);\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n fetchData = () => {\r\n this.setState({ loading: true }, () => {\r\n const filter = {\r\n where: {\r\n active: \"1\",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n }\r\n }\r\n };\r\n fetchMethod(lenghtCount, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n });\r\n };\r\n\r\n onClickCard = headerText => {\r\n this.props.onHandleSidebarText(\"/\");\r\n };\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n var today = new Date();\r\n var curHr = today.getHours();\r\n\r\n var currentTime = \"\";\r\n if (curHr < 12) {\r\n currentTime = \"Good morning\";\r\n } else if (curHr < 16) {\r\n currentTime = \"Good afternoon\";\r\n } else {\r\n currentTime = \"Good evening\";\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {currentTime},\r\n {localStorage.getItem(\"name\")}!\r\n

\r\n

Here’s what’s happening with your LinkedIn campaigns today

\r\n
\r\n
\r\n\r\n
\r\n {this.state.routeconfig.map(cards => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n
\r\n\r\n
\r\n

Live Campaign Performance

\r\n\r\n
\r\n
\r\n
\r\n
\r\n {this.state.routeconfig2.map(cards => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onHandleSidebarText: data =>\r\n dispatch({\r\n type: \"HANDLE_SIDEBAR_TEXT\",\r\n payload: data\r\n }),\r\n onHandleCampaign: data =>\r\n dispatch({ type: \"Campaign_Detail\", payload: null })\r\n };\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n header: state.Header\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(HomePage);\r\n","import React, { useEffect } from \"react\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport \"./Dropzone.css\";\r\nimport Photo from \"../assets/profile.jpg\";\r\nimport swal from \"sweetalert\";\r\nimport { getProfileImageUrl } from \"../../config\";\r\nexport default function Dropzone(props) {\r\n const [files, setFiles] = React.useState([]);\r\n const { getRootProps, getInputProps } = useDropzone({\r\n accept: \"image/*\",\r\n onDrop: acceptedFiles => {\r\n if (acceptedFiles[0].size < 500000) {\r\n setFiles(\r\n acceptedFiles.map(file =>\r\n Object.assign(file, {\r\n preview: URL.createObjectURL(file)\r\n })\r\n )\r\n );\r\n } else {\r\n swal({\r\n title: \"Image size should be less than 500kb\",\r\n icon: \"warning\"\r\n });\r\n }\r\n }\r\n });\r\n useEffect(() => {\r\n if (files.length && files !== undefined)\r\n props.setFilePreview(files, setFiles);\r\n files.forEach(file => {\r\n URL.revokeObjectURL(file.preview);\r\n props.setFilePreview(file);\r\n });\r\n }, [files]);\r\n const thumbs =\r\n files.length === 0 ? (\r\n
\r\n {props.formData.profileImage !== null &&\r\n props.formData.profileImage !== \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n ) : (\r\n files.map(file => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ))\r\n );\r\n return (\r\n
\r\n {thumbs}\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport \"./Dropzone2.css\";\r\nimport Photo from \"../assets/profile.jpg\";\r\nimport swal from \"sweetalert\";\r\nimport { getCampaignImageUrl } from \"../../config\";\r\nexport default function Dropzone(props) {\r\n const [files, setFiles] = React.useState([]);\r\n const { getRootProps, getInputProps } = useDropzone({\r\n accept: \"image/*\",\r\n onDrop: acceptedFiles => {\r\n if (acceptedFiles[0].size < 500000) {\r\n setFiles(\r\n acceptedFiles.map(file =>\r\n Object.assign(file, {\r\n preview: URL.createObjectURL(file)\r\n })\r\n )\r\n );\r\n } else {\r\n swal({\r\n title: \"Image size should be less than 500kb\",\r\n icon: \"warning\"\r\n });\r\n }\r\n }\r\n });\r\n useEffect(() => {\r\n if (files.length && files !== undefined)\r\n props.setFilePreview(files, setFiles);\r\n files.forEach(file => {\r\n URL.revokeObjectURL(file.preview);\r\n props.setFilePreview(file);\r\n });\r\n }, [files]);\r\n const thumbs =\r\n files.length === 0 ? (\r\n
\r\n {props.formData.campaignLogo !== null &&\r\n props.formData.campaignLogo !== \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n ) : (\r\n files.map(file => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ))\r\n );\r\n return (\r\n
\r\n {thumbs}\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const addorEditCustomer = gql`\r\n mutation CustomersCreate($obj: JSON) {\r\n CustomersCreate(data: $obj) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const addorEditLinkedinProfile = gql`\r\n mutation CustomerlinkedinprofilesCreate($data: JSON) {\r\n CustomerlinkedinprofilesCreate(data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const updateCustomer = gql`\r\n mutation CustomersUpsertWithWhere($id: JSON, $data: JSON) {\r\n CustomersUpsertWithWhere(where: $id, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const updateCustomerLinkedinCreate = gql`\r\n mutation CustomerlinkedinprofilesUpsertWithWhere($id: JSON, $data: JSON) {\r\n CustomerlinkedinprofilesUpsertWithWhere(where: $id, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles, Link } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport {\r\n addLinkedinForm,\r\n customerLinkedinValidation,\r\n} from \"../Customers/CustomerConfig\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport store from \"../../Redux/Store\";\r\nimport { addorEditLinkedinProfile } from \"../Customers/Customerquery\";\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)((props) => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles((theme) => ({\r\n root: {},\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = (props) => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n Add More\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
Add Profile
\r\n
\r\n {renderModalContent(props)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import AddLinkedin from \"../LinkedinForm/AddLinkedinProfile\";\r\nimport AddStepsSection from \"../Customers/customerLinkedinData\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const addCustomerForm = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"Company\",\r\n placeholder: \"e.g. Smith\",\r\n isRequired: true,\r\n type: \"input\",\r\n name: \"company\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"First Name\",\r\n type: \"input\",\r\n placeholder: \"e.g John\",\r\n isRequired: true,\r\n name: \"firstName\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Last Name\",\r\n type: \"input\",\r\n placeholder: \"e.g Anderson\",\r\n name: \"lastName\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Phone Number\",\r\n placeholder: \"e.g 9718785414\",\r\n isRequired: true,\r\n type: \"input\",\r\n name: \"contactno\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Email Address\",\r\n placeholder: \"e.g. smith.doe@gmail.com\",\r\n isRequired: true,\r\n type: \"input\",\r\n name: \"email\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Address\",\r\n type: \"textarea\",\r\n placeholder: \"Type Your Address here...\",\r\n name: \"address\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Profile\",\r\n type: \"table\",\r\n compo: AddLinkedin,\r\n addoredit: AddStepsSection\r\n },\r\n {\r\n label: \"Status\",\r\n type: \"radio\",\r\n name: \"active\",\r\n value: \"1\",\r\n options: [\r\n { name: \"Active\", value: \"1\" },\r\n { name: \"Inactive\", value: \"0\" }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nexport const addLinkedinForm = {\r\n title: \"Add Linkedin Profile\",\r\n fields: [\r\n {\r\n label: \"Profile Name\",\r\n type: \"input\",\r\n name: \"name\",\r\n isRequired: true,\r\n placeholder: \"Enter Profile Name\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Linkedin Login ID\",\r\n type: \"input\",\r\n name: \"linkedinemail\",\r\n isRequired: true,\r\n placeholder: \"Enter Email Address\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Linkedin Password\",\r\n type: \"password\",\r\n name: \"linkedinpassword\",\r\n isRequired: true,\r\n placeholder: \"****************\",\r\n value: \"\"\r\n },\r\n\r\n ]\r\n};\r\n\r\nconst customer = id => `query{allCustomers(where:{id: ${id}}){\r\nCustomers{\r\nid\r\nfirstName\r\nlastName\r\ncontactno\r\ncompany\r\naddress\r\nemail\r\nactive\r\n}}}`;\r\n\r\nconst customerLinkedin = customerid => `query { allCustomerlinkedinprofiles(where: { customerid: ${customerid},active:1 }){\r\nCustomerlinkedinprofiles{\r\nid\r\ncustomerid\r\nlinkedinemail\r\nlinkedinpassword\r\nhubspotid\r\nhubspotpassword\r\nhubspottoken\r\nsalesforceid\r\nsalesforcepassword\r\nsalesforcetoken\r\nsignature\r\nname\r\nactive\r\n}\r\n}\r\n}`;\r\nexport const getData = async id =>\r\n await fetchMethod(customer(id))\r\n .then(response => response.json())\r\n .then(data => data)\r\n .catch(e => console.log(\"Errror\", e));\r\n\r\nexport const getLinkedinData = async customerid =>\r\n await fetchMethod(customerLinkedin(customerid))\r\n .then(response => response.json())\r\n .then(data => data)\r\n .catch(e => console.log(\"Error\", e));\r\n\r\nexport const customersValidation = Yup.object().shape({\r\n firstName: Yup.string()\r\n .required(\"Please enter name\")\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"First name should be less than 30 characters\"),\r\n lastName: Yup.string()\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", data => {\r\n if (data !== undefined && data.trim().length === 0 && data !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"Last name should be less than 30 characters\"),\r\n contactno: Yup.string()\r\n .required(\"Please enter phone no.\")\r\n .matches(/^\\+?[0-9]*$/, {\r\n message: \"Please enter valid phone no.\",\r\n excludeEmptyString: true\r\n })\r\n .max(16, \"Phone number should be less than 16 digits\"),\r\n\r\n email: Yup.string()\r\n .required(\"Please enter email-id\")\r\n .matches(\r\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,}))$/,\r\n {\r\n message: \"Please enter valid email-id\",\r\n excludeEmptyString: true\r\n }\r\n )\r\n .max(50, \"Email should be less than 50 characters\"),\r\n company: Yup.string()\r\n .required(\"Please enter company name\")\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(100, \"Company should be less than 100 characters\"),\r\n address: Yup.string()\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(250, \"Address should be less than 250 characters\")\r\n});\r\n\r\nexport const customerLinkedinValidation = Yup.object().shape({\r\n name: Yup.string()\r\n .required(\"Please enter profile name\")\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(50, \"Profile name should be less than 50 characters\"),\r\n linkedinemail: Yup.string()\r\n .matches(\r\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,}))$/,\r\n {\r\n message: \"Please enter valid Linkedin login id\",\r\n excludeEmptyString: true\r\n }\r\n )\r\n .required(\"Please enter Linkedin login id\")\r\n .max(50, \"Linkedin login id should be less than 50 characters\"),\r\n linkedinpassword: Yup.string()\r\n .required(\"Please enter password\")\r\n .max(70, \"Linkedin password should be less than 70 characters\"),\r\n signature: Yup.string()\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(100, \"Signature should be less than 100 characters\")\r\n});\r\n\r\nexport const editCustomersValidation = Yup.object().shape({\r\n firstName: Yup.string()\r\n .required(\"Please enter name\")\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"First name should be less than 30 characters\"),\r\n lastName: Yup.string()\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", data => {\r\n if (data !== undefined && data.trim().length === 0 && data !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"Last name should be less than 30 characters\"),\r\n contactno: Yup.string()\r\n .required(\"Please enter phone no.\")\r\n .matches(/^\\+?[0-9]*$/, {\r\n message: \"Please enter valid phone no.\",\r\n excludeEmptyString: true\r\n })\r\n .max(16, \"Phone number should be less than 16 digits\"),\r\n\r\n email: Yup.string()\r\n .required(\"Please enter email-id\")\r\n .matches(\r\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,}))$/,\r\n {\r\n message: \"Please enter valid email-id\",\r\n excludeEmptyString: true\r\n }\r\n )\r\n .max(50, \"Email should be less than 50 characters\"),\r\n\r\n company: Yup.string()\r\n .required(\"Please enter company name\")\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(100, \"Company should be less than 100 characters\"),\r\n address: Yup.string()\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(250, \"Address should be less than 250 characters\")\r\n});\r\n\r\nexport const editCustomerLinkedinValidation = Yup.object().shape({\r\n name: Yup.string()\r\n .required(\"Please enter profile name\")\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(50, \"Profile name should be less than 50 characters\"),\r\n linkedinemail: Yup.string()\r\n .matches(\r\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,}))$/,\r\n {\r\n message: \"Please enter valid Linkedin login id\",\r\n excludeEmptyString: true\r\n }\r\n )\r\n .required(\"Please enter Linkedin login id\")\r\n .max(50, \"Linkedin login id should be less than 50 characters\"),\r\n linkedinpassword: Yup.string()\r\n .required(\"Please enter password\")\r\n .max(70, \"Linkedin password should be less than 70 characters\"),\r\n\r\n signature: Yup.string()\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(100, \"Signature should be less than 100 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\nimport {\r\n addLinkedinForm,\r\n // editCustomerLinkedinValidation,\r\n} from \"../Customers/CustomerConfig\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\nimport store from \"../../Redux/Store\";\r\nimport { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)((props) => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles((theme) => ({\r\n root: {},\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n // window.open(\"https://ap17.lightning.force.com/secur/logout.jsp\");\r\n };\r\n\r\n const renderModalContent = (props) => {\r\n\r\n return (\r\n \r\n );\r\n\r\n };\r\n\r\n return (\r\n
\r\n {/* \r\n \"Edit\"\r\n */}\r\n \r\n \"Edit\"\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
Edit Profile
\r\n
\r\n {renderModalContent(props)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport Delete from \"../assets/delete1.png\";\r\nimport EditLinkedin from \"../LinkedinForm/EditLinkedinProfile\";\r\nimport \"./linkedInstep.css\";\r\nimport { connect } from \"react-redux\";\r\nimport { Table, TableBody, TableRow } from \"@material-ui/core\";\r\nimport store from \"../../Redux/Store\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { updateCustomerLinkedinCreate } from \"./Customerquery\";\r\n\r\nclass AddLinkedinModal extends Component {\r\n changePassword = str => {\r\n var a = \"*\";\r\n var b = \"\";\r\n if (str === \"\") return str;\r\n for (var i = 0; i < 5; i++) {\r\n b += a;\r\n }\r\n return b;\r\n };\r\n onDelete = item => {\r\n if (item.active === 1 || item.active === \"1\") {\r\n swal({\r\n title: \"Are you sure you want to delete this profile?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n const test = {\r\n id: { linkedinemail: item.linkedinemail, id: item.id },\r\n data: { active: 0 }\r\n };\r\n fetchMethod(updateCustomerLinkedinCreate, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.props.OnDeleteData(item.id);\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n });\r\n }\r\n };\r\n render() {\r\n return (\r\n \r\n {this.props.addLinkedinStep.length !== 0 ? (\r\n this.props.addLinkedinStep.map(item => {\r\n return (\r\n \r\n \r\n \r\n {item.name}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n store.getState().isEditMode === true\r\n ? this.onDelete(item)\r\n : swal({\r\n title:\r\n \"Are you sure you want to delete this LinkedIn profile?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n this.props.OnDelete(item.linkedinemail);\r\n }\r\n })\r\n }\r\n >\r\n \"Delete\"\r\n \r\n \r\n \r\n \r\n LinkedIn\r\n {item.linkedinemail}\r\n {this.changePassword(item.linkedinpassword)}\r\n \r\n \r\n Salesforce\r\n \r\n {item.salesforcetoken ? \"Connected\" : \"Not Connected\"}\r\n \r\n \r\n \r\n \r\n HubSpot\r\n {item.hubspottoken ? \"Connected\" : \"Not Connected\"}\r\n \r\n \r\n \r\n );\r\n })\r\n ) : (\r\n
\r\n \r\n \r\n No Profile\r\n \r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const { addLinkedinStep } = state;\r\n return { addLinkedinStep };\r\n};\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n OnDelete: linkedinemail => {\r\n dispatch({ type: \"Delete_Result\", LinkedinId: linkedinemail });\r\n },\r\n OnDeleteData: linkedinemail => {\r\n dispatch({ type: \"Delete_Result_Data\", LinkedinId: linkedinemail });\r\n }\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AddLinkedinModal);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles, Link } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { CampaignModalConfig } from \"../Campaign/CampaignConfig\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./campaignModal.css\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { saveCampaignstep, getLimitPerDay } from \"../Campaign/campaignQueries\";\r\nimport store from \"../../Redux/Store\";\r\n// modal props must have a button title and a dialog title\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n let [addsteps, setsteps] = useState({});\r\n let [maxLimits, setMaxlimit] = useState();\r\n let [limitsPerDay, setlimitsPerDay] = useState([]);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const addcampaignModalValidation = Yup.object().shape({\r\n stepname: Yup.string()\r\n .ensure()\r\n .test(\"stepname\", \"Please select step\", value => {\r\n return value != \"Select\";\r\n }),\r\n limitperday: Yup.string()\r\n .matches(/^\\d+$/, {\r\n message: \"Digits only\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"limit not put\", \"Please enter max. limit\", function(value) {\r\n return (\r\n value !== undefined ||\r\n (store.getState().addModalStep.length >= 1 &&\r\n (this.parent.stepname === \"SEND_THANKS_MESSAGE\" ||\r\n this.parent.stepname === \"SEND_MESSAGE\") &&\r\n store.getState().addModalStep[0].stepname !== \"SEND_MESSAGE\")\r\n );\r\n })\r\n .test(\"is not zero\", \"Limit can't be zero\", value => value != 0)\r\n .test(\"is not max limits\", \"Can't exceed max limit\", function(value) {\r\n return (\r\n value <= maxLimits ||\r\n (store.getState().addModalStep.length >= 1 &&\r\n (this.parent.stepname === \"SEND_THANKS_MESSAGE\" ||\r\n this.parent.stepname === \"SEND_MESSAGE\") &&\r\n store.getState().addModalStep[0].stepname !== \"SEND_MESSAGE\")\r\n );\r\n }),\r\n daysdelay: Yup.string()\r\n .required(\"Please enter days delay\")\r\n .matches(/^\\d+$/, {\r\n message: \"Digits only\",\r\n excludeEmptyString: true\r\n })\r\n .max(2, \"Days delay should be less than 3 digits only\"),\r\n\r\n message: Yup.string().when(\"stepname\", {\r\n is: \"SEND_MESSAGE\",\r\n then: Yup.string()\r\n .required(\"Please enter message\")\r\n\r\n .max(3000, \"Message should be less than 3000 characters\")\r\n }),\r\n\r\n personalmessage: Yup.string().when(\"stepname\", {\r\n is: \"SEND_INVITE\",\r\n then: Yup.string().max(\r\n 250,\r\n \"Personal message should be less than 250 characters\"\r\n )\r\n }),\r\n\r\n replyMessage: Yup.string().when(\"stepname\", {\r\n is: \"SEND_THANKS_MESSAGE\",\r\n then: Yup.string()\r\n .required(\"Please enter thanks message\")\r\n .max(3000, \"Thanks message should be less than 3000 characters\")\r\n })\r\n });\r\n\r\n useEffect(() => {\r\n fetchMethod(getLimitPerDay)\r\n .then(res => res.json())\r\n .then(res => {\r\n setlimitsPerDay(res.data.allSystemsettings.Systemsettings[0]);\r\n })\r\n .catch(e => console.log(e));\r\n }, []);\r\n\r\n const datas = data => {\r\n setMaxlimit(data);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n Add Steps\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
Add Step
\r\n
\r\n {renderModalContent(props)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport campaignModal from \"./CampaignModal\";\r\nimport PauseIcon from \"@material-ui/icons/Pause\";\r\nimport PlayArrowIcon from \"@material-ui/icons/PlayArrow\";\r\nimport StopIcon from \"@material-ui/icons/Stop\";\r\nimport store from \"../../Redux/Store\";\r\n\r\nlet addnewSteps = {};\r\n\r\nexport const addStepState = newState => {\r\n addnewSteps = newState;\r\n};\r\nexport const getNewState = () => {\r\n return addnewSteps;\r\n};\r\n\r\nexport const addCampaignForm = {\r\n title: \"AddCampaignForm\",\r\n onSubmit: args => {},\r\n fields: [\r\n { type: \"photo2\", name: \"campaignLogo\" },\r\n {\r\n label: \"Customer\",\r\n type: \"dynamicSelect\",\r\n name: \"customerid\",\r\n value: \"Select Customer\",\r\n placeholder: \"Select Customer\",\r\n isRequired: true,\r\n data: \"params\",\r\n key1: \"company\"\r\n },\r\n {\r\n label: \"LinkedIn Profile\",\r\n type: \"dynamicSelect\",\r\n name: \"linkedinid\",\r\n value: \"Select LinkedIn Profile\",\r\n placeholder: \"Select LinkedIn Profile\",\r\n isRequired: true,\r\n key1: \"name\"\r\n },\r\n {\r\n label: \"Campaign Name\",\r\n type: \"input\",\r\n placeholder: \"Enter Campaign Name\",\r\n isRequired: true,\r\n name: \"name\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Campaign Manager\",\r\n type: \"dynamicSelect\",\r\n name: \"campaignmanagerid\",\r\n value: \"Select Campaign Manager\",\r\n placeholder: \"Select Campaign Manager\",\r\n isRequired: true,\r\n data: \"params1\",\r\n key1: \"firstName\",\r\n key2: \"lastName\"\r\n },\r\n {\r\n label: \"Campaign Description\",\r\n type: \"textarea\",\r\n placeholder: \"Enter Campaign Description\",\r\n name: \"description\",\r\n value: \"\"\r\n },\r\n\r\n {\r\n label: \"Start Date\",\r\n type: \"datepicker\",\r\n name: \"startdate\",\r\n placeholder: \"mm/dd/yyyy\",\r\n minDate: new Date(),\r\n required: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Start Time\",\r\n type: \"timepicker\",\r\n name: \"starttime\",\r\n placeholder: \"hh:mm\",\r\n required: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Time Zone\",\r\n type: \"staticSelect\",\r\n name: \"timezone\",\r\n value: \"Select Timezone\",\r\n isRequired: true,\r\n placeholder: \"Select Timezone\",\r\n data: [\r\n { name: \"PST (-8:00)\", value: \"-28800\" },\r\n { name: \"MST/PDT (-7:00)\", value: \"-25200\" },\r\n { name: \"CST/MDT (-6:00)\", value: \"-21600\" },\r\n { name: \"EST/CDT (-5:00)\", value: \"-18000\" },\r\n { name: \"EDT (-4:00)\", value: \"-14400\" },\r\n { name: \"GMT (0:00)\", value: \"0\" },\r\n { name: \"BST (+1:00)\", value: \"+3600\" },\r\n { name: \"IST (+5:30)\", value: \"+19800\" }\r\n ]\r\n },\r\n {\r\n label: \"Campaign Target\",\r\n type: \"input\",\r\n placeholder: \"e.g. 100\",\r\n name: \"targetconnections\",\r\n isRequired: true,\r\n value: \"\"\r\n },\r\n\r\n {\r\n label: \"CampaignType\",\r\n type: \"staticSelect\",\r\n name: \"type\",\r\n value: \"Select CampaignType\",\r\n isRequired: true,\r\n placeholder: \"Select CampaignType\",\r\n\r\n data: [\r\n { name: \"Standard Invite\", value: \"Standard Invite\" },\r\n { name: \"Nurture Campaign\", value: \"Nurture Campaign\" },\r\n { name: \"Follow on Campaign\", value: \"Follow on Campaign\" },\r\n { name: \"1st connection campaign\", value: \"1st connection campaign\" },\r\n { name: \"In mail campaign\", value: \"In mail campaign\" }\r\n \r\n ]\r\n },\r\n {\r\n label: \"Data Option\",\r\n type: \"staticSelect\",\r\n name: \"dataoption\",\r\n value: \"\",\r\n isRequired: false,\r\n placeholder: \"Select Data Option\",\r\n\r\n data: [\r\n { name: \"Normal Load\", value: \"Normal Load\" },\r\n { name: \"Existing Campaign\", value: \"Existing Campaign\" }\r\n ]\r\n },\r\n {\r\n label: \"Campaign\",\r\n type: \"dynamicSelect\",\r\n name: \"datafromcampaign\",\r\n value: \"\",\r\n key1: \"name\",\r\n isRequired: false,\r\n placeholder: \"Select Campaign\"\r\n },\r\n {\r\n label: \"Zapier Integration URL\",\r\n type: \"input\",\r\n placeholder: \"https://hooks.zapier.com/...\",\r\n name: \"zapierurl\",\r\n isRequired: false,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Use Sales Navigator\",\r\n type: \"checkbox\",\r\n name: \"salesNavigator\",\r\n value: true\r\n },\r\n {\r\n label: \"Workflow\",\r\n type: \"heading\"\r\n },\r\n {\r\n label: \"Add Steps\",\r\n type: \"anchor\",\r\n compo: campaignModal\r\n },\r\n {\r\n type: \"label\"\r\n }\r\n ]\r\n};\r\n\r\nexport const CampaignModalConfig = {\r\n title: \"Add Step\",\r\n\r\n fields: [\r\n {\r\n label: \"Step\",\r\n type: \"staticSelect\",\r\n name: \"stepname\",\r\n isRequired: true,\r\n value: \"Select\",\r\n placeholder: \"Select\",\r\n data: [\r\n { name: \"Visit Profile\", value: \"VISIT\" },\r\n { name: \"Follow Profile\", value: \"FOLLOW\" },\r\n { name: \"Send Invite\", value: \"SEND_INVITE\" },\r\n { name: \"Send Thanks Message\", value: \"SEND_THANKS_MESSAGE\" },\r\n { name: \"Send Message\", value: \"SEND_MESSAGE\" },\r\n { name: \"Send InMail\", value: \"SEND_EMAIL\" }\r\n ],\r\n active: true\r\n },\r\n {\r\n label: \"Limit Per Day\",\r\n type: \"input\",\r\n placeholder: \"e.g. 100\",\r\n isRequired: true,\r\n name: \"limitperday\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Max Limit \",\r\n type: \"note\",\r\n name: \"note message\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Delay (days)\",\r\n type: \"dynamicInput\",\r\n placeholder: \"e.g. 2\",\r\n isRequired: true,\r\n name: \"daysdelay\",\r\n value: \"\"\r\n },\r\n {\r\n type: \"list\",\r\n name: \"list\",\r\n data: [\r\n \"First Name\",\r\n \"Last Name\",\r\n \"D.O.B\",\r\n \"First Name\",\r\n \"Last Name\",\r\n \"D.O.B\",\r\n \"First Name\",\r\n \"Last Name\",\r\n \"D.O.B\"\r\n ]\r\n },\r\n {\r\n label: \"Message\",\r\n type: \"messageArea\",\r\n placeholder: \"Compose message here...\",\r\n isRequired: true,\r\n rows: \"6\",\r\n column: \"10\",\r\n name: \"message\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Personal Note\",\r\n type: \"personalNote\",\r\n placeholder: \"Compose Personal Note here...\",\r\n rows: \"6\",\r\n column: \"10\",\r\n name: \"personalmessage\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Thanks Message\",\r\n type: \"thanksMessageArea\",\r\n placeholder: \"Compose thanks message here...\",\r\n isRequired: true,\r\n rows: \"6\",\r\n column: \"10\",\r\n name: \"replyMessage\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\n\r\nexport const editCampaignForm = {\r\n title: \"Edit Campaign\",\r\n fields: [\r\n { type: \"photo2\", name: \"campaignLogo\" },\r\n {\r\n label: \"Customer\",\r\n type: \"dynamicSelect\",\r\n name: \"customerid\",\r\n value: \"Select Customer\",\r\n data: \"params\",\r\n key1: \"company\",\r\n isRequired: true,\r\n placeholder: \"Select Customer\",\r\n active: true\r\n },\r\n {\r\n label: \"LinkedIn Profile\",\r\n type: \"dynamicSelect\",\r\n name: \"linkedinid\",\r\n value: \"Select LinkedIn Profile\",\r\n key1: \"name\",\r\n isRequired: true,\r\n placeholder: \"Select LinkedIn Profile\",\r\n link: true\r\n },\r\n {\r\n label: \"Campaign Name\",\r\n type: \"input\",\r\n placeholder: \"Enter Campaign Name\",\r\n isRequired: true,\r\n name: \"name\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Campaign Manager\",\r\n type: \"dynamicSelect\",\r\n name: \"campaignmanagerid\",\r\n value: \"Select Campaign Manager\",\r\n placeholder: \"Select Campaign Manager\",\r\n isRequired: true,\r\n data: \"params1\",\r\n key1: \"firstName\",\r\n key2: \"lastName\"\r\n },\r\n {\r\n label: \"Campaign Description\",\r\n type: \"textarea\",\r\n placeholder: \"Enter Campaign Description\",\r\n name: \"description\",\r\n value: \"\"\r\n },\r\n\r\n {\r\n label: \"Start Date\",\r\n type: \"datepicker\",\r\n name: \"startdate\",\r\n disabled: true,\r\n placeholder: \"mm/dd/yyyy\",\r\n required: true,\r\n\r\n minDate: new Date(),\r\n value: \"\"\r\n },\r\n {\r\n label: \"Start Time\",\r\n type: \"timepicker\",\r\n name: \"starttime\",\r\n placeholder: \"hh:mm\",\r\n disabled: true,\r\n required: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Time Zone\",\r\n type: \"staticSelect\",\r\n name: \"timezone\",\r\n value: \"Select Timezone\",\r\n isRequired: true,\r\n placeholder: \"Select Timezone\",\r\n data: [\r\n { name: \"PST (-8:00)\", value: \"-28800\" },\r\n { name: \"MST/PDT (-7:00)\", value: \"-25200\" },\r\n { name: \"CST/MDT (-6:00)\", value: \"-21600\" },\r\n { name: \"EST/CDT (-5:00)\", value: \"-18000\" },\r\n { name: \"EDT (-4:00)\", value: \"-14400\" },\r\n\r\n { name: \"GMT (0:00)\", value: \"0\" },\r\n { name: \"BST (+1:00)\", value: \"+3600\" },\r\n { name: \"IST (+5:30)\", value: \"+19800\" }\r\n ]\r\n },\r\n {\r\n label: \"Campaign Target\",\r\n type: \"input\",\r\n placeholder: \"e.g. 100\",\r\n name: \"targetconnections\",\r\n isRequired: true,\r\n value: \"\"\r\n },\r\n\r\n {\r\n label: \"CampaignType\",\r\n disabled: true,\r\n type: \"staticSelect\",\r\n name: \"type\",\r\n value: \"\",\r\n isRequired: true,\r\n placeholder: \"Select CampaignType\",\r\n data: [\r\n { name: \"Standard Invite\", value: \"Standard Invite\" },\r\n { name: \"Nurture Campaign\", value: \"Nurture Campaign\" },\r\n { name: \"Follow on Campaign\", value: \"Follow on Campaign\" },\r\n { name: \"1st connection campaign\", value: \"1st connection campaign\" },\r\n { name: \"In mail campaign\", value: \"In mail campaign\" }\r\n ]\r\n },\r\n {\r\n label: \"Data Option\",\r\n disabled: true,\r\n type: \"staticSelect\",\r\n name: \"dataoption\",\r\n value: \"\",\r\n isRequired: false,\r\n placeholder: \"Select Data Option\",\r\n\r\n data: [\r\n { name: \"Normal Load\", value: \"Normal Load\" },\r\n { name: \"Existing Campaign\", value: \"Existing Campaign\" }\r\n ]\r\n },\r\n {\r\n label: \"Campaign\",\r\n disabled: true,\r\n type: \"dynamicSelect\",\r\n name: \"datafromcampaign\",\r\n value: \"\",\r\n key1: \"name\",\r\n isRequired: false,\r\n placeholder: \"Select Campaign\"\r\n },\r\n {\r\n label: \"button\",\r\n type: \"button\",\r\n name: \"button\",\r\n color: \"Primary\",\r\n size: \"medium\",\r\n disabled: true,\r\n buttontext: \"Live\",\r\n iconname: ,\r\n value: \"\",\r\n funName: \"setLiveStatus\"\r\n },\r\n {\r\n label: \"button\",\r\n type: \"button\",\r\n name: \"button\",\r\n color: \"Primary\",\r\n size: \"medium\",\r\n buttontext: \"Pause\",\r\n action: true,\r\n iconname: ,\r\n value: \"\",\r\n funName: \"setPauseStatus\"\r\n },\r\n {\r\n label: \"button\",\r\n type: \"button\",\r\n name: \"button\",\r\n color: \"secondary\",\r\n size: \"medium\",\r\n buttontext: \"End\",\r\n iconname: ,\r\n value: \"\",\r\n funName: \"setEndStatus\"\r\n },\r\n {\r\n label: \"button\",\r\n type: \"button\",\r\n name: \"button\",\r\n color: \"secondary\",\r\n size: \"medium\",\r\n delete: true,\r\n buttontext: \"Delete\",\r\n iconname: ,\r\n value: \"\",\r\n funName: \"setDeleteStatus\"\r\n },\r\n {\r\n label: \"Zapier Integration URL\",\r\n type: \"input\",\r\n placeholder: \"https://hooks.zapier.com/...\",\r\n name: \"zapierurl\",\r\n isRequired: false,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Use Sales Navigator\",\r\n type: \"checkbox\",\r\n name: \"salesNavigator\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Workflow\",\r\n type: \"heading\"\r\n },\r\n {\r\n label: \"Add Steps\",\r\n type: \"anchor\",\r\n compo: campaignModal\r\n },\r\n {\r\n type: \"label\"\r\n }\r\n ]\r\n};\r\n\r\nexport const campaignValidation = Yup.object().shape({\r\n name: Yup.string()\r\n .required(\"Please enter campaign name\")\r\n\r\n .max(50, \"Campaign name should be less than 50 characters\")\r\n .matches(/[A-Za-z0-9]/, {\r\n message: \"Please enter valid campaign name\",\r\n excludeEmptyString: true\r\n }),\r\n\r\n description: Yup.string()\r\n .matches(/[A-Za-z0-9]/, {\r\n message: \"Please enter a valid campaign description\",\r\n excludeEmptyString: true\r\n })\r\n .max(250, \"max lenth 250 characters.\"),\r\n \r\n targetconnections: Yup.string()\r\n .matches(/^\\d+$/, {\r\n message: \"Digits only\",\r\n excludeEmptyString: true\r\n })\r\n .test(\r\n \"value not zero\",\r\n \"Connections should be greater than zero.\",\r\n value => {\r\n return value !== 0;\r\n }\r\n )\r\n .max(10, \"Connections should be less than 10 digits\")\r\n .required(\"Please enter connections\"),\r\n\r\n customerid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select customer\", value => {\r\n return value !== \"Select Customer\";\r\n }),\r\n\r\n linkedinid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select Linkedin profile\", value => {\r\n return value !== \"Select LinkedIn Profile\";\r\n }),\r\n\r\n campaignmanagerid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select campaign manager\", value => {\r\n return value !== \"Select Campaign Manager\";\r\n }),\r\n dataoption: Yup.string()\r\n .ensure()\r\n .when(\"type\", {\r\n is: type => type === \"In mail campaign\" ,\r\n then: Yup.string().required(\"Please select dataoption\")\r\n }),\r\n type: Yup.string()\r\n .ensure()\r\n .test(\"type\", \"Please select campaign type\", value => {\r\n return value !== \"Select CampaignType\";\r\n }),\r\n datafromcampaign: Yup.string()\r\n .ensure()\r\n .when(\"type\", {\r\n is: \"In mail campaign\",\r\n then: Yup.string().required(\"Please select datafromcampaign\")\r\n }),\r\n\r\n timezone: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select time zone\", value => {\r\n return value !== \"Select Timezone\";\r\n })\r\n});\r\n\r\nexport const editcampaignValidation = Yup.object().shape({\r\n name: Yup.string()\r\n .required(\"Please enter campaign name\")\r\n\r\n .max(50, \"Campaign name should be less than 50 characters\")\r\n .matches(/[A-Za-z0-9]/, {\r\n message: \"Please enter valid campaign name\",\r\n excludeEmptyString: true\r\n }),\r\n\r\n description: Yup.string()\r\n .matches(/[A-Za-z0-9]/, {\r\n message: \"Please enter valid campaign description\",\r\n excludeEmptyString: true\r\n })\r\n .max(250, \"max lenth 250 characters.\"),\r\n\r\n targetconnections: Yup.string()\r\n .matches(/^\\d+$/, {\r\n message: \"Digits only\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"required connection\", \"Please enter connections\", value => {\r\n return !!value === true;\r\n })\r\n .test(\r\n \"value not zero\",\r\n \"Connections should be greater than zero.\",\r\n value => {\r\n return value !== 0;\r\n }\r\n )\r\n .test(\r\n \"target Connection Value\",\r\n \"Connection value should be greater than current value\",\r\n value => {\r\n return value >= store.getState().formData.targetconnections;\r\n }\r\n )\r\n .max(10, \"Connections should be less than 10 digits\"),\r\n\r\n customerid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select customer\", value => {\r\n return value !== \"Select Customer\";\r\n }),\r\n\r\n linkedinid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select Linkedin profile\", value => {\r\n return value !== \"Select LinkedIn Profile\";\r\n }),\r\n\r\n campaignmanagerid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select campaign manager\", value => {\r\n return value !== \"Select Campaign Manager\";\r\n }),\r\n dataoption: Yup.string()\r\n .ensure()\r\n .when(\"type\", {\r\n is: type => type === \"In mail campaign\" ,\r\n then: Yup.string().required(\"Please select dataoption\")\r\n }),\r\n datafromcampaign: Yup.string()\r\n .ensure()\r\n .when(\"type\", {\r\n is: \"In mail campaign\" ,\r\n then: Yup.string().required(\"Please select datafromcampaign\")\r\n }),\r\n timezone: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select time zone\", value => {\r\n return value !== \"Select Timezone\";\r\n })\r\n});\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles, Link } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport {\r\n // EditCampaignModalConfig,\r\n CampaignModalConfig\r\n} from \"../Campaign/CampaignConfig\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./campaignModal.css\";\r\nimport Edit from \"../assets/edit.png\";\r\nimport store from \"../../Redux/Store\";\r\n\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport {\r\n EditCampaignStepsQuery,\r\n getLimitPerDay\r\n} from \"../Campaign/campaignQueries\";\r\n// modal props must have a button title and a dialog title\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n let [addsteps, setsteps] = useState({});\r\n let [maxLimits, setMaxlimit] = useState();\r\n let [limitsPerDay, setlimitsPerDay] = useState([]);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n let maxLimit = maxLimits;\r\n\r\n const editcampaignModalValidation = Yup.object().shape({\r\n stepname: Yup.string()\r\n .ensure()\r\n .test(\"stepname\", \"Please select step\", value => {\r\n return value != \"Select\";\r\n }),\r\n limitperday: Yup.string()\r\n .matches(/^\\d+$/, {\r\n message: \"Digits only\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"limit not put\", \"Please enter max. limit\", function(value) {\r\n return (\r\n value !== undefined ||\r\n (store.getState().addModalStep.length >= 1 &&\r\n (this.parent.stepname === \"SEND_THANKS_MESSAGE\" ||\r\n this.parent.stepname === \"SEND_MESSAGE\") &&\r\n store.getState().addModalStep[0].stepname !== \"SEND_MESSAGE\")\r\n );\r\n })\r\n .test(\"is not zero\", \"Limit can't be zero\", function(value) {\r\n return (\r\n value != 0 ||\r\n (store.getState().addModalStep.length >= 1 &&\r\n (this.parent.stepname === \"SEND_THANKS_MESSAGE\" ||\r\n this.parent.stepname === \"SEND_MESSAGE\") &&\r\n store.getState().addModalStep[0].stepname !== \"SEND_MESSAGE\")\r\n );\r\n })\r\n .test(\"is not max limits\", \"Can't exceed max limit\", function(value) {\r\n return (\r\n value <= maxLimits ||\r\n (store.getState().addModalStep.length >= 1 &&\r\n (this.parent.stepname === \"SEND_THANKS_MESSAGE\" ||\r\n this.parent.stepname === \"SEND_MESSAGE\") &&\r\n store.getState().addModalStep[0].stepname !== \"SEND_MESSAGE\")\r\n );\r\n }),\r\n\r\n daysdelay: Yup.string()\r\n .required(\"Please enter days delay\")\r\n .matches(/^\\d+$/, {\r\n message: \"Digits only\",\r\n excludeEmptyString: true\r\n })\r\n .max(2, \"Days delay should be less than 3 digits only\"),\r\n\r\n message: Yup.string().when(\"stepname\", {\r\n is: \"SEND_MESSAGE\",\r\n then: Yup.string()\r\n .required(\"Please enter message\")\r\n\r\n .max(3000, \"Message should be less than 3000 characters\")\r\n }),\r\n personalmessage: Yup.string().when(\"stepname\", {\r\n is: \"SEND_INVITE\",\r\n then: Yup.string()\r\n \r\n .max(250, \"Personal message should be less than 250 characters\")\r\n }),\r\n replyMessage: Yup.string().when(\"stepname\", {\r\n is: \"SEND_THANKS_MESSAGE\",\r\n then: Yup.string().max(\r\n 3000,\r\n \"Thank message should be less than 3000 characters\"\r\n )\r\n })\r\n });\r\n\r\n useEffect(() => {\r\n fetchMethod(getLimitPerDay)\r\n .then(res => res.json())\r\n .then(res => {\r\n setlimitsPerDay(res.data.allSystemsettings.Systemsettings[0]);\r\n })\r\n .catch(e => console.log(e));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.editableData.stepname === \"SEND_INVITE\") {\r\n setMaxlimit(limitsPerDay.maxconnectionperday);\r\n } else if (props.editableData.stepname === \"FOLLOW\") {\r\n setMaxlimit(limitsPerDay.maxfollowperday);\r\n } else if (props.editableData.stepname === \"VISIT\") {\r\n setMaxlimit(limitsPerDay.maxvisitperday);\r\n } else {\r\n setMaxlimit(limitsPerDay.maxmessageperday);\r\n }\r\n });\r\n\r\n const renderModalContent = props => {\r\n \r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
Edit Step
\r\n
\r\n {renderModalContent(props)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\n// import { API_URL } from \"../../config\";\r\n// import { IconButton } from \"@material-ui/core\";\r\n// import DeleteIcon from \"@material-ui/icons/Delete\";\r\n// import EditIcon from \"@material-ui/icons/Edit\";\r\nimport store from \"../../Redux/Store\";\r\nimport \"./stepadd.css\";\r\nimport { connect } from \"react-redux\";\r\n//import Edit from \"../assets/edit.png\";\r\nimport Delete from \"../assets/delete1.png\";\r\nimport EditModal from \"../Campaign/EditModal\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { EditCampaignStepsQuery } from \"./campaignQueries\";\r\n\r\nclass AddStepsSection extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n updateSequence = id => {\r\n const updateData = this.props.addModalStep.filter(item => item.id !== id);\r\n updateData.map((item, index) => {\r\n const key = index + 1;\r\n item.sequence = key;\r\n let test = {\r\n id: { id: item.id },\r\n data: item\r\n };\r\n\r\n fetchMethod(EditCampaignStepsQuery, test)\r\n .then(res => {\r\n return res.json();\r\n })\r\n .then(response => {})\r\n .catch(e => console.log(e));\r\n });\r\n\r\n this.props.OnEditData(updateData);\r\n };\r\n\r\n onDelete = item => {\r\n if (item.active === 1 || item.active === \"1\") {\r\n swal({\r\n text:\r\n \"Are you sure you want to delete this workflow step ?\" +\r\n \"\\n\" +\r\n \" You would not be able to undo this.\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n const test = {\r\n id: { stepname: item.stepname, id: item.id },\r\n data: { active: 0 }\r\n };\r\n fetchMethod(EditCampaignStepsQuery, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.updateSequence(item.id);\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n let pos = 0;\r\n return (\r\n \r\n {this.props.addModalStep.length !== 0 ? (\r\n this.props.addModalStep.map((item, index) => {\r\n const count = index + 1;\r\n if (\r\n item.stepname === \"SEND_MESSAGE\" ||\r\n item.stepname === \"SEND_EMAIL\"\r\n ) {\r\n pos = pos + 1;\r\n }\r\n\r\n return (\r\n
\r\n \r\n Step {\" \" + count}\r\n
\r\n

\r\n {item.stepname === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : item.stepname === \"VISIT\"\r\n ? \"Visit Profile\"\r\n : item.stepname === \"FOLLOW\"\r\n ? \"Follow Profile\"\r\n : item.stepname === \"SEND_THANKS_MESSAGE\"\r\n ? \"Send Thanks Message\"\r\n : item.stepname === \"SEND_MESSAGE\"\r\n ? \"Send Message \" + pos\r\n : item.stepname === \"SEND_EMAIL\"\r\n ? \"Send InMail \" + pos\r\n : \"\"}\r\n

\r\n\r\n {item.stepname === \"SEND_INVITE\" ? (\r\n

\r\n

{item.message}

\r\n Max {item.limitperday} invites\r\n

\r\n ) : item.stepname === \"SEND_MESSAGE\" ? (\r\n

\r\n

{item.message}

\r\n {item.limitperday\r\n ? \"Max \" + item.limitperday + \" messages\"\r\n : \"\"}\r\n

\r\n ) : item.stepname === \"SEND_EMAIL\" ? (\r\n

\r\n

{item.message}

\r\n {item.limitperday\r\n ? \"Max \" + item.limitperday + \" messages\"\r\n : \"\"}\r\n

\r\n ) : item.stepname === \"VISIT\" ? (\r\n

Max {item.limitperday} visits

\r\n ) : item.stepname === \"SEND_THANKS_MESSAGE\" ? (\r\n

\r\n

{item.message}

\r\n {item.limitperday\r\n ? \"Max \" + item.limitperday + \" thanks messages\"\r\n : \"\"}\r\n

\r\n ) : (\r\n

Max {item.limitperday} follows

\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n localStorage.getItem(\"role\") !== \"CAMPAIGNMANAGER\"\r\n ? store.getState().isEditMode === true\r\n ? this.onDelete(item)\r\n : swal({\r\n text:\r\n \"Are you sure you want to delete this workflow step ?\" +\r\n \"\\n\" +\r\n \" You would not be able to undo this.\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n this.props.OnDelete(item.stepname);\r\n }\r\n })\r\n : \"\"\r\n }\r\n >\r\n \"Delete\"\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n })\r\n ) : (\r\n
\r\n
No workflow step added...
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const { addModalStep } = state;\r\n return { addModalStep };\r\n};\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n OnDelete: step => dispatch({ type: \"DELETE_ADDSTEPS\", Modal_step: step }),\r\n\r\n OnEditData: updateData =>\r\n dispatch({ type: \"Edit_Step_Data\", StepId: updateData })\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AddStepsSection);\r\n","import React, { Component } from \"react\";\r\nimport Dropzone from \"../dropzone/Dropzone\";\r\nimport Dropzone2 from \"../dropzone/Dropzone2\";\r\nimport {\r\n Button,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n MenuItem,\r\n FormControl,\r\n Radio,\r\n RadioGroup,\r\n FormLabel,\r\n Link,\r\n Typography,\r\n IconButton\r\n} from \"@material-ui/core\";\r\n// import CheckCircle from \"@material-ui/icons/CheckCircleOutline\";\r\n// import Cancel from \"@material-ui/icons/HighlightOff\";\r\nimport swal from \"sweetalert\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport NextArrow from \"../assets/next-arrow.png\";\r\nimport Calender from \"../assets/calendar.png\";\r\nimport Clock from \"../assets/clock.png\";\r\nimport { Formik, Form } from \"formik\";\r\n\r\nimport \"date-fns\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { profileImageUrl } from \"../../config\";\r\nimport { campaignImageUrl } from \"../../config\";\r\n\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardTimePicker,\r\n KeyboardDatePicker\r\n} from \"@material-ui/pickers\";\r\nimport { getlinkedinprofiles } from \"../Campaign/campaignQueries\";\r\nimport { GetAllCampaign } from \"../../Queries\";\r\nimport AddLinkedinModal from \"../Customers/customerLinkedinData\";\r\nimport AddStepsSection from \"../Campaign/StepAdd\";\r\nimport store from \"../../Redux/Store\";\r\nimport { connect } from \"react-redux\";\r\nimport { API_URL } from \"../../config\";\r\n\r\nclass FormComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n rows: [],\r\n params2: [],\r\n formData: {},\r\n onButton: \"true\",\r\n message: false,\r\n loading: false,\r\n loadingData: false,\r\n loadingData1: false,\r\n textAreaData: \"\",\r\n subject: \"\",\r\n active: true,\r\n daysdelays: true,\r\n personalNoteActive: false,\r\n personalNoteAreaData: \"\",\r\n thanksActive: false,\r\n thanksAreaData: \"\",\r\n pauseStatus: \"\",\r\n fileData: [],\r\n starttime: \"\",\r\n currentPosition: \"\",\r\n params3: [],\r\n campaignType: \"\",\r\n campaignDataOptionType: \"\",\r\n EditcampaignTypeId: \"\"\r\n };\r\n }\r\n componentWillMount() {\r\n if (this.props.editableData !== undefined) {\r\n localStorage.removeItem(\"campaignType\");\r\n if (\r\n this.props.editableData.status === 1 ||\r\n this.props.editableData.status === 0\r\n ) {\r\n this.props.editableData.status = String(this.props.editableData.status);\r\n }\r\n if (\r\n this.props.editableData.abm === 1 ||\r\n this.props.editableData.abm === 0\r\n ) {\r\n this.props.editableData.abm = String(this.props.editableData.abm);\r\n }\r\n\r\n if (\r\n this.props.editableData.active === 1 ||\r\n this.props.editableData.active === 0\r\n ) {\r\n this.props.editableData.active = String(this.props.editableData.active);\r\n }\r\n if (\r\n this.props.editableData.role === \"CUSTOMER\" &&\r\n this.props.className === \"userForm\"\r\n ) {\r\n localStorage.setItem(\"type\", this.props.editableData.role);\r\n }\r\n if (\r\n (this.props.editableData.role === \"ADMIN\" ||\r\n this.props.editableData.role === \"CAMPAIGNMANAGER\") &&\r\n this.props.className === \"userForm\"\r\n ) {\r\n localStorage.removeItem(\"type\");\r\n }\r\n return this.setState(\r\n {\r\n formData: this.props.editableData\r\n },\r\n () => {\r\n if (\r\n this.props.formConfig.title === \"Add Step\" &&\r\n this.props.editableData !== undefined\r\n ) {\r\n if (this.props.editableData.stepname === \"SEND_MESSAGE\") {\r\n this.setState({\r\n message: true,\r\n active: false,\r\n email: false,\r\n daysdelays: true,\r\n personalNoteActive: false,\r\n thanksActive: false\r\n });\r\n } else if (this.props.editableData.stepname === \"SEND_EMAIL\") {\r\n this.setState({\r\n message: false,\r\n active: false,\r\n daysdelays: true,\r\n personalNoteActive: false,\r\n thanksActive: false,\r\n email: true\r\n });\r\n } else if (this.props.editableData.stepname === \"SEND_INVITE\") {\r\n let { formData } = this.state;\r\n formData[\"personalmessage\"] = formData[\"message\"];\r\n this.setState({\r\n message: false,\r\n email: false,\r\n active: true,\r\n personalNoteActive: true,\r\n formData,\r\n daysdelays: true,\r\n thanksActive: false\r\n });\r\n } else if (\r\n this.props.editableData.stepname === \"SEND_THANKS_MESSAGE\"\r\n ) {\r\n let { formData } = this.state;\r\n formData[\"replyMessage\"] = formData[\"message\"];\r\n this.setState({\r\n message: false,\r\n active: true,\r\n email: false,\r\n personalNoteActive: false,\r\n thanksActive: true,\r\n daysdelays: true\r\n });\r\n } else {\r\n this.setState({\r\n message: false,\r\n email: false,\r\n active: false,\r\n personalNoteActive: false,\r\n thanksActive: false,\r\n daysdelays: true\r\n });\r\n }\r\n }\r\n if (\r\n this.props.formConfig.title === \"Add Step\" &&\r\n this.props.editableData !== undefined\r\n ) {\r\n this.editdisplayNote(this.state.formData);\r\n }\r\n if (\r\n this.state.formData.customerid === null &&\r\n this.props.className === \"userForm\"\r\n ) {\r\n this.state.formData.customerid = \"Select Customer\";\r\n }\r\n if (\r\n this.state.formData.startdate !== undefined &&\r\n (this.props.className === \"campaignForm\" ||\r\n this.props.className === \"EditCampaign\")\r\n ) {\r\n const { formData } = this.state;\r\n var date = new Date(formData.startdate);\r\n var tz = date.getTimezoneOffset();\r\n formData.startdate = new Date(date.getTime() + tz * 60000);\r\n this.setState({ formData, starttime: formData.startdate });\r\n }\r\n if (\r\n this.props.className === \"EditCampaign\" &&\r\n this.state.formData.type !== undefined\r\n ) {\r\n localStorage.setItem(\"campaignType\", this.state.formData.type);\r\n this.setState({ campaignType: this.state.formData.type });\r\n\r\n }\r\n\r\n if (\r\n this.props.className === \"EditCampaign\" &&\r\n this.state.formData.datafromcampaign !== undefined\r\n ) {\r\n this.setState({\r\n EditcampaignTypeId: this.state.formData.datafromcampaign\r\n });\r\n }\r\n if (\r\n this.props.className === \"EditCampaign\" &&\r\n this.state.formData.status !== undefined\r\n ) {\r\n this.setState({ pauseStatus: this.state.formData.status });\r\n }\r\n if (\r\n this.props.formConfig.title === \"Edit Campaign\" ||\r\n this.props.formConfig.title === \"AddCampaignForm\"\r\n ) {\r\n this.linkedinpro();\r\n this.getlinkedInCampaign();\r\n }\r\n }\r\n );\r\n } else {\r\n if (this.props.formConfig.title === \"Add Step\") {\r\n this.setState({ active: false });\r\n }\r\n\r\n const campaignType = localStorage.getItem(\"campaignType\");\r\n return this.props.formConfig.fields.map(fields => {\r\n if (campaignType === \"Nurture Campaign\") {\r\n if (fields.label === \"Step\") {\r\n let data = [\r\n { name: \"Follow Profile\", value: \"FOLLOW\" },\r\n { name: \"Send Message\", value: \"SEND_MESSAGE\" },\r\n { name: \"Send InMail\", value: \"SEND_EMAIL\" }\r\n ];\r\n fields.data = data;\r\n }\r\n }\r\n else if (campaignType === \"In mail campaign\") {\r\n if (fields.label === \"Step\") {\r\n let data = [\r\n { name: \"Visit Profile\", value: \"VISIT\" },\r\n { name: \"Follow Profile\", value: \"FOLLOW\" },\r\n { name: \"Send InMail\", value: \"SEND_EMAIL\" }\r\n ];\r\n fields.data = data;\r\n }\r\n } else {\r\n if (fields.label === \"Step\") {\r\n let data = [\r\n { name: \"Visit Profile\", value: \"VISIT\" },\r\n { name: \"Follow Profile\", value: \"FOLLOW\" },\r\n { name: \"Send Invite\", value: \"SEND_INVITE\" },\r\n { name: \"Send Thanks Message\", value: \"SEND_THANKS_MESSAGE\" },\r\n { name: \"Send Message\", value: \"SEND_MESSAGE\" },\r\n { name: \"Send InMail\", value: \"SEND_EMAIL\" }\r\n ];\r\n fields.data = data;\r\n }\r\n }\r\n const { name, value } = fields;\r\n const { formData } = this.state;\r\n formData[name] = value;\r\n this.setState({ formData });\r\n });\r\n }\r\n }\r\n\r\n linkedinpro = () => {\r\n let linkedinprofileid = {\r\n where: {\r\n order: \"name asc\",\r\n customerid: this.state.formData.customerid,\r\n active: 1\r\n }\r\n };\r\n fetchMethod(getlinkedinprofiles, linkedinprofileid)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n params2: res.data.allCustomerlinkedinprofiles.Customerlinkedinprofiles\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n getlinkedInCampaign = () => {\r\n const filter = {\r\n where: {\r\n order: \"name asc\",\r\n linkedinid: this.state.formData.linkedinid,\r\n active: 1\r\n }\r\n };\r\n\r\n fetchMethod(GetAllCampaign, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n let data =\r\n res.data.allCampaigns !== undefined && res.data.allCampaigns !== null\r\n ? res.data.allCampaigns.Campaigns\r\n : \"\";\r\n\r\n this.setState({ params3: data }, () => {\r\n if (\r\n this.state.EditcampaignTypeId !== \"\" &&\r\n this.state.EditcampaignTypeId !== undefined\r\n ) {\r\n let data = this.state.params3.filter(\r\n x => x.id == this.state.EditcampaignTypeId\r\n );\r\n let array = [];\r\n if (data && data[0]) {\r\n array.push({\r\n id: data[0].id,\r\n name: data[0].name\r\n });\r\n }\r\n\r\n this.setState({\r\n params3: array\r\n });\r\n }\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n setPauseStatus = () => {\r\n swal(\"Are you sure you want to pause this campaign?\", {\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n const { formData } = this.state;\r\n formData[\"status\"] = \"PAUSED\";\r\n this.setState({ formData, pauseStatus: \"PAUSED\" });\r\n const test = {\r\n id: { id: this.state.formData.id },\r\n data: { status: this.state.formData.status }\r\n };\r\n fetchMethod(this.props.query, test)\r\n .then(res => res.json())\r\n .then(response => {\r\n const message =\r\n response.data[this.props.query.definitions[0].name.value];\r\n\r\n if (message !== null) {\r\n swal({ text: \"Action completed successfully\", icon: \"success\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n } else {\r\n swal(\"Please try again\", { icon: \"error\" });\r\n }\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n swal({ title: \"Unable to reach server\", icon: \"warning\" });\r\n });\r\n } else {\r\n return;\r\n }\r\n });\r\n };\r\n\r\n setEndStatus = () => {\r\n swal(\"Are you sure you want to end this campaign?\", {\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n const { formData } = this.state;\r\n formData[\"status\"] = \"COMPLETED\";\r\n this.setState({ formData, pauseStatus: \"COMPLETED\" });\r\n const test = {\r\n id: { id: this.state.formData.id },\r\n data: { status: this.state.formData.status }\r\n };\r\n fetchMethod(this.props.query, test)\r\n .then(res => res.json())\r\n .then(response => {\r\n const message =\r\n response.data[this.props.query.definitions[0].name.value];\r\n if (message !== null) {\r\n swal({ text: \"Action completed successfully\", icon: \"success\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n } else {\r\n swal(\"Please try again\", { icon: \"error\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n }\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n swal({\r\n title: \"Update unsuccessful\",\r\n icon: \"warning\"\r\n });\r\n });\r\n } else {\r\n return;\r\n }\r\n });\r\n };\r\n\r\n setLiveStatus = () => {\r\n swal(\"Are you sure you want to resume this campaign?\", {\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n const { formData } = this.state;\r\n formData[\"status\"] = \"LIVE\";\r\n this.setState({ formData, pauseStatus: \"LIVE\" });\r\n const test = {\r\n id: { id: this.state.formData.id },\r\n data: { status: this.state.formData.status }\r\n };\r\n fetchMethod(this.props.query, test)\r\n .then(res => res.json())\r\n .then(response => {\r\n const message =\r\n response.data[this.props.query.definitions[0].name.value];\r\n if (message !== null) {\r\n swal({ text: \"Action completed successfully\", icon: \"success\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n } else {\r\n swal(\"Please try again\", { icon: \"error\" });\r\n }\r\n })\r\n .catch(e =>\r\n swal({ title: \"Unable to reach server\", icon: \"warning\" })\r\n );\r\n } else {\r\n return;\r\n }\r\n });\r\n };\r\n setDeleteStatus = () => {\r\n swal(\"Are you sure you want to delete this campaign?\", {\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n const { formData } = this.state;\r\n formData[\"status\"] = \"NOTSTARTED\";\r\n this.setState({ formData, pauseStatus: \"NOTSTARTED\" });\r\n const test = {\r\n id: { id: this.state.formData.id },\r\n data: { active: 0 }\r\n };\r\n fetchMethod(this.props.query, test)\r\n .then(res => res.json())\r\n .then(response => {\r\n const message =\r\n response.data[this.props.query.definitions[0].name.value];\r\n if (message !== null) {\r\n swal({ text: \"Action completed successfully\", icon: \"success\" });\r\n\r\n window.location = \"/campaigns\";\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n } else {\r\n swal(\"Please try again\", { icon: \"error\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n }\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n swal({\r\n title: \"Update unsuccessful\",\r\n icon: \"warning\"\r\n });\r\n });\r\n } else {\r\n return;\r\n }\r\n });\r\n };\r\n\r\n setHubspotId = () => {\r\n this.setState({ loadingData1: true });\r\n var profileId =\r\n this.props.editableData !== undefined\r\n ? this.state.formData.id\r\n : \"new_\" + new Date().getTime() + Math.round(Math.random() * 100);\r\n window.open(\r\n API_URL +\r\n \"/hubspot/login?profileId=\" +\r\n profileId +\r\n \"&customerId=\" +\r\n store.getState().id\r\n );\r\n\r\n var timer = setInterval(() => {\r\n fetch(\r\n `${API_URL}/api/Hubspottokens/getUpdateToken?profileId=${profileId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.response !== \"Token Not Found\") {\r\n this.setState({ loadingData1: \"Token\" });\r\n clearInterval(timer);\r\n this.props.EditLinkedinData(\r\n (this.state.formData.hubspottoken = response.response)\r\n );\r\n } else {\r\n setTimeout(() => {\r\n clearInterval(timer);\r\n this.setState({ loadingData1: false });\r\n }, 180000);\r\n }\r\n });\r\n }, 3000);\r\n };\r\n\r\n setSalesforceId = () => {\r\n this.setState({ loadingData: true });\r\n var profileId = this.props.editableData\r\n ? this.state.formData.id\r\n : \"new_\" + new Date().getTime() + Math.round(Math.random() * 100);\r\n window.open(\r\n API_URL +\r\n \"/salesforce/login?profileId=\" +\r\n profileId +\r\n \"&customerId=\" +\r\n store.getState().id\r\n );\r\n\r\n const timer = setInterval(() => {\r\n fetch(\r\n `${API_URL}/api/Salesforcetokens/getUpdateSalesforceToken?profileId=${profileId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.response !== \"Token Not Found\") {\r\n this.setState({ loadingData: \"Token\" });\r\n clearInterval(timer);\r\n this.props.EditLinkedinData(\r\n (this.state.formData.salesforcetoken = response.response)\r\n );\r\n } else {\r\n setTimeout(() => {\r\n clearInterval(timer);\r\n this.setState({ loadingData: false });\r\n }, 180000);\r\n }\r\n });\r\n }, 3000);\r\n };\r\n\r\n handleButton = name => {\r\n switch (name) {\r\n case \"setLiveStatus\":\r\n this.setLiveStatus();\r\n break;\r\n case \"setPauseStatus\":\r\n this.setPauseStatus();\r\n break;\r\n case \"setEndStatus\":\r\n this.setEndStatus();\r\n break;\r\n case \"setDeleteStatus\":\r\n this.setDeleteStatus();\r\n break;\r\n case \"setHubspotId\":\r\n this.setHubspotId();\r\n break;\r\n case \"setSalesforceId\":\r\n this.setSalesforceId();\r\n break;\r\n }\r\n };\r\n\r\n displayNote = (e, formData) => {\r\n if (e.target.value === \"SEND_MESSAGE\") {\r\n this.state.formData[\"limits\"] = this.props.limitsPerDay.maxmessageperday;\r\n this.setState({ formData });\r\n } else if (e.target.value === \"SEND_EMAIL\") {\r\n this.state.formData[\"limits\"] = this.props.limitsPerDay.maxmessageperday;\r\n this.setState({ formData });\r\n } else if (e.target.value === \"FOLLOW\") {\r\n this.state.formData[\"limits\"] = this.props.limitsPerDay.maxfollowperday;\r\n this.setState({ formData });\r\n } else if (e.target.value === \"VISIT\") {\r\n this.state.formData[\"limits\"] = this.props.limitsPerDay.maxvisitperday;\r\n this.setState({ formData });\r\n } else if (e.target.value === \"SEND_THANKS_MESSAGE\") {\r\n this.state.formData[\"limits\"] = this.props.limitsPerDay.maxmessageperday;\r\n this.setState({ formData });\r\n } else {\r\n this.state.formData[\r\n \"limits\"\r\n ] = this.props.limitsPerDay.maxconnectionperday;\r\n this.setState({ formData });\r\n }\r\n };\r\n\r\n editdisplayNote = formData => {\r\n const { stepname } = this.props.editableData;\r\n const {\r\n maxconnectionperday,\r\n maxfollowperday,\r\n maxmessageperday,\r\n maxvisitperday\r\n } = this.props.limitsPerDay;\r\n if (stepname === \"SEND_MESSAGE\") {\r\n this.state.formData[\"limits\"] = maxmessageperday;\r\n this.setState({ formData });\r\n } else if (stepname === \"SEND_EMAIL\") {\r\n this.state.formData[\"limits\"] = maxmessageperday;\r\n this.setState({ formData, subject: this.state.formData[\"subject\"] });\r\n } else if (stepname === \"FOLLOW\") {\r\n this.state.formData[\"limits\"] = maxfollowperday;\r\n this.setState({ formData });\r\n } else if (stepname === \"SEND_THANKS_MESSAGE\") {\r\n this.state.formData[\"limits\"] = maxmessageperday;\r\n this.setState({ formData }, () =>\r\n console.log(this.state.formData.limits)\r\n );\r\n } else if (stepname === \"VISIT\") {\r\n this.state.formData[\"limits\"] = maxvisitperday;\r\n this.setState({ formData });\r\n } else {\r\n this.state.formData[\"limits\"] = maxconnectionperday;\r\n this.setState({ formData });\r\n }\r\n };\r\n\r\n onChange = e => {\r\n const {\r\n target: { name, value }\r\n } = e;\r\n const { formData } = this.state;\r\n if (e.target.value === \"CAMPAIGNMANAGER\" || e.target.value === \"ADMIN\") {\r\n formData[\"customerid\"] = \"Select Customer\";\r\n localStorage.removeItem(\"type\");\r\n }\r\n if (e.target.value === \"CUSTOMER\") {\r\n localStorage.setItem(\"type\", e.target.value);\r\n }\r\n if (e.target.name === \"type\") {\r\n localStorage.setItem(\"campaignType\", e.target.value);\r\n\r\n this.setState({\r\n campaignType: e.target.value\r\n });\r\n } else if (e.target.name === \"dataoption\") {\r\n this.setState({\r\n campaignDataOptionType: e.target.value\r\n });\r\n }\r\n if (e.target.name === \"stepname\") {\r\n if (e.target.value === \"SEND_INVITE\") {\r\n this.setState({\r\n active: true,\r\n message: false,\r\n email: false,\r\n daysdelays: true,\r\n personalNoteActive: true,\r\n thanksActive: false\r\n });\r\n } else if (e.target.value === \"SEND_MESSAGE\") {\r\n this.setState({\r\n message: true,\r\n email: false,\r\n active: false,\r\n daysdelays: true,\r\n personalNoteActive: false,\r\n thanksActive: false\r\n });\r\n } else if (e.target.value === \"SEND_EMAIL\") {\r\n this.setState({\r\n message: false,\r\n email: true,\r\n active: false,\r\n daysdelays: true,\r\n personalNoteActive: false,\r\n thanksActive: false\r\n });\r\n } else if (e.target.value === \"SEND_THANKS_MESSAGE\") {\r\n this.setState({\r\n message: false,\r\n email: false,\r\n active: false,\r\n daysdelays: true,\r\n personalNoteActive: false,\r\n thanksActive: true\r\n });\r\n } else {\r\n this.setState({\r\n message: false,\r\n email: false,\r\n active: false,\r\n daysdelays: true,\r\n personalNoteActive: false,\r\n thanksActive: false\r\n });\r\n }\r\n }\r\n\r\n if (e.target.name === \"message\" || e.target.name === \"email\") {\r\n this.setState({ textAreaData: e.target.value });\r\n }\r\n if (e.target.name === \"subject\") {\r\n this.setState({ subject: e.target.value });\r\n }\r\n if (e.target.name === \"personalmessage\") {\r\n this.setState({ personalNoteAreaData: e.target.value });\r\n }\r\n if (e.target.name === \"replyMessage\") {\r\n this.setState({ thanksAreaData: e.target.value });\r\n }\r\n\r\n if (e.target.name === \"status\") {\r\n formData[name] = parseInt(value);\r\n }\r\n\r\n if (e.target.name === \"abm\") {\r\n formData[name] = parseInt(value);\r\n }\r\n\r\n formData[name] = value;\r\n\r\n this.setState({\r\n formData\r\n });\r\n\r\n if (this.state.formData.customerid && this.props.params2) {\r\n this.linkedinpro();\r\n }\r\n if (this.state.formData.linkedinid && this.props.params3) {\r\n this.getlinkedInCampaign();\r\n }\r\n if (e.target.name === \"stepname\") {\r\n this.displayNote(e, formData);\r\n this.props.setLimit(this.state.formData.limits); //for max limit on modal\r\n }\r\n };\r\n\r\n handleDateChange = date => {\r\n const { formData } = this.state;\r\n formData[\"startdate\"] = String(date);\r\n this.setState({ formData, starttime: date });\r\n };\r\n\r\n handleCheck = e => {\r\n const name = e.target.name;\r\n const { formData } = this.state;\r\n formData[name] = !formData[name];\r\n this.setState(\r\n { formData }\r\n\r\n );\r\n };\r\n\r\n handleDelete = row => {\r\n const rows = this.state.rows.filter(m => m._id !== row._id);\r\n this.setState({ rows });\r\n };\r\n\r\n MessageClick = name => {\r\n\r\n if (\r\n this.state.formData.stepname === \"SEND_MESSAGE\" ||\r\n this.state.formData.stepname === \"SEND_EMAIL\"\r\n ) {\r\n let data =\r\n this.state.textAreaData.substring(0, this.state.currentPosition) +\r\n name +\r\n this.state.textAreaData.substring(this.state.currentPosition);\r\n this.setState({ textAreaData: data });\r\n if (store.getState().isEditMode === true) {\r\n const { formData } = this.state;\r\n this.state.formData[\"message\"] =\r\n this.state.formData[\"message\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"message\"].substring(this.state.currentPosition);\r\n this.setState({ formData });\r\n } else if (\r\n store.getState().isEditMode === false &&\r\n this.props.editableData !== undefined\r\n ) {\r\n const { formData } = this.state;\r\n this.state.formData[\"message\"] =\r\n this.state.formData[\"message\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"message\"].substring(this.state.currentPosition);\r\n this.setState({ formData });\r\n } else {\r\n const { formData } = this.state;\r\n this.state.formData[\"message\"] =\r\n this.state.formData[\"message\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"message\"].substring(this.state.currentPosition);\r\n this.setState({ formData });\r\n }\r\n }\r\n if (this.state.formData.stepname === \"SEND_THANKS_MESSAGE\") {\r\n let data =\r\n this.state.thanksAreaData.substring(0, this.state.currentPosition) +\r\n name +\r\n this.state.thanksAreaData.substring(this.state.currentPosition);\r\n this.setState({ thanksAreaData: data });\r\n if (store.getState().isEditMode === true) {\r\n const { formData } = this.state;\r\n this.state.formData[\"replyMessage\"] =\r\n this.state.formData[\"replyMessage\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"replyMessage\"].substring(\r\n this.state.currentPosition\r\n );\r\n this.setState({ formData });\r\n } else if (\r\n store.getState().isEditMode === false &&\r\n this.props.editableData !== undefined\r\n ) {\r\n const { formData } = this.state;\r\n this.state.formData[\"replyMessage\"] =\r\n this.state.formData[\"replyMessage\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"replyMessage\"].substring(\r\n this.state.currentPosition\r\n );\r\n this.setState({ formData });\r\n } else {\r\n const { formData } = this.state;\r\n this.state.formData[\"replyMessage\"] =\r\n this.state.formData[\"replyMessage\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"replyMessage\"].substring(\r\n this.state.currentPosition\r\n );\r\n this.setState({ formData });\r\n }\r\n }\r\n if (this.state.formData.stepname === \"SEND_INVITE\") {\r\n let data =\r\n this.state.personalNoteAreaData.substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.personalNoteAreaData.substring(this.state.currentPosition);\r\n this.setState({ personalNoteAreaData: data });\r\n\r\n if (store.getState().isEditMode === true) {\r\n let { formData } = this.state;\r\n this.state.formData[\"personalmessage\"] =\r\n this.state.formData[\"personalmessage\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"personalmessage\"].substring(\r\n this.state.currentPosition\r\n );\r\n\r\n this.setState({ formData });\r\n } else if (\r\n store.getState().isEditMode === false &&\r\n this.props.editableData !== undefined\r\n ) {\r\n let { formData } = this.state;\r\n this.state.formData[\"personalmessage\"] =\r\n this.state.formData[\"personalmessage\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"personalmessage\"].substring(\r\n this.state.currentPosition\r\n );\r\n\r\n this.setState({ formData });\r\n } else {\r\n let { formData } = this.state;\r\n this.state.formData[\"personalmessage\"] =\r\n this.state.formData[\"personalmessage\"].substring(\r\n 0,\r\n this.state.currentPosition\r\n ) +\r\n name +\r\n this.state.formData[\"personalmessage\"].substring(\r\n this.state.currentPosition\r\n );\r\n\r\n this.setState({ formData });\r\n }\r\n }\r\n };\r\n\r\n setFilePreview = filePreview => {\r\n const { formData } = this.state;\r\n let image = formData.id + \"-\" + filePreview.name;\r\n var newFile = new File([filePreview], image, { type: filePreview.type });\r\n formData.profileImage = image;\r\n\r\n this.setState({ fileData: newFile, formData });\r\n };\r\n setFilePreview2 = filePreview => {\r\n const { formData } = this.state;\r\n\r\n let image = filePreview.name;\r\n var newFile = new File([filePreview], image, { type: filePreview.type });\r\n\r\n formData.campaignLogo = image;\r\n this.setState({ fileData: newFile, formData });\r\n };\r\n\r\n onUpdateData = name => {\r\n return this.state.formData[name];\r\n };\r\n\r\n renderFields = props => {\r\n const { touched, errors, handleChange, handleBlur } = props;\r\n const inputRef = React.useRef();\r\n const updateSelectionStart = () => {\r\n this.setState({ currentPosition: inputRef.current.selectionStart });\r\n };\r\n return this.props.formConfig.fields.map(item => {\r\n\r\n if (item.type === \"input\") {\r\n return (\r\n = 1 &&\r\n (this.state.formData.stepname === \"SEND_THANKS_MESSAGE\" ||\r\n this.state.formData.stepname === \"SEND_MESSAGE\") &&\r\n item.name === \"limitperday\" &&\r\n store.getState().addModalStep[0].stepname !== \"SEND_MESSAGE\"\r\n ? \"input\"\r\n : \"Input\"\r\n }\r\n >\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n \r\n \r\n );\r\n }\r\n\r\n // this is for personalNote TEXT AREA\r\n\r\n if (item.type === \"personalNote\") {\r\n return (\r\n this.state.personalNoteActive === true && (\r\n
\r\n \r\n
\r\n )\r\n );\r\n }\r\n // ---------------------------------------------------------------------------------\r\n\r\n // -----------------------------------------------------------------------------------------------\r\n\r\n // This TEXT AREA specific for the message section in Campaign modal\r\n if (item.type === \"messageArea\" && this.state.email === true) {\r\n return (\r\n this.state.email === true && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n\r\n \r\n
\r\n
\r\n )\r\n );\r\n }\r\n if (item.type === \"messageArea\") {\r\n return (\r\n this.state.message === true && (\r\n
\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n \r\n
\r\n )\r\n );\r\n }\r\n\r\n if (item.type === \"thanksMessageArea\") {\r\n return (\r\n this.state.thanksActive === true && (\r\n
\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n \r\n
\r\n )\r\n );\r\n }\r\n // ------------------------------------------------\r\n\r\n if (item.type === \"button\") {\r\n return (\r\n
\r\n this.handleButton(item.funName)}\r\n disabled={\r\n this.state.pauseStatus === \"LIVE\" &&\r\n (item.disabled === true || item.delete === true)\r\n ? true\r\n : this.state.pauseStatus === \"PAUSED\" &&\r\n (item.action === true || item.delete === true)\r\n ? true\r\n : this.state.pauseStatus === \"COMPLETED\"\r\n ? true\r\n : this.state.pauseStatus === \"NOTSTARTED\"\r\n ? item.delete === true\r\n ? false\r\n : true\r\n : false\r\n }\r\n color={item.color}\r\n >\r\n {item.buttontext}\r\n \r\n
\r\n );\r\n }\r\n if (item.type === \"Button1\") {\r\n return (\r\n
\r\n \r\n {store.getState().isEditMode === true &&\r\n this.props.editableData !== undefined ? (\r\n \"\"\r\n ) : (\r\n \r\n Please add a profile and then edit it to enable this button\r\n \r\n )}\r\n \r\n this.state.loadingData1 === \"Token\" ||\r\n this.state.formData.hubspottoken\r\n ? \"\"\r\n : this.handleButton(item.functionName)\r\n }\r\n disabled={\r\n this.state.loadingData1 === true ||\r\n store.getState().isEditMode === false ||\r\n (store.getState().isEditMode === true &&\r\n this.props.editableData === undefined)\r\n }\r\n color={item.color}\r\n >\r\n {this.state.loadingData1 === false &&\r\n !this.state.formData.hubspottoken && (\r\n {item.buttontext}\r\n )}\r\n {this.state.loadingData1 === true && (\r\n {item.connectingButton}\r\n )}\r\n {this.state.loadingData1 === true && (\r\n \r\n )}\r\n {(this.state.loadingData1 === \"Token\" ||\r\n this.state.formData.hubspottoken) && (\r\n {item.connectedButton}\r\n )}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"Button\") {\r\n return (\r\n
\r\n \r\n {store.getState().isEditMode === true &&\r\n this.props.editableData !== undefined ? (\r\n \"\"\r\n ) : (\r\n \r\n Please add a profile and then edit it to enable this button\r\n \r\n )}\r\n \r\n this.state.loadingData === \"Token\" ||\r\n this.state.formData.salesforcetoken\r\n ? \"\"\r\n : this.handleButton(item.funName)\r\n }\r\n disabled={\r\n this.state.loadingData === true ||\r\n store.getState().isEditMode === false ||\r\n (store.getState().isEditMode === true &&\r\n this.props.editableData === undefined)\r\n }\r\n color={item.color}\r\n >\r\n {this.state.loadingData === false &&\r\n !this.state.formData.salesforcetoken && (\r\n {item.buttontext}\r\n )}\r\n {this.state.loadingData === true && (\r\n {item.connectButton}\r\n )}\r\n {this.state.loadingData === true && (\r\n \r\n )}\r\n {(this.state.loadingData === \"Token\" ||\r\n this.state.formData.salesforcetoken) && (\r\n {item.connectedButton}\r\n )}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"list\") {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (item.type === \"datepicker\") {\r\n return (\r\n \r\n
\r\n \r\n }\r\n />\r\n
\r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"timepicker\") {\r\n return (\r\n \r\n
\r\n \r\n }\r\n />\r\n
\r\n
\r\n );\r\n }\r\n if (item.type === \"anchor\") {\r\n const ModalComponent = item.compo;\r\n return ;\r\n }\r\n if (item.type === \"iconbutton\") {\r\n return (\r\n
\r\n \r\n {item.iconbuttonname}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"textarea\") {\r\n return (\r\n this.state.active === true && (\r\n
\r\n \r\n
\r\n )\r\n );\r\n }\r\n // ---------------------------------------------------------------------\r\n\r\n if (item.type === \"photo\") {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n if (item.type === \"photo2\") {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"table\") {\r\n const ComponentName = item.compo;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.label}\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"dynamicSelect2\") {\r\n let options = [];\r\n options = this.props[item.data]\r\n ? this.props[item.data].map(i =>\r\n i[item.key2] === undefined ? (\r\n \r\n {i[item.key1]}\r\n \r\n ) : (\r\n \r\n {i[item.key1] + \" \" + i[item.key2]}\r\n \r\n )\r\n )\r\n : null;\r\n options.unshift(\r\n \r\n {item.placeholder}\r\n \r\n );\r\n return (\r\n
\r\n {localStorage.getItem(\"type\") === \"CUSTOMER\" ? (\r\n
\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n \r\n )\r\n }}\r\n disabled={\r\n localStorage.getItem(\"role\") !== \"CAMPAIGNMANAGER\"\r\n ? (item.disabled &&\r\n this.state.formData.role !== \"CUSTOMER\") ||\r\n item.active ||\r\n (this.state.formData.status !== \"NOTSTARTED\" &&\r\n item.link)\r\n ? true\r\n : false\r\n : true\r\n }\r\n variant=\"outlined\"\r\n value={\r\n this.state.formData[item.name] !== undefined\r\n ? this.state.formData[item.name] !== null\r\n ? this.state.formData[item.name]\r\n : item.placeholder\r\n : null\r\n }\r\n helperText={\r\n errors[item.name] && touched[item.name] && errors[item.name]\r\n }\r\n >\r\n {options}\r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"dynamicSelect\") {\r\n let options = [];\r\n\r\n if (item.name === \"datafromcampaign\") {\r\n }\r\n\r\n let params3Options = this.state.EditcampaignTypeId\r\n ? this.state.params3\r\n : this.state.campaignDataOptionType === \"Existing Campaign\"\r\n ? this.state.params3\r\n : [];\r\n\r\n if (item.name === \"datafromcampaign\") {\r\n item.isRequired =\r\n this.state.campaignType === \"Follow on Campaign\" ||\r\n this.state.campaignType === \"1st connection campaign\" ||\r\n this.state.campaignType === \"In mail campaign\"\r\n ? true\r\n : false;\r\n item.disabled =\r\n this.state.campaignType !== \"Follow on Campaign\" &&\r\n this.state.campaignType !== \"1st connection campaign\" &&\r\n this.state.campaignType !== \"In mail campaign\"\r\n ? true\r\n : false;\r\n }\r\n options = this.props[item.data]\r\n ? this.props[item.data].map(i =>\r\n i[item.key2] === undefined ? (\r\n \r\n {i[item.key1]}\r\n \r\n ) : (\r\n \r\n {i[item.key1] + \" \" + i[item.key2]}\r\n \r\n )\r\n )\r\n : item.name === \"datafromcampaign\"\r\n ? params3Options\r\n ? params3Options.map(i => (\r\n \r\n {i[item.key1]}\r\n \r\n ))\r\n : null\r\n : this.state.params2\r\n ? this.state.params2.map(i => (\r\n \r\n {i[item.key1]}\r\n \r\n ))\r\n : null;\r\n options.unshift(\r\n \r\n {item.placeholder}\r\n \r\n );\r\n return (\r\n
\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n \r\n )\r\n }}\r\n disabled={\r\n localStorage.getItem(\"role\") !== \"CAMPAIGNMANAGER\"\r\n ? (item.disabled &&\r\n this.state.formData.role !== \"CUSTOMER\") ||\r\n item.active ||\r\n (this.state.formData.status !== \"NOTSTARTED\" && item.link)\r\n ? true\r\n : false\r\n : true\r\n }\r\n variant=\"outlined\"\r\n value={\r\n this.state.formData[item.name] !== undefined\r\n ? this.state.formData[item.name]\r\n : 0\r\n }\r\n helperText={\r\n errors[item.name] && touched[item.name] && errors[item.name]\r\n }\r\n >\r\n {options}\r\n \r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"staticSelect\") {\r\n if (item.name === \"dataoption\") {\r\n if (this.state.campaignType === \"Nurture Campaign\") {\r\n item.data = [{ name: \"Normal Load\", value: \"Normal Load\" }];\r\n } else if (this.state.campaignType === \"Follow on Campaign\" || this.state.campaignType === \"In mail campaign\") {\r\n item.data = [\r\n { name: \"Existing Campaign\", value: \"Existing Campaign\" }\r\n ];\r\n } else {\r\n item.data = [\r\n { name: \"Normal Load\", value: \"Normal Load\" },\r\n { name: \"Existing Campaign\", value: \"Existing Campaign\" }\r\n ];\r\n }\r\n\r\n item.isRequired =\r\n this.state.campaignType === \"Nurture Campaign\" ||\r\n this.state.campaignType === \"Follow on Campaign\" ||\r\n this.state.campaignType === \"1st connection campaign\" ||\r\n this.state.campaignType === \"In mail campaign\"\r\n ? true\r\n : false;\r\n item.disabled =\r\n this.state.campaignType !== \"Nurture Campaign\" &&\r\n this.state.campaignType !== \"Follow on Campaign\" &&\r\n this.state.campaignType !== \"1st connection campaign\" &&\r\n this.state.campaignType !== \"In mail campaign\"\r\n ? true\r\n : false;\r\n }\r\n let options = [];\r\n options = item.data.map(i => (\r\n = 1 &&\r\n store.getState().addModalStep[0].stepname === \"SEND_MESSAGE\"\r\n ? i.value !== \"SEND_MESSAGE\"\r\n ? true\r\n : false\r\n : false\r\n }\r\n >\r\n {i.name}\r\n \r\n ));\r\n options.unshift(\r\n \r\n {item.placeholder}\r\n \r\n );\r\n return (\r\n
\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n \r\n )\r\n }}\r\n variant=\"outlined\"\r\n defaultValue={\r\n this.state.formData[item.name] !== undefined\r\n ? this.state.formData[item.name]\r\n : null\r\n }\r\n onBlur={handleChange}\r\n onChange={this.onChange}\r\n helperText={\r\n errors[item.name] && touched[item.name] && errors[item.name]\r\n }\r\n >\r\n {options}\r\n \r\n
\r\n );\r\n }\r\n\r\n //-------------dynamic input field-------------------------//\r\n\r\n if (item.type === \"dynamicInput\") {\r\n return (\r\n this.state.daysdelays === true && (\r\n
\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n \r\n
\r\n )\r\n );\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------\r\n\r\n if (item.type === \"radio\") {\r\n const options = item.options.map(item => {\r\n return (\r\n }\r\n label={item.name}\r\n />\r\n );\r\n });\r\n return (\r\n
\r\n \r\n \r\n {item.label}\r\n \r\n \r\n {options}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"password\") {\r\n return (\r\n
\r\n {item.isRequired ? (\r\n
\r\n {item.label}\r\n *\r\n
\r\n ) : null}\r\n \r\n
\r\n );\r\n }\r\n if (item.type === \"checkbox\") {\r\n return (\r\n
\r\n \r\n }\r\n label={item.label}\r\n />\r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"heading\") {\r\n return (\r\n
\r\n

{item.label}

\r\n
\r\n );\r\n }\r\n\r\n if (item.type === \"note\") {\r\n return (\r\n 0 &&\r\n (this.state.formData.stepname === \"SEND_MESSAGE\" ||\r\n this.state.formData.stepname === \"SEND_THANKS_MESSAGE\") &&\r\n store.getState().addModalStep[0].stepname !== \"SEND_MESSAGE\"\r\n ? \"Notes\"\r\n : \"notes\"\r\n }\r\n >\r\n \r\n {item.label}\r\n {this.state.formData.limits}\r\n \r\n \r\n );\r\n }\r\n\r\n if (item.type === \"label\") {\r\n return ;\r\n }\r\n });\r\n };\r\n\r\n getInitialValues(inputs) {\r\n if (this.props.editableData !== undefined) {\r\n return this.props.editableData;\r\n } else {\r\n const initialValues = {};\r\n inputs.forEach(field => {\r\n if (!initialValues[field.name]) {\r\n initialValues[field.name] = field.value;\r\n }\r\n });\r\n return initialValues;\r\n }\r\n }\r\n\r\n holdModalData = () => {\r\n if (this.props.mtitle === \"ADD_LINKEDIN\") {\r\n store.dispatch({\r\n type: this.props.mtitle,\r\n modalData: this.state.formData\r\n });\r\n this.props.modalClose();\r\n } else {\r\n if (this.props.editableData !== undefined) {\r\n store.dispatch({\r\n type: this.props.mtitle,\r\n modalData: this.state.formData\r\n });\r\n } else {\r\n if (store.getState()[this.props.storeArray].length === 0) {\r\n store.dispatch({\r\n type: this.props.mtitle,\r\n modalData: this.state.formData\r\n });\r\n } else {\r\n let data = store.getState()[this.props.storeArray];\r\n var status = true;\r\n for (var i = 0; i < data.length; i++) {\r\n if (\r\n data[i].stepname === this.state.formData.stepname &&\r\n this.state.formData.stepname !== \"SEND_MESSAGE\"\r\n ) {\r\n status = false;\r\n swal(\"You have already selected this step\", { icon: \"error\" });\r\n }\r\n }\r\n if (status === true) {\r\n store.dispatch({\r\n type: this.props.mtitle,\r\n modalData: this.state.formData\r\n });\r\n }\r\n this.props.modalClose();\r\n }\r\n }\r\n this.props.modalClose();\r\n }\r\n };\r\n\r\n buildQueryParams = id => {\r\n if (this.props.className === \"customerForm\" && this.props.query1) {\r\n let linkedIn = store.getState().addLinkedinStep;\r\n linkedIn.map(linked => {\r\n linked[\"customerid\"] = id;\r\n linked[\"active\"] = 1;\r\n });\r\n return linkedIn;\r\n }\r\n else if (this.props.className === \"campaignForm\" && this.props.query1) {\r\n let addCampaignStep = store.getState()[this.props.storeArray];\r\n\r\n let count = 1;\r\n addCampaignStep.map(addstep => {\r\n addstep[\"campaignid\"] = id;\r\n addstep[\"sequence\"] = count;\r\n addstep[\"active\"] = 1;\r\n count++;\r\n });\r\n return addCampaignStep;\r\n }\r\n };\r\n\r\n buildParams = id => {\r\n if (\r\n this.props.mtitle === \"ADD_LINKEDIN\" &&\r\n store.getState().isEditMode === true\r\n ) {\r\n this.state.formData[\"customerid\"] = id;\r\n this.state.formData[\"active\"] = 1;\r\n this.props.OnEditData(this.state.formData);\r\n return this.state.formData;\r\n } else if (\r\n this.props.mtitle === \"ADD_STEP\" &&\r\n store.getState().isEditMode === true\r\n ) {\r\n this.state.formData[\"campaignid\"] = id;\r\n this.state.formData[\"active\"] = 1;\r\n let addCampaignStep = store.getState().addModalStep;\r\n\r\n this.state.formData[\"sequence\"] = addCampaignStep.length + 1;\r\n this.props.OnEdit(this.state.formData);\r\n return this.state.formData;\r\n }\r\n };\r\n\r\n submitHandler = e => {\r\n if (this.props.editableData !== undefined) {\r\n e[\"id\"] = this.props.editableData.id;\r\n const keys = Object.keys(e);\r\n keys.map((item, key) => {\r\n key = { key };\r\n\r\n if (\r\n store.getState().isEditMode === true &&\r\n this.props.mtitle === \"EDIT_MODAL_STEP\"\r\n ) {\r\n this.state.formData.sequence = this.props.editableData.sequence;\r\n }\r\n this.state.formData[\"updatedby\"] = localStorage.getItem(\"id\");\r\n this.state.formData[\"updatedat\"] = new Date();\r\n return (this.state.formData[item] = e[item]);\r\n });\r\n\r\n delete this.state.formData.limits;\r\n\r\n e = this.state.formData;\r\n } else {\r\n const keys = Object.keys(this.state.formData);\r\n\r\n if (this.props.formConfig.title === \"AddCampaignForm\") {\r\n this.state.formData[\"status\"] = \"NOTSTARTED\";\r\n }\r\n\r\n keys.map(item => {\r\n if (this.props.className === \"ChangePassword\") {\r\n this.state.formData[\"id\"] = localStorage.getItem(\"id\");\r\n\r\n }\r\n this.state.formData[\"createdby\"] = localStorage.getItem(\"id\");\r\n this.state.formData[\"updatedby\"] = localStorage.getItem(\"id\");\r\n if (this.props.className === \"campaignForm\") {\r\n this.state.formData[\"campaignadminid\"] = localStorage.getItem(\"id\");\r\n }\r\n if (\r\n this.state.formData.role === \"CUSTOMER\" &&\r\n this.state.formData.customerid === \"Select Customer\" &&\r\n this.props.className === \"userForm\"\r\n ) {\r\n e[\"customerid\"] = \"Select Customer\";\r\n }\r\n\r\n return this.state.formData[item] !== \"\"\r\n ? \"\"\r\n : (this.state.formData[item] = e[item]);\r\n });\r\n }\r\n\r\n if (\r\n this.props.formConfig.title === \"Add Step\" &&\r\n\r\n this.state.formData.stepname === \"SEND_INVITE\"\r\n ) {\r\n\r\n let { formData } = this.state;\r\n formData.message = formData.personalmessage;\r\n\r\n this.setState({ formData });\r\n }\r\n\r\n if (\r\n this.props.formConfig.title === \"Add Step\" &&\r\n this.state.formData.stepname === \"SEND_THANKS_MESSAGE\"\r\n ) {\r\n let { formData } = this.state;\r\n formData.message = formData.replyMessage;\r\n\r\n this.setState({ formData });\r\n }\r\n\r\n delete this.state.formData.confirmPassword;\r\n\r\n delete this.state.formData.list;\r\n delete this.state.formData.personalmessage;\r\n delete this.state.formData.replyMessage;\r\n\r\n if (this.props.className === \"campaignForm\") {\r\n delete this.state.formData.starttime;\r\n }\r\n\r\n if (\r\n this.state.formData.customerid === \"Select Customer\" &&\r\n this.props.className === \"userForm\"\r\n ) {\r\n this.state.formData.customerid = null;\r\n }\r\n if (\r\n this.state.formData.startdate !== undefined &&\r\n (this.props.className === \"campaignForm\" ||\r\n this.props.className === \"EditCampaign\")\r\n ) {\r\n var date = new Date(this.state.formData.startdate);\r\n var tz = -1 * date.getTimezoneOffset();\r\n this.state.formData.startdate = new Date(date.getTime() + tz * 60000);\r\n }\r\n\r\n if (!this.props.editableData) {\r\n var count = 1;\r\n let addCampaignStep = store.getState().addModalStep;\r\n\r\n for (let i = 0; i < addCampaignStep.length; i++) {\r\n if (\r\n this.state.formData.stepname === addCampaignStep[i].stepname &&\r\n addCampaignStep[i].stepname !== \"SEND_MESSAGE\"\r\n ) {\r\n swal(\"You have already selected this step\", { icon: \"error\" });\r\n this.props.modalClose();\r\n return;\r\n }\r\n if (\r\n this.state.formData.stepname === addCampaignStep[i].stepname &&\r\n addCampaignStep[i].stepname === \"SEND_MESSAGE\"\r\n ) {\r\n count++;\r\n }\r\n }\r\n if (count > 5) {\r\n swal(\"Max step limit reached\", { icon: \"error\" });\r\n this.props.modalClose();\r\n return;\r\n }\r\n }\r\n\r\n const test = this.props.editableData\r\n ? this.props.message === \"Company updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { organization: this.state.formData.organization }\r\n }\r\n : this.props.message === \"Position updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { designation: this.state.formData.designation }\r\n }\r\n : this.props.message === \"First Name updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { fname: this.state.formData.fname }\r\n }\r\n : this.props.message === \"Country updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { country: this.state.formData.country }\r\n }\r\n : this.props.message === \"State updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { state: this.state.formData.state }\r\n }\r\n : this.props.message === \"Surname updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { surname: this.state.formData.surname }\r\n }\r\n : this.props.message === \"Email updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { email: this.state.formData.email }\r\n }\r\n : this.props.message === \"Phone updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { phonenumber: this.state.formData.phonenumber }\r\n }\r\n : this.props.message === \"Gender updated successfully\"\r\n ? {\r\n where: { id: this.state.formData.id },\r\n data: { gender: this.state.formData.gender }\r\n }\r\n : {\r\n id: { id: this.state.formData.id },\r\n data: this.state.formData\r\n }\r\n : store.getState().isEditMode === true\r\n ? { data: this.buildParams(store.getState().id) }\r\n : this.props.className === \"ChangePassword\"\r\n ? {\r\n id: this.state.formData.id,\r\n oldPassword: this.state.formData.oldPassword,\r\n newPassword: this.state.formData.newPassword\r\n }\r\n : { obj: this.state.formData };\r\n\r\n\r\n\r\n this.props.query !== \"\"\r\n ? fetchMethod(this.props.query, test)\r\n .then(res => res.json())\r\n .then(response => {\r\n\r\n\r\n const message =\r\n response.data[this.props.query.definitions[0].name.value];\r\n\r\n if (\r\n store.getState().isEditMode === true &&\r\n (this.props.mtitle === \"ADD_LINKEDIN\" ||\r\n this.props.mtitle === \"ADD_STEP\")\r\n ) {\r\n this.state.formData[\"id\"] = message.id;\r\n }\r\n if (\r\n this.props.query2 &&\r\n !response.errors &&\r\n this.props.className === \"userForm\" &&\r\n this.state.formData.newPassword !== undefined\r\n ) {\r\n const test = {\r\n id: this.state.formData.id,\r\n newPassword: this.state.formData.newPassword\r\n };\r\n fetchMethod(this.props.query2, test)\r\n .then(res => res.json())\r\n .then(res => {\r\n const message =\r\n res.data[this.props.query2.definitions[0].name.value];\r\n if (message === null && !res.errors) {\r\n this.props.modalClose();\r\n swal({ text: this.props.message, icon: \"success\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n } else if (this.props.query1 && !response.errors) {\r\n let params = this.buildQueryParams(message.id);\r\n let test1 = {\r\n data: params\r\n };\r\n\r\n fetchMethod(this.props.query1, test1)\r\n .then(res => res.json())\r\n .then(response => {\r\n\r\n const message1 =\r\n response.data[this.props.query1.definitions[0].name.value];\r\n if (message1 !== null && this.props.editableData) {\r\n this.props.modalClose();\r\n swal({ text: this.props.message, icon: \"success\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n } else if (message1 !== null) {\r\n this.props.modalClose();\r\n swal({ text: this.props.message, icon: \"success\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n } else {\r\n swal(\"Please try again\", { icon: \"error\" });\r\n }\r\n })\r\n .catch(e => console.log(\"Error:\", e));\r\n } else {\r\n if (message !== null && this.props.editableData) {\r\n if (this.props.onButton === \"false\") {\r\n swal({ text: this.props.message, icon: \"success\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n }\r\n if (this.props.className === \"EditProfile\") {\r\n let formData = new FormData();\r\n formData.append(\"file\", this.state.fileData);\r\n let xhttp = new XMLHttpRequest();\r\n\r\n xhttp.open(\r\n \"POST\",\r\n `${profileImageUrl.url}` +\r\n `${localStorage.getItem(\"token\")}`\r\n );\r\n xhttp.send(formData);\r\n\r\n xhttp.onreadystatechange = function () {\r\n if (xhttp.readyState === XMLHttpRequest.DONE) {\r\n\r\n }\r\n };\r\n }\r\n if (this.props.className === \"EditCampaign\") {\r\n let formData = new FormData();\r\n formData.append(\"campaignslogo\", this.state.fileData);\r\n let xhttp = new XMLHttpRequest();\r\n\r\n xhttp.open(\r\n \"POST\",\r\n `${campaignImageUrl.url}` +\r\n `${localStorage.getItem(\"token\")}`\r\n );\r\n xhttp.send(formData);\r\n\r\n xhttp.onreadystatechange = function () {\r\n if (xhttp.readyState === XMLHttpRequest.DONE) {\r\n\r\n }\r\n };\r\n }\r\n this.props.modalClose();\r\n swal({ text: this.props.message, icon: \"success\" });\r\n return this.props.updateData\r\n ? this.props.updateData()\r\n : this.props.mtitle === \"EDIT_LINKEDIN\"\r\n ? this.props.EditLinkedinData(this.state.formData)\r\n : this.props.EditData(this.state.formData);\r\n } else if (message !== null) {\r\n if (this.props.onButton === \"false\") {\r\n swal({\r\n text: this.props.message,\r\n icon: \"success\"\r\n });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n }\r\n this.props.modalClose();\r\n swal({ text: this.props.message, icon: \"success\" });\r\n return this.props.updateData ? this.props.updateData() : \"\";\r\n } else if (\r\n message === null &&\r\n (this.props.className === \"userForm\" ||\r\n this.props.className === \"customerForm\") &&\r\n response.errors\r\n ) {\r\n swal(\"This email-id already exists\", { icon: \"error\" });\r\n this.state.formData.email = \"\";\r\n return;\r\n } else if (\r\n message === null &&\r\n this.props.className === \"ChangePassword\" &&\r\n !response.errors\r\n ) {\r\n this.props.modalClose();\r\n swal({ text: this.props.message, icon: \"success\" });\r\n } else if (\r\n message === null &&\r\n this.props.className === \"ChangePassword\" &&\r\n response.errors\r\n ) {\r\n swal(\"Incorrect old password!\", { icon: \"error\" });\r\n this.state.formData.oldPassword = \"\";\r\n } else if (\r\n this.props.message === \"First Name updated successfully\" &&\r\n response.errors\r\n ) {\r\n swal(\"First Name updated unsuccessfully\", { icon: \"error\" });\r\n } else {\r\n swal(\"Please try again\", { icon: \"error\" });\r\n }\r\n }\r\n })\r\n .catch(e =>\r\n swal({ title: \"Unable to reach server\", icon: \"warning\" })\r\n )\r\n : this.holdModalData();\r\n };\r\n render() {\r\n const initialValues = this.getInitialValues(this.props.formConfig.fields);\r\n\r\n return (\r\n
\r\n \r\n {props => {\r\n const { isSubmitting } = props;\r\n return (\r\n
\r\n {this.renderFields(props)}\r\n \r\n {!this.props.onButton && (\r\n \r\n Cancel\r\n \r\n )}\r\n \r\n {this.props.buttonName}\r\n \r\n \r\n
\r\n );\r\n }}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const { addLinkedinStep } = state;\r\n return { addLinkedinStep };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n OnEdit: editLinkedinData =>\r\n dispatch({ type: \"ADD_STEP\", modalData: editLinkedinData }),\r\n EditData: data => dispatch({ type: \"EDIT_MODAL_STEP\", LinkedinId: data }),\r\n getName: data => dispatch({ type: \"STEPS_NAME\", stepname: data }),\r\n OnEditData: editLinkedinData =>\r\n dispatch({ type: \"ADD_LINKEDIN\", modalData: editLinkedinData }),\r\n EditLinkedinData: data => {\r\n dispatch({ type: \"EDIT_LINKEDIN\", LinkedinId: data });\r\n }\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(FormComponent);\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\n\r\nexport default props => {\r\n const renderContent = props => {\r\n return (\r\n \r\n );\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {props.title}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {renderContent(props)}\r\n \r\n );\r\n};\r\n","import ReactTable from \"react-table\";\r\nimport React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport \"./reactTable.css\";\r\n//import { DotLoader } from \"react-spinners\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\n\r\nconst shouldComponentUpdate = (prevProps, nextProps, prevState, nextState) => {\r\n return (\r\n JSON.stringify(prevProps) !== JSON.stringify(nextProps) ||\r\n JSON.stringify(prevState) !== JSON.stringify(nextState)\r\n );\r\n};\r\n\r\nexport default class ReactTableComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n limit: 50,\r\n offset: 50,\r\n pageNo: 0,\r\n pageSize: 50,\r\n pageSizeOptions: [50, 100, 200, 500],\r\n totalCount: 0,\r\n listData: []\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.setState({ loading: true });\r\n this.searchFetch(this.state.limit, this.state.offset);\r\n }\r\n\r\n searchFetch = (limit, offset) => {\r\n \r\n return this.props.clickToSearch\r\n ? this.setState(\r\n {\r\n pageNo: 0,\r\n limit: this.state.limit,\r\n offset: this.state.limit\r\n },\r\n () => {\r\n this.fetchQuery(this.state.limit, this.state.offset);\r\n }\r\n )\r\n : this.setState({ pageNo: 0 }, () => this.fetchQuery(limit, offset));\r\n };\r\n\r\n fetchQuery(LIMIT, OFFSET) {\r\n const filter = this.props.filter;\r\n \r\n\r\n fetchMethod(this.props.query(LIMIT, OFFSET), filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n this.setListData(responseAsJson);\r\n this.setState({ loading: false });\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n \r\n }\r\n\r\n onPageLimitChange = limit => {\r\n this.setState({\r\n limit: this.state.limit,\r\n offset: this.state.offset,\r\n pageNo: 0,\r\n pageSize: this.state.pageSize\r\n });\r\n let pageNo = \"\";\r\n this.setState({ limit, pageSize: limit }, () => {\r\n pageNo = this.state.pageNo + 1;\r\n let offset = this.state.limit;\r\n this.searchFetch(this.state.limit, offset * pageNo);\r\n this.setState({ offset: offset * pageNo });\r\n });\r\n };\r\n\r\n onPageNumberChange = page => {\r\n let limit = this.state.limit;\r\n let offset = limit * (page + 1);\r\n this.searchFetch(limit, offset);\r\n this.setState({ pageNo: page, offset });\r\n };\r\n\r\n setListData(listData) {\r\n this.props.setData(listData);\r\n this.props.setLimit(this.state.limit);\r\n this.props.setOffset(this.state.offset);\r\n }\r\n\r\n render() {\r\n if (!this.props.listData || this.state.loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n let pageSize = this.state.pageSize;\r\n let { listConfig, listData, totalCount } = this.props;\r\n let reactTableBlankMessage = \"\";\r\n if (this.props.clickToSearch) {\r\n if (listData.length) {\r\n reactTableBlankMessage = listData.length;\r\n }\r\n } else {\r\n reactTableBlankMessage = 0;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {listData || !this.state.loading ? (\r\n 0 ? 0 : 2}\r\n showPagination={true}\r\n defaultPageSize={10}\r\n pageSizeOptions={this.state.pageSizeOptions}\r\n pages={Math.ceil(totalCount / pageSize)}\r\n onPageSizeChange={this.onPageLimitChange}\r\n onPageChange={this.onPageNumberChange}\r\n sortable={false}\r\n page={this.state.pageNo}\r\n \r\n NoDataComponent={() => (\r\n
\r\n {reactTableBlankMessage !== 0 ? (\r\n No matching results found \r\n ) : (\r\n No data found\r\n )}\r\n
\r\n )}\r\n />\r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\n\r\nexport default props => {\r\n const renderContent = props => {\r\n return (\r\n \r\n );\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {props.title}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {renderContent(props)}\r\n \r\n );\r\n};\r\n","import * as Yup from \"yup\";\r\n\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\n\r\nexport const addUsersForm = {\r\n title: \"Add New\",\r\n fields: [\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n label: \"Role\",\r\n type: \"staticSelect\",\r\n name: \"role\",\r\n isRequired: true,\r\n value: \"Select Role\",\r\n placeholder: \"Select Role\",\r\n data: [\r\n { name: \"Campaign Manager\", value: \"CAMPAIGNMANAGER\" },\r\n { name: \"Customer\", value: \"CUSTOMER\" }\r\n ]\r\n }\r\n : {\r\n label: \"Role\",\r\n type: \"staticSelect\",\r\n name: \"role\",\r\n placeholder: \"Select Role\",\r\n isRequired: true,\r\n value: \"Select Role\",\r\n data: [\r\n { name: \"Admin\", value: \"ADMIN\" },\r\n { name: \"Campaign Manager\", value: \"CAMPAIGNMANAGER\" },\r\n { name: \"Customer\", value: \"CUSTOMER\" }\r\n ]\r\n },\r\n {\r\n label: \"Email\",\r\n type: \"input\",\r\n placeholder: \"e.g. smith.doe@gmail.com\",\r\n isRequired: true,\r\n name: \"email\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"First Name\",\r\n type: \"input\",\r\n placeholder: \"e.g. John\",\r\n isRequired: true,\r\n name: \"firstName\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Last Name\",\r\n type: \"input\",\r\n placeholder: \"e.g. John\",\r\n name: \"lastName\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Phone Number\",\r\n placeholder: \"e.g. 9854795626\",\r\n type: \"input\",\r\n name: \"contactnumber\",\r\n value: \"\"\r\n },\r\n \r\n {\r\n label: \"Customers\",\r\n type: \"dynamicSelect2\",\r\n name: \"customerid\",\r\n value: \"Select Customer\",\r\n placeholder: \"Select Customer\",\r\n data: \"params\",\r\n key1: \"company\",\r\n isRequired: true,\r\n disabled: true\r\n },\r\n {\r\n label: \"Status\",\r\n type: \"radio\",\r\n name: \"status\",\r\n value: \"1\",\r\n options: [\r\n { name: \"Active\", value: \"1\" },\r\n { name: \"Inactive\", value: \"0\" }\r\n ]\r\n },\r\n {\r\n label: \"ABM\",\r\n type: \"radio\",\r\n name: \"abm\",\r\n value: \"1\",\r\n options: [\r\n { name: \"Active\", value: \"1\" },\r\n { name: \"Inactive\", value: \"0\"}\r\n ]\r\n },\r\n\r\n {\r\n label: \"Password\",\r\n placeholder: \"Password\",\r\n isRequired: true,\r\n type: \"password\",\r\n name: \"password\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Confirm Password\",\r\n type: \"password\",\r\n placeholder: \"Confirm password\",\r\n isRequired: true,\r\n name: \"confirmPassword\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\n\r\nexport const editUsersForm = {\r\n fields: [\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n label: \"Role\",\r\n type: \"staticSelect\",\r\n isRequired: true,\r\n name: \"role\",\r\n value: \"Select\",\r\n placeholder: \"Select Role\",\r\n data: [\r\n \r\n { name: \"Campaign Manager\", value: \"CAMPAIGNMANAGER\" },\r\n { name: \"Customer\", value: \"CUSTOMER\" }\r\n ]\r\n }\r\n : {\r\n label: \"Role\",\r\n type: \"staticSelect\",\r\n isRequired: true,\r\n name: \"role\",\r\n value: \"Select\",\r\n placeholder: \"Select Role\",\r\n data: [\r\n { name: \"Admin\", value: \"ADMIN\" },\r\n { name: \"Campaign Manager\", value: \"CAMPAIGNMANAGER\" },\r\n { name: \"Customer\", value: \"CUSTOMER\" }\r\n ]\r\n },\r\n {\r\n label: \"Email\",\r\n type: \"input\",\r\n placeholder: \"e.g. smith.doe@gmail.com\",\r\n isRequired: true,\r\n name: \"email\",\r\n active: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"First Name\",\r\n type: \"input\",\r\n placeholder: \"e.g. John\",\r\n isRequired: true,\r\n name: \"firstName\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Last Name\",\r\n type: \"input\",\r\n placeholder: \"e.g. Smith\",\r\n name: \"lastName\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Phone Number\",\r\n placeholder: \"e.g. 9854795626\",\r\n type: \"input\",\r\n name: \"contactnumber\",\r\n value: \"\"\r\n },\r\n\r\n {\r\n label: \"Customers\",\r\n type: \"dynamicSelect2\",\r\n name: \"customerid\",\r\n value: \"Select Customer\",\r\n placeholder: \"Select Customer\",\r\n data: \"params\",\r\n key1: \"company\",\r\n isRequired: true,\r\n disabled: true\r\n },\r\n {\r\n label: \"Status\",\r\n type: \"radio\",\r\n name: \"status\",\r\n value: \"1\",\r\n options: [\r\n { name: \"Active\", value: \"1\" },\r\n { name: \"Inactive\", value: \"0\" }\r\n ]\r\n },\r\n {\r\n label: \"ABM\",\r\n type: \"radio\",\r\n name: \"abm\",\r\n value: \"1\",\r\n options: [\r\n { name: \"Active\", value: \"1\" },\r\n { name: \"Inactive\", value: \"0\"}\r\n ]\r\n },\r\n {\r\n label: \"Password\",\r\n type: \"password\",\r\n placeholder: \"Password\",\r\n name: \"newPassword\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Confirm Password\",\r\n type: \"password\",\r\n placeholder: \"Confirm password\",\r\n name: \"confirmPassword\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\n\r\nexport const usersValidation = Yup.object().shape({\r\n email: Yup.string()\r\n .required(\"Please enter email-id\")\r\n .matches(\r\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,}))$/,\r\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,}))$/,\r\n {\r\n message: \"Please enter valid email-id\",\r\n excludeEmptyString: true\r\n }\r\n )\r\n // .email(\"Please enter a valid Email-ID\")\r\n .max(50, \"Email should be less than 50 characters\"),\r\n contactnumber: Yup.string()\r\n .matches(/^\\+?[0-9]*$/, {\r\n message: \"Please enter valid phone no.\",\r\n excludeEmptyString: true\r\n })\r\n .max(16, \"Phone Number should be less than 16 digits\"),\r\n firstName: Yup.string()\r\n .required(\"Please enter name\")\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"First name should be less than 30 characters\"),\r\n lastName: Yup.string()\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", data => {\r\n if (data !== undefined && data.trim().length === 0 && data !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"Last name should be less than 30 characters\"),\r\n password: Yup.string()\r\n .required(\"Please enter password\")\r\n .matches(/^[^\\s]+([^\\s]+)*$/, {\r\n message: \"Password can't contain spaces\",\r\n excludeEmptyString: true\r\n })\r\n .min(8, \"Password should be minimum 8 characters\")\r\n .max(60, \"Password should be maximum 60 characters\"),\r\n\r\n confirmPassword: Yup.string()\r\n .required(\"Please re-enter password\")\r\n .matches(/^[^\\s]+([^\\s]+)*$/, {\r\n message: \"Please enter valid confirm password\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"passwords-match\", \"Passwords do not match! please check.\", function(\r\n value\r\n ) {\r\n return this.parent.password === value;\r\n })\r\n .min(8, \"Confirm password should be minimum 8 characters\"),\r\n role: Yup.string()\r\n .ensure()\r\n .test(\"role\", \"Please select role\", value => {\r\n return value !== \"Select Role\";\r\n }),\r\n // .required(\"Please select role\"),\r\n customerid: Yup.string().when(\"role\", {\r\n is: \"CUSTOMER\",\r\n then: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select customer\", function(value) {\r\n return value !== \"Select Customer\";\r\n })\r\n })\r\n});\r\n\r\nexport const editUsersValidation = Yup.object().shape({\r\n newPassword: Yup.string()\r\n // .required(\"Please enter Password\")\r\n .matches(/^[^\\s]+([^\\s]+)*$/, {\r\n message: \"Password can't contain spaces\",\r\n excludeEmptyString: true\r\n })\r\n .min(8, \"Password should be minimum 8 characters\")\r\n .max(60, \"Password should be maximum 60 characters\"),\r\n confirmPassword: Yup.string()\r\n .matches(/^[^\\s]+([^\\s]+)*$/, {\r\n message: \"Please enter valid confirm password\",\r\n excludeEmptyString: true\r\n })\r\n .when(\"newPassword\", {\r\n is: val => {\r\n return val && val.length > 0;\r\n },\r\n then: Yup.string()\r\n .test(\"confirmMessage\", \"Please re-enter password\", value => {\r\n return !!value === true;\r\n })\r\n .test(\r\n \"passwords-match\",\r\n \"Passwords do not match! please check.\",\r\n function(value) {\r\n return this.parent.newPassword === value;\r\n }\r\n )\r\n })\r\n .min(8, \"Confirm password should be minimum 8 characters\"),\r\n email: Yup.string()\r\n .required(\"Please enter email-id\")\r\n .matches(\r\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,}))$/,\r\n {\r\n message: \"Please enter valid email-id\",\r\n excludeEmptyString: true\r\n }\r\n )\r\n // .email(\"Please enter a valid Email-ID\")\r\n .max(50, \"Email should be less than 50 characters\"),\r\n contactnumber: Yup.string()\r\n .matches(/^\\+?[0-9]*$/, {\r\n message: \"Please enter valid phone no.\",\r\n excludeEmptyString: true\r\n })\r\n .max(16, \"Phone number should be less than 16 digits\"),\r\n firstName: Yup.string()\r\n .required(\"Please enter name\")\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"First name should be less than 30 characters\"),\r\n lastName: Yup.string()\r\n .matches(/^[a-zA-Z ]+$/, {\r\n message: \"Only alphabets allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"character-found\", \"Space not allowed here\", data => {\r\n if (data !== undefined && data.trim().length === 0 && data !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"Last name should be less than 30 characters\"),\r\n role: Yup.string()\r\n .ensure()\r\n .test(\"role\", \"Please select role\", value => {\r\n return value !== \"Select\";\r\n }),\r\n customerid: Yup.string().when(\"role\", {\r\n is: \"CUSTOMER\",\r\n then: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select customer\", function(value) {\r\n return value !== \"Select Customer\";\r\n })\r\n })\r\n});\r\n\r\nconst users = id => `query {allUsersdata(where:{id: ${id}}) {\r\nUsersdata {\r\nid\r\nemail\r\nfirstName\r\nlastName\r\nstatus\r\nrole\r\nabm\r\ncontactnumber\r\ncustomerid\r\n}\r\n}}`;\r\n\r\nexport const getData = async id =>\r\n await fetchMethod(users(id))\r\n .then(response => response.json().then(data => data))\r\n .catch(e => console.log(\"Errror\", e));\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const addorEditUser = gql`\r\n mutation UsersdataCreate($obj: JSON) {\r\n UsersdataCreate(data: $obj) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const updateUser = gql`\r\n mutation UsersdataUpsertWithWhere($id: JSON, $data: JSON) {\r\n UsersdataUpsertWithWhere(where: $id, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const updatePassword = gql`\r\n mutation UsersdataSetPassword($id: JSON, $newPassword: String) {\r\n UsersdataSetPassword(id: $id, newPassword: $newPassword)\r\n }\r\n`;\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport EditUser from \"../Form/EditForm\";\r\nimport ReactTableComponent from \"../tables/ReactTable\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport Active from \"../assets/Active.png\";\r\nimport Inactive from \"../assets/Inactive.png\";\r\nimport Delete from \"../assets/delete.png\";\r\nimport Edit from \"../assets/edit.png\";\r\n\r\nimport {\r\n TextField,\r\n MenuItem,\r\n Button,\r\n Drawer,\r\n Checkbox,\r\n FormControlLabel,\r\n //IconButton,\r\n Menu,\r\n //Select\r\n} from \"@material-ui/core\";\r\n\r\nimport SearchIcon from \"../assets/search.png\";\r\nimport NextArrow from \"../assets/next-arrow.png\";\r\nimport AddUser from \"../Form/AddNewForm\";\r\n\r\nimport {\r\n addUsersForm,\r\n getData,\r\n usersValidation,\r\n editUsersValidation,\r\n editUsersForm\r\n} from \"./UsersConfig\";\r\nimport { addorEditUser, updateUser, updatePassword } from \"./Userquery\";\r\nimport \"./Users.css\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { CustomerInfo, userSearch } from \"../../Queries\";\r\n\r\n//const label = { inputProps: { \"aria-label\": \"Checkbox demo\" } };\r\n//const InacValue = 0;\r\nclass Users extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n status2: null,\r\n status3: null,\r\n loading: false,\r\n right: false,\r\n right1: false,\r\n header: \"User Management\",\r\n users: [],\r\n allUsers: [],\r\n editData: [],\r\n Row: [],\r\n totalCount: 0,\r\n limit: 50,\r\n offset: 50,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n customerData: [],\r\n customerData1: [],\r\n filterColumn: \"\",\r\n shortfilter: false,\r\n userExportData: [],\r\n anchorEl2: false,\r\n\r\n anchorEl: null,\r\n selectedUserRow: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n localStorage.setItem(\"path\", \"/Users\");\r\n this.userCustomer();\r\n this.props.onHandleCampaign();\r\n this.props.onHandleSidebarText(\"/Users\");\r\n }\r\n\r\n userCustomer = () => {\r\n const filter1 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n active: 1,\r\n createdby: localStorage.getItem(\"id\"),\r\n order: \"company asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n active: 1,\r\n order: \"company asc\"\r\n }\r\n };\r\n fetchMethod(CustomerInfo, filter1)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n let data =\r\n res.data !== undefined &&\r\n res.data.allCustomers !== undefined &&\r\n res.data.allCustomers !== null\r\n ? res.data.allCustomers.Customers\r\n : \"\";\r\n\r\n this.setState({\r\n loading: false,\r\n customerData: data\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n const filter2 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n order: \"company asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n order: \"company asc\"\r\n }\r\n };\r\n fetchMethod(CustomerInfo, filter2)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n let data =\r\n res.data !== undefined &&\r\n res.data.allCustomers !== undefined &&\r\n res.data.allCustomers !== null\r\n ? res.data.allCustomers.Customers\r\n : \"\";\r\n\r\n this.setState({\r\n loading: false,\r\n customerData1: data\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n toggleDrawer = (side, open, user) => async event => {\r\n this.handleMenuClose();\r\n\r\n if (user !== undefined) {\r\n this.setState({ Row: user });\r\n let data = await getData(user.id);\r\n this.setState({ editData: data.data.allUsersdata.Usersdata[0] });\r\n\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n\r\n this.setState({ ...this.state, [side]: open });\r\n } else {\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n localStorage.removeItem(\"type\");\r\n }\r\n };\r\n\r\n handleSearchChange = event => {\r\n this.setState({ search: event.target.value }, () => {\r\n if (this.state.search !== \"\") {\r\n this.setState(\r\n {\r\n searchFlag: true\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n searchFlag: false\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n });\r\n };\r\n\r\n debounceTimer = null;\r\n onSearchClick = searchFlag => {\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n },\r\n 200\r\n );\r\n searchFlag || this.state.searchFlag\r\n ? this.setState({ clickToSearch: true }, () => {})\r\n : this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n\r\n onStatusChange = event => {\r\n var checkvalue = 1;\r\n var checkStatus = null;\r\n if (event.target.checked === false) {\r\n checkStatus = 0;\r\n } else {\r\n checkStatus = 1;\r\n }\r\n if (\r\n event.target.checked === false &&\r\n (this.state.status2 === 1 || this.state.status2 == null)\r\n ) {\r\n checkvalue = \"All\";\r\n }\r\n\r\n if (event.target.checked === true && this.state.status2 === 0) {\r\n checkvalue = \"All\";\r\n }\r\n if (event.target.checked === false && this.state.status2 === 0) {\r\n checkvalue = 0;\r\n }\r\n\r\n this.setState(\r\n {\r\n status3: checkStatus,\r\n status: checkvalue,\r\n clickToSearch: false\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n };\r\n onStatusChange2 = event => {\r\n var checkvalue = 0;\r\n var checkStatus = null;\r\n if (event.target.checked === false) {\r\n checkStatus = 1;\r\n } else {\r\n checkStatus = 0;\r\n }\r\n\r\n if (\r\n event.target.checked === false &&\r\n (this.state.status3 === 0 || this.state.status3 == null)\r\n ) {\r\n checkvalue = \"All\";\r\n }\r\n\r\n if (event.target.checked === true && this.state.status3 === 1) {\r\n checkvalue = \"All\";\r\n }\r\n if (event.target.checked === false && this.state.status3 === 1) {\r\n checkvalue = 1;\r\n }\r\n this.setState(\r\n {\r\n status2: checkStatus,\r\n status: checkvalue,\r\n clickToSearch: false\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n };\r\n\r\n setListData = response => {\r\n this.setState({\r\n users: response.data.all.Usersdata,\r\n totalCount: response.data.all.totalCount\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n handleMenuOpen = event => {\r\n this.setState({ anchorEl2: true, userData: event });\r\n };\r\n handleMenuClose = () => {\r\n this.setState({\r\n anchorEl: null\r\n });\r\n };\r\n\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n showUserToPopup = (e, row) => {\r\n this.setState({\r\n selectedUserRow: {\r\n ...row.original\r\n },\r\n anchorEl: e.currentTarget,\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n\r\n ActionMenu = () => {\r\n return (\r\n
\r\n \r\n \r\n \"Delete\"\r\n {\" \"}\r\n Edit\r\n \r\n this.onDelete(this.state.selectedUserRow)}>\r\n \"Delete\"\r\n {\" \"}\r\n Inactive{\" \"}\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n onDelete = user => {\r\n this.handleMenuClose();\r\n if (user.status === 1 || user.status === \"1\") {\r\n swal({\r\n title: \"Are you sure you want to make this user inactive?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n const test = {\r\n id: { id: user.id },\r\n data: { status: 0 }\r\n };\r\n\r\n fetchMethod(updateUser, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState(\r\n {\r\n loading: false\r\n },\r\n () => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n }\r\n );\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n });\r\n }\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ filterColumn: \"firstName asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ filterColumn: \"firstName desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n RoleFilter = () => {\r\n this.setState({ filterColumn: \"role asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n RoleFilter1 = () => {\r\n this.setState({ filterColumn: \"role desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n StatusFilter = () => {\r\n this.setState({ filterColumn: \"status asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n StatusFilter1 = () => {\r\n this.setState({ filterColumn: \"status desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n AbmFilter = () => {\r\n this.setState({ filterColumn: \"abm asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n AbmFilter1 = () => {\r\n this.setState({ filterColumn: \"abm desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n setUsersRowClick = rowInfo => {};\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n\r\n render() {\r\n let { status, totalCount, clickToSearch, search } = this.state;\r\n let Search = clickToSearch ? search.trim().replace(/\\s\\s+/g, \"\") : \"\";\r\n Search = Search.split(\" \");\r\n const like1 = \"%\" + `${Search[0]}` + \"%\";\r\n const like2 = \"%\" + `${Search[1]}` + \"%\";\r\n\r\n let filt = {\r\n or: [\r\n { firstName: { like: like1, options: \"i\" } },\r\n { lastName: { like: like2, options: \"i\" } },\r\n { contactnumber: { like: like1, options: \"i\" } },\r\n { role: { like: like1, options: \"i\" } },\r\n { email: { like: like1, options: \"i\" } },\r\n { lastName: { like: like1, options: \"i\" } }\r\n ]\r\n };\r\n let filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? status === \"All\"\r\n ? {\r\n where: {\r\n order: this.state.filterColumn,\r\n createdby: localStorage.getItem(\"id\"),\r\n and: [filt]\r\n }\r\n }\r\n : {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n status: status,\r\n and: [filt]\r\n }\r\n }\r\n : status === \"All\"\r\n ? { where: { order: this.state.filterColumn, and: [filt] } }\r\n : {\r\n where: {\r\n order: this.state.filterColumn,\r\n status: status,\r\n and: [filt]\r\n }\r\n };\r\n\r\n let data = [...this.state.users];\r\n const Theaders = [\r\n {\r\n Header: obj => {\r\n const { selectedEngagedRow } = this.state;\r\n return (\r\n
\r\n \r\n Name\r\n
\r\n \r\n );\r\n },\r\n accessor: \"Name\"\r\n },\r\n {\r\n Header: \"Email address\",\r\n accessor: \"email\"\r\n },\r\n {\r\n Header: \"Phone number\",\r\n accessor: \"contactnumber\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Role\r\n \r\n );\r\n },\r\n accessor: \"Role\"\r\n },\r\n {\r\n Header: (obj) => {\r\n return (\r\n \r\n Status\r\n \r\n );\r\n },\r\n accessor: \"Status\",\r\n },\r\n {\r\n Header: (obj) => {\r\n return (\r\n \r\n ABM\r\n \r\n );\r\n },\r\n accessor: \"Abm\",\r\n },\r\n\r\n \r\n ];\r\n const homeActions = [\r\n {\r\n Header: \"Action\",\r\n Cell: (row) => (\r\n
\r\n \r\n \r\n \r\n this.onDelete(row.original)}\r\n >\r\n \r\n \r\n
\r\n ),\r\n },\r\n ];\r\n\r\n data.map(user => {\r\n let fname =\r\n user.firstName !== undefined && user.firstName !== null\r\n ? user.firstName\r\n : \"\";\r\n let lname =\r\n user.lastName !== undefined && user.lastName !== null\r\n ? user.lastName\r\n : \"\";\r\n\r\n user.Name = fname + \" \" + lname;\r\n\r\n user.Role =\r\n user.role === \"CAMPAIGNMANAGER\"\r\n ? \"Campaign Manager\"\r\n : user.role === \"CUSTOMER\"\r\n ? \"Customer\"\r\n : user.role === \"SADMIN\"\r\n ? \"S Admin\"\r\n : \"Admin\";\r\n \r\n user.status === 1\r\n ? (user.Status = (\r\n \r\n ))\r\n : user.status === 0\r\n ? (user.Status = (\r\n \r\n ))\r\n : (user.Status = user.Status);\r\n\r\n user.abm === 1\r\n ? (user.Abm = (\r\n\r\n // \r\n \r\n ))\r\n : user.abm === 0\r\n ? (user.Abm = (\r\n \r\n ))\r\n : (user.Abm = user.Abm);\r\n \r\n });\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

Users

\r\n

\r\n Total {this.state.totalCount} Records\r\n

\r\n
\r\n
\r\n \r\n Add  N\r\n ew\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
\r\n
\r\n }\r\n label=\"Active\"\r\n onChange={this.onStatusChange}\r\n InputProps={{\r\n endAdornment: (\r\n \"\"\r\n )\r\n }}\r\n />\r\n }\r\n label=\"Inactive\"\r\n onChange={this.onStatusChange2}\r\n InputProps={{\r\n endAdornment: (\r\n \"\"\r\n )\r\n }}\r\n />\r\n
\r\n
\r\n\r\n \r\n \r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n )\r\n }\r\n />\r\n \r\n
\r\n \r\n \r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n )\r\n }\r\n />\r\n \r\n {this.ActionMenu()}\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onHandleSidebarText: data =>\r\n dispatch({\r\n type: \"HANDLE_SIDEBAR_TEXT\",\r\n payload: data\r\n }),\r\n onHandleCampaign: data =>\r\n dispatch({ type: \"Campaign_Detail\", payload: null })\r\n };\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps)(Users);\r\n","import React, { Component } from \"react\";\r\nimport ReactTableComponent from \"../tables/ReactTable\";\r\n//import { DotLoader } from \"react-spinners\";\r\nimport {\r\n addCustomerForm,\r\n getData,\r\n getLinkedinData,\r\n editCustomersValidation,\r\n customersValidation\r\n} from \"./CustomerConfig\";\r\nimport Active from \"../assets/Active.png\";\r\nimport Inactive from \"../assets/Inactive.png\";\r\nimport AddCustomer from \"../Form/AddNewForm\";\r\n// import AddCircleOutlineOutlinedIcon from \"@material-ui/icons/AddCircleOutlineOutlined\";\r\n\r\nimport EditCustomer from \"../Form/EditForm\";\r\nimport {\r\n TextField,\r\n //InputAdornment,\r\n MenuItem,\r\n Button,\r\n //Link,\r\n Drawer,\r\n Checkbox,\r\n FormControlLabel,\r\n //IconButton,\r\n Menu\r\n} from \"@material-ui/core\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport SearchIcon from \"../assets/search.png\";\r\nimport \"./customer.css\";\r\nimport { customersInfo } from \"../../Queries\";\r\nimport Edit from \"../assets/edit.png\";\r\nimport {\r\n addorEditCustomer,\r\n addorEditLinkedinProfile,\r\n updateCustomer,\r\n // updateCustomerLinkedinCreate\r\n} from \"./Customerquery\";\r\nimport { connect } from \"react-redux\";\r\nimport Delete from \"../assets/delete.png\";\r\nimport NextArrow from \"../assets/next-arrow.png\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\n// import CheckIcon from \"@material-ui/icons/Check\";\r\n// import ClearIcon from \"@material-ui/icons/Clear\";\r\nimport queryString from \"querystring\";\r\nimport { withRouter } from \"react-router-dom\";\r\nclass Customers extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n status2: null,\r\n status3: null,\r\n search: \"\",\r\n loading: false,\r\n customers: [],\r\n data: [],\r\n totalCount: 0,\r\n Row: [],\r\n header: \"Customer Management\",\r\n clear: [],\r\n editData: [],\r\n editLinkedinData: [],\r\n right: false,\r\n right1: false,\r\n limit: 50,\r\n offset: 50,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n isEditMode: false,\r\n filterColumn: \"\",\r\n shortfilter: false,\r\n anchorEl: null,\r\n selectedCustomerRow: null\r\n };\r\n }\r\n componentDidMount() {\r\n localStorage.setItem(\"path\", \"/Customers\");\r\n const hubSpotCode = queryString.parse(this.props.location.search);\r\n\r\n this.setState({\r\n right: !!hubSpotCode[\"?code\"]\r\n });\r\n this.props.onHandleCampaign();\r\n this.props.onHandleSidebarText(\"/Customers\");\r\n }\r\n toggleDrawer = (side, open, customer) => async event => {\r\n this.handleMenuClose();\r\n if (customer !== undefined) {\r\n this.setState({ Row: customer });\r\n let data = await getData(customer.id);\r\n this.setState({ editData: data.data.allCustomers.Customers[0] });\r\n let LinkedinData = await getLinkedinData(customer.id);\r\n\r\n this.setState(\r\n {\r\n editLinkedinData:\r\n LinkedinData.data.allCustomerlinkedinprofiles\r\n .Customerlinkedinprofiles\r\n },\r\n () => {\r\n this.props.onEditMode(open);\r\n this.props.getId(customer.id);\r\n return this.props.OnEdit(this.state.editLinkedinData);\r\n }\r\n );\r\n\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n\r\n this.setState({ ...this.state, [side]: open });\r\n } else {\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.props.OnClear(this.state.clear);\r\n this.setState({ ...this.state, [side]: open });\r\n }\r\n };\r\n\r\n setListData = response => {\r\n this.setState({\r\n customers: response.data.allCustomers.Customers,\r\n totalCount: response.data.allCustomers.totalCount\r\n });\r\n };\r\n\r\n onStatusChange = event => {\r\n var checkvalue = 1;\r\n var checkStatus = null;\r\n if (event.target.checked === false) {\r\n checkStatus = 0;\r\n } else {\r\n checkStatus = 1;\r\n }\r\n if (\r\n event.target.checked === false &&\r\n (this.state.status2 === 1 || this.state.status2 == null)\r\n ) {\r\n checkvalue = \"All\";\r\n }\r\n\r\n if (event.target.checked === true && this.state.status2 === 0) {\r\n checkvalue = \"All\";\r\n }\r\n if (event.target.checked === false && this.state.status2 == 0) {\r\n checkvalue = 0;\r\n }\r\n\r\n this.setState(\r\n {\r\n status3: checkStatus,\r\n status: checkvalue,\r\n clickToSearch: false\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n };\r\n onStatusChange2 = event => {\r\n var checkvalue = 0;\r\n var checkStatus = null;\r\n if (event.target.checked === false) {\r\n checkStatus = 1;\r\n } else {\r\n checkStatus = 0;\r\n }\r\n\r\n if (\r\n event.target.checked === false &&\r\n (this.state.status3 === 0 || this.state.status3 == null)\r\n ) {\r\n checkvalue = \"All\";\r\n }\r\n\r\n if (event.target.checked === true && this.state.status3 === 1) {\r\n checkvalue = \"All\";\r\n }\r\n if (event.target.checked === false && this.state.status3 === 1) {\r\n checkvalue = 1;\r\n }\r\n this.setState(\r\n {\r\n status2: checkStatus,\r\n status: checkvalue,\r\n clickToSearch: false\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n };\r\n handleMenuOpen = event => {\r\n this.setState({ anchorEl2: true, userData: event });\r\n };\r\n handleMenuClose = () => {\r\n this.setState({\r\n anchorEl: null\r\n });\r\n };\r\n\r\n showCustomerToPopup = (e, row) => {\r\n this.setState({\r\n selectedCustomerRow: {\r\n ...row.original\r\n },\r\n anchorEl: e.currentTarget,\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n ActionMenu = () => {\r\n return (\r\n
\r\n \r\n \r\n \"Delete\"\r\n Edit\r\n \r\n this.onDelete(this.state.selectedCustomerRow)}\r\n >\r\n \"Delete\"\r\n Inactive\r\n \r\n \r\n
\r\n );\r\n };\r\n // onDelete = user => {\r\n onDelete = user => {\r\n this.handleMenuClose();\r\n if (user.active === 1 || user.active === \"1\") {\r\n swal({\r\n title: \"Are you sure you want to make this customer inactive?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n const test = {\r\n id: { id: user.id },\r\n data: { active: 0 }\r\n };\r\n fetchMethod(updateCustomer, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState(\r\n {\r\n loading: false\r\n },\r\n () => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n }\r\n );\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n });\r\n }\r\n };\r\n\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n }\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n handleChange = event => {\r\n this.setState({\r\n search: event.target.value,\r\n searchFlag: true,\r\n isSearching: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n this.setState({ isSearching: false });\r\n },\r\n 200\r\n );\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n setCustomerRowClick = rowInfo => {};\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ filterColumn: \"company asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n NameFilter1 = () => {\r\n this.setState({ filterColumn: \"company desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n render() {\r\n let { status, totalCount, clickToSearch, search } = this.state;\r\n let Search = clickToSearch ? search.trim().replace(/\\s\\s+/g, \"\") : \"\";\r\n Search = Search.split(\" \");\r\n const like1 = `%${Search[0]}%`;\r\n // const like1 = \"%\" + `${Search[0]}` + \"%\";\r\n\r\n const filt = {\r\n or: [{ company: { like: like1, options: \"i\" } }]\r\n };\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? status === \"All\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n filt,\r\n order: this.state.filterColumn\r\n }\r\n }\r\n : {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n active: status,\r\n order: this.state.filterColumn,\r\n and: [filt]\r\n }\r\n }\r\n : status === \"All\"\r\n ? { where: { filt, order: this.state.filterColumn, and: [filt] } }\r\n : {\r\n where: {\r\n active: status,\r\n order: this.state.filterColumn,\r\n and: [filt]\r\n }\r\n };\r\n\r\n const thCustomersArray = [\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Company Name\r\n \r\n );\r\n },\r\n accessor: \"Company_Name\"\r\n },\r\n {\r\n Header: \"Primary Contact\",\r\n accessor: \"Name\"\r\n },\r\n {\r\n Header: \"Phone Number\",\r\n accessor: \"contactno\"\r\n },\r\n {\r\n Header: \"Email Address\",\r\n accessor: \"email\"\r\n },\r\n\r\n {\r\n Header: \"Not Started\",\r\n accessor: \"Notstarted\"\r\n },\r\n {\r\n Header: \"Live \",\r\n accessor: \"Live\"\r\n },\r\n {\r\n Header: \"Paused\",\r\n accessor: \"Paused\"\r\n },\r\n {\r\n Header: \"Completed\",\r\n accessor: \"Completed\"\r\n },\r\n {\r\n Header: \"Active\",\r\n accessor: \"Active\",\r\n },\r\n \r\n ];\r\n\r\n const customerActions = [\r\n {\r\n Header: \"Action\",\r\n Cell: (row) => (\r\n
\r\n \r\n \r\n \r\n this.onDelete(row.original)}\r\n >\r\n \"Delete\"\r\n \r\n
\r\n ),\r\n },\r\n ];\r\n let customer = [...this.state.customers];\r\n\r\n customer.map(customer => {\r\n let fname =\r\n customer.firstName !== undefined && customer.firstName !== null\r\n ? customer.firstName\r\n : \"\";\r\n let lname =\r\n customer.lastName !== undefined && customer.lastName !== null\r\n ? customer.lastName\r\n : \"\";\r\n customer.Name = fname + \" \" + lname;\r\n\r\n customer.Notstarted = customer.NotStarted.totalCount;\r\n customer.Live = customer.LIVE.totalCount;\r\n customer.Paused = customer.PAUSED.totalCount;\r\n customer.Completed = customer.COMPLETED.totalCount;\r\n customer.Company_Name = (\r\n \r\n {customer.company}\r\n \r\n );\r\n customer.active === 1\r\n ? (customer.Active = (\r\n \r\n ))\r\n : customer.active === 0\r\n ? (customer.Active = (\r\n \r\n ))\r\n : (customer.Active = customer.Active);\r\n });\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

Customers

\r\n

\r\n Total {this.state.totalCount} Records\r\n

\r\n
\r\n
\r\n \r\n Add  N\r\n ew\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
\r\n\r\n
\r\n }\r\n label=\"Active\"\r\n onChange={this.onStatusChange}\r\n InputProps={{\r\n endAdornment: (\r\n \"\"\r\n )\r\n }}\r\n />\r\n }\r\n label=\"Inactive\"\r\n onChange={this.onStatusChange2}\r\n InputProps={{\r\n endAdornment: (\r\n \"\"\r\n )\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n )\r\n }\r\n />\r\n \r\n
\r\n \r\n \r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n )\r\n }\r\n />\r\n \r\n {this.ActionMenu()}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n OnEdit: editLinkedinData =>\r\n dispatch({ type: \"Edit_Linkedin_Data\", LinkedinId: editLinkedinData }),\r\n OnClear: clear =>\r\n dispatch({ type: \"Clear_Linkedin_Data\", Linkedindata: clear }),\r\n onEditMode: editMode =>\r\n dispatch({ type: \"IsEditModeable\", editMode: editMode }),\r\n getId: id => dispatch({ type: \"GetId\", id: id }),\r\n onHandleSidebarText: data =>\r\n dispatch({\r\n type: \"HANDLE_SIDEBAR_TEXT\",\r\n payload: data\r\n }),\r\n\r\n onHandleCampaign: data =>\r\n dispatch({ type: \"Campaign_Detail\", payload: null })\r\n };\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps)(withRouter(Customers));\r\n","import CloseIcon from \"@material-ui/icons/Close\";\r\n//import SendIcon from \"@material-ui/icons/Send\";\r\nimport React, { Component } from \"react\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport photo from \"../assets/photo.png\";\r\nimport { triggerContacts} from \"../Campaign/campaignQueries\";\r\n\r\nimport { getContactImageUrl } from \"../../config\";\r\nimport {\r\n getCampaignsSteps,\r\n SendMessages,\r\n} from \"../Campaign/campaignQueries\";\r\nimport \"./ContacTriggertDetail.css\"\r\nclass ContactTriggerDetails extends Component {\r\n\r\n \r\n constructor() {\r\n super();\r\n this.state = {\r\n id: null,\r\n messageText: null,\r\n setOpen: false,\r\n fName: \"\",\r\n validationAlert: \"\",\r\n getData: [],\r\n getCampaignId: null,\r\n getCampaignId2: null,\r\n getCustomer: [],\r\n contactStatus: null,\r\n campaignStatus: null,\r\n contactId: null,\r\n Row: \"\",\r\n ContactDetailsWorkflow: [],\r\n ContactDetailsMessages: [],\r\n ContactDetailsTrigger: [],\r\n };\r\n }\r\n componentDidMount() {\r\n\r\n this.campaignSteps();\r\n this.campaignSteps2();\r\n }\r\n\r\n campaignSteps = async () => {\r\n let data = await getCampaignsSteps(this.props.Campaignid);\r\n };\r\n\r\n\r\n campaignSteps2 = async () => {\r\n\r\n this.setState({ getData: [] });\r\n fetchMethod(triggerContacts(this.props.id, this.props.triggerid))\r\n .then(res => res.json())\r\n .then(res => {\r\n \r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsWorkflow:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactworkflowhistoryfk\r\n .Contactworkflowhistories\r\n : \"\",\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\",\r\n ContactDetailsTrigger:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contacttriggerfk\r\n .Triggernotifications\r\n : \"\",\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\",\r\n getCampaignId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n getCampaignId2:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n\r\n getCustomer:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null &&\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns.length > 0\r\n ? res.data.allContacts.Contacts[0].Campaigns.Campaigns[0]\r\n .Customers.Customers[0]\r\n : \"\",\r\n contactStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].contactstatus\r\n : \"\",\r\n campaignStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignstatus\r\n : \"\",\r\n contactId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].id\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n \r\n })\r\n\r\n return;\r\n };\r\n\r\n\r\n\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n var dd = date.getDate();\r\n var mm = date.getMonth() + 1;\r\n var yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n return (date = dd + \"/\" + mm + \"/\" + yyyy);\r\n }\r\n };\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n\r\n RecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n ConnectedOnformatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.SendMessage();\r\n };\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n SendMessage = () => {\r\n var firstConn = this.props.details.connectedon;\r\n if (firstConn == null || firstConn == \"\") {\r\n swal(\r\n \"This contact is not connected. Please send the message with Linkedin\",\r\n { icon: \"warning\" }\r\n );\r\n } else {\r\n let test =\r\n this.state.messageText.trim().length > 0\r\n ? {\r\n data: {\r\n type: \"SENT\",\r\n campaignid: this.props.details.campaignid,\r\n contactid: this.props.details.id,\r\n message: this.state.messageText,\r\n realmsgdatetime: Date.now(),\r\n messagetobesent: 1\r\n }\r\n }\r\n : \"\";\r\n\r\n fetchMethod(SendMessages, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState({ messageText: \"\" }, () => {\r\n this.props.refreshMessage(this.props.details.id);\r\n });\r\n\r\n if (res.data.ContactmessagesCreate.id) {\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n };\r\n\r\n handleChange = event => {\r\n this.setState({ messageText: event.target.value });\r\n };\r\n\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n handleOpen = () => {\r\n this.setState({ setOpen: true }, () => {});\r\n };\r\n handleClose = () => {\r\n this.setState({ setOpen: false });\r\n };\r\n\r\n render() {\r\n\r\n let details = this.state.getData;\r\n \r\n let fName = details !== undefined ? details.fname : \"\";\r\n // let organization = details !== undefined ? details.organization : \"\";\r\n // let designation = details !== undefined ? details.designation : \"\";\r\n // let customer = this.props.Customer;\r\n let workflowStep = details.Contactworkflowhistoryfk !== undefined ? details.Contactworkflowhistoryfk.Contactworkflowhistories: \"\";\r\n \r\n let ContactDetailsMessages = details.Contactmessagesfk !== undefined ? details.Contactmessagesfk.Contactmessages : \"\";\r\n let ContactDetailsTrigger = details.Contacttriggerfk !== undefined ? details.Contacttriggerfk.Triggernotifications : \"\";\r\n \r\n let Name = details !== undefined ? details.name : \"\";\r\n let surname = details !== undefined ? details.surname : \"\";\r\n let gender = details !== undefined ? details.gender : \"\";\r\n\r\n let image =\r\n details !== undefined &&\r\n details.profileimage !== undefined &&\r\n details.profileimage !== null\r\n ? details.profileimage.substr(0, 5)\r\n : \"\";\r\n \r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

{this.props.heading}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {image === \"https\" ? (\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + details.image;\r\n }}\r\n style={{\r\n width: \"88px\",\r\n height: \"88px\",\r\n border: \"1px\",\r\n borderColor: \"gray\"\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n

{Name}

\r\n\r\n
\r\n
    \r\n
  • \r\n Gender \r\n :\r\n {details !== undefined ? gender : \"\"}\r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n First Name\r\n :\r\n {details !== undefined ? fName : \"\"}\r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n Surname \r\n :\r\n {details !== undefined ? surname : \"\"}\r\n \r\n \r\n \r\n
  • \r\n \r\n\r\n
  • \r\n Phone\r\n :\r\n \r\n {details !== undefined ? details.phonenumber : \"\"}\r\n \r\n
  • \r\n\r\n
  • \r\n Email\r\n :\r\n {details !== undefined ? details.email : \"\"}\r\n
  • \r\n\r\n
  • \r\n D.O.B\r\n :\r\n \r\n {details !== undefined ? details.dateofbirth : \"\"}\r\n \r\n
  • \r\n\r\n
  • \r\n Connected On\r\n :\r\n \r\n {details !== undefined\r\n ? this.ConnectedOnformatDate(details.connectedon)\r\n : \"\"}\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

Address

\r\n
\r\n
    \r\n
  • \r\n Location\r\n :\r\n {details !== undefined ? details.location : \"\"}\r\n
  • \r\n
  • \r\n State\r\n :\r\n \r\n {details !== undefined ? details.state : \"\"}\r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n Country\r\n :\r\n \r\n {details !== undefined ? details.country : \"\"}\r\n \r\n \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n
\r\n

Social Contacts

\r\n
\r\n
    \r\n
  • \r\n Twitter\r\n :\r\n {details !== undefined ? details.twitter : \"\"}\r\n
  • \r\n\r\n
  • \r\n Skype\r\n :\r\n {details !== undefined ? details.skype : \"\"}\r\n
  • \r\n\r\n
  • \r\n Followers\r\n :\r\n \r\n {details !== undefined ? details.numberoffollowers : \"\"}\r\n \r\n
  • \r\n\r\n
  • \r\n LinkedIn\r\n :\r\n \r\n \r\n {details !== undefined ? details.linkedinid : \"\"}\r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n

Professional Details

\r\n
\r\n
    \r\n
  • \r\n Current Position\r\n :\r\n \r\n {details !== undefined ? details.designation : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n Company\r\n :\r\n \r\n {details !== undefined ? details.organization : \"\"}\r\n \r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n Industry\r\n :\r\n {details !== undefined ? details.industry : \"\"}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n

Trigger Details

\r\n\r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n Trigger\r\n :\r\n \r\n {ContactDetailsTrigger !== undefined &&\r\n ContactDetailsTrigger !== null &&\r\n ContactDetailsTrigger.length !== 0\r\n ? ContactDetailsTrigger[0].triggerdata : \"\"}\r\n
  • \r\n
  • \r\n Type \r\n :\r\n {ContactDetailsTrigger !== undefined &&\r\n ContactDetailsTrigger !== null &&\r\n ContactDetailsTrigger.length !== 0\r\n ? ContactDetailsTrigger[0].triggertype : \"\"}\r\n
  • \r\n
  • \r\n Date\r\n :\r\n {ContactDetailsTrigger !== undefined &&\r\n ContactDetailsTrigger !== null &&\r\n ContactDetailsTrigger.length !== 0\r\n ? ContactDetailsTrigger[0].date : \"\"}\r\n
  • \r\n
  • \r\n Trigger Url\r\n :\r\n \r\n \r\n {ContactDetailsTrigger !== undefined &&\r\n ContactDetailsTrigger !== null &&\r\n ContactDetailsTrigger.length !== 0\r\n ? ContactDetailsTrigger[0].url : \"\"}\r\n \r\n \r\n \r\n
  • \r\n
  • \r\n Status\r\n :\r\n {ContactDetailsTrigger !== undefined &&\r\n ContactDetailsTrigger !== null &&\r\n ContactDetailsTrigger.length !== 0\r\n ? ContactDetailsTrigger[0].triggerstatus : \"\"}\r\n
  • \r\n
  • \r\n Last Action Date\r\n :\r\n {ContactDetailsTrigger !== undefined &&\r\n ContactDetailsTrigger !== null &&\r\n ContactDetailsTrigger.length !== 0\r\n ? ContactDetailsTrigger[0].lastactiondate : \"\"}\r\n
  • \r\n
  • \r\n Follow Up\r\n :\r\n {ContactDetailsTrigger !== undefined &&\r\n ContactDetailsTrigger !== null &&\r\n ContactDetailsTrigger.length !== 0\r\n ? ContactDetailsTrigger[0].followup : \"\"}\r\n
  • \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n

Workflow Followed

\r\n\r\n {workflowStep !== undefined &&\r\n workflowStep !== null &&\r\n workflowStep.length !== 0 ? (\r\n workflowStep.map((workflow, index) => {\r\n let count = index + 1;\r\n\r\n if (\r\n workflow.contactworkflowhistoryIbfk2rel.Campaignsteps.length ===\r\n 1\r\n ) {\r\n return (\r\n
\r\n \r\n {workflow.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .stepname === \"VISIT\"\r\n ? \"Visit\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 1\r\n ? \"Invite Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 0\r\n ? \"Invite Not Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_THANKS_MESSAGE\"\r\n ? \"Send Thanks Message\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"FOLLOW\"\r\n ? \"Follow\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_EMAIL\"\r\n ? \"Send InMail\"\r\n : \"Send Message\"}\r\n \r\n\r\n {this.formatDate(workflow.executedon)}\r\n {this.formatDate1(workflow.executedon)}\r\n Step{\" \" + count}\r\n
\r\n );\r\n }\r\n })\r\n ) : (\r\n
No workflow Followed
\r\n )}\r\n\r\n
\r\n

Messages

\r\n {ContactDetailsMessages !== undefined &&\r\n ContactDetailsMessages !== null &&\r\n ContactDetailsMessages.length !== 0\r\n ? ContactDetailsMessages.map(message => {\r\n if (\r\n message.type === \"SENT\" &&\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
\r\n {message.message}\r\n
\r\n
\r\n \r\n {message.messagedatetime\r\n ? message.messagedatetime\r\n .split(\"T\")[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\")\r\n : \"\"}\r\n \r\n \r\n {this.RecieveddateFomate(message.messagedatetime)}\r\n \r\n
\r\n
\r\n );\r\n } else if (\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
\r\n {message.message}\r\n
\r\n
\r\n \r\n {message.messagedatetime\r\n ? message.messagedatetime\r\n .split(\"T\")[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\")\r\n : \"\"}\r\n \r\n \r\n {this.RecieveddateFomate(message.messagedatetime)}\r\n \r\n
\r\n
\r\n );\r\n }\r\n })\r\n : \"\"}\r\n
\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ContactTriggerDetails;\r\n","import React from \"react\";\r\nimport \"./TriggersCard.css\";\r\n// import { useHistory } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { useState } from \"react\";\r\nimport ContactTriggerDetails from \"../Contacts/ContactTriggerDetail\";\r\nimport { Drawer } from \"@material-ui/core\";\r\n\r\n\r\nfunction MediaCard4(props) {\r\n\r\n const [openPoup, SetOpenPopup ] = useState(false);\r\n const [userid, SetUserid ] = useState(0);\r\n \r\n const formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\nconst onNameClick = (side, open, row) => event => {\r\n\r\n SetOpenPopup (true);\r\n SetUserid (row.contactid)\r\n \r\n }\r\n const rows = props.DashboardData[8];\r\n\r\n return rows.map(row => (\r\n
\r\n
\r\n

\r\n \r\n {row.name}

\r\n
\r\n {row.position !== null && row.position !== \"\" ? row.position+\",\" : \"\"} {\" \"}\r\n {row.location !== null ? row.location : \"\"}\r\n
\r\n\r\n \r\n\r\n
\r\n {row.campaign !== null ? row.campaign : \"\"},{\" \"}\r\n {row.triggerdata !== null ? row.triggerdata : \"\"}\r\n \r\n
\r\n\r\n
\r\n {\" \"}\r\n Date {row.date !== null ? formatDate(row.date) : \"\"}\r\n
\r\n
\r\n {row.triggerstatus !== null ? row.triggerstatus : \"\"}\r\n
\r\n
\r\n \r\n {row.company !== null ? row.company : \"\"}, {row.linkedinprofile !== null ? row.linkedinprofile : \"\"}, {row.campaign !== null ? row.campaign : \"\"}\r\n \r\n
\r\n
\r\n\r\n {row.contactid == userid && ( \r\n\r\n SetOpenPopup (false)}\r\n details={row}\r\n Campaignid={row.campaignid}\r\n id={row.contactid}\r\n triggerid={row.triggerid}\r\n heading={\"Trigger Details\"}\r\n />\r\n \r\n )}\r\n
\r\n ));\r\n\r\n function onClickCard(currentHeader) {\r\n props.onClickCard(currentHeader);\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n \r\n return {\r\n onHandleCampaign: data =>\r\n dispatch({\r\n type: \"Campaign_Detail\",\r\n payload: data\r\n })\r\n };\r\n};\r\nexport default connect(null, mapDispatchToProps)(MediaCard4);\r\n","import CloseIcon from \"@material-ui/icons/Close\";\r\n//import SendIcon from \"@material-ui/icons/Send\";\r\nimport React, { Component } from \"react\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport photo from \"../assets/photo.png\";\r\nimport { contacts} from \"../Campaign/campaignQueries\";\r\n\r\nimport { getContactImageUrl } from \"../../config\";\r\nimport {\r\n getCampaignsSteps,\r\n SendMessages,\r\n\r\n} from \"../Campaign/campaignQueries\";\r\nimport \"./ContactDetail.css\";\r\nclass ContactDetails extends Component {\r\n\r\n \r\n constructor() {\r\n super();\r\n this.state = {\r\n id: null,\r\n messageText: null,\r\n setOpen: false,\r\n fName: \"\",\r\n validationAlert: \"\",\r\n getData: [],\r\n getCampaignId: null,\r\n getCampaignId2: null,\r\n getCustomer: [],\r\n contactStatus: null,\r\n campaignStatus: null,\r\n contactId: null,\r\n Row: \"\",\r\n ContactDetailsWorkflow: [],\r\n ContactDetailsMessages: [],\r\n };\r\n }\r\n componentDidMount() {\r\n\r\n this.campaignSteps();\r\n this.campaignSteps2();\r\n }\r\n\r\n campaignSteps = async () => {\r\n let data = await getCampaignsSteps(this.props.Campaignid);\r\n };\r\n\r\n\r\n campaignSteps2 = async () => {\r\n\r\n this.setState({ getData: [] });\r\n fetchMethod(contacts(this.props.id))\r\n .then(res => res.json())\r\n .then(res => {\r\n \r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsWorkflow:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactworkflowhistoryfk\r\n .Contactworkflowhistories\r\n : \"\",\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\",\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\",\r\n getCampaignId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n getCampaignId2:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n\r\n getCustomer:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null &&\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns.length > 0\r\n ? res.data.allContacts.Contacts[0].Campaigns.Campaigns[0]\r\n .Customers.Customers[0]\r\n : \"\",\r\n contactStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].contactstatus\r\n : \"\",\r\n campaignStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignstatus\r\n : \"\",\r\n contactId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].id\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n \r\n })\r\n\r\n return;\r\n };\r\n\r\n\r\n\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n var dd = date.getDate();\r\n var mm = date.getMonth() + 1;\r\n var yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n return (date = dd + \"/\" + mm + \"/\" + yyyy);\r\n }\r\n };\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n\r\n RecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n ConnectedOnformatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.SendMessage();\r\n };\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n SendMessage = () => {\r\n var firstConn = this.props.details.connectedon;\r\n if (firstConn == null || firstConn == \"\") {\r\n swal(\r\n \"This contact is not connected. Please send the message with Linkedin\",\r\n { icon: \"warning\" }\r\n );\r\n } else {\r\n let test =\r\n this.state.messageText.trim().length > 0\r\n ? {\r\n data: {\r\n type: \"SENT\",\r\n campaignid: this.props.details.campaignid,\r\n contactid: this.props.details.id,\r\n message: this.state.messageText,\r\n realmsgdatetime: Date.now(),\r\n messagetobesent: 1\r\n }\r\n }\r\n : \"\";\r\n\r\n fetchMethod(SendMessages, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState({ messageText: \"\" }, () => {\r\n this.props.refreshMessage(this.props.details.id);\r\n });\r\n\r\n if (res.data.ContactmessagesCreate.id) {\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n };\r\n\r\n handleChange = event => {\r\n this.setState({ messageText: event.target.value });\r\n };\r\n\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n handleOpen = () => {\r\n this.setState({ setOpen: true }, () => {});\r\n };\r\n handleClose = () => {\r\n this.setState({ setOpen: false });\r\n };\r\n\r\n render() {\r\n\r\n let details = this.state.getData;\r\n\r\n let fName = details !== undefined ? details.fname : \"\";\r\n // let organization = details !== undefined ? details.organization : \"\";\r\n // let designation = details !== undefined ? details.designation : \"\";\r\n // let customer = this.props.Customer;\r\n let workflowStep = details.Contactworkflowhistoryfk !== undefined ? details.Contactworkflowhistoryfk.Contactworkflowhistories: \"\";\r\n\r\n let ContactDetailsMessages = details.Contactmessagesfk !== undefined ? details.Contactmessagesfk.Contactmessages : \"\";\r\n \r\n let Name = details !== undefined ? details.name : \"\";\r\n let surname = details !== undefined ? details.surname : \"\";\r\n let gender = details !== undefined ? details.gender : \"\";\r\n\r\n let image =\r\n details !== undefined &&\r\n details.profileimage !== undefined &&\r\n details.profileimage !== null\r\n ? details.profileimage.substr(0, 5)\r\n : \"\";\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{this.props.heading}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {image === \"https\" ? (\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + details.image;\r\n }}\r\n style={{\r\n width: \"88px\",\r\n height: \"88px\",\r\n border: \"1px\",\r\n borderColor: \"gray\"\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n

{Name}

\r\n\r\n
\r\n
    \r\n
  • \r\n Gender \r\n :\r\n {details !== undefined ? gender : \"\"}\r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n First Name\r\n :\r\n {details !== undefined ? fName : \"\"}\r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n Surname \r\n :\r\n {details !== undefined ? surname : \"\"}\r\n \r\n \r\n \r\n
  • \r\n \r\n
  • \r\n Phone\r\n :\r\n \r\n {details !== undefined ? details.phonenumber : \"\"}\r\n \r\n
  • \r\n\r\n
  • \r\n Email\r\n :\r\n {details !== undefined ? details.email : \"\"}\r\n
  • \r\n\r\n
  • \r\n D.O.B\r\n :\r\n \r\n {details !== undefined ? details.dateofbirth : \"\"}\r\n \r\n
  • \r\n\r\n
  • \r\n Connected On\r\n :\r\n \r\n {details !== undefined\r\n ? this.ConnectedOnformatDate(details.connectedon)\r\n : \"\"}\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Address

\r\n
\r\n
    \r\n
  • \r\n Location\r\n :\r\n {details !== undefined ? details.location : \"\"}\r\n
  • \r\n
  • \r\n State\r\n :\r\n \r\n {details !== undefined ? details.state : \"\"}\r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n Country\r\n :\r\n \r\n {details !== undefined ? details.country : \"\"}\r\n \r\n \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n
\r\n

Social Contacts

\r\n
\r\n
    \r\n
  • \r\n Twitter\r\n :\r\n {details !== undefined ? details.twitter : \"\"}\r\n
  • \r\n\r\n
  • \r\n Skype\r\n :\r\n {details !== undefined ? details.skype : \"\"}\r\n
  • \r\n\r\n
  • \r\n Followers\r\n :\r\n \r\n {details !== undefined ? details.numberoffollowers : \"\"}\r\n \r\n
  • \r\n\r\n
  • \r\n LinkedIn\r\n :\r\n \r\n \r\n {details !== undefined ? details.linkedinid : \"\"}\r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n

Professional Details

\r\n
\r\n
    \r\n
  • \r\n Current Position\r\n :\r\n \r\n {details !== undefined ? details.designation : \"\"}\r\n \r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n Company\r\n :\r\n \r\n {details !== undefined ? details.organization : \"\"}\r\n \r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n Industry\r\n :\r\n {details !== undefined ? details.industry : \"\"}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n

Workflow Followed

\r\n\r\n {workflowStep !== undefined &&\r\n workflowStep !== null &&\r\n workflowStep.length !== 0 ? (\r\n workflowStep.map((workflow, index) => {\r\n let count = index + 1;\r\n\r\n if (\r\n workflow.contactworkflowhistoryIbfk2rel.Campaignsteps.length ===\r\n 1\r\n ) {\r\n return (\r\n
\r\n \r\n {workflow.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .stepname === \"VISIT\"\r\n ? \"Visit\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 1\r\n ? \"Invite Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 0\r\n ? \"Invite Not Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_THANKS_MESSAGE\"\r\n ? \"Send Thanks Message\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"FOLLOW\"\r\n ? \"Follow\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_EMAIL\"\r\n ? \"Send InMail\"\r\n : \"Send Message\"}\r\n \r\n\r\n {this.formatDate(workflow.executedon)}\r\n {this.formatDate1(workflow.executedon)}\r\n Step{\" \" + count}\r\n
\r\n );\r\n }\r\n })\r\n ) : (\r\n
No workflow Followed
\r\n )}\r\n\r\n
\r\n

Messages

\r\n {ContactDetailsMessages !== undefined &&\r\n ContactDetailsMessages !== null &&\r\n ContactDetailsMessages.length !== 0\r\n ? ContactDetailsMessages.map(message => {\r\n if (\r\n message.type === \"SENT\" &&\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
\r\n {message.message}\r\n
\r\n
\r\n \r\n {message.messagedatetime\r\n ? message.messagedatetime\r\n .split(\"T\")[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\")\r\n : \"\"}\r\n \r\n \r\n \r\n {this.RecieveddateFomate(message.messagedatetime)}\r\n \r\n \r\n
\r\n
\r\n );\r\n } else if (\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
\r\n {message.message}\r\n
\r\n
\r\n \r\n {message.messagedatetime\r\n ? message.messagedatetime\r\n .split(\"T\")[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\")\r\n : \"\"}\r\n \r\n \r\n {this.RecieveddateFomate(message.messagedatetime)}\r\n \r\n
\r\n
\r\n );\r\n }\r\n })\r\n : \"\"}\r\n
\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ContactDetails;\r\n","import React from \"react\";\r\nimport \"./LeadsCard.css\";\r\n// import { Link } from \"react-router-dom\";\r\n// import { useHistory } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport ContactDetails from \"../Contacts/ContactDetail\";\r\nimport { Drawer } from \"@material-ui/core\";\r\nimport { getContactImageUrl } from \"../../config\";\r\n\r\nimport { useState } from \"react\";\r\n\r\nfunction MediaCard3(props) {\r\n\r\n const [openPoup, SetOpenPopup ] = useState(false);\r\n const [userid, SetUserid ] = useState(0);\r\n\r\n const formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n const onNameClick = (side, open, row) => event => {\r\n\r\n SetOpenPopup (true);\r\n SetUserid (row.id)\r\n\r\n }\r\n\r\n\r\n const rows = props.DashboardData[13];\r\n \r\n\r\n return rows.map(row => (\r\n
\r\n
\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + row.image;\r\n }}\r\n />\r\n
\r\n \r\n
\r\n

\r\n {row.name}{\" \"}\r\n {row.contactStatus !== null ? row.contactStatus : \"\"}\r\n \r\n \r\n \r\n

\r\n\r\n
\r\n {row.designation !== null && row.designation !== \"\" ? row.designation+\",\" : \"\"} {\" \"}\r\n {row.location !== null ? row.location : \"\"}\r\n
\r\n\r\n \r\n\r\n
\r\n {\" \"}\r\n Connected on{\" \"}\r\n {row.connectedOn !== null ? formatDate(row.connectedOn) : \" \"}{\" \"}\r\n \r\n {\" \"}\r\n Last response on{\" \"}\r\n {row.lastResponse !== null ? formatDate(row.lastResponse) : \"\"}\r\n \r\n
\r\n
\r\n {row.currentstatus !== null ? row.currentstatus : \"\"} {row.currentstatusdate !== null ? formatDate(row.currentstatusdate) : \"\"}\r\n
\r\n
\r\n \r\n {row.company !== null ? row.company : \"\"}, {row.linkedinprofile !== null ? row.linkedinprofile : \"\"}, {row.campaign !== null ? row.campaign : \"\"}\r\n \r\n
\r\n
\r\n\r\n {row.id == userid && (\r\n\r\n\r\n\r\n \r\n\r\n SetOpenPopup (false)}\r\n details={row}\r\n Campaignid={row.campaignid}\r\n\r\n id={row.id}\r\n \r\n heading={\"Contact Details\"}\r\n />\r\n \r\n )}\r\n\r\n
\r\n \r\n ));\r\n\r\n function onClickCard(currentHeader) {\r\n props.onClickCard(currentHeader);\r\n }\r\n\r\n \r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n \r\n return {\r\n onHandleCampaign: data =>\r\n dispatch({\r\n type: \"Campaign_Detail\",\r\n payload: data\r\n })\r\n };\r\n};\r\nexport default connect(null, mapDispatchToProps)(MediaCard3);\r\n\r\n","import React from \"react\";\r\nimport \"./ContactsCard.css\";\r\n// import { Link } from \"react-router-dom\";\r\n// import { useHistory } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport ContactDetails from \"../Contacts/ContactDetail\";\r\n// import { contacts } from \"../Campaign/campaignQueries\";\r\n// import { fetchMethod } from \"../../FetchMethod\";\r\nimport { Drawer } from \"@material-ui/core\";\r\n\r\nimport { useState } from \"react\";\r\nimport { getContactImageUrl } from \"../../config\";\r\n\r\nfunction MediaCard3(props) {\r\n\r\n\r\n const [openPoup, SetOpenPopup] = useState(false);\r\n const [userid, SetUserid] = useState(0);\r\n var dataOpen = true;\r\n const formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n const onNameClick = (side, open, row) => event => {\r\n\r\n SetOpenPopup(true);\r\n SetUserid(row.id)\r\n };\r\n const rows = props.DashboardData[14];\r\n \r\n return rows.map(row => (\r\n\r\n\r\n\r\n
\r\n
\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + row.image;\r\n }}\r\n />\r\n
\r\n\r\n
\r\n

\r\n\r\n\r\n {row.name}{\" \"}\r\n {row.contactStatus !== null ? row.contactStatus : \"\"}\r\n\r\n\r\n

\r\n\r\n
\r\n {row.designation !== null && row.designation !== \"\" ? row.designation+\",\" : \"\"} {\" \"}\r\n {row.location !== null ? row.location : \"\"}\r\n
\r\n\r\n\r\n
\r\n {\" \"}\r\n Connected on{\" \"}\r\n {row.connectedOn !== null ? formatDate(row.connectedOn) : \" \"}{\" \"}\r\n \r\n {\" \"}\r\n Last response on{\" \"}\r\n {row.lastResponse !== null ? formatDate(row.lastResponse) : \"\"}\r\n \r\n
\r\n
\r\n {row.currentstatus !== null ? row.currentstatus : \"\"} {row.currentstatusdate !== null ? formatDate(row.currentstatusdate) : \"\"}\r\n
\r\n
\r\n \r\n {row.company !== null ? row.company : \"\"}, {row.linkedinprofile !== null ? row.linkedinprofile : \"\"}, {row.campaign !== null ? row.campaign : \"\"}\r\n \r\n
\r\n
\r\n {row.id == userid && (\r\n\r\n\r\n\r\n\r\n \r\n SetOpenPopup(false)}\r\n details={row}\r\n Campaignid={row.campaignid}\r\n id={row.id}\r\n heading={\"Contact Details\"}\r\n />\r\n \r\n )}\r\n
\r\n\r\n\r\n\r\n\r\n\r\n ));\r\n\r\n function onClickCard(currentHeader) {\r\n props.onClickCard(currentHeader);\r\n }\r\n\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n\r\n return {\r\n onHandleCampaign: data =>\r\n dispatch({\r\n type: \"Campaign_Detail\",\r\n payload: data\r\n })\r\n };\r\n};\r\nexport default connect(null, mapDispatchToProps)(MediaCard3);\r\n//export default MediaCard3;\r\n","import React from \"react\";\r\nimport \"./EngagementCard.css\";\r\n// import { Link } from \"react-router-dom\";\r\n// import { useHistory } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport ContactDetails from \"../Contacts/ContactDetail\";\r\n// import { contacts} from \"../Campaign/campaignQueries\";\r\n// import { fetchMethod } from \"../../FetchMethod\";\r\nimport { Drawer } from \"@material-ui/core\";\r\nimport { getContactImageUrl } from \"../../config\";\r\n// import {\r\n// Paper,\r\n// Table,\r\n// TableBody,\r\n// TableCell,\r\n// TableContainer,\r\n// TableHead,\r\n// TableRow\r\n// } from \"@material-ui/core\";\r\nimport { useState } from \"react\";\r\n\r\n\r\n\r\nfunction MediaCard3(props) {\r\n\r\n\r\n const [openPoup, SetOpenPopup ] = useState(false);\r\n const [userid, SetUserid ] = useState(0);\r\n// var dataOpen = true;\r\n const formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n\r\n\r\nconst onNameClick = (side, open, row) => event => {\r\n\r\n SetOpenPopup (true);\r\n SetUserid (row.id) \r\n\r\n};\r\n\r\n\r\n const rows = props.DashboardData[7];\r\n\r\n return rows.map(row => (\r\n\r\n \r\n\r\n
\r\n
\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + row.image;\r\n }}\r\n \r\n />\r\n
\r\n \r\n
\r\n

\r\n\r\n {row.name}{\" \"}\r\n {row.contactStatus !== null ? row.contactStatus : \"\"}\r\n \r\n \r\n \r\n

\r\n\r\n
\r\n {row.designation !== null && row.designation !== \"\" ? row.designation+\",\" : \"\"} {\" \"}\r\n {row.location !== null ? row.location : \"\"}\r\n
\r\n\r\n \r\n\r\n
\r\n {\" \"}\r\n Connected on{\" \"}\r\n {row.connectedOn !== null ? formatDate(row.connectedOn) : \" \"}{\" \"}\r\n \r\n {\" \"}\r\n Last response on{\" \"}\r\n {row.lastResponse !== null ? formatDate(row.lastResponse) : \"\"}\r\n \r\n
\r\n
\r\n {row.currentstatus !== null ? row.currentstatus : \"\"} {row.currentstatusdate !== null ? formatDate(row.currentstatusdate) : \"\"}\r\n
\r\n
\r\n \r\n {row.company !== null ? row.company : \"\"}, {row.linkedinprofile !== null ? row.linkedinprofile : \"\"}, {row.campaign !== null ? row.campaign : \"\"}\r\n \r\n
\r\n
\r\n {row.id == userid && (\r\n\r\n \r\n \r\n SetOpenPopup (false)}\r\n details={row}\r\n Campaignid={row.campaignid}\r\n \r\n id={row.id}\r\n \r\n heading={\"Contact Details\"}\r\n />\r\n \r\n )}\r\n
\r\n\r\n\r\n \r\n\r\n\r\n ));\r\n\r\n function onClickCard(currentHeader) {\r\n props.onClickCard(currentHeader);\r\n }\r\n\r\n \r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n \r\n return {\r\n onHandleCampaign: data =>\r\n dispatch({\r\n type: \"Campaign_Detail\",\r\n payload: data\r\n })\r\n };\r\n};\r\nexport default connect(null, mapDispatchToProps)(MediaCard3);\r\n\r\n","import React, { Component } from \"react\";\r\nimport { Chart } from \"react-google-charts\";\r\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\r\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\r\n\r\nimport {\r\n TextField,\r\n Autocomplete,\r\n createFilterOptions,\r\n // Box,\r\n // Paper,\r\n Checkbox,\r\n // FormControlLabel,\r\n // Divider\r\n} from \"@mui/material\";\r\nimport \"./contact.css\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nimport { connect } from \"react-redux\";\r\nimport { API_URL } from \"../../config\";\r\nimport \"./CompanyDetailsTab.css\";\r\nimport ConnectRateIcon from \"../assets/marketing.svg\";\r\nimport TotalEngagedIcon from \"../assets/market.svg\";\r\n\r\nimport TotalLeadIcon from \"../assets/target.svg\";\r\nimport TotalinvitesentIcon from \"../assets/invitesent.png\";\r\n\r\nimport colorLib from \"@kurkle/color\";\r\n//import { Line, Pie } from \"react-chartjs-2\";\r\nimport TriggersCard from \"../Card/TriggersCard\";\r\nimport LeadsCard from \"../Card/LeadsCard\";\r\nimport ContactsCard from \"../Card/ContactsCard\";\r\nimport EngagementCard from \"../Card/EngagementCard\";\r\n\r\nclass Contacts extends Component {\r\n\r\n\r\n constructor(props) {\r\n\r\n super(props);\r\n\r\n this.state = {\r\n count: 0,\r\n selectedOptions: 0,\r\n company: \"All\",\r\n loading: false,\r\n search: \"\",\r\n companySearch: [],\r\n name: \"\",\r\n customerlist: [],\r\n selectAllLabel: [],\r\n PreValueSelected: [],\r\n valueSelected: [],\r\n description: \"\",\r\n customer: \"\",\r\n campManagerFirstName: \"\",\r\n campManagerLastName: \"\",\r\n campAdminFirstName: \"\",\r\n campAdminLastName: \"\",\r\n linkedInProfile: \"\",\r\n status: \"\",\r\n selectedCampaignStatus: \"\",\r\n campaignid: 0,\r\n connectionsToBeSent: \"\",\r\n startDate: \"\",\r\n startTime: \"\",\r\n steps: [],\r\n show: false,\r\n DashboardData2: {\r\n TotalSent: 0,\r\n TotalConnection: 0,\r\n TotalEngagedCon: 0,\r\n TotalLeadsCon: 0,\r\n\r\n step1: 0,\r\n step2: 0,\r\n step3: 0,\r\n step4: 0,\r\n step5: 0,\r\n\r\n step2Remain: 0,\r\n step3Remain: 0,\r\n step4Remain: 0,\r\n step5Remain: 0,\r\n step2Remain1st: 0,\r\n\r\n stepLength: 0,\r\n TotalConnectRate: \"\",\r\n LiveConnectRate: \"\",\r\n TotalEngaged: \"\",\r\n LiveEngaged: \"\",\r\n TotalLeads: \"\",\r\n LiveLeads: \"\",\r\n newRecentdata: \"\",\r\n recentLeads: [],\r\n recentcontactCount: [],\r\n selectedOptions: [],\r\n\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.SearchCompany();\r\n this.setState({ loading: true }, () => {\r\n this.getDashboardData2();\r\n });\r\n }\r\n\r\n\r\n SearchCompany = () => {\r\n //var bb = localStorage.getItem(\"customer\");\r\n //var c = bb;\r\n\r\n var dasId = 0;\r\n if (localStorage.getItem(\"role\") === \"CUSTOMER\") {\r\n dasId = localStorage.getItem(\"customer\");\r\n } else {\r\n dasId = localStorage.getItem(\"id\");\r\n }\r\n\r\n\r\n fetch(\r\n // `${API_URL}/api/Contactscompanies/getCompanyResp?searchValue=${this.state.search}`,\r\n // `${API_URL}/api/Contacts/getCompanyResp?searchValue=${this.state.search}&userid=${localStorage.getItem(\"id\")}&role=${localStorage.getItem(\"role\")}`,\r\n `${API_URL}/api/Contacts/getCompanyResp?searchValue=${this.state.search}&userid=${dasId}&role=${localStorage.getItem(\"role\")}`,\r\n {\r\n method: \"POST\",\r\n mode: \"cors\",\r\n headers: {\r\n \"Content-type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(res => {\r\n\r\n this.setState(\r\n {\r\n customerlist: res\r\n }\r\n \r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n });\r\n };\r\n\r\n\r\n\r\n toggleSelectAllRow = isChecked => {\r\n if (isChecked) {\r\n this.gettingAllDataFromQuery();\r\n } else {\r\n this.setState({\r\n selectAll: false,\r\n selectedArray: [],\r\n selected: {}\r\n });\r\n }\r\n };\r\n gettingAllDataFromQuery = () => {\r\n\r\n };\r\n\r\n handleChange2 = event => {\r\n\r\n this.setState({ search: event.target.value }, () => {\r\n if (this.state.search !== \"\") {\r\n this.setState(\r\n {\r\n searchFlag: true\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n searchFlag: false\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n });\r\n };\r\n \r\n selectListChange = (event, v) => {\r\n\r\n if (v !== undefined && v !== null) {\r\n\r\n var searchVar = [];\r\n v.map(data => {\r\n\r\n searchVar.push({ name: (data.name.split('&')[0]).trim(), id: data.id })\r\n });\r\n\r\n this.setState(\r\n {\r\n company: \"\",\r\n search: \"\"\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n companySearch: searchVar,\r\n \r\n flag: true,\r\n searchFlag: true\r\n }\r\n ,\r\n () => {\r\n this.getDashboardData2();\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n this.setState({\r\n company: \"All\",\r\n ManagerId: undefined,\r\n ManagerId1: \"All\",\r\n });\r\n }\r\n };\r\n\r\n\r\n\r\n onSearchClick = () => {\r\n\r\n if (this.state.searchFlag === true) {\r\n\r\n this.setState({ clickToSearch: true }, () => {\r\n\r\n this.SearchCompany();\r\n this.getDashboardData2();\r\n });\r\n } else {\r\n\r\n this.setState({ clickToSearch: false }, () => {\r\n this.SearchCompany();\r\n this.getDashboardData2();\r\n });\r\n }\r\n };\r\n \r\n convertArrayToObject = selectedArrayIds => {\r\n let SelectedIds = [];\r\n selectedArrayIds.map(item => {\r\n return SelectedIds.push({ name: item });\r\n });\r\n return SelectedIds;\r\n };\r\n getDashboardData2 = (data) => {\r\n\r\n var dasId = 0;\r\n if (localStorage.getItem(\"role\") === \"CUSTOMER\") {\r\n dasId = localStorage.getItem(\"customer\");\r\n } else {\r\n dasId = localStorage.getItem(\"id\");\r\n }\r\n\r\n let selectedArrayIds = [];\r\n var selectedArray = this.state.companySearch;\r\n\r\n if (selectedArray.length === 0 && this.state.search !== \"\") {\r\n selectedArrayIds.push({ name: this.state.search });\r\n }\r\n\r\n selectedArray.map(a => {\r\n\r\n return selectedArrayIds.push({ name: a.name });\r\n });\r\n\r\n let searchData = [];\r\n if (selectedArray.length > 0) {\r\n searchData = JSON.stringify(selectedArrayIds);\r\n }\r\n if (selectedArray.length === 0 && this.state.search !== \"\") {\r\n searchData = JSON.stringify(selectedArrayIds);\r\n }\r\n\r\n\r\n // this.state.search\r\n fetch(\r\n\r\n //http://localhost:4000/api/Campaigns/getContactHomeDas?role=SADMIN&userid=185&search=cloudr\r\n //`${API_URL}/api/Campaigns/getContactHomeDas?role=${localStorage.getItem(\"role\")}&userid=${localStorage.getItem(\"id\")}&search=${cleanText}&access_token=${localStorage.getItem(\"token\")}`,\r\n `${API_URL}/api/Campaigns/getContactHomeDas?role=${localStorage.getItem(\"role\")}&userid=${dasId}&search=${searchData}&access_token=${localStorage.getItem(\"token\")}`,\r\n\r\n {\r\n method: \"POST\",\r\n mode: \"cors\",\r\n headers: {\r\n \"Content-type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n // .then(res => {\r\n\r\n .then(res => {\r\n\r\n\r\n\r\n this.setState(\r\n {\r\n DashboardlistData2: res.response\r\n },\r\n () => {\r\n this.setDataCalculation2();\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n });\r\n // });\r\n };\r\n\r\n setDataCalculation2 = () => {\r\n\r\n\r\n\r\n const { DashboardlistData2, DashboardData2 } = this.state;\r\n\r\n var engData = \"0\";\r\n var leadData = \"0\";\r\n var connectData = \"0\";\r\n\r\n if (DashboardlistData2[1].engagedRate != null) {\r\n engData = DashboardlistData2[1].engagedRate.toFixed(0);\r\n }\r\n if (DashboardlistData2[2].leadsRate != null) {\r\n leadData = DashboardlistData2[2].leadsRate.toFixed(0);\r\n }\r\n if (DashboardlistData2[0].connectRate != null) {\r\n connectData = DashboardlistData2[0].connectRate.toFixed(0);\r\n }\r\n DashboardData2.TotalSent = DashboardlistData2[3];\r\n DashboardData2.TotalConnection = DashboardlistData2[6];\r\n DashboardData2.TotalEngagedCon = DashboardlistData2[5];\r\n DashboardData2.TotalLeadsCon = DashboardlistData2[4];\r\n DashboardData2.TotalEngaged = engData;\r\n DashboardData2.TotalLeads = leadData;\r\n DashboardData2.TotalConnectRate = connectData;\r\n DashboardData2.recentLeads = DashboardlistData2[7];\r\n DashboardData2.recentTrigger = DashboardlistData2[8];\r\n DashboardData2.recentNoop = DashboardlistData2[13];\r\n DashboardData2.recentContact = DashboardlistData2[14];\r\n DashboardData2.stepLength = DashboardlistData2[12].stepContacts.length;\r\n var TotalLength = DashboardlistData2[12].stepContacts.length;\r\n var flag = 0;\r\n\r\n\r\n\r\n for (var i = 0; i < TotalLength; i++) {\r\n\r\n var index = i + flag;\r\n\r\n var name = DashboardlistData2[12].stepContacts[i].stepname;\r\n\r\n\r\n if (name === \"VISIT\") {\r\n name = \"Visit\";\r\n }\r\n if (name === \"FOLLOW\") {\r\n name = \"Follow\";\r\n }\r\n if (name === \"SEND_INVITE\") {\r\n name = \"Connections\";\r\n }\r\n if (name === \"SEND_THANKS_MESSAGE\") {\r\n name = \"Thank You Message\";\r\n }\r\n if (name === \"SEND_MESSAGE\") {\r\n name = \"Send Message\";\r\n }\r\n if (name === \"SEND_EMAIL\") {\r\n name = \"Send Inmail\";\r\n }\r\n\r\n\r\n\r\n\r\n if (i === 0 && (DashboardlistData2[12].stepContacts[0].stepname === \"SEND_EMAIL\" || DashboardlistData2[12].stepContacts[0].stepname === \"SEND_MESSAGE\")) {\r\n DashboardData2.stepLength = DashboardData2.stepLength + 1;\r\n\r\n DashboardData2.step1 =\r\n DashboardlistData2[15];\r\n DashboardData2.stepname1 = \"Connections\";\r\n flag = 1;\r\n\r\n DashboardData2.step2 = DashboardlistData2[12].stepContacts[0].totalCount;\r\n DashboardData2.stepname2 = name;\r\n DashboardData2.step2Remain1st = (DashboardlistData2[15]) - (DashboardlistData2[12].stepContacts[0].totalCount);\r\n }\r\n else {\r\n switch (index) {\r\n\r\n case 0:\r\n DashboardData2.step1 = DashboardData2.TotalConnection;\r\n DashboardData2.stepname1 = \"Connections\";\r\n\r\n\r\n break;\r\n case 1:\r\n DashboardData2.step2 =\r\n DashboardlistData2[12].stepContacts[i].totalDone;\r\n DashboardData2.stepname2 = name;\r\n DashboardData2.step2Remain = DashboardlistData2[12].stepContacts[i].totalPen;\r\n break;\r\n case 2:\r\n DashboardData2.step3 =\r\n DashboardlistData2[12].stepContacts[i].totalDone;\r\n DashboardData2.stepname3 = name;\r\n DashboardData2.step3Remain = DashboardlistData2[12].stepContacts[i].totalPen + DashboardData2.step2Remain;\r\n break;\r\n case 3:\r\n DashboardData2.step4 =\r\n DashboardlistData2[12].stepContacts[i].totalDone;\r\n DashboardData2.stepname4 = name;\r\n DashboardData2.step4Remain = DashboardlistData2[12].stepContacts[i].totalPen + DashboardData2.step3Remain;\r\n break;\r\n\r\n case 4:\r\n DashboardData2.step5 =\r\n DashboardlistData2[12].stepContacts[i].totalDone;\r\n DashboardData2.stepname5 = name;\r\n DashboardData2.step5Remain = DashboardlistData2[12].stepContacts[i].totalPen + DashboardData2.step4Remain;\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n this.setState({\r\n DashboardlistData2,\r\n loading: false\r\n });\r\n };\r\n\r\n render() {\r\n\r\n if (this.state.loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n\r\n // const options = {\r\n // animations: {\r\n // y: {\r\n // easing: \"easeInOutElastic\",\r\n // from: ctx => {\r\n // if (ctx.type === \"data\") {\r\n // if (ctx.mode === \"default\" && !ctx.dropped) {\r\n // ctx.dropped = true;\r\n // return 0;\r\n // }\r\n // }\r\n // }\r\n // }\r\n // },\r\n // plugins: {\r\n // filler: {\r\n // propagate: true\r\n // }\r\n // },\r\n\r\n // };\r\n\r\n\r\n const labels = [];\r\n const countryCount = [];\r\n const countryDetail = [];\r\n\r\n\r\n if (this.state.DashboardlistData2 !== undefined) {\r\n\r\n var datacount = this.state.DashboardlistData2[9];\r\n var totalCountryCount = this.state.DashboardlistData2[10];\r\n\r\n for (var i = 0; i < datacount.length; i++) {\r\n\r\n var countryPer = ((datacount[i].countryCount / totalCountryCount) * 100).toFixed(0);\r\n var countryName= datacount[i].country !=\"\" ? datacount[i].country : \"TBD\";\r\n if (countryPer !== \"0\") {\r\n labels.push(countryName);\r\n countryCount.push(datacount[i].countryCount);\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // function transparentize(value, opacity) {\r\n // var alpha = opacity === undefined ? 0.5 : 1 - opacity;\r\n // return colorLib(value)\r\n // .alpha(alpha)\r\n // .rgbString();\r\n // }\r\n\r\n\r\n \r\n // var nnj = countryDetail[0]\r\n const data2 = [\r\n [\"Task\", \"Hours per Day\"],\r\n [labels[0], countryCount[0]],\r\n [labels[1], countryCount[1]],\r\n [labels[2], countryCount[2]],\r\n [labels[3], countryCount[3]],\r\n [labels[4], countryCount[4]],\r\n [labels[5], countryCount[5]],\r\n [labels[6], countryCount[6]],\r\n [labels[7], countryCount[7]],\r\n [labels[8], countryCount[8]],\r\n [labels[9], countryCount[9]],\r\n [labels[10], countryCount[10]],\r\n [labels[11], countryCount[11]],\r\n [labels[12], countryCount[12]],\r\n [labels[13], countryCount[13]],\r\n [labels[14], countryCount[14]],\r\n [labels[15], countryCount[15]],\r\n [labels[16], countryCount[16]],\r\n [labels[17], countryCount[17]],\r\n [labels[18], countryCount[18]],\r\n [labels[19], countryCount[19]],\r\n [labels[20], countryCount[20]],\r\n [labels[21], countryCount[21]],\r\n [labels[22], countryCount[22]],\r\n [labels[23], countryCount[23]],\r\n [labels[24], countryCount[24]],\r\n [labels[25], countryCount[25]],\r\n [labels[26], countryCount[26]],\r\n [labels[27], countryCount[27]],\r\n [labels[28], countryCount[28]],\r\n [labels[29], countryCount[29]],\r\n [labels[30], countryCount[30]],\r\n\r\n\r\n ];\r\n const options2 = {\r\n title: \"Country wise Percentage data\",\r\n };\r\n // const type = \"line\";\r\n const datasets = [\r\n {\r\n label: '# of Votes',\r\n data: countryCount,\r\n \r\n backgroundColor: [\r\n\r\n \"rgba(229,43,80,1)\",\r\n \"rgba(255,191,0,1)\",\r\n \"rgba(153,102,204,1)\",\r\n \"rgba(251,206,177,1)\",\r\n \"rgba(127,255,212,1)\",\r\n \"rgba(0,127,255,1)\",\r\n \"rgba(137,207,240,1)\",\r\n \"rgba(245,245,220,1)\",\r\n \"rgba(203,65,84,1)\",\r\n // \"rgba(0,0,0,1)\",\r\n \"rgba(0,0,255,1)\",\r\n \"rgba(0,149,182,1)\",\r\n \"rgba(138,43,226,1)\",\r\n \"rgba(222,93,131,1)\",\r\n \"rgba(205,127,50,1)\",\r\n \"rgba(153,51,0,1)\",\r\n \"rgba(128,0,32,1)\",\r\n \"rgba(112,41,99,1)\",\r\n \"rgba(150,0,24,1)\",\r\n \"rgba(222,49,99,1)\",\r\n \"rgba(0,123,167,1)\",\r\n \"rgba(247,231,206,1)\",\r\n \"rgba(127,255,0,1)\",\r\n \"rgba(123,63,0,1)\",\r\n \"rgba(0,71,171,1)\",\r\n \"rgba(111,78,55,1)\",\r\n \"rgba(184,115,51,1)\",\r\n \"rgba(255,127,80,1)\",\r\n \"rgba(220,20,60,1)\",\r\n \"rgba(0,255,255,1)\",\r\n \"rgba(237,201,175,1)\",\r\n \"rgba(125,249,255,1)\",\r\n \"rgba(80,200,120,1)\",\r\n \"rgba(0,255,63,1)\",\r\n \"rgba(255,215,0,1)\",\r\n \"rgba(190,190,190,1)\",\r\n \"rgba(0,128,1,1)\",\r\n \"rgba(63,255,0,1)\",\r\n \"rgba(75,0,130,1)\",\r\n \"rgba(255,255,240,1)\",\r\n \"rgba(0,168,107,1)\",\r\n \"rgba(41,171,135,1)\",\r\n \"rgba(181,126,220,1)\",\r\n \"rgba(255,247,0,1)\",\r\n \"rgba(200,162,200,1)\",\r\n \"rgba(191,255,0,1)\",\r\n \"rgba(255,0,255,1)\",\r\n \"rgba(255,0,175,1)\",\r\n \"rgba(128,0,0,1)\",\r\n \"rgba(224,176,255,1)\",\r\n \"rgba(0,0,128,1)\",\r\n \"rgba(204,119,34,1)\",\r\n \"rgba(128,128,0,1)\",\r\n \"rgba(255,102,0,1)\",\r\n \"rgba(255,69,0,1)\",\r\n \"rgba(218,112,214,1)\",\r\n \"rgba(255,229,180,1)\",\r\n \"rgba(209,226,49,1)\",\r\n \"rgba(204,204,255,1)\",\r\n \"rgba(28,57,187,1)\",\r\n \"rgba(255,192,203,1)\",\r\n \"rgba(142,69,133,1)\",\r\n \"rgba(0,49,83,1)\",\r\n \"rgba(204,136,153,1)\",\r\n \"rgba(106,13,173,1)\",\r\n \"rgba(227,11,92,1)\",\r\n \"rgba(255,0,0,1)\",\r\n \"rgba(199,21,133,1)\",\r\n \"rgba(255,0,127,1)\",\r\n \"rgba(224,17,95,1)\",\r\n \"rgba(250,128,114,1)\",\r\n \"rgba(146,0,10,1)\",\r\n \"rgba(15,82,186,1)\",\r\n \"rgba(255,36,0,1)\",\r\n \"rgba(192,192,192,1)\",\r\n \"rgba(112,128,144,1)\",\r\n \"rgba(167,252,0,1)\",\r\n \"rgba(0,255,127,1)\",\r\n \"rgba(210,180,140,1)\",\r\n \"rgba(72,60,50,1)\",\r\n \"rgba(0,128,128,1)\",\r\n \"rgba(64,224,208,1)\",\r\n \"rgba(63,0,255,1)\",\r\n \"rgba(128,0,255,1)\",\r\n \"rgba(64,130,109,1)\",\r\n \"rgba(255,255,255,1)\",\r\n \"rgba(255,255,0,1)\",\r\n \"rgba(240,248,255,1)\",\r\n \"rgba(229,43,80,1)\",\r\n \"rgba(255,191,0,1)\",\r\n \"rgba(153,102,204,1)\",\r\n \"rgba(251,206,177,1)\",\r\n \"rgba(127,255,212,1)\",\r\n \"rgba(0,127,255,1)\",\r\n \"rgba(137,207,240,1)\",\r\n \"rgba(245,245,220,1)\",\r\n \"rgba(203,65,84,1)\",\r\n // \"rgba(0,0,0,1)\",\r\n \"rgba(0,0,255,1)\",\r\n \"rgba(0,149,182,1)\",\r\n \"rgba(138,43,226,1)\",\r\n \"rgba(222,93,131,1)\",\r\n \"rgba(205,127,50,1)\",\r\n \"rgba(153,51,0,1)\",\r\n \"rgba(128,0,32,1)\",\r\n \"rgba(112,41,99,1)\",\r\n \"rgba(150,0,24,1)\",\r\n \"rgba(222,49,99,1)\",\r\n \"rgba(0,123,167,1)\",\r\n \"rgba(247,231,206,1)\",\r\n \"rgba(127,255,0,1)\",\r\n \"rgba(123,63,0,1)\",\r\n \"rgba(0,71,171,1)\",\r\n \"rgba(111,78,55,1)\",\r\n \"rgba(184,115,51,1)\",\r\n \"rgba(255,127,80,1)\",\r\n \"rgba(220,20,60,1)\",\r\n \"rgba(0,255,255,1)\",\r\n \"rgba(237,201,175,1)\",\r\n \"rgba(125,249,255,1)\",\r\n \"rgba(80,200,120,1)\",\r\n \"rgba(0,255,63,1)\",\r\n \"rgba(255,215,0,1)\",\r\n \"rgba(190,190,190,1)\",\r\n \"rgba(0,128,1,1)\",\r\n \"rgba(63,255,0,1)\",\r\n \"rgba(75,0,130,1)\",\r\n \"rgba(255,255,240,1)\",\r\n \"rgba(0,168,107,1)\",\r\n \"rgba(41,171,135,1)\",\r\n \"rgba(181,126,220,1)\",\r\n \"rgba(255,247,0,1)\",\r\n \"rgba(200,162,200,1)\",\r\n \"rgba(191,255,0,1)\",\r\n \"rgba(255,0,255,1)\",\r\n \"rgba(255,0,175,1)\",\r\n \"rgba(128,0,0,1)\",\r\n \"rgba(224,176,255,1)\",\r\n \"rgba(0,0,128,1)\",\r\n \"rgba(204,119,34,1)\",\r\n \"rgba(128,128,0,1)\",\r\n \"rgba(255,102,0,1)\",\r\n \"rgba(255,69,0,1)\",\r\n \"rgba(218,112,214,1)\",\r\n \"rgba(255,229,180,1)\",\r\n \"rgba(209,226,49,1)\",\r\n \"rgba(204,204,255,1)\",\r\n \"rgba(28,57,187,1)\",\r\n \"rgba(255,192,203,1)\",\r\n \"rgba(142,69,133,1)\",\r\n \"rgba(0,49,83,1)\",\r\n \"rgba(204,136,153,1)\",\r\n \"rgba(106,13,173,1)\",\r\n \"rgba(227,11,92,1)\",\r\n \"rgba(255,0,0,1)\",\r\n \"rgba(199,21,133,1)\",\r\n \"rgba(255,0,127,1)\",\r\n \"rgba(224,17,95,1)\",\r\n \"rgba(250,128,114,1)\",\r\n \"rgba(146,0,10,1)\",\r\n \"rgba(15,82,186,1)\",\r\n \"rgba(255,36,0,1)\",\r\n \"rgba(192,192,192,1)\",\r\n \"rgba(112,128,144,1)\",\r\n \"rgba(167,252,0,1)\",\r\n \"rgba(0,255,127,1)\",\r\n \"rgba(210,180,140,1)\",\r\n \"rgba(72,60,50,1)\",\r\n \"rgba(0,128,128,1)\",\r\n \"rgba(64,224,208,1)\",\r\n \"rgba(63,0,255,1)\",\r\n \"rgba(128,0,255,1)\",\r\n \"rgba(64,130,109,1)\",\r\n \"rgba(255,255,255,1)\",\r\n \"rgba(255,255,0,1)\",\r\n \"rgba(240,248,255,1)\",\r\n\r\n ],\r\n \r\n borderWidth: 1,\r\n },\r\n ];\r\n \r\n const data = {\r\n labels,\r\n datasets\r\n };\r\n\r\n\r\n\r\n // var cc = this.state.DashboardlistData2;\r\n // var today = new Date();\r\n // var curHr = today.getHours();\r\n\r\n const icon = ;\r\n const checkedIcon = ;\r\n\r\n const onNameClick = row => {\r\n\r\n this.props.onHandleCampaign(row);\r\n localStorage.setItem(\"label\", \"Leads\");\r\n localStorage.setItem(\"path\", \"/campaigns\");\r\n\r\n };\r\n const onNameClick2 = row => {\r\n\r\n this.props.onHandleCampaign(row);\r\n localStorage.setItem(\"label\", \"Trigger\");\r\n localStorage.setItem(\"path\", \"/campaigns\");\r\n\r\n };\r\n\r\n const allSelected = this.state.customerlist.length === this.state.selectedOptions.length;\r\n \r\n const handleSelectAll = isSelected => {\r\n if (isSelected) {\r\n } else {\r\n }\r\n };\r\n const filter = createFilterOptions();\r\n\r\n\r\n const handleToggleSelectAll = () => {\r\n handleSelectAll && handleSelectAll(!allSelected);\r\n };\r\n const handleChange = (event, selectedOptions, reason) => {\r\n\r\n var All2 = false;\r\n var preData = this.state.PreValueSelected;\r\n\r\n if (preData.length !== 0 && selectedOptions.length !== 0) {\r\n if (selectedOptions[selectedOptions.length - 1].name !== \"Select All\" && reason === \"selectOption\" && selectedOptions.length !== 16) {\r\n \r\n this.setState({\r\n valueSelected: selectedOptions,\r\n PreValueSelected: selectedOptions\r\n\r\n })\r\n }\r\n else {\r\n\r\n //var bb = this.state.search;\r\n if (preData[preData.length - 1].name === \"Select All\" && selectedOptions[selectedOptions.length - 1].name === \"Select All\") {\r\n\r\n this.setState({\r\n PreValueSelected: [],\r\n valueSelected: []\r\n })\r\n } else {\r\n this.setState({\r\n PreValueSelected: selectedOptions\r\n })\r\n\r\n if (reason === \"selectOption\" || reason === \"removeOption\") {\r\n this.setState({\r\n PreValueSelected: selectedOptions\r\n })\r\n if (selectedOptions[selectedOptions.length - 1].name === \"Select All\") {\r\n\r\n if (reason === \"selectOption\") {\r\n\r\n handleToggleSelectAll();\r\n\r\n let result = [];\r\n result = this.state.customerlist.filter(el => el.value !== \"Select All\");\r\n\r\n this.setState({\r\n valueSelected: result\r\n })\r\n }\r\n else {\r\n\r\n var selectArr = [];\r\n if (event._targetInst.alternate.key === \"Select All\") {\r\n\r\n selectArr = []\r\n } else {\r\n selectArr = selectedOptions\r\n }\r\n this.setState({\r\n valueSelected: selectArr\r\n })\r\n }\r\n\r\n\r\n\r\n } else {\r\n\r\n\r\n this.setState({\r\n valueSelected: selectedOptions\r\n })\r\n }\r\n } else if (reason === \"clear\") {\r\n\r\n\r\n this.setState({\r\n valueSelected: []\r\n })\r\n }\r\n }\r\n }\r\n } else {\r\n\r\n if (reason === \"selectOption\" || reason === \"removeOption\") {\r\n if (preData === \"Select All\" && event.target.innerText === \"Select All\") {\r\n this.setState({\r\n PreValueSelected: []\r\n })\r\n } else {\r\n this.setState({\r\n PreValueSelected: selectedOptions,\r\n valueSelected: selectedOptions\r\n })\r\n\r\n if (selectedOptions.length > 0) {\r\n if (selectedOptions.length === 1 && selectedOptions[selectedOptions.length - 1].name === \"Select All\") {\r\n if (reason === \"selectOption\") {\r\n All2 = true;\r\n\r\n handleToggleSelectAll();\r\n let result = [];\r\n result = this.state.customerlist.filter(el => el.value !== \"Select All\");\r\n\r\n this.setState({\r\n valueSelected: result\r\n })\r\n } else {\r\n\r\n var selectArr = [];\r\n if (event._targetInst.alternate.key === \"Select All\") {\r\n\r\n selectArr = []\r\n } else {\r\n\r\n selectArr = selectedOptions\r\n\r\n }\r\n this.setState({\r\n valueSelected: selectArr\r\n })\r\n }\r\n }\r\n\r\n } else {\r\n this.setState({\r\n valueSelected: selectedOptions\r\n })\r\n }\r\n }\r\n\r\n } else if (reason === \"clear\") {\r\n\r\n this.setState({\r\n valueSelected: [],\r\n customerlist: [],\r\n\r\n })\r\n this.SearchCompany();\r\n }\r\n }\r\n\r\n\r\n\r\n var flag = false;\r\n\r\n if (reason !== \"clear\") {\r\n if (event.target.innerText === \"Select All\" && selectedOptions.length > 1 && selectedOptions.length < 16 && this.state.customerlist.length === 15) {\r\n flag = true;\r\n }\r\n\r\n else if (\r\n event.target.innerText === \"Select All\" && selectedOptions.length === 1 && this.state.customerlist.length === 15\r\n ) {\r\n flag = true;\r\n }\r\n\r\n else if (\r\n event.target.innerText === \"Select All\" && selectedOptions.length === 16\r\n ) {\r\n flag = true;\r\n } else if (\r\n event.target.innerText === \"Select All\" && this.state.customerlist.length < 15\r\n ) {\r\n flag = false;\r\n }\r\n\r\n else if (\r\n All2 === true && selectedOptions.length === 1 && this.state.customerlist.length === 15\r\n ) {\r\n flag = true;\r\n }\r\n\r\n\r\n else if (\r\n selectedOptions.length === 16 && this.state.customerlist.length === 15\r\n ) {\r\n flag = true;\r\n }\r\n if (selectedOptions.length > 0) {\r\n if (selectedOptions[selectedOptions.length - 1].name === \"Select All\" && selectedOptions.length > 1 && selectedOptions.length < 16 && this.state.customerlist.length === 15) {\r\n flag = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n var select = \"\";\r\n if (selectedOptions.length > 0) {\r\n select = selectedOptions[selectedOptions.length - 1].name\r\n }\r\n\r\n\r\n if (selectedOptions !== undefined && selectedOptions !== null && flag === false) {\r\n\r\n var searchVar = [];\r\n\r\n if (select === \"Select All\") {\r\n selectedOptions = this.state.customerlist;\r\n }\r\n if (selectedOptions.length === 1 && event.target.innerText === \"Select All\") {\r\n selectedOptions = this.state.customerlist;\r\n }\r\n\r\n selectedOptions.map(data => {\r\n\r\n searchVar.push({ name: (data.name.split('&')[0]).trim(), id: data.id })\r\n });\r\n\r\n this.setState(\r\n {\r\n company: \"\",\r\n search: \"\"\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n companySearch: searchVar,\r\n flag: true,\r\n searchFlag: true\r\n }\r\n ,\r\n () => {\r\n this.getDashboardData2();\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n company: \"\",\r\n search: \"\"\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n companySearch: [],\r\n flag: true,\r\n searchFlag: true\r\n }\r\n ,\r\n () => {\r\n this.getDashboardData2();\r\n }\r\n );\r\n }\r\n );\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n\r\n const getOptionLabel = option => `${option.key}`;\r\n // const optionRenderer = (option, { selected }) => {\r\n\r\n // const selectAllProps =\r\n // option.key === \"select-all\" // To control the state of 'select-all' checkbox\r\n // ? { checked: allSelected }\r\n // : {};\r\n // return (\r\n // <>\r\n // }\r\n // checkedIcon={}\r\n // style={{ marginRight: 8 }}\r\n // checked={selected}\r\n // {...selectAllProps}\r\n // />\r\n // {getOptionLabel(option)}\r\n // \r\n // );\r\n // };\r\n return (\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Company name
\r\n\r\n
\r\n\r\n option.name}\r\n getOptionSelected={(option, value) => option.value === value.value}\r\n onChange={handleChange}\r\n value={this.state.valueSelected}\r\n\r\n\r\n\r\n\r\n filterOptions={(options, params) => {\r\n const filtered = filter(options, params);\r\n return [{ name: \"Select All\" }, ...filtered];\r\n }}\r\n\r\n renderOption={(props, option, { selected }) => (\r\n\r\n
  • \r\n\r\n \r\n {option.name}\r\n
  • \r\n\r\n )}\r\n \r\n renderInput={params => (\r\n \r\n )}\r\n \r\n sx={{ width: '500px' }}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n\r\n {this.state.DashboardlistData2 !== undefined && this.state.DashboardlistData2[12].stepContacts[0] ? (\r\n\r\n < div className=\"campaign_data_stats0_C \">\r\n {this.state.DashboardlistData2[12].stepContacts[0].stepname === \"SEND_EMAIL\" || this.state.DashboardlistData2[12].stepContacts[0].stepname === \"SEND_MESSAGE\" && (\r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.step1}{\" \"}\r\n

    {\" \"}\r\n

    \r\n {\" \"}\r\n

    Total Connections\r\n

    \r\n
    \r\n\r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    \r\n {((this.state.DashboardData2.step2 / this.state.DashboardData2.step1) * 100).toFixed(0)}% (\r\n {this.state.DashboardData2.step2}){\" \"}\r\n

    \r\n

    Message Sent

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    \r\n {((this.state.DashboardData2.TotalEngagedCon / this.state.DashboardData2.step2) * 100).toFixed(0)}% (\r\n {this.state.DashboardData2.TotalEngagedCon})\r\n

    \r\n

    Total Engaged

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {((this.state.DashboardData2.TotalLeadsCon / this.state.DashboardData2.step2) * 100).toFixed(0)}% (\r\n {this.state.DashboardData2.TotalLeadsCon})\r\n

    \r\n

    Total Leads

    \r\n
    \r\n
    \r\n

    \r\n {\" \"}\r\n
    \r\n \"users\"\r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {this.state.DashboardlistData2[12].stepContacts[0].stepname !== \"SEND_EMAIL\" && this.state.DashboardlistData2[12].stepContacts[0].stepname !== \"SEND_MESSAGE\" && (\r\n
    \r\n
    \r\n
    \r\n

    {this.state.DashboardData2.TotalSent}

    \r\n

    Invitation Sent

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalConnectRate}% (\r\n {this.state.DashboardData2.TotalConnection}){\" \"}\r\n

    {\" \"}\r\n

    \r\n {\" \"}\r\n

    Total Connections\r\n

    \r\n
    \r\n\r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalEngaged}% (\r\n {this.state.DashboardData2.TotalEngagedCon})\r\n

    \r\n

    Total Engaged

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalLeads}% (\r\n {this.state.DashboardData2.TotalLeadsCon})\r\n

    \r\n

    Total Leads

    \r\n
    \r\n
    \r\n

    \r\n {\" \"}\r\n
    \r\n \"users\"\r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n

    {this.state.DashboardData2.TotalSent}

    \r\n

    Invitation Sent

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalConnectRate}% (\r\n {this.state.DashboardData2.TotalConnection}){\" \"}\r\n

    {\" \"}\r\n

    \r\n {\" \"}\r\n

    Total Connections\r\n

    \r\n
    \r\n\r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalEngaged}% (\r\n {this.state.DashboardData2.TotalEngagedCon})\r\n

    \r\n

    Total Engaged

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalLeads}% (\r\n {this.state.DashboardData2.TotalLeadsCon})\r\n

    \r\n

    Total Leads

    \r\n
    \r\n
    \r\n

    \r\n {\" \"}\r\n
    \r\n \"users\"\r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    )}\r\n\r\n\r\n {this.state.DashboardlistData2 !== undefined && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n\r\n
    \r\n {this.state.DashboardlistData2 !== undefined && (\r\n
    \r\n
    \r\n

    onNameClick(this.state)} > Contacts

    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    )}\r\n\r\n
    \r\n\r\n
    \r\n {this.state.DashboardlistData2 !== undefined && (\r\n\r\n
    \r\n
    \r\n

    onNameClick(this.state)} > Engagements

    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    onNameClick(this.state)} > Leads

    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    onNameClick2(this.state)} >Triggers

    \r\n \r\n
    \r\n\r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n\r\n }\r\n\r\n};\r\nconst mapDispatchToProps = dispatch => {\r\n\r\n return {\r\n onHandleCampaign: data =>\r\n dispatch({\r\n type: \"Campaign_Detail\",\r\n payload: data\r\n })\r\n };\r\n};\r\nexport default connect(null, mapDispatchToProps)(Contacts);\r\n","import gql from \"graphql-tag\";\r\nexport const ContactSearch = `query($where: JSON){\r\n allCampaigns(where: $where){\r\n Campaigns{\r\n customerIbfk1rel{\r\n Customers{\r\n company\r\n id\r\n }\r\n }\r\n }\r\n }\r\n}`;\r\n\r\nexport const CampaignSearch = `query ($where: JSON){\r\n allCustomers(where: $where){\r\n Customers{\r\n id\r\n company\r\n campaignfk{\r\n Campaigns{\r\n id\r\n name\r\n Manager: usersIbfk1rel{\r\n Usersdata{\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}`;\r\nexport const CampaignData = `query ($where: JSON){\r\n allUsersdata(where: $where){\r\n Usersdata{\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n}`;\r\n\r\nexport const Company = gql`\r\n query($where: JSON ) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n }\r\n }\r\n }\r\n`;\r\n\r\n","import React, { Component } from \"react\";\r\nimport { TextField, MenuItem, Button, OutlinedInput } from \"@material-ui/core\";\r\nimport SearchIcon from \"../assets/search.png\";\r\nimport NextArrow from \"../assets/upAerrow.png\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\n\r\nimport \"./campaign.css\";\r\nimport {\r\n ContactSearch,\r\n CampaignSearch,\r\n Company,\r\n CampaignData\r\n} from \"./SearchCampaignQuery\";\r\n\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\n//import store from \"../../Redux/Store\";\r\n\r\nclass SearchCampaign extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n customerlist: [],\r\n search: \"\",\r\n \r\n CampaignManagerList: [],\r\n searchFlag: false,\r\n clickToSearch: false,\r\n Company: [],\r\n \r\n status: \"Live\",\r\n flag: false,\r\n cust: [],\r\n options2: [],\r\n ManagerId: undefined,\r\n ManagerId1: \"All\",\r\n CustomerId: \"All\",\r\n company: \"All\",\r\n value: \"All\",\r\n limit: this.props.limit,\r\n offset: this.props.offset\r\n };\r\n }\r\n componentDidMount() {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n this.fetchdata();\r\n this.fetchmanager();\r\n this.fetchManagerData();\r\n }\r\n\r\n fetchdata = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\")\r\n \r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\")\r\n \r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\")\r\n \r\n }\r\n }\r\n : {\r\n where: {\r\n \r\n }\r\n };\r\n\r\n fetchMethod(ContactSearch, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n responseAsJson !== undefined\r\n ? this.setState(\r\n {\r\n Company: responseAsJson.data.allCampaigns.Campaigns.map(id => {\r\n return id.customerIbfk1rel.Customers !== undefined\r\n ? id.customerIbfk1rel.Customers.length > 0\r\n ? id.customerIbfk1rel.Customers[0]\r\n : \"\"\r\n : \"\";\r\n })\r\n },\r\n () => this.SearchCompany()\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => {\r\n this.setState({ loading: true });\r\n });\r\n };\r\n SearchCompany = () => {\r\n const filter = {\r\n where: {\r\n \r\n and: [\r\n {\r\n or: this.state.Company.map(id => {\r\n return { id: id.id };\r\n })\r\n }\r\n ],\r\n order: \"company asc\"\r\n }\r\n };\r\n fetchMethod(Company, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allCustomers !== undefined && res.data.allCustomers !== null\r\n ? this.setState({ customerlist: res.data.allCustomers.Customers })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ],\r\n company: \"All\",\r\n CustomerId: \"\",\r\n ManagerId: \"\",\r\n ManagerId1: \"All\",\r\n search: \"\",\r\n status: \"LIVE\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.props.ManagerId(this.state.ManagerId);\r\n this.props.CustomerId(this.state.CustomerId);\r\n this.props.Status(this.state.status);\r\n this.fetchmanager();\r\n this.props.onHandleSearchChange(this.state.search);\r\n }\r\n );\r\n };\r\n fetchmanager = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? {\r\n where: {\r\n id: localStorage.getItem(\"customer\")\r\n }\r\n }\r\n : this.state.CustomerId !== \"All\"\r\n ? {\r\n where: {\r\n id: this.state.CustomerId\r\n }\r\n }\r\n : {};\r\n\r\n fetchMethod(CampaignSearch, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allCustomers !== undefined && res.data.allCustomers !== null\r\n ? this.setState(\r\n {\r\n cust:\r\n res.data.allCustomers.Customers[0] !== undefined\r\n ? res.data.allCustomers.Customers[0].campaignfk.Campaigns.map(\r\n id => {\r\n return id.Manager.Usersdata;\r\n }\r\n )\r\n : \"\"\r\n },\r\n () => {\r\n this.fetchManagerData();\r\n }\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n fetchManagerData = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? {\r\n where: {\r\n and: [\r\n {\r\n or:\r\n this.state.cust.length > 0\r\n ? this.state.cust.map(id => {\r\n return { id: id[0] !== undefined ? id[0].id : \"\" };\r\n })\r\n : [{ id: \"\" }]\r\n }\r\n ],\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n \r\n role: \"CAMPAIGNMANAGER\",\r\n createdby: localStorage.getItem(\"id\"),\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"SADMIN\"\r\n ? {\r\n where: {\r\n \r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : this.state.cust.length > 0\r\n ? {\r\n where: {\r\n and: [\r\n {\r\n or:\r\n this.state.cust.length > 0\r\n ? this.state.cust.map(id => {\r\n return { id: id[0] !== undefined ? id[0].id : \"\" };\r\n })\r\n : [{ id: \"\" }]\r\n }\r\n ],\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n };\r\n\r\n fetchMethod(CampaignData, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allUsersdata !== undefined && res.data.allUsersdata !== null\r\n ? this.setState({\r\n CampaignManagerList:\r\n localStorage.getItem(\"role\") !== \"CAMPAIGNMANAGER\"\r\n ? res.data.allUsersdata.Usersdata\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n selectListChange = (event, v) => {\r\n if (v !== undefined && v !== null) {\r\n this.setState(\r\n {\r\n company: \"\",\r\n CustomerId: \"\",\r\n\r\n ManagerId1: \"All\",\r\n ManagerId: undefined\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n company: v.company,\r\n CustomerId: v.id,\r\n\r\n ManagerId: \"All\",\r\n CampaignManagerList: [],\r\n flag: true,\r\n searchFlag: true\r\n },\r\n () => {\r\n this.props.ManagerId(this.state.ManagerId);\r\n this.props.CustomerId(this.state.CustomerId);\r\n this.fetchmanager();\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n this.setState({\r\n company: \"All\",\r\n ManagerId: undefined,\r\n ManagerId1: \"All\",\r\n loading: true\r\n });\r\n }\r\n };\r\n\r\n selectAssignToChange = (event, v) => {\r\n if (\r\n v !== undefined &&\r\n v !== null\r\n \r\n )\r\n this.setState(\r\n {\r\n ManagerId: \"\",\r\n ManagerId1: \"\"\r\n },\r\n () => {\r\n let FirstName =\r\n v.firstName !== undefined && v.firstName !== null\r\n ? v.firstName\r\n : \"\";\r\n let LastName =\r\n v.lastName !== undefined && v.lastName !== null ? v.lastName : \"\";\r\n this.setState(\r\n {\r\n ManagerId: v.id,\r\n ManagerId1: FirstName + \" \" + LastName,\r\n searchFlag: true\r\n },\r\n () => {\r\n this.fetchdata();\r\n this.props.ManagerId(this.state.ManagerId);\r\n this.props.CustomerId(this.state.CustomerId);\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n );\r\n else {\r\n this.setState({ CampaignManagerList: this.state.CampaignManagerList });\r\n }\r\n };\r\n\r\n onStatusChange = event => {\r\n if (event.target.outerText === \"Live\") {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"All\") {\r\n this.setState({\r\n options2: [\r\n { id: \"LIVE\", name: \"Live\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"Paused\") {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"LIVE\", name: \"Live\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"Completed\") {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"LIVE\", name: \"Live\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"Notstarted\") {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"LIVE\", name: \"Live\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" }\r\n ]\r\n });\r\n }\r\n this.setState(\r\n {\r\n \r\n status: event.target.outerText,\r\n searchFlag: true\r\n },\r\n () => {\r\n this.props.Status(this.state.status.toUpperCase());\r\n this.onSearchClick();\r\n }\r\n );\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n\r\n handleChange = event => {\r\n this.setState({ search: event.target.value }, () => {\r\n if (this.state.search !== \"\") {\r\n this.setState({\r\n searchFlag: true\r\n });\r\n } else {\r\n this.setState({\r\n searchFlag: false\r\n });\r\n }\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n },\r\n 300\r\n );\r\n this.props.onHandleSearchChange(this.state.search);\r\n });\r\n };\r\n\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.props.onhandleSearch(this.state.searchFlag);\r\n this.props.onHandleClickSearch(this.state.clickToSearch);\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.props.onhandleSearch(this.state.searchFlag);\r\n this.props.onHandleClickSearch(this.state.clickToSearch);\r\n });\r\n }\r\n };\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n this.selectListChange(event, value)}\r\n options={this.state.customerlist ? this.state.customerlist : []}\r\n \r\n value={\r\n localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? localStorage.getItem(\"companyName\")\r\n : \r\n\r\n this.state.company\r\n }\r\n \r\n disabled={\r\n localStorage.getItem(\"role\") === \"CUSTOMER\" ? true : false\r\n }\r\n renderOption={option => (\r\n {option.company}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n \r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n this.selectAssignToChange(event, value)}\r\n options={\r\n this.state.CampaignManagerList\r\n ? this.state.CampaignManagerList\r\n : []\r\n }\r\n renderOption={option => (\r\n \r\n {\" \"}\r\n {option.firstName + \" \" + option.lastName}\r\n \r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n \r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n \r\n
    \r\n \r\n (\r\n {option.name}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n \r\n )\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default SearchCampaign;\r\n","export const thCustomersArray = [\r\n {\r\n Header: \"Company Name\",\r\n accessor: \"Company_Name\"\r\n },\r\n {\r\n Header: \"Primary Contact\",\r\n accessor: \"Name\"\r\n },\r\n {\r\n Header: \"Phone Number\",\r\n accessor: \"contactno\"\r\n },\r\n {\r\n Header: \"Email Address\",\r\n accessor: \"email\"\r\n },\r\n\r\n {\r\n Header: \"Campaigns Not Started\",\r\n accessor: \"Notstarted\"\r\n },\r\n {\r\n Header: \"Live Campaigns\",\r\n accessor: \"Live\"\r\n },\r\n {\r\n Header: \"Paused Campaigns\",\r\n accessor: \"Paused\"\r\n },\r\n {\r\n Header: \"Completed Campaigns\",\r\n accessor: \"Completed\"\r\n },\r\n {\r\n Header: \"Active\",\r\n accessor: \"Active\"\r\n }\r\n];\r\n\r\nexport const thCampaignsArray = [\r\n // {\r\n // Header: \"# Invites\",\r\n // accessor: \"invited\"\r\n // },\r\n // {\r\n // Header: \"# Connected\",\r\n // accessor: \"NumberConnected\"\r\n // },\r\n // {\r\n // Header: \"% Connected\",\r\n // accessor: \"Connected\"\r\n // },\r\n // {\r\n // Header: \"# Engaged\",\r\n // accessor: \"Engaged\"\r\n // },\r\n // {\r\n // Header: \"% Engaged\",\r\n // accessor: \"EngagedPercent\"\r\n // },\r\n // {\r\n // Header: \"# Leads\",\r\n // accessor: \"leads\"\r\n // },\r\n // {\r\n // Header: \"% Leads\",\r\n // accessor: \"LeadsPercent\"\r\n // }\r\n];\r\nexport const thCampaignsArray2 = [];\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport \"./CampaignActiveTab.css\";\r\n\r\nclass CampaignActiveTab extends Component {\r\n static propTypes = {\r\n activeTab: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n };\r\n\r\n onClick = () => {\r\n const { label, onClick } = this.props;\r\n onClick(label);\r\n };\r\n\r\n render() {\r\n const {\r\n onClick,\r\n props: { activeTab, label },\r\n } = this;\r\n\r\n let className = \"tab-list-item\";\r\n\r\n if (activeTab === label) {\r\n className += \" tab-list-active\";\r\n }\r\n\r\n return (\r\n
  • \r\n {label}\r\n
  • \r\n );\r\n }\r\n}\r\n\r\nexport default CampaignActiveTab;\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport CampaignActiveTab from \"./CampaignActiveTab\";\r\n\r\nclass CampaignTabs extends Component {\r\n\r\n static propTypes = {\r\n children: PropTypes.instanceOf(Array).isRequired,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { \r\n \r\n activeTab: this.props.children[0].props.label,\r\n lastResponse: undefined,\r\n };\r\n }\r\n\r\n onClickTabItem = (tab) => {\r\n\r\n this.setState({ activeTab: tab }, () =>\r\n this.props.LastResponse(this.state.lastResponse)\r\n );\r\n };\r\n\r\n render() {\r\n \r\n {localStorage.getItem(\"label\") == \"Leads\" && ( \r\n this.setState({ activeTab: \"Leads\" } ,\r\n localStorage.setItem(\"label\",\"\") ,\r\n localStorage.setItem(\"path\",\"/\") \r\n ))}\r\n {localStorage.getItem(\"label\") == \"Trigger\" && ( \r\n this.setState({ activeTab: \"Trigger\" } ,\r\n localStorage.setItem(\"label\",\"\") ,\r\n localStorage.setItem(\"path\",\"/\")\r\n ))}\r\n\r\n const {\r\n onClickTabItem,\r\n props: { children },\r\n state: { activeTab },\r\n } = this;\r\n\r\n return (\r\n \r\n
    \r\n
      \r\n {children.map((child) => {\r\n const { label } = child.props;\r\n\r\n return (\r\n \r\n\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n {children.map((child) => {\r\n if (child.props.label !== activeTab) return undefined;\r\n return child.props.children;\r\n })}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n LastResponse: (response) =>\r\n dispatch({ type: \"Last_Response\", payload: response }),\r\n };\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps)(CampaignTabs);\r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport swal from \"sweetalert\";\r\nimport { salesforceApi, hubspotApi } from \"../../../config\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nimport {\r\n campaignZapierurlDetails,\r\n contactExport,\r\n // tempcontactsdetailsMuttion\r\n} from \"../../../Queries\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\n//import { isTaggedTemplateExpression } from \"@babel/types\";\r\nclass ExportToExcel extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loading: false, anchorEl: null, fileName: \"Engaged\" };\r\n }\r\n\r\n ExcelRecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let date1 = `${dd}/${mm}/${yyyy}`;\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = date1 + \" \" + time);\r\n }\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return (date = date + \" \" + time);\r\n }\r\n };\r\n exportToClick = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n event.stopPropagation();\r\n };\r\n\r\n exportToClose = () => {\r\n this.setState({ anchorEl: null });\r\n };\r\n\r\n exportToSalesforce = salesforceData => {\r\n let selectedArrayIds = [];\r\n salesforceData.map(a => {\r\n selectedArrayIds.push(a.id);\r\n });\r\n\r\n if (salesforceData.length > 0) {\r\n selectedArrayIds = JSON.stringify(selectedArrayIds);\r\n if (this.props.SalesforceToken !== null) {\r\n fetch(\r\n salesforceApi.url +\r\n `${selectedArrayIds}` +\r\n `&profileId=${this.props.Profile}` +\r\n `&access_token=${localStorage.getItem(\"token\")}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n this.exportToClose();\r\n swal(\"Successfully moved to Salesforce\", { icon: \"success\" });\r\n this.props.selectedArray();\r\n })\r\n .catch(err => {\r\n console.log(\"Error\", err);\r\n swal(\"Please try Again later\", { icon: \"warning\" });\r\n });\r\n } else {\r\n swal(\"Connect to Salesforce First\", { icon: \"warning\" });\r\n }\r\n } else {\r\n swal(\"Please select contact\", { icon: \"warning\" });\r\n }\r\n };\r\n\r\n exportToHubspot = hubspotData => {\r\n let selectedArrayIds = [];\r\n hubspotData.map(a => {\r\n selectedArrayIds.push(a.id);\r\n });\r\n\r\n if (hubspotData.length > 0) {\r\n if (this.props.HubspotToken !== null) {\r\n selectedArrayIds = JSON.stringify(selectedArrayIds);\r\n fetch(\r\n hubspotApi.url +\r\n `${selectedArrayIds}` +\r\n `&profileId=${this.props.Profile}` +\r\n `&access_token=${localStorage.getItem(\"token\")}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.response === \"success\") {\r\n this.exportToClose();\r\n swal(\"Successfully moved to hubspot\", { icon: \"success\" });\r\n this.props.selectedArray();\r\n }\r\n })\r\n .catch(err => {\r\n console.log(\"Error\", err);\r\n swal(\"Please try Again later\", { icon: \"warning\" });\r\n });\r\n } else {\r\n swal(\"Connect to Hubspot First\", { icon: \"warning\" });\r\n }\r\n } else {\r\n swal(\"Please select contact\", { icon: \"warning\" });\r\n }\r\n };\r\n\r\n createExportHistory = async data => {\r\n var variables = {\r\n data\r\n };\r\n return await fetchMethod(contactExport, variables).then(response => {\r\n return response.json();\r\n });\r\n };\r\n\r\n setDataWithZapierurl = async campaignId => {\r\n \r\n return await fetchMethod(campaignZapierurlDetails(campaignId))\r\n .then(response => response.json())\r\n .then(responseAsJson => responseAsJson.data.Campaigns.zapierurl)\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n setDataWithZapier = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n let steps = item.currentStage.Contactworkflowhistories;\r\n let List1 = steps[steps.length - 1];\r\n let Messages = item.Contactmessagesfk.Contactmessages;\r\n\r\n let message = [];\r\n Messages.map(m => {\r\n message.push(\r\n m.message +\r\n \"\\n\" +\r\n this.ExcelRecieveddateFomate(m.messagedatetime) +\r\n \" (\" +\r\n m.type +\r\n \")\"\r\n );\r\n });\r\n let wholeMessages = message.join(\"\\n \\n\");\r\n\r\n let executedonVisit = [];\r\n let x = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"VISIT\"\r\n ) {\r\n executedonVisit.push(step.executedon);\r\n }\r\n });\r\n let executedonFollow = [];\r\n let y = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"FOLLOW\"\r\n ) {\r\n executedonFollow.push(step.executedon);\r\n }\r\n });\r\n\r\n var movetolink = item.moveto;\r\n if (item.moveto == \"\" || item.moveto == null) {\r\n movetolink = (item.campaignIbfk4rel && item.campaignIbfk4rel.Campaigns && item.campaignIbfk4rel.Campaigns[0] && item.campaignIbfk4rel.Campaigns[0].zapierurl) \r\n ? item.campaignIbfk4rel.Campaigns[0].zapierurl \r\n : 'Zapier';\r\n }\r\n\r\n var campaign= item.campaignname;\r\n if (item.campaignname == \"\" || item.campaignname == null) {\r\n campaign = (item.campaignIbfk4rel && item.campaignIbfk4rel.Campaigns && item.campaignIbfk4rel.Campaigns[0] && item.campaignIbfk4rel.Campaigns[0].zapierurl) \r\n ? item.campaignIbfk4rel.Campaigns[0].name \r\n : item.campaignname;\r\n }\r\n return filedata.push({\r\n campaignname: campaign,\r\n contactid: item.id,\r\n campaignid: item.campaignid,\r\n Name: item.name,\r\n fname: item.fname,\r\n organization: item.organization,\r\n designation: item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n linkedinid: item.linkedinid,\r\n Email: item.email,\r\n phonenumber: item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n InvitationSent: item.InvitationSent,\r\n Connectedon: this.formatDate(item.connectedon),\r\n wholeMessages: wholeMessages,\r\n CurrentStage: item.CurrentStage,\r\n movedby: localStorage.getItem(\"id\"),\r\n moveto: movetolink,\r\n State: item.state,\r\n Country: item.country,\r\n surname: item.surname,\r\n Source: \"Xseller8\",\r\n\r\n LR: item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n campaignname: \"\",\r\n Name: \"\",\r\n fname: \"\",\r\n State: \"\",\r\n Country:\"\",\r\n surname:\"\",\r\n Source: \"\",\r\n organization: \"\",\r\n designation: \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n linkedinid: \"\",\r\n Email: \"\",\r\n phonenumber: \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n InvitationSent: \"\",\r\n Connectedon: \"\",\r\n wholeMessages: \"\",\r\n CurrentStage: \"\",\r\n LR: \"\",\r\n Status: \"\",\r\n contactid: \"\",\r\n campaignid: \"\",\r\n movedby: \"\",\r\n moveto: \"\"\r\n });\r\n return filedata;\r\n };\r\n setDataWithHeader = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n let steps = item.currentStage.Contactworkflowhistories;\r\n let List1 = steps[steps.length - 1];\r\n let Messages = item.Contactmessagesfk.Contactmessages;\r\n let message = [];\r\n Messages.map(m => {\r\n message.push(this.ExcelRecieveddateFomate(m.messagedatetime));\r\n\r\n message.push(m.message);\r\n });\r\n let wholeMessages = message.join(\"\\n\");\r\n\r\n let executedonVisit = [];\r\n let x = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"VISIT\"\r\n ) {\r\n executedonVisit.push(step.executedon);\r\n }\r\n });\r\n let executedonFollow = [];\r\n let y = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"FOLLOW\"\r\n ) {\r\n executedonFollow.push(step.executedon);\r\n }\r\n });\r\n return filedata.push({\r\n Name: item.name,\r\n \"First Name\": item.fname,\r\n \"Surname\" : item.surname,\r\n \"Current Company\": item.organization,\r\n \"Current Position\": item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n \"Linkedin Url\": item.linkedinid,\r\n Email: item.email,\r\n \"Phone \": item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n \"Invitation Sent\": item.InvitationSent,\r\n \"Connected On\": this.formatDate(item.connectedon),\r\n \"Messages Notes\": wholeMessages,\r\n \"Current Stage\": item.CurrentStage,\r\n\r\n \"Last Response\": item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n Name: \"\",\r\n \"First Name\": \"\",\r\n \"Current Company\": \"\",\r\n \"Current Position\": \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n \"Linkedin Url\": \"\",\r\n Email: \"\",\r\n \"Phone \": \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n \"Invitation Sent\": \"\",\r\n \"Connected On\": \"\",\r\n \"Messages Notes\": \"\",\r\n \"Current Stage\": \"\",\r\n \"Last Response\": \"\",\r\n Status: \"\"\r\n });\r\n return filedata;\r\n };\r\n\r\n exportToExcel = (fileData, fileName) => {\r\n if (this.props.fileData && this.props.fileData.length > 0) {\r\n let filedata = this.setDataWithHeader(fileData);\r\n try {\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n const name = \"Engaged\";\r\n const ws = XLSX.utils.json_to_sheet(filedata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, {\r\n bookType: \"xlsx\",\r\n type: \"array\"\r\n });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, name + fileExtension);\r\n this.exportToClose();\r\n } catch (e) {\r\n swal(\"Error\", { icon: \"error\" });\r\n }\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }, 5000);\r\n }\r\n };\r\n\r\n exportToZapier = async salesforceData => {\r\n var urldata = await this.setDataWithZapierurl(\r\n this.props.fileData[0].campaignid\r\n );\r\n var selectedcontactData = this.props.fileData;\r\n let selectedArrayIds2 = [];\r\n if (salesforceData.length == selectedcontactData.length) {\r\n let filedata = this.setDataWithZapier(selectedcontactData);\r\n selectedArrayIds2 = filedata;\r\n } else {\r\n salesforceData.map(a => {\r\n selectedcontactData.map(b => {\r\n if (a.id == b.id) {\r\n selectedArrayIds2.push({\r\n campaignname: b.campaignIbfk4rel.Campaigns[0].name,\r\n campaignid: b.campaignid,\r\n moveto: urldata,\r\n Contactmessagesfk: b.Contactmessagesfk,\r\n campaignstatus: b.campaignstatus,\r\n connect: b.connect,\r\n connectedon: b.connectedon,\r\n contactstatus: b.contactstatus,\r\n CurrentStage: b.CurrentStage,\r\n currentStage: b.currentStage,\r\n currentstatus: b.currentstatus,\r\n dateofbirth: b.dateofbirth,\r\n designation: b.designation,\r\n email: b.email,\r\n fname: b.fname,\r\n id: b.id,\r\n industry: b.industry,\r\n InvitationSent: b.InvitationSent,\r\n linkedinid: b.linkedinid,\r\n location: b.location,\r\n name: b.name,\r\n organization: b.organization,\r\n phonenumber: b.phonenumber,\r\n profileimage: b.profileimage,\r\n skype: b.skype,\r\n thanksmsgdate: b.thanksmsgdate,\r\n twitter: b.twitter,\r\n Visit: b.Visit,\r\n Follow: b.Follow,\r\n Source: \"Xseller8\",\r\n country: b.country,\r\n State: b.state,\r\n Country: b.country,\r\n surname: b.surname,\r\n });\r\n }\r\n });\r\n });\r\n\r\n let filedata = this.setDataWithZapier(selectedArrayIds2);\r\n selectedArrayIds2 = filedata;\r\n }\r\n if (urldata != \"\" && urldata != null) {\r\n var urldata2 = await this.createExportHistory(selectedArrayIds2);\r\n\r\n let selectedArrayIds = selectedArrayIds2;\r\n var dataT = JSON.stringify(selectedArrayIds);\r\n var request = require(\"request\");\r\n var options = {\r\n method: \"POST\",\r\n url: urldata,\r\n headers: {\r\n \"Content-Type\": \"text/plain\"\r\n },\r\n body: dataT\r\n };\r\n this.exportToClose();\r\n request(options, function(error, response) {\r\n if (error) {\r\n swal(\"Please try again later\", { icon: \"warning\" });\r\n } else {\r\n swal(\"Successfully moved to Zapier\", { icon: \"success\" });\r\n }\r\n });\r\n } else {\r\n swal(\r\n \"Please configure the Zapier Integration URL on Campaign Details page\",\r\n { icon: \"warning\" }\r\n );\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n const { anchorEl, fileData, fileName } = this.state;\r\n return (\r\n
    \r\n \r\n Export as\r\n \r\n \r\n \r\n Export to\r\n \r\n this.exportToZapier(this.props.SalesHubdata)}\r\n >\r\n Zapier\r\n \r\n {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }}\r\n >\r\n Excel\r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ExportToExcel;\r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\n//import Fade from \"@material-ui/core/Fade\";\r\nimport {\r\n campaignContactStatusMutation,\r\n campaignContactLogMaintain\r\n} from \"../../../Queries\";\r\n\r\nimport swal from \"sweetalert\";\r\nimport \"./Engaged.css\";\r\n\r\nclass EngagedTo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n anchorEl: this.props.target,\r\n convertTo: [\"Suspect\", \"Prospect\", \"Opportunity\"],\r\n campaignStatus: [\"Live Campaign\", \"Pause Campaign\", \"Remove Contact\"],\r\n limit: 0,\r\n offset: 0\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.convertToClickList();\r\n }\r\n convertToList = anchorEl => {\r\n let convertToMessage = [];\r\n let campaignstatus = [];\r\n let contactstatus =\r\n this.props.contactStatus !== null\r\n ? this.props.contactStatus.toLowerCase()\r\n : \"\";\r\n let campStatus =\r\n this.props.campaignStatus != null\r\n ? this.props.campaignStatus.toLowerCase()\r\n : \"\";\r\n\r\n switch (campStatus) {\r\n case \"pause\":\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[1] = \"Remove Contact\";\r\n break;\r\n }\r\n switch (contactstatus) {\r\n case \"suspect\":\r\n convertToMessage[0] = \"Prospect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"prospect\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"opportunity\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n break;\r\n default:\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n convertToMessage[2] = \"Opportunity\";\r\n }\r\n this.setState({\r\n anchorEl,\r\n convertTo: convertToMessage,\r\n campaignStatus: campaignstatus\r\n });\r\n };\r\n\r\n convertToClickList = () => {\r\n this.convertToList(this.state.anchorEl);\r\n };\r\n\r\n clickToConvertStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n switch (status) {\r\n case \"suspect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"prospect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"opportunity\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n default:\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n }\r\n this.props.onClose();\r\n };\r\n\r\n changeContactStatus = (newStatus, status, id) => {\r\n let updateStatus = {};\r\n\r\n if (newStatus !== \"NOOP\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n\r\n engaged: 0,\r\n leads: 1,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n } else {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n campaignstatus: \"Pause\",\r\n noop: 1,\r\n engaged: 0,\r\n leads: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", {\r\n icon: \"success\"\r\n }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n logMaintain = (newStatus, id) => {\r\n let newstatus = newStatus.toLowerCase();\r\n let updateLog = {};\r\n let createdBy = localStorage.getItem(\"id\");\r\n switch (newstatus) {\r\n case \"prospect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_PROSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"suspect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_SUSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"opportunity\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_OPPORTUNITY\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"noop\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_NOOP\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy,\r\n engaged: 0\r\n }\r\n };\r\n break;\r\n default: {\r\n }\r\n }\r\n\r\n if (newStatus == \"Live Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_LIVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus == \"Remove Contact\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_REMOVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n\r\n fetchMethod(campaignContactLogMaintain, updateLog)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => res)\r\n .catch(e => console.log(e));\r\n };\r\n\r\n onClickToConvertCampaignStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n this.changeCampaignStatus(newStatus, this.props.id);\r\n\r\n this.props.onClose();\r\n };\r\n\r\n changeCampaignStatus = (newStatus, id) => {\r\n let newstatus = newStatus !== null ? newStatus.toLowerCase() : \"\";\r\n let updatedBy = localStorage.getItem(\"id\");\r\n let updateStatus = {};\r\n if (newstatus === \"live campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Live\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy,\r\n engaged: 0\r\n }\r\n };\r\n }\r\n if (newstatus === \"pause campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"remove contact\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n active: 0,\r\n engaged: 0,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", { icon: \"success\" }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n convertToClose = () => {\r\n const { onCloseEngagedPopup: cb } = this.props;\r\n cb && cb();\r\n this.setState({ anchorEl: null });\r\n this.props.onClose();\r\n };\r\n\r\n render() {\r\n // const { isOpen, id, target } = this.props;\r\n const { anchorEl, convertTo } = this.state;\r\n\r\n return (\r\n
    \r\n \r\n {this.state.campaignStatus.map((newCamp, key) => {\r\n return (\r\n {\r\n this.onClickToConvertCampaignStatus(\r\n e,\r\n newCamp,\r\n this.props.campaignStatus\r\n );\r\n }}\r\n >\r\n {newCamp}\r\n \r\n );\r\n })}\r\n {\r\n this.clickToConvertStatus(e, \"NOOP\", this.props.contactStatus);\r\n }}\r\n >\r\n No Opp\r\n \r\n
    \r\n {\r\n {\r\n this.convertToClose();\r\n }\r\n }}\r\n disabled\r\n >\r\n Convert to\r\n \r\n {convertTo.map((newstatus, key) => {\r\n return (\r\n \r\n this.clickToConvertStatus(\r\n e,\r\n newstatus,\r\n this.props.contactStatus\r\n )\r\n }\r\n style={{ marginLeft: \"10px\" }}\r\n >\r\n {newstatus}\r\n \r\n );\r\n })}\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default EngagedTo;\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\n// import { UpdatefName } from \"../Campaign/campaignQueries\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n// import store from \"../../Redux/Store\";\r\n// import { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n\r\n };\r\n\r\n return (\r\n
    \r\n\r\n \r\n \"Edit\"\r\n \r\n {/* \r\n \"Edit\"\r\n */}\r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit Company Name
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst Editcompany = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"Company\",\r\n type: \"input\",\r\n placeholder: \"e.g QSS\",\r\n isRequired: true,\r\n name: \"organization\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nconst Editvalidation = Yup.object().shape({\r\n organization: Yup.string()\r\n .required(\"Please enter Company Name\")\r\n\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(100, \"Company should be less than 100 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\n// import { UpdatefName } from \"../Campaign/campaignQueries\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n// import store from \"../../Redux/Store\";\r\n// import { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \"Edit\"\r\n \r\n {/* \r\n \"Edit\"\r\n */}\r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit Position Name
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst Editposition = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"Position\",\r\n type: \"input\",\r\n placeholder: \"e.g Manager\",\r\n isRequired: true,\r\n name: \"designation\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nconst Editvalidation = Yup.object().shape({\r\n designation: Yup.string()\r\n .required(\"Please enter Position Name\")\r\n\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(100, \"Position should be less than 100 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\n// import { UpdatefName } from \"../Campaign/campaignQueries\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n// import store from \"../../Redux/Store\";\r\n// import { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \"Edit\"\r\n \r\n {/* \r\n \"Edit\"\r\n */}\r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit First Name
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst Editname = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"First Name\",\r\n type: \"input\",\r\n placeholder: \"e.g John\",\r\n isRequired: true,\r\n name: \"fname\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nconst Editvalidation = Yup.object().shape({\r\n fname: Yup.string()\r\n .required(\"Please enter First Name\")\r\n\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"First name should be less than 30 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\n// import { UpdateSurname } from \"../Campaign/campaignQueries\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n// import store from \"../../Redux/Store\";\r\n// import { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \"Edit\"\r\n \r\n {/* \r\n \"Edit\"\r\n */}\r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit Surname
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst Editsurname = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"Surname\",\r\n type: \"input\",\r\n placeholder: \"e.g John\",\r\n isRequired: true,\r\n name: \"surname\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nconst Editvalidation = Yup.object().shape({\r\n surname: Yup.string()\r\n .required(\"Please enter Surname\")\r\n\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(30, \"Surname should be less than 30 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\n// import { UpdateSurname } from \"../Campaign/campaignQueries\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n// import store from \"../../Redux/Store\";\r\n// import { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n //}\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \"Edit\"\r\n \r\n {/* \r\n \"Edit\"\r\n */}\r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit Gender
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst Editgender = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"Gender\",\r\n type: \"input\",\r\n placeholder: \"e.g Mr\",\r\n isRequired: true,\r\n name: \"gender\",\r\n value: \" \"\r\n }\r\n ]\r\n};\r\n\r\nconst Editvalidation = Yup.object().shape({\r\n gender: Yup.string()\r\n .required(\"Please enter gender\")\r\n\r\n .max(10, \"Gender should be less than 10 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\n// import { UpdateEmailContact } from \"../Campaign/campaignQueries\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n// import store from \"../../Redux/Store\";\r\n// import { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n //}\r\n };\r\n\r\n return (\r\n
    \r\n {/* \r\n \"Edit\"\r\n */}\r\n \r\n \"Edit\"\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit Email
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst Editemail = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"Email\",\r\n type: \"input\",\r\n placeholder: \"e.g abc@gmail.com\",\r\n isRequired: true,\r\n name: \"email\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nconst Editvalidation = Yup.object().shape({\r\n email: Yup.string()\r\n .required(\"Please enter email\")\r\n .matches(\r\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,}))$/,\r\n {\r\n\r\n message: \"Please enter a vaild email\",\r\n excludeEmptyString: true\r\n }\r\n )\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(50, \"Email should be less than 50 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n //}\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \"Edit\"\r\n \r\n {/* \r\n \"Edit\"\r\n */}\r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit Phone
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst Editphone = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"Phone\",\r\n type: \"input\",\r\n placeholder: \"e.g 9999996666\",\r\n isRequired: true,\r\n name: \"phonenumber\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nconst Editvalidation = Yup.object().shape({\r\n phonenumber: Yup.string()\r\n .required(\"Please enter Phone\")\r\n\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(25, \"phone number should be less than 25 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\n//import { UpdatefName } from \"../Campaign/campaignQueries\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n// import store from \"../../Redux/Store\";\r\n// import { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n //}\r\n };\r\n\r\n return (\r\n
    \r\n\r\n \r\n \"Edit\"\r\n \r\n {/* \r\n \"Edit\"\r\n */}\r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit Country Name
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst EditCountry = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"Country\",\r\n type: \"input\",\r\n placeholder: \"e.g USA\",\r\n isRequired: true,\r\n name: \"country\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nconst Editvalidation = Yup.object().shape({\r\n country: Yup.string()\r\n .required(\"Please enter Country Name\")\r\n\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(100, \"Country should be less than 100 characters\")\r\n});\r\n","import React from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\n// import { UpdatefName } from \"../Campaign/campaignQueries\";\r\nimport { Dialog } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./AddLinkedin.css\";\r\nimport Edit from \"../assets/pencil.png\";\r\n// import store from \"../../Redux/Store\";\r\n// import { updateCustomerLinkedinCreate } from \"../Customers/Customerquery\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {}\r\n}))(MuiDialogContent);\r\n\r\nexport default function CustomizedDialogs(props) {\r\n const [open, setOpen] = React.useState(\r\n props.showButton === false ? true : false\r\n );\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const renderModalContent = props => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \"Edit\"\r\n \r\n {/* \r\n \"Edit\"\r\n */}\r\n\r\n
    \r\n \r\n
    \r\n \r\n
    Edit State Name
    \r\n
    \r\n {renderModalContent(props)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst EditState = {\r\n title: \"Add New\",\r\n fields: [\r\n {\r\n label: \"State\",\r\n type: \"input\",\r\n placeholder: \"e.g Florida\",\r\n isRequired: true,\r\n name: \"state\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nconst Editvalidation = Yup.object().shape({\r\n state: Yup.string()\r\n .required(\"Please enter State Name\")\r\n\r\n .test(\"character-found\", \"Space not allowed here\", value => {\r\n if (value !== undefined && value.trim().length === 0 && value !== \"\")\r\n return false;\r\n else return true;\r\n })\r\n .max(100, \"State should be less than 100 characters\")\r\n});\r\n","import React, { Component } from \"react\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport \"./ContactDetailsAction.css\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport {\r\n campaignContactStatusMutation,\r\n campaignContactLogMaintain\r\n} from \"../../../Queries\";\r\nclass ContactDetailsAction extends Component {\r\n state = {\r\n anchorEl: null,\r\n campaignStatus: [\r\n \"Live Campaign\",\r\n \"Pause Campaign\",\r\n \"Remove Contact\",\r\n \"Convert Engaged\"\r\n ],\r\n convertTo: [\"Suspect\", \"Prospect\", \"Opportunity\"]\r\n };\r\n\r\n convertToList = () => {\r\n let convertToMessage = [];\r\n let campaignstatus = [];\r\n\r\n let contactstatus =\r\n this.props.contactStatus !== null\r\n ? this.props.contactStatus.toLowerCase()\r\n : \"\";\r\n let campStatus =\r\n this.props.campaignStatus != null\r\n ? this.props.campaignStatus.toLowerCase()\r\n : \"\";\r\n\r\n switch (campStatus) {\r\n case \"live\":\r\n campaignstatus[0] = \"Pause Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Convert Engaged\";\r\n break;\r\n case \"pause\":\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Convert Engaged\";\r\n break;\r\n default:\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[1] = \"Pause Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Convert Engaged\";\r\n }\r\n\r\n switch (contactstatus) {\r\n case \"suspect\":\r\n convertToMessage[0] = \"Prospect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"prospect\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"opportunity\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n break;\r\n default:\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n convertToMessage[2] = \"Opportunity\";\r\n }\r\n this.setState({ convertTo: convertToMessage });\r\n this.setState({ campaignStatus: campaignstatus });\r\n };\r\n\r\n convertToClickList = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n event.stopPropagation();\r\n this.convertToList();\r\n };\r\n\r\n clickToConvertStatus = (newStatus, currentStatus) => {\r\n let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n switch (status) {\r\n case \"suspect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"prospect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"opportunity\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n default:\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n }\r\n this.convertToClose();\r\n };\r\n changeContactStatus = (newStatus, status, id) => {\r\n let updateStatus = {};\r\n if (newStatus !== \"NOOP\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n campaignstatus: \"Pause\",\r\n engaged: 0,\r\n leads: 1,\r\n noop: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n } else {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n campaignstatus: \"Pause\",\r\n noop: 1,\r\n engaged: 0,\r\n leads: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", { icon: \"success\" }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n logMaintain = (newStatus, id) => {\r\n let newstatus = newStatus.toLowerCase();\r\n let updateLog = {};\r\n let createdBy = localStorage.getItem(\"id\");\r\n switch (newstatus) {\r\n case \"prospect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_PROSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"suspect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_SUSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"opportunity\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_OPPORTUNITY\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"noop\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_NOOP\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy,\r\n engaged: 0\r\n }\r\n };\r\n break;\r\n default: {\r\n }\r\n }\r\n if (newStatus === \"Pause Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_PAUSED\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Live Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_LIVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Remove Contact\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_REMOVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Convert Engaged\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_ENGAGED\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n fetchMethod(campaignContactLogMaintain, updateLog)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {})\r\n .catch(e => console.log(e));\r\n };\r\n handleClick = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n };\r\n\r\n onClickToConvertCampaignStatus = (newStatus, currentStatus) => {\r\n // let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n this.changeCampaignStatus(newStatus, this.props.id);\r\n this.convertToClose();\r\n };\r\n\r\n changeCampaignStatus = (newStatus, id) => {\r\n let newstatus = newStatus !== null ? newStatus.toLowerCase() : \"\";\r\n let updatedBy = localStorage.getItem(\"id\");\r\n let updateStatus = {};\r\n\r\n if (newstatus === \"live campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Live\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy,\r\n engaged: 0,\r\n leads: 0,\r\n noop: 0,\r\n contactstatus: null\r\n }\r\n };\r\n }\r\n if (newstatus === \"pause campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"remove contact\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n active: 0,\r\n noop: 0,\r\n contactstatus: null,\r\n leads: 0,\r\n engaged: 0,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"convert engaged\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n engaged: 1,\r\n noop: 0,\r\n contactstatus: null,\r\n leads: 0,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", { icon: \"success\" }).then(\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n )\r\n );\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n convertToClose2 = () => {};\r\n\r\n convertToClose = () => {\r\n this.setState({ anchorEl: null });\r\n };\r\n convertToClose1 = () => {\r\n this.setState({ anchorE2: null });\r\n };\r\n render() {\r\n const { anchorEl, convertTo } = this.state;\r\n return (\r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n Action\r\n \r\n {this.state.campaignStatus.map((newCamp, key) => {\r\n return (\r\n {\r\n this.onClickToConvertCampaignStatus(\r\n newCamp,\r\n this.props.campaignStatus\r\n );\r\n }}\r\n >\r\n {newCamp}\r\n \r\n );\r\n })}\r\n {\r\n this.clickToConvertStatus(\"NOOP\", this.props.contactStatus);\r\n }}\r\n >\r\n No Opp\r\n \r\n
    \r\n \r\n Convert to\r\n \r\n {convertTo.map((newstatus, key) => {\r\n return (\r\n \r\n this.clickToConvertStatus(newstatus, this.props.contactStatus)\r\n }\r\n style={{ marginLeft: \"10px\" }}\r\n >\r\n {newstatus}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ContactDetailsAction;\r\n","import CloseIcon from \"@material-ui/icons/Close\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport React, { Component } from \"react\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport photo from \"../../assets/photo.png\";\r\nimport EditCompany from \"../../LinkedinForm/EditCompany\";\r\nimport EditPosition from \"../../LinkedinForm/EditPosition\";\r\nimport EditName from \"../../LinkedinForm/EditName\";\r\nimport EditSurname from \"../../LinkedinForm/EditSurname\";\r\nimport EditGender from \"../../LinkedinForm/EditGender\";\r\nimport EditEmail from \"../../LinkedinForm/EditEmail\";\r\nimport EditPhone from \"../../LinkedinForm/EditPhone\";\r\nimport EditCountry from \"../../LinkedinForm/EditCountry\";\r\nimport EditState from \"../../LinkedinForm/EditState\";\r\nimport { getContactImageUrl } from \"../../../config\";\r\nimport {\r\n //CampaignsSteps2,\r\n getCampaignsSteps,\r\n UpdatePositionContact,\r\n UpdatefNameContact,\r\n SendMessages,\r\n UpdateCompanyContact,\r\n UpdateSurnameContact,\r\n UpdateGenderContact,\r\n UpdateEmailContact,\r\n UpdateCountryContact,\r\n UpdateStateContact,\r\n UpdatePhoneContact\r\n} from \"../campaignQueries\";\r\nimport \"./ContactDetails.css\";\r\nimport ContactDetailsAction from \"./ContactDetailsAction\";\r\nclass EngagedDetails extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n id: null,\r\n messageText: null,\r\n setOpen: false,\r\n fName: \"\",\r\n validationAlert: \"\"\r\n };\r\n }\r\n componentDidMount() {\r\n this.campaignSteps();\r\n }\r\n\r\n campaignSteps = async () => {\r\n let data = await getCampaignsSteps(this.props.Campaignid);\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n var dd = date.getDate();\r\n var mm = date.getMonth() + 1;\r\n var yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n return (date = dd + \"/\" + mm + \"/\" + yyyy);\r\n }\r\n };\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n\r\n RecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n ConnectedOnformatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.SendMessage();\r\n };\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n SendMessage = () => {\r\n var firstConn = this.props.details.connectedon;\r\n if (firstConn == null || firstConn == \"\") {\r\n swal(\r\n \"This contact is not connected. Please send the message with Linkedin\",\r\n { icon: \"warning\" }\r\n );\r\n } else {\r\n let test =\r\n this.state.messageText.trim().length > 0\r\n ? {\r\n data: {\r\n type: \"SENT\",\r\n campaignid: this.props.details.campaignid,\r\n contactid: this.props.details.id,\r\n message: this.state.messageText,\r\n realmsgdatetime: Date.now(),\r\n messagetobesent: 1\r\n }\r\n }\r\n : \"\";\r\n\r\n fetchMethod(SendMessages, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState({ messageText: \"\" }, () => {\r\n this.props.refreshMessage(this.props.details.id);\r\n });\r\n\r\n if (res.data.ContactmessagesCreate.id) {\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n };\r\n\r\n handleChange = event => {\r\n this.setState({ messageText: event.target.value });\r\n };\r\n\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n handleOpen = () => {\r\n this.setState({ setOpen: true }, () => {});\r\n };\r\n handleClose = () => {\r\n this.setState({ setOpen: false });\r\n };\r\n\r\n render() {\r\n let details = this.props.details;\r\n\r\n let fName = details !== undefined ? details.fname : \"\";\r\n // let organization = details !== undefined ? details.organization : \"\";\r\n // let designation = details !== undefined ? details.designation : \"\";\r\n // let customer = this.props.Customer;\r\n let workflowStep = this.props.ContactDetailsWorkflow;\r\n\r\n let ContactDetailsMessages = this.props.ContactDetailsMessages;\r\n\r\n let Name = details !== undefined ? details.name : \"\";\r\n let surname = details !== undefined ? details.surname : \"\";\r\n let gender = details !== undefined ? details.gender : \"\";\r\n let email = details !== undefined ? details.email : \"\";\r\n let phonenumber = details !== undefined ? details.phonenumber : \"\";\r\n let image =\r\n details !== undefined &&\r\n details.profileimage !== undefined &&\r\n details.profileimage !== null\r\n ? details.profileimage.substr(0, 5)\r\n : \"\";\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {this.props.heading}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {image === \"https\" ? (\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + details.image;\r\n }}\r\n style={{\r\n width: \"88px\",\r\n height: \"88px\",\r\n border: \"single\",\r\n borderColor: \"gray\"\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n

    {Name}

    \r\n\r\n
    \r\n
      \r\n
    • \r\n Gender \r\n :\r\n {details !== undefined ? gender : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editGender\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n First Name\r\n :\r\n {details !== undefined ? fName : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editFName\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n Surname \r\n :\r\n {details !== undefined ? surname : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditSurname\"}\r\n />\r\n \r\n
    • \r\n\r\n \r\n
    • \r\n Phone \r\n :\r\n {details !== undefined ? phonenumber : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditPhone\"}\r\n />\r\n \r\n
    • \r\n
    • \r\n Email \r\n :\r\n {details !== undefined ? email : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditEmail\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n D.O.B\r\n :\r\n \r\n {details !== undefined ? details.dateofbirth : \"\"}\r\n \r\n
    • \r\n\r\n
    • \r\n Connected On\r\n :\r\n \r\n {details !== undefined\r\n ? this.ConnectedOnformatDate(details.connectedon)\r\n : \"\"}\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Address

    \r\n
    \r\n
      \r\n
    • \r\n Location\r\n :\r\n {details !== undefined ? details.location : \"\"}\r\n
    • \r\n
    • \r\n State\r\n :\r\n \r\n {details !== undefined ? details.state : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditState\"}\r\n />\r\n \r\n \r\n
    • \r\n
    • \r\n Country\r\n :\r\n \r\n {details !== undefined ? details.country : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditCountry\"}\r\n />\r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Social Contacts

    \r\n
    \r\n
      \r\n
    • \r\n Twitter\r\n :\r\n {details !== undefined ? details.twitter : \"\"}\r\n
    • \r\n\r\n
    • \r\n Skype\r\n :\r\n {details !== undefined ? details.skype : \"\"}\r\n
    • \r\n\r\n
    • \r\n Followers\r\n :\r\n \r\n {details !== undefined ? details.numberoffollowers : \"\"}\r\n \r\n
    • \r\n\r\n
    • \r\n LinkedIn\r\n :\r\n \r\n \r\n {details !== undefined ? details.linkedinid : \"\"}\r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Professional Details

    \r\n
    \r\n
      \r\n
    • \r\n Current Position\r\n :\r\n \r\n {details !== undefined ? details.designation : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditPosition\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Company\r\n :\r\n \r\n {details !== undefined ? details.organization : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editFName\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Industry\r\n :\r\n {details !== undefined ? details.industry : \"\"}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Workflow Followed

    \r\n\r\n {workflowStep !== undefined &&\r\n workflowStep !== null &&\r\n workflowStep.length !== 0 ? (\r\n workflowStep.map((workflow, index) => {\r\n \r\n\r\n var stepDate = workflow.utctasktime;\r\n\r\n if (workflow.utctasktime == null) {\r\n\r\n stepDate = workflow.executedon;\r\n }\r\n let count = index + 1;\r\n\r\n if (\r\n workflow.contactworkflowhistoryIbfk2rel.Campaignsteps.length ===\r\n 1\r\n ) {\r\n return (\r\n
    \r\n \r\n {workflow.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .stepname === \"VISIT\"\r\n ? \"Visit\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 1\r\n ? \"Invite Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 0\r\n ? \"Invite Not Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_THANKS_MESSAGE\"\r\n ? \"Send Thanks Message\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"FOLLOW\"\r\n ? \"Follow\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_EMAIL\"\r\n ? \"Send InMail\"\r\n : \"Send Message\"}\r\n \r\n {this.formatDate(stepDate)}\r\n {this.formatDate1(stepDate)}\r\n Step{\" \" + count}\r\n
    \r\n );\r\n }\r\n })\r\n ) : (\r\n
    No workflow Followed
    \r\n )}\r\n\r\n
    \r\n

    Messages

    \r\n {ContactDetailsMessages !== undefined &&\r\n ContactDetailsMessages !== null &&\r\n ContactDetailsMessages.length !== 0\r\n ? ContactDetailsMessages.map(message => {\r\n \r\n\r\n var messageDate = message.utcmessagetime;\r\n\r\n if (message.utcmessagetime == null) {\r\n\r\n messageDate = message.messagedatetime;\r\n }\r\n if (\r\n message.type === \"SENT\" &&\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
    \r\n {message.message}\r\n
    \r\n
    \r\n \r\n \r\n {messageDate\r\n ? this.formatDate(messageDate)\r\n : \"\"}\r\n \r\n \r\n {this.formatDate1(messageDate)}\r\n \r\n
    \r\n
    \r\n );\r\n } else if (\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
    \r\n {message.message}\r\n
    \r\n
    \r\n \r\n {messageDate\r\n ? this.formatDate(messageDate)\r\n : \"\"}\r\n \r\n \r\n {this.formatDate1(messageDate)}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n })\r\n : \"\"}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default EngagedDetails;\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport \"../../tables/reactTable.css\";\r\nimport ReactTableComponent from \"../../tables/ReactTable\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\n\r\nimport editicon from \"../../../../src/Components/assets/edit.png\";\r\nimport { getContactImageUrl } from \"../../../config\";\r\nimport {\r\n campaignEngagedTabList,\r\n campaignEngagedTabSelectList,\r\n campaignEngegedExport,\r\n //campaignContactStatusMutation\r\n} from \"../../../Queries\";\r\n\r\nimport { Checkbox } from \"pretty-checkbox-react\";\r\nimport SearchIcon from \"../../assets/search.png\";\r\nimport { TextField, Button, IconButton } from \"@material-ui/core\";\r\nimport swal from \"sweetalert\";\r\nimport Calender from \"../../assets/calendar.png\";\r\nimport \"../CampaignTables.css\";\r\nimport \"../CampaignTabs.css\";\r\n//import ReactDOM from \"react-dom\";\r\nimport \"date-fns\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\n\r\n//import Photo from \"../../assets/photo.png\";\r\nimport \"../CampaignTabs.css\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker\r\n} from \"@material-ui/pickers\";\r\nimport \"./CampaignEngagedTab.css\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport ExportTo from \"./EngagedToExcel\";\r\nimport { Drawer } from \"@material-ui/core\";\r\nimport EngagedTo from \"./EngagedTo\";\r\n\r\nimport EngagedDetails from \"./EngagedDetails\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Engaged,\r\n dateFilter,\r\n engagedData,\r\n Profileid,\r\n plannedDate,\r\n UpdatefollowUp\r\n} from \"../campaignQueries\";\r\n\r\nconst moment = require(\"moment\");\r\nclass CampaignEngagedTab extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n loading: false,\r\n limit: 0,\r\n offset: 0,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n campaignEngagedList: [],\r\n dataGrid: [],\r\n Engage: undefined,\r\n contactStatus: null,\r\n campaignStatus: null,\r\n columnFilter: \"\",\r\n shortfilter: false,\r\n contactId: null,\r\n Currentstage: [],\r\n selectDateResponse: undefined,\r\n DateResponse: undefined,\r\n EndDateResponse: undefined,\r\n invitationSent: [],\r\n totalCount: 0,\r\n startDate: null,\r\n endDate: null,\r\n show: \"\",\r\n openDetails: false,\r\n Row: \"\",\r\n ContactDetailsWorkflow: [],\r\n ContactDetailsMessages: [],\r\n selected: {},\r\n selectAll: 0,\r\n selectedArray: [],\r\n campaignEngagedAllSelectedList: [],\r\n profileid: undefined,\r\n salesforcetoken: null,\r\n hubspottoken: null,\r\n isSearching: false,\r\n campaignEngegedExportData: [],\r\n clientY: null,\r\n clientX: null\r\n };\r\n }\r\n componentDidMount() {\r\n this.ExportData();\r\n this.setState({ show: false }, () =>\r\n this.props.detailEdit(this.state.show)\r\n );\r\n this.EngagedData();\r\n this.Profile();\r\n }\r\n\r\n ExportData = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignEngegedExport, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n \r\n this.setState({\r\n campaignEngegedExportData: res.data.allContacts.Contacts\r\n });\r\n });\r\n };\r\n\r\n Profile = () => {\r\n fetchMethod(Profileid(this.props.campaignId))\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n profileid:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].id,\r\n hubspottoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].hubspottoken,\r\n salesforcetoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].salesforcetoken\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n emptySelectedArray = () => {\r\n this.setState({ selectedArray: [], selectAll: false, selected: {} });\r\n };\r\n EngagedData = () => {\r\n let filter = {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n engaged: 1,\r\n noop: 0,\r\n campaignstatus: \"PAUSE\"\r\n }\r\n };\r\n fetchMethod(engagedData, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({ dataGrid: res.data.allContacts.Contacts })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => swal({ title: e, icon: \"warning\" }));\r\n };\r\n\r\n handleStartDate1 = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n \r\n handleStartDate = date => {\r\n this.setState({ endDate: null });\r\n this.props.selected_Response(this.state.Engage);\r\n this.setState(\r\n {\r\n startDate: this.formatDate4(date)\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n };\r\n handleEndDate = date => {\r\n this.props.selected_Response(this.state.Engage);\r\n this.setState(\r\n {\r\n endDate: this.formatDate4(date)\r\n },\r\n () => {\r\n this.campaignDateListData();\r\n }\r\n );\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n setEngagedListData = response => {\r\n this.setState(\r\n {\r\n campaignEngagedList: response.data.allContacts.Contacts,\r\n totalCount: response.data.allContacts.totalCount\r\n }\r\n \r\n );\r\n };\r\n\r\n afterCampaignEnddateData = () => {\r\n const filter = {\r\n where: {\r\n type: \"RECEIVED\",\r\n order: \"createdon\",\r\n messagedatetime: {\r\n gt: this.state.endDate + \" 23:59:59\"\r\n },\r\n and: [\r\n {\r\n or:\r\n this.state.campaignEngagedList.length > 0\r\n ? this.state.campaignEngagedList.map(id => {\r\n return { contactid: id.id };\r\n })\r\n : [{ contactid: \"\" }]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n fetchMethod(dateFilter, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState(\r\n {\r\n EndDateResponse:\r\n res.data.allContactmessages !== undefined &&\r\n res.data.allContactmessages !== null\r\n ? res.data.allContactmessages.Contactmessages\r\n : undefined\r\n },\r\n () => {\r\n this.campaignGridData();\r\n // this.onSearchClick();\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n swal({ title: e, icon: \"warning\" });\r\n });\r\n };\r\n campaignGridData = () => {\r\n let data = [];\r\n\r\n if (\r\n this.state.EndDateResponse &&\r\n this.state.DateResponse &&\r\n this.state.EndDateResponse.length > 0 &&\r\n this.state.DateResponse.length > 0\r\n ) {\r\n this.state.DateResponse.map(date => {\r\n return this.state.EndDateResponse.map(id => {\r\n if (date.contactid !== id.contactid) {\r\n return data.push(date.contactid);\r\n } else {\r\n return {};\r\n }\r\n });\r\n });\r\n } else {\r\n this.state.DateResponse && this.state.DateResponse.length > 0\r\n ? this.state.DateResponse.map(id => {\r\n return data.push(id.contactid);\r\n })\r\n : data.push(\"\");\r\n }\r\n const filter = {\r\n where: {\r\n type: \"RECEIVED\",\r\n order: \"createdon\",\r\n and: [\r\n {\r\n or:\r\n data !== \"\"\r\n ? data.map(id => {\r\n return { contactid: id };\r\n })\r\n : [{ contactid: \"\" }]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n fetchMethod(dateFilter, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState(\r\n {\r\n selectDateResponse:\r\n res.data.allContactmessages !== undefined &&\r\n res.data.allContactmessages !== null\r\n ? res.data.allContactmessages.Contactmessages\r\n : undefined\r\n },\r\n () => {\r\n this.props.selected_Response(this.state.selectDateResponse);\r\n this.onSearchClick();\r\n }\r\n );\r\n })\r\n .catch(e => swal({ title: e, icon: \"warning\" }));\r\n };\r\n\r\n campaignDateListData = () => {\r\n const filter = {\r\n where: {\r\n type: \"RECEIVED\",\r\n order: \"createdon\",\r\n\r\n and: [\r\n {\r\n or:\r\n this.state.dataGrid.length > 0\r\n ? this.state.dataGrid.map(id => {\r\n return { contactid: id.id };\r\n })\r\n : [{ contactid: \"\" }]\r\n },\r\n {\r\n or:\r\n this.state.startDate !== null && this.state.endDate !== null\r\n ? [\r\n {\r\n messagedatetime: {\r\n between: [\r\n this.state.startDate + \" 00:00:00\",\r\n this.state.endDate + \" 23:59:59\"\r\n ]\r\n }\r\n }\r\n ]\r\n : [{}]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n fetchMethod(dateFilter, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState(\r\n {\r\n DateResponse:\r\n res.data.allContactmessages !== undefined &&\r\n res.data.allContactmessages !== null\r\n ? res.data.allContactmessages.Contactmessages\r\n : undefined\r\n },\r\n () => {\r\n this.afterCampaignEnddateData();\r\n }\r\n );\r\n })\r\n .catch(e => swal({ title: e, icon: \"warning\" }));\r\n };\r\n\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n }\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n handleSearchChange = event => {\r\n this.setState({\r\n search: event.target.value,\r\n searchFlag: true,\r\n isSearching: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n this.setState({ isSearching: false });\r\n },\r\n 200\r\n );\r\n };\r\n\r\n formatDate3 = date => {\r\n \r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(date);\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n formatDate4 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(date);\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${mm}/${dd}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n formatDate2 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${mm}/${dd}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n gettingAllDataFromQuery = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignEngagedTabSelectList, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n let allselectedIds = [];\r\n responseAsJson.data.allContacts.Contacts.map(i => {\r\n allselectedIds.push({ id: i.id });\r\n });\r\n this.setState(\r\n {\r\n campaignEngagedAllSelectedList: allselectedIds\r\n },\r\n () => {\r\n let selectedArr = [];\r\n let consolidateArray = [];\r\n this.state.campaignEngagedAllSelectedList.map(item => {\r\n consolidateArray[item.id] = true;\r\n selectedArr.push({ id: item.id });\r\n });\r\n this.setState({\r\n selectAll: true,\r\n selected: consolidateArray,\r\n selectedArray: selectedArr\r\n });\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n onRowSelected = sarray => {\r\n if (sarray.length === this.state.totalCount) {\r\n this.setState({ selectAll: true });\r\n } else {\r\n this.setState({ selectAll: false });\r\n }\r\n };\r\n\r\n toggleRowNew = (id, rowInfo) => {\r\n const newSelected = Object.assign({}, this.state.selected);\r\n newSelected[id] = !this.state.selected[id];\r\n this.setState({\r\n selected: newSelected\r\n });\r\n const { selectedArray } = this.state;\r\n let arr = selectedArray.filter(val => val.id !== id);\r\n if (!arr.length) {\r\n this.setState(\r\n {\r\n selectedArray: []\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n if (arr.length === selectedArray.length) {\r\n this.setState(\r\n {\r\n selectedArray: [...selectedArray, rowInfo]\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n selectedArray: arr\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n };\r\n\r\n toggleSelectAllRow = isChecked => {\r\n if (isChecked) {\r\n this.gettingAllDataFromQuery();\r\n } else {\r\n this.setState({\r\n selectAll: false,\r\n selectedArray: [],\r\n selected: {}\r\n });\r\n }\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n search: \"\",\r\n searchFlag: false,\r\n startDate: null,\r\n endDate: null,\r\n selectDateResponse: undefined,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.props.selected_Response(this.state.selectDateResponse);\r\n this.onSearchClick();\r\n // this.ExportData();\r\n }\r\n );\r\n };\r\n fetchRefresh = response => {\r\n this.fetchMessage(response);\r\n };\r\n\r\n fetchMessage = response => {\r\n fetchMethod(Engaged(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => swal({ title: e, icon: \"warning\" }));\r\n };\r\n\r\n onTableRowClick = rowInfo => {\r\n this.setState({ Row: rowInfo.original.id });\r\n };\r\n\r\n fetchContactDrawerDetails = (side, open, row) => event => {\r\n\r\n fetchMethod(Engaged(row.id))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsWorkflow:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactworkflowhistoryfk\r\n .Contactworkflowhistories\r\n : \"\",\r\n\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\",\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\",\r\n getCampaignId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n getCustomer:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null &&\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns.length > 0\r\n ? res.data.allContacts.Contacts[0].Campaigns.Campaigns[0]\r\n .Customers.Customers[0]\r\n : \"\",\r\n contactStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].contactstatus\r\n : \"\",\r\n campaignStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignstatus\r\n : \"\",\r\n contactId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].id\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => swal({ title: e, icon: \"warning\" }));\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n closeDetails = () => {\r\n this.setState({ openDetails: false });\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ columnFilter: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ columnFilter: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter = () => {\r\n this.setState({ columnFilter: \"organization asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n CompanyFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"organization desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter = () => {\r\n this.setState({ columnFilter: \"designation asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n PositionFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"designation desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter = () => {\r\n this.setState({ columnFilter: \"location asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n LocationFilter1 = () => {\r\n this.setState({ columnFilter: \"location desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n connectedonFilter = () => {\r\n this.setState({ columnFilter: \"connectedon asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n connectedonFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"connectedon desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n InvitationsentFilter = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n InvitationsentFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n currentstatusFilter = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n currentstatusFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n lastResponseFilter = () => {\r\n this.setState(\r\n { columnFilter: \"lastresponse asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n lastResponseFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"lastresponse desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n filter = () => {\r\n const search = this.state.clickToSearch\r\n ? this.state.search.trim().replace(/\\s\\s+/g, \" \")\r\n : \"\";\r\n\r\n const like = `%${search}%`;\r\n const filter = {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n active: 1,\r\n engaged: 1,\r\n leads: 0, //when again recieved msg in leads\r\n noop: 0,\r\n campaignstatus: \"PAUSE\",\r\n order: this.state.columnFilter,\r\n\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.props.selectDateResponse !== undefined\r\n ? this.props.selectDateResponse.length > 0\r\n ? this.props.selectDateResponse.map(id => {\r\n return {\r\n id: id.contactid\r\n };\r\n })\r\n : [{ id: \"\" }]\r\n : [{}]\r\n }\r\n ]\r\n }\r\n };\r\n return filter;\r\n };\r\n handleStatusChange2 = (row, updateStatus, date) => event => {\r\n updateStatus = {\r\n where: { id: row.original.id },\r\n data: {\r\n followup: this.formatDate3(event)\r\n }\r\n };\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(UpdatefollowUp, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully updated\", { icon: \"success\" }).then(() => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n });\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n showEngagedToPopup = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n\r\n showEngagedToPopup2 = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n render() {\r\n const { selectedEngagedRow } = this.state;\r\n const campaignEngagedList = [...this.state.campaignEngagedList];\r\n const campaignEngegedExportData = [...this.state.campaignEngegedExportData];\r\n const CampaignEngagedListHeaders = [\r\n {\r\n Header: obj => {\r\n return (\r\n {\r\n this.toggleSelectAllRow(e.target.checked);\r\n }}\r\n />\r\n );\r\n },\r\n Cell: rowInfo => {\r\n return (\r\n \r\n this.toggleRowNew(rowInfo.original.id, rowInfo.original)\r\n }\r\n />\r\n );\r\n }\r\n },\r\n {\r\n Header: \"Image\",\r\n accessor: \"Image\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Name\r\n \r\n );\r\n },\r\n accessor: \"Name\",\r\n width: 150,\r\n Cell: row => (\r\n \r\n {row.original.name}\r\n \r\n )\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Company\r\n \r\n );\r\n },\r\n accessor: \"organization\",\r\n width: 150,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Position\r\n \r\n );\r\n },\r\n accessor: \"designation\",\r\n width: 150,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Location\r\n \r\n );\r\n },\r\n accessor: \"location\",\r\n width: 150,\r\n },\r\n \r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Connected On\r\n \r\n );\r\n },\r\n accessor: \"Connectedon\",\r\n width: 110,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Invitation Sent\r\n \r\n );\r\n },\r\n accessor: \"InvitationSent\",\r\n width: 110,\r\n },\r\n \r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Stage\r\n \r\n );\r\n },\r\n accessor: \"CurrentStage\",\r\n width: 110,\r\n },\r\n\r\n \r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Last Response\r\n \r\n );\r\n },\r\n accessor: \"LR\",\r\n width: 110,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Follow Up\r\n \r\n );\r\n },\r\n accessor: \"followup\",\r\n\r\n Cell: row => {\r\n return (\r\n \r\n {row.original.followup}\r\n\r\n \r\n \r\n \r\n }\r\n InputProps={{\r\n disableUnderline: true\r\n }}\r\n helperText={\"\"}\r\n />\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n {\r\n Header: \" Status\",\r\n accessor: \"CampaignStatus\"\r\n },\r\n {\r\n Header: \"\",\r\n Cell: row => {\r\n return (\r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n }\r\n }\r\n ];\r\n\r\n campaignEngagedList.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = this.formatDate(list.lastresponse.split(\"T\")[0]);\r\n }\r\n\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup !== \"\" &&\r\n list.followup\r\n ) {\r\n \r\n var date = this.formatDate2(list.followup.split(\"T\")[0]);\r\n var cmTime = new Date(date);\r\n var dateday = cmTime.getDay();\r\n if (dateday >= 3) {\r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 5);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n } else {\r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 3);\r\n\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n }\r\n }\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup !== \"\" &&\r\n list.followup\r\n ) {\r\n \r\n list.followup = this.formatDate(list.followup.split(\"T\")[0]);\r\n }\r\n\r\n let image =\r\n list.profileimage !== undefined && list.profileimage !== null\r\n ? list.profileimage.substr(0, 5)\r\n : \"\";\r\n if (image === \"https\") {\r\n list.Image = (\r\n \r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + list.image;\r\n }}\r\n style={{ borderRadius: \"50%\", width: \"30px\" }}\r\n />\r\n \r\n );\r\n } else {\r\n list.Image = (\r\n \r\n \r\n \r\n );\r\n }\r\n \r\n\r\n list.Name = (\r\n \r\n {list.name}\r\n \r\n );\r\n\r\n list.CampaignStatus =\r\n list.campaignstatus !== null && list.campaignstatus !== undefined\r\n ? list.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : list.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : \"Live\"\r\n : \"\";\r\n\r\n if (\r\n list.connectedon !== undefined &&\r\n list.connectedon !== null &&\r\n list.connectedon\r\n ) {\r\n list.Connectedon = this.formatDate1(list.connectedon);\r\n }\r\n\r\n if (\r\n list.connectedon !== undefined &&\r\n list.connectedon !== null &&\r\n list.connectedon\r\n ) {\r\n list.Connectedon = this.formatDate(list.connectedon);\r\n }\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = this.formatDate(\r\n list.invitationsent.split(\"T\")[0]\r\n );\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n if (\r\n list.invitesent == 0 &&\r\n (list.currentstatus == \"Invite Sent\" ||\r\n list.currentstatus == \"Invite Not Sent\")\r\n ) {\r\n list.CurrentStage = \"Invite not Sent\";\r\n } else {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n \r\n }\r\n\r\n return null;\r\n });\r\n\r\n campaignEngegedExportData.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = list.lastresponse;\r\n }\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = list.invitationsent.split(\"T\")[0];\r\n }\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n });\r\n\r\n let filter = this.filter();\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n this.closeDetails()}\r\n >\r\n this.closeDetails()}\r\n details={this.state.getData}\r\n Campaignid={this.state.getCampaignId}\r\n Customer={this.state.getCustomer}\r\n contactStatus={this.state.contactStatus}\r\n campaignStatus={this.state.campaignStatus}\r\n id={this.state.contactId}\r\n tableRerender={this.child.current}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n ContactDetailsWorkflow={this.state.ContactDetailsWorkflow}\r\n ContactDetailsMessages={this.state.ContactDetailsMessages}\r\n heading={\"Contact Details\"}\r\n />\r\n \r\n {/* )} */}\r\n
    \r\n \r\n \r\n }\r\n InputProps={{\r\n disableUnderline: true\r\n }}\r\n helperText={\"\"}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n }\r\n InputProps={{\r\n disableUnderline: true\r\n }}\r\n helperText={\"\"}\r\n />\r\n \r\n
    \r\n
    \r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
    \r\n
    \r\n\r\n {selectedEngagedRow && (\r\n this.ExportData()}\r\n target={selectedEngagedRow && selectedEngagedRow.anchorEl}\r\n contactStatus={selectedEngagedRow.original.contactstatus}\r\n campaignStatus={selectedEngagedRow.original.campaignstatus}\r\n id={selectedEngagedRow.original.id}\r\n clientY={this.state.clientY}\r\n clientX={this.state.clientX}\r\n tableRerender={this.child.current}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n onClose={this.onCloseEngagedPopup}\r\n className={this.state.Row}\r\n />\r\n )} \r\n\r\n
    \r\n
    \r\n

    \r\n Total Records: {this.state.totalCount}\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\nconst mapStateToProps = state => {\r\n return {\r\n startDate: state.startDate,\r\n endDate: state.endDate,\r\n selectDateResponse: state.selectDateResponse,\r\n campaignEngagedList: state.campaignEngagedList\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n selected_Response: data =>\r\n dispatch({ type: \"Last_Response\", payload: data })\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CampaignEngagedTab);\r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport {\r\n tempcontactsdetailsMuttion,\r\n campaignContactLogMaintain\r\n} from \"../../../Queries\";\r\nimport swal from \"sweetalert\";\r\nimport \"./Engaged.css\";\r\n\r\nclass ConvertToTemp extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n anchorEl: this.props.target,\r\n convertTo: [\"Suspect\", \"Prospect\", \"Opportunity\"],\r\n campaignStatus: [\"Remove Contact\"],\r\n limit: 0,\r\n offset: 0,\r\n campaignContactsExportData: []\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.convertToClickList();\r\n }\r\n\r\n convertToList = anchorEl => {\r\n let convertToMessage = [];\r\n let campaignstatus = [];\r\n\r\n let contactstatus =\r\n this.props.contactStatus !== undefined\r\n ? this.props.contactStatus.toLowerCase()\r\n : \"\";\r\n let campStatus =\r\n this.props.campaignStatus != undefined\r\n ? this.props.campaignStatus.toLowerCase()\r\n : \"\";\r\n\r\n switch (campStatus) {\r\n default:\r\n campaignstatus[2] = \"Remove Contact\";\r\n }\r\n\r\n switch (contactstatus) {\r\n default:\r\n }\r\n this.setState({\r\n anchorEl,\r\n convertTo: convertToMessage,\r\n campaignStatus: campaignstatus\r\n });\r\n };\r\n\r\n convertToClickList = () => {\r\n this.convertToList(this.state.anchorEl);\r\n };\r\n\r\n clickToConvertStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n switch (status) {\r\n case \"suspect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"prospect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"opportunity\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n default:\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n }\r\n this.props.onClose();\r\n };\r\n\r\n changeContactStatus = (newStatus, status, id) => {\r\n let updateStatus = {};\r\n if (newStatus !== \"NOOP\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n campaignstatus: \"Pause\",\r\n leads: 1,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n } else {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n campaignstatus: \"Pause\",\r\n noop: 1,\r\n engaged: 0,\r\n leads: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n }\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(tempcontactsdetailsMuttion, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", {\r\n icon: \"success\"\r\n }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n this.convertToClose.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n logMaintain = (newStatus, id) => {\r\n let newstatus = newStatus.toLowerCase();\r\n let updateLog = {};\r\n let createdBy = localStorage.getItem(\"id\");\r\n switch (newstatus) {\r\n case \"prospect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n campaignstatus: \"Pause\",\r\n action: \"CONVERT_TO_PROSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"suspect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n campaignstatus: \"Pause\",\r\n action: \"CONVERT_TO_SUSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"opportunity\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n campaignstatus: \"Pause\",\r\n action: \"CONVERT_TO_OPPORTUNITY\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"noop\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n campaignstatus: \"Pause\",\r\n engaged: 0,\r\n action: \"CONVERT_TO_NOOP\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n default: {\r\n }\r\n }\r\n\r\n fetchMethod(campaignContactLogMaintain, updateLog)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => res)\r\n .catch(e => console.log(e));\r\n };\r\n\r\n onClickToConvertCampaignStatus = (e, newStatus) => {\r\n e.stopPropagation();\r\n this.changeCampaignStatus(newStatus, this.props.id);\r\n this.props.onClose();\r\n };\r\n\r\n changeCampaignStatus = (newStatus, id) => {\r\n let newstatus = newStatus !== null ? newStatus.toLowerCase() : \"\";\r\n let updatedBy = localStorage.getItem(\"id\");\r\n let updateStatus = {};\r\n if (newstatus === \"live campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Live\",\r\n engaged: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"pause campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"remove contact\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n active: 0\r\n }\r\n };\r\n }\r\n if (newstatus === \"convert engaged\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n engaged: 1,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(tempcontactsdetailsMuttion, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.TempcontactsdetailsUpsertWithWhere) {\r\n swal(\"Successfully converted\", { icon: \"success\" }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n this.props.refresh();\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n convertToClose = () => {\r\n const { onCloseEngagedPopup: cb } = this.props;\r\n cb && cb();\r\n this.setState({ anchorEl: null });\r\n this.props.onClose();\r\n };\r\n\r\n render() {\r\n const { isOpen, id, target } = this.props;\r\n const { anchorEl, convertTo } = this.state;\r\n return (\r\n
    \r\n \r\n {this.state.campaignStatus.map((newCamp, key) => {\r\n return (\r\n {\r\n this.onClickToConvertCampaignStatus(e, newCamp);\r\n }}\r\n >\r\n {newCamp}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n );\r\n }\r\n}\r\nexport default ConvertToTemp;\r\n","import React, { Component } from \"react\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport {\r\n // getCampaignsSteps,\r\n SendMessages,\r\n UpdatefName,\r\n UpdateCompany,\r\n UpdatePosition,\r\n UpdateSurname,\r\n UpdateCountry,\r\n UpdateState,\r\n UpdateGender\r\n} from \"../campaignQueries\";\r\nimport \"./ContactDetails.css\";\r\nimport photo from \"../../assets/photo.png\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport \"./CampaignTempListDetails.css\";\r\nimport swal from \"sweetalert\";\r\nimport EditName from \"../../LinkedinForm/EditName\";\r\nimport EditCompany from \"../../LinkedinForm/EditCompany\";\r\nimport EditSurname from \"../../LinkedinForm/EditSurname\";\r\nimport EditGender from \"../../LinkedinForm/EditGender\";\r\nimport EditPosition from \"../../LinkedinForm/EditPosition\";\r\nimport EditCountry from \"../../LinkedinForm/EditCountry\";\r\nimport EditState from \"../../LinkedinForm/EditState\";\r\nclass CampaignTempListDetails extends Component {\r\n constructor(props) {\r\n \r\n super();\r\n this.state = {\r\n id: null,\r\n messageText: null,\r\n setOpen: false,\r\n fName: \"\",\r\n validationAlert: \"\"\r\n };\r\n }\r\n componentDidMount() {\r\n \r\n }\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n var dd = date.getDate();\r\n var mm = date.getMonth() + 1;\r\n var yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n return (date = dd + \"/\" + mm + \"/\" + yyyy);\r\n }\r\n };\r\n\r\n RecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n ConnectedOnformatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.SendMessage();\r\n };\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n handleOpen = () => {\r\n this.setState({ setOpen: true }, () => {});\r\n };\r\n handleClose = () => {\r\n this.setState({ setOpen: false });\r\n };\r\n handleChange = e => {\r\n this.setState({ fName: e.target.value });\r\n };\r\n handleUpdatefName = () => {\r\n if (!this.state.fName) {\r\n return;\r\n }\r\n let test = {\r\n where: {\r\n id: this.props.details.id\r\n },\r\n data: {\r\n fname: this.state.fName\r\n }\r\n };\r\n\r\n fetchMethod(UpdatefName, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.TempcontactsdetailsUpsertWithWhere.fname) {\r\n this.props.refreshMessage(this.props.details.id);\r\n swal(\"Name Updated Successfully\", { icon: \"success\" });\r\n this.handleClose();\r\n this.props.onSearchClick();\r\n } else {\r\n swal(\"Name Update Unsuccessfully \", { icon: \"warning\" });\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n SendMessage = () => {\r\n let test =\r\n this.state.messageText.trim().length > 0\r\n ? {\r\n data: {\r\n type: \"SENT\",\r\n contactid: this.props.details.id,\r\n message: this.state.messageText\r\n }\r\n }\r\n : \"\";\r\n\r\n fetchMethod(SendMessages, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState({ messageText: \"\" }, () => {\r\n this.props.refreshMessage(this.props.details.id);\r\n });\r\n\r\n if (res.data.ContactmessagesCreate.id) {\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n render() {\r\n \r\n let details = this.props.details;\r\n\r\n // let customer = this.props.Customer;\r\n // let workflowStep = this.props.ContactDetailsWorkflow;\r\n let ContactDetailsMessages = this.props.ContactDetailsMessages;\r\n\r\n let Name = details !== undefined ? details.name : \"\";\r\n let fName = details !== undefined ? details.fname : \"\";\r\n // let organization = details !== undefined ? details.organization : \"\";\r\n // let designation = details !== undefined ? details.designation : \"\";\r\n let surname = details !== undefined ? details.surname : \"\";\r\n let gender = details !== undefined ? details.gender : \"\";\r\n let image =\r\n details !== undefined &&\r\n details.profileimage !== undefined &&\r\n details.profileimage !== null\r\n ? details.profileimage.substr(0, 5)\r\n : \"\";\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {this.props.heading}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {image === \"https\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n

    {Name}

    \r\n\r\n
    \r\n
      \r\n
    • \r\n Gender \r\n :\r\n {details !== undefined ? gender : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editGender\"}\r\n />\r\n \r\n
    • \r\n
    • \r\n First Name \r\n :\r\n {details !== undefined ? fName : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editFName\"}\r\n />\r\n \r\n
    • \r\n
    • \r\n Surname \r\n :\r\n {details !== undefined ? surname : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditSurname\"}\r\n />\r\n \r\n
    • \r\n \r\n \r\n
    • \r\n Phone\r\n :\r\n \r\n {details !== undefined ? details.phonenumber : \"\"}\r\n \r\n
    • \r\n
    • \r\n Email\r\n :\r\n {details !== undefined ? details.email : \"\"}\r\n
    • \r\n
    • \r\n D.O.B\r\n :\r\n \r\n {details !== undefined ? details.dateofbirth : \"\"}\r\n \r\n
    • \r\n
    • \r\n Connected On\r\n :\r\n \r\n {details !== undefined\r\n ? this.ConnectedOnformatDate(details.connectedon)\r\n : \"\"}\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Address

    \r\n
    \r\n
      \r\n
    • \r\n Location\r\n :\r\n {details !== undefined ? details.location : \"\"}\r\n
    • \r\n
    • \r\n State\r\n :\r\n \r\n {details !== undefined ? details.state : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditState\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Country\r\n :\r\n \r\n {details !== undefined ? details.country : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditCountry\"}\r\n />\r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Social Contacts

    \r\n
    \r\n
      \r\n
    • \r\n Twitter\r\n :\r\n {details !== undefined ? details.twitter : \"\"}\r\n
    • \r\n\r\n
    • \r\n Skype\r\n :\r\n {details !== undefined ? details.skype : \"\"}\r\n
    • \r\n\r\n
    • \r\n Followers\r\n :\r\n \r\n {details !== undefined ? details.numberoffollowers : \"\"}\r\n \r\n
    • \r\n\r\n
    • \r\n LinkedIn\r\n :\r\n \r\n \r\n {details !== undefined ? details.profileurl : \"\"}\r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Professional Details

    \r\n
    \r\n
      \r\n
    • \r\n Current Position\r\n :\r\n \r\n {details !== undefined ? details.designation : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditPosition\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Current Company\r\n :\r\n \r\n {details !== undefined ? details.organization : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditCompany\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Industry\r\n :\r\n {details !== undefined ? details.industry : \"\"}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Message Received

    \r\n {ContactDetailsMessages !== undefined &&\r\n ContactDetailsMessages !== null &&\r\n ContactDetailsMessages.length !== 0\r\n ? ContactDetailsMessages.map(message => {\r\n if (\r\n message.type === \"SENT\" &&\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
    \r\n {message.message}\r\n
    \r\n
    \r\n \r\n {message.messagedatetime\r\n ? message.messagedatetime\r\n .split(\"T\")[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\")\r\n : \"\"}\r\n \r\n \r\n {this.formatDate1(message.messagedatetime)}\r\n \r\n
    \r\n
    \r\n );\r\n } else if (\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
    \r\n {message.message}\r\n
    \r\n
    \r\n \r\n {message.messagedatetime\r\n .split(\"T\")[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\")}\r\n \r\n \r\n {this.RecieveddateFomate(message.messagedatetime)}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n })\r\n : \"\"}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CampaignTempListDetails;\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport \"../../tables/reactTable.css\";\r\nimport Delete from \"../../assets/delete1.png\";\r\nimport { TextField, MenuItem, Button } from \"@material-ui/core\";\r\nimport { Checkbox } from \"pretty-checkbox-react\";\r\nimport ReactTableComponent from \"../../tables/ReactTable\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport ConvertToTemp from \"./ConvertToTemp\";\r\nimport { Link } from \"react-router-dom\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport NextArrow from \"../../assets/upAerrow.png\";\r\n\r\nimport { URLDATA2 } from \"../../../config\";\r\nimport {\r\n getCampaignType,\r\n CampaignTempListsInfo,\r\n listCampaignTempList,\r\n CampaignTempListsSelectAll,\r\n fetchTempListDetail,\r\n GetAllCampaign,\r\n //CampaignMoveAllContactToTemp,\r\n ExcelDataQuery\r\n} from \"../../../Queries\";\r\n\r\nimport Photo from \"../../assets/photo.png\";\r\nimport SearchIcon from \"../../assets/search.png\";\r\nimport \"../CampaignTables.css\";\r\nimport \"../CampaignTabs.css\";\r\nimport swal from \"sweetalert\";\r\nimport \"./CampaignTempList.css\";\r\nimport \"./styles.scss\";\r\nimport {\r\n MoveToContact,\r\n RemoveToContact,\r\n MoveAllContactToTemp\r\n} from \"../../../config\";\r\n\r\nimport { Drawer } from \"@material-ui/core\";\r\nimport CampaignTempListDetails from \"./CampaignTempListDetails\";\r\nvar moment = require(\"moment\");\r\nclass CampaignTempListTab extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = this.state = {\r\n \r\n search: \"\",\r\n loading: false,\r\n campaignTempList: [],\r\n campaignTempListIds: [],\r\n campaignTempAllSelectedList: [],\r\n selected: {},\r\n selectAll: 0,\r\n limit: 0,\r\n offset: 0,\r\n selectedArray: [],\r\n tempListTotalCount: 0,\r\n clickToSearch: false,\r\n tempLists: [],\r\n selectCamp: \"Select a campaign\",\r\n tempListId: \"\",\r\n searchFlag: false,\r\n selectedListValue: \"All\",\r\n selectedListName: \"All\",\r\n status: \"\",\r\n show: false,\r\n totalDataLength: \"\",\r\n disabled: false,\r\n getData: [],\r\n openDetails: false,\r\n getCampaignId: null,\r\n NewCampaignid: null,\r\n getCustomer: [],\r\n contactStatus: null,\r\n campaignStatus: null,\r\n ContactDetailsWorkflow: [],\r\n ContactDetailsMessages: [],\r\n Row: \"\",\r\n columnFilter: \"\",\r\n shortfilter: false,\r\n selectedCampaignValue: \"\",\r\n CampaignList: [],\r\n campaignContactsExportData: [],\r\n campaignNatureType:1,\r\n tempRow: null,\r\n };\r\n }\r\n\r\n componentDidMount() { \r\n this.campaignType(); \r\n this.fetchTempList();\r\n this.getAllData();\r\n this.fetchCampaignList();\r\n this.setState({ NewCampaignid: this.props.campaignId });\r\n }\r\n\r\n ExportData = () => {\r\n const filter = this.filter();\r\n\r\n fetchMethod(fetchTempListDetail, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n campaignContactsExportData:\r\n res.data.allTempcontactsdetails.Tempcontactsdetails\r\n });\r\n });\r\n };\r\n\r\n onTableRowClick = rowInfo => {\r\n this.setState({ Row: rowInfo.original.id });\r\n };\r\n fetchCampaignList = () => {\r\n \r\n let filter = {};\r\n if (\r\n this.props.type === \"Follow on Campaign\" ||\r\n this.props.type === \"Nurture Campaign\" ||\r\n this.props.type === \"1st connection campaign\"||\r\n this.props.type === \"In mail campaign\"\r\n ) {\r\n if (this.props.datafromcampaign) {\r\n filter = {\r\n where: {\r\n linkedinid: this.props.linkedinid,\r\n id: this.props.datafromcampaign\r\n }\r\n };\r\n } else {\r\n filter = {\r\n where: {\r\n linkedinid: this.props.linkedinid,\r\n active: 1,\r\n order: \"name asc\"\r\n }\r\n };\r\n }\r\n } else {\r\n filter = {\r\n where: {\r\n id: 0,\r\n linkedinid: this.props.linkedinid,\r\n active: 1,\r\n order: \"name asc\"\r\n }\r\n };\r\n }\r\n\r\n fetchMethod(GetAllCampaign, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n responseAsJson !== undefined\r\n ? this.setState({\r\n loading: false,\r\n show: false,\r\n CampaignList: responseAsJson.data.allCampaigns.Campaigns\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(() => {\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n campaignType = () => {\r\n \r\n const filterId = {\r\n where: {\r\n id: this.props.campaignId,\r\n \r\n }\r\n };\r\n fetchMethod(getCampaignType, filterId)\r\n .then(response => {\r\n \r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n \r\n this.setState(\r\n\r\n {\r\n campaignNatureType: responseAsJson.data.allCampaigns.Campaigns[0].salesNavigator\r\n },\r\n \r\n )\r\n \r\n })\r\n .catch(() => {\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n fetchTempList = () => {\r\n const filter = {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n active: 1,\r\n order: \"name asc\"\r\n }\r\n };\r\n fetchMethod(listCampaignTempList, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n responseAsJson !== undefined\r\n ? this.setState(\r\n {\r\n loading: false,\r\n show: false,\r\n tempLists: responseAsJson.data.allTemplists.Templists\r\n },\r\n () => {\r\n let sortedList = [...this.state.tempLists];\r\n\r\n this.setState({ tempLists: sortedList });\r\n this.props.detailEdit(this.state.show);\r\n }\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(() => {\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n getAllData = () => {\r\n const filter = this.filter();\r\n fetchMethod(CampaignTempListsSelectAll, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n responseAsJson !== undefined\r\n ? this.setState({\r\n totalDataLength:\r\n responseAsJson.data.allTempcontactsdetails !== undefined\r\n ? responseAsJson.data.allTempcontactsdetails\r\n .Tempcontactsdetails.length\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(() => {\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n campaignTempListResponse = response => {\r\n this.setState({\r\n campaignTempList:\r\n response.data.allTempcontactsdetails.Tempcontactsdetails,\r\n tempListTotalCount: response.data.allTempcontactsdetails.totalCount\r\n });\r\n };\r\n\r\n handleList = event => {\r\n this.setState(\r\n {\r\n selectedListValue: event.target.value,\r\n moveToContactCount: 0\r\n },\r\n () => {\r\n const templists = [...this.state.tempLists];\r\n templists.map(list => {\r\n if (this.state.selectedListValue === \"All\") {\r\n this.setState({ tempListId: \"\", clickToSearch: true }, () => {\r\n this.onSearchClick();\r\n });\r\n } else if (this.state.selectedListValue === list.id) {\r\n this.setState(\r\n {\r\n tempListId: list.id,\r\n selectedListName: list.name,\r\n clickToSearch: true\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n return null;\r\n });\r\n }\r\n );\r\n };\r\n ExportCampaignListData = async () => {\r\n swal(\"Successfully Imported\", { icon: \"success\" }).then(value => {\r\n this.fetchTempList();\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n\r\n await fetch(\r\n `${MoveAllContactToTemp.url}` +\r\n `${this.state.selectedCampaignValue}` +\r\n `&newCampaignId=${this.props.campaignId}` +\r\n `&access_token=${MoveAllContactToTemp.token}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(res => {\r\n if (res.status === 401) {\r\n localStorage.clear();\r\n window.location = \"/\";\r\n } else {\r\n }\r\n });\r\n };\r\n HeaderinExcel = () => {\r\n let fileData = [];\r\n fileData.push({\r\n FirstName: \"\",\r\n LastName: \"\",\r\n JobTitle: \"\",\r\n EmailAddress: \"\",\r\n LinkedInProfile: \"\",\r\n Country: \"\",\r\n Company: \"\",\r\n Industry: \"\"\r\n });\r\n return fileData;\r\n };\r\n handleCampaignExportList = event => {\r\n this.setState(\r\n {\r\n selectedCampaignValue: event.target.value\r\n },\r\n () => {\r\n this.ExportCampaignListData();\r\n }\r\n );\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n search: \"\",\r\n selectedListName: \"All\",\r\n selectCamp: \"Select a campaign\",\r\n tempListId: \"\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n }\r\n );\r\n };\r\n exportToExcel = () => {\r\n let filedata = this.HeaderinExcel();\r\n\r\n let fileName =\r\n moment().format(\"YYYYMMDDhmmss\") + +Math.floor(Math.random() * 100);\r\n\r\n try {\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".csv\";\r\n const ws = XLSX.utils.json_to_sheet(filedata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, {\r\n bookType: \"csv\",\r\n type: \"array\"\r\n });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName + fileExtension);\r\n } catch (e) {\r\n swal(\"Error\", { icon: \"error\" });\r\n }\r\n };\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n }\r\n };\r\n onDrop = acceptedFile => {\r\n this.setState({ selectExcel: acceptedFile[0] }, () => console.log(\"e\"));\r\n };\r\n\r\n uploadExcel = () => {\r\n let formData = new FormData();\r\n\r\n let name = this.state.selectExcel.name;\r\n var newFile = new File([this.state.selectExcel], name, {\r\n type: this.state.selectExcel.type\r\n });\r\n\r\n formData.append(\"file\", newFile);\r\n let xhr = new XMLHttpRequest();\r\n\r\n xhr.open(\"POST\", URLDATA2.uploadUrl);\r\n\r\n xhr.send(formData);\r\n\r\n // let fileName = \"\";\r\n\r\n // xhr.onreadystatechange = function() {\r\n // if (xhr.readyState === XMLHttpRequest.DONE) {\r\n // fileName = JSON.parse(xhr.responseText).name;\r\n // }\r\n // };\r\n\r\n fetchMethod(\r\n ExcelDataQuery(\r\n this.state.selectExcel.name + \"&&\" + this.state.NewCampaignid\r\n )\r\n )\r\n .then(res => res.json())\r\n .then(res => {\r\n // var bb = res.Body;\r\n const filter = this.filter();\r\n fetchMethod(fetchTempListDetail, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n campaignContactsExportData:\r\n res.data.allTempcontactsdetails.Tempcontactsdetails\r\n });\r\n });\r\n\r\n this.setState({ selectExcel: undefined });\r\n if (res.data.TempcontactsdetailsUploadUserExcel != null) {\r\n swal(res.data.TempcontactsdetailsUploadUserExcel, {\r\n icon: \"success\"\r\n }).then(value => {\r\n this.fetchTempList();\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n } else {\r\n swal(res.errors[0].message, {\r\n icon: \"warning\"\r\n }).then(value => {\r\n this.fetchTempList();\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n }\r\n })\r\n .catch(e => {\r\n if (e.message) {\r\n swal({\r\n title: \"FAILED\",\r\n \r\n icon: \"warning\"\r\n });\r\n }\r\n });\r\n };\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n handleSearchChange = event => {\r\n this.setState({\r\n search: event.target.value,\r\n searchFlag: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n },\r\n 200\r\n );\r\n };\r\n///////////////////////////////////////////////////////////////\r\n gettingAllDataFromQuery = () => {\r\n const filter = this.filter();\r\n fetchMethod(CampaignTempListsSelectAll, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n let allselectedIds = [];\r\n responseAsJson.data.allTempcontactsdetails.Tempcontactsdetails.map(\r\n i => {\r\n return allselectedIds.push({ id: i.id });\r\n }\r\n );\r\n this.setState(\r\n {\r\n campaignTempAllSelectedList: allselectedIds\r\n },\r\n () => {\r\n let selectedArr = [];\r\n let consolidateArray = [];\r\n this.state.campaignTempAllSelectedList.map(item => {\r\n consolidateArray[item.id] = true;\r\n return selectedArr.push({ id: item.id });\r\n });\r\n this.setState({\r\n selectAll: true,\r\n selected: consolidateArray,\r\n selectedArray: selectedArr\r\n });\r\n }\r\n );\r\n })\r\n .catch(() => {\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n onRowSelected = sarray => {\r\n \r\n if (sarray.length === this.state.tempListTotalCount) {\r\n this.setState({ selectAll: true });\r\n } else {\r\n this.setState({ selectAll: false });\r\n }\r\n };\r\n\r\n toggleRowNew = (id, rowInfo) => {\r\n const newSelected = Object.assign({}, this.state.selected);\r\n newSelected[id] = !this.state.selected[id];\r\n this.setState({\r\n selected: newSelected\r\n });\r\n const { selectedArray } = this.state;\r\n let arr = selectedArray.filter(val => val.id !== id);\r\n if (!arr.length) {\r\n this.setState(\r\n {\r\n selectedArray: []\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n if (arr.length === selectedArray.length) {\r\n this.setState(\r\n {\r\n selectedArray: [...selectedArray, rowInfo]\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n selectedArray: arr\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n };\r\n\r\n toggleSelectAllRow = isChecked => {\r\n if (isChecked) {\r\n this.gettingAllDataFromQuery();\r\n } else {\r\n this.setState({\r\n selectAll: false,\r\n selectedArray: [],\r\n selected: {}\r\n });\r\n }\r\n };\r\n\r\n convertArrayToObject = selectedArrayIds => {\r\n let SelectedIds = [];\r\n selectedArrayIds.map(item => {\r\n return SelectedIds.push({ id: item, createdBy: MoveToContact.createdBy });\r\n });\r\n return SelectedIds;\r\n };\r\n\r\n OnMoveToContactClick = async selectedArray => {\r\n \r\n this.setState({ disabled: true });\r\n let selectedArrayIds = [];\r\n selectedArray.map(a => {\r\n return selectedArrayIds.push(a.id);\r\n });\r\n let SelectedIds = this.convertArrayToObject(selectedArrayIds);\r\n if (selectedArray.length > 0) {\r\n SelectedIds = JSON.stringify(SelectedIds);\r\n await fetch(\r\n `${MoveToContact.url}` +\r\n `${SelectedIds}` +\r\n `&access_token=${MoveToContact.token}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(res => {\r\n if (res.status === 401) {\r\n localStorage.clear();\r\n window.location = \"/\";\r\n } else {\r\n this.setState(\r\n { selectedArray: [], selectAll: false, selected: {} },\r\n () => {\r\n this.fetchTempList();\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n swal(\"Successfully moved\", { icon: \"success\" });\r\n this.setState({ disabled: false });\r\n }\r\n );\r\n }\r\n })\r\n .catch(e => {\r\n swal({ title: \"Please try again after some time\", icon: \"warning\" });\r\n this.setState({ disabled: false });\r\n });\r\n } else {\r\n swal(\"Please select contact\", { icon: \"warning\" });\r\n this.setState({ disabled: false });\r\n }\r\n };\r\n OnRemoveToContactClick = async selectedArray => {\r\n this.setState({ disabled: true });\r\n let selectedArrayIds = [];\r\n selectedArray.map(a => {\r\n return selectedArrayIds.push(a.id);\r\n });\r\n let SelectedIds = this.convertArrayToObject(selectedArrayIds);\r\n if (selectedArray.length > 0) {\r\n SelectedIds = JSON.stringify(SelectedIds);\r\n await fetch(\r\n `${RemoveToContact.url}` +\r\n `${SelectedIds}` +\r\n `&access_token=${RemoveToContact.token}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(res => {\r\n if (res.status === 401) {\r\n localStorage.clear();\r\n window.location = \"/\";\r\n } else {\r\n this.setState(\r\n { selectedArray: [], selectAll: false, selected: {} },\r\n () => {\r\n this.fetchTempList();\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n swal(\"Successfully Removed\", { icon: \"success\" });\r\n this.setState({ disabled: false });\r\n }\r\n );\r\n }\r\n })\r\n .catch(e => {\r\n swal({ title: \"Please try again after some time\", icon: \"warning\" });\r\n this.setState({ disabled: false });\r\n });\r\n } else {\r\n swal(\"Please select contact\", { icon: \"warning\" });\r\n this.setState({ disabled: false });\r\n }\r\n };\r\n\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n fetchContactDrawerDetails = (side, open, row) => event => {\r\n \r\n const test = {\r\n where: { id: row.id }\r\n };\r\n\r\n fetchMethod(fetchTempListDetail, test)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allTempcontactsdetails !== undefined\r\n ? this.setState({\r\n getData:\r\n res.data.allTempcontactsdetails !== undefined &&\r\n res.data.allTempcontactsdetails !== null\r\n ? res.data.allTempcontactsdetails.Tempcontactsdetails[0]\r\n : \"\",\r\n ContactDetailsMessages:\r\n res.data.allTempcontactsdetails !== undefined &&\r\n res.data.allTempcontactsdetails !== null\r\n ? res.data.allTempcontactsdetails.Tempcontactsdetails[0]\r\n .ContactDetailsMessages.Tempcontactmessages\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n });\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n\r\n closeDetails = () => {\r\n \r\n this.setState({ openDetails: false, getData: []});\r\n };\r\n\r\n fetchRefresh = response => {\r\n this.fetchName(response);\r\n };\r\n fetchName = response => {\r\n \r\n const test = {\r\n where: { id: response }\r\n };\r\n\r\n fetchMethod(fetchTempListDetail, test)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allTempcontactsdetails !== undefined\r\n ? this.setState({\r\n getData:\r\n res.data.allTempcontactsdetails !== undefined &&\r\n res.data.allTempcontactsdetails !== null\r\n ? res.data.allTempcontactsdetails.Tempcontactsdetails[0]\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n });\r\n };\r\n\r\n filter = () => {\r\n const search = this.state.clickToSearch\r\n ? this.state.search.trim().replace(/\\s\\s+/g, \" \")\r\n : \"\";\r\n\r\n const like = `%${search}%`;\r\n const filt =\r\n this.state.tempListId !== \"\"\r\n ? {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n templistid: this.state.tempListId,\r\n active: \"1 \",\r\n order: this.state.columnFilter,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n },\r\n first: this.state.offset,\r\n last:this.state.limit,\r\n }\r\n : {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n active: \"1 \",\r\n order: this.state.columnFilter,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n },\r\n first: this.state.offset,\r\n last:this.state.limit,\r\n };\r\n\r\n return filt;\r\n };\r\n NameFilter = () => {\r\n this.setState({ columnFilter: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ columnFilter: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter = () => {\r\n this.setState({ columnFilter: \"organization asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n CompanyFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"organization desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter = () => {\r\n this.setState({ columnFilter: \"designation asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n PositionFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"designation desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter = () => {\r\n this.setState({ columnFilter: \"location asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n LocationFilter1 = () => {\r\n this.setState({ columnFilter: \"location desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n showEngagedToPopup = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n this.ExportData();\r\n };\r\n\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n render() {\r\n \r\n let filt = this.filter();\r\n\r\n const { selectedEngagedRow } = this.state;\r\n // const campaignContactsExportData = [\r\n // ...this.state.campaignContactsExportData\r\n // ];\r\n\r\n var totalContactAll = this.state.tempListTotalCount;\r\n let moveToContactCount = this.state.selectedArray.length;\r\n const newCampaignTempList = [...this.state.campaignTempList];\r\n newCampaignTempList.map(profile => {\r\n let image =\r\n profile.profileimage !== undefined && profile.profileimage !== null\r\n ? profile.profileimage.substr(0, 5)\r\n : \"\";\r\n if (image === \"https\") {\r\n profile.Image = (\r\n \r\n \r\n \r\n );\r\n } else {\r\n profile.Image = (\r\n \r\n );\r\n }\r\n \r\n return null;\r\n });\r\n\r\n const CampaignTempLists = [\r\n {\r\n Header: obj => {\r\n return (\r\n {\r\n this.toggleSelectAllRow(e.target.checked);\r\n }}\r\n />\r\n );\r\n },\r\n width: 38,\r\n Cell: rowInfo => {\r\n return (\r\n \r\n this.toggleRowNew(rowInfo.original.id, rowInfo.original)\r\n }\r\n />\r\n );\r\n }\r\n },\r\n {\r\n Header: \"Image\",\r\n accessor: \"Image\",\r\n width: 55,\r\n \r\n },\r\n // {\r\n // Header: \"Gender\",\r\n // accessor: \"gender\",\r\n \r\n // },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Name\r\n \r\n );\r\n },\r\n accessor: \"name\",\r\n width: 170,\r\n Cell: row => (\r\n \r\n {row.original.name}\r\n \r\n )\r\n },\r\n {\r\n Header: \"First Name\",\r\n accessor: \"fname\"\r\n },\r\n {\r\n Header: \"Surname\",\r\n accessor: \"surname\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Company\r\n \r\n );\r\n },\r\n accessor: \"organization\",\r\n width: 200,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Position\r\n \r\n );\r\n },\r\n accessor: \"designation\",\r\n width: 150,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Location\r\n \r\n );\r\n },\r\n accessor: \"location\",\r\n width: 200,\r\n },\r\n {\r\n Header: \"Headline\",\r\n accessor: \"headline\",\r\n width: 200,\r\n },\r\n \r\n {\r\n Header: \"Action\",\r\n Cell: row => (\r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
    \r\n )\r\n }\r\n ];\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n this.closeDetails()}\r\n >\r\n this.closeDetails()}\r\n details={this.state.getData}\r\n tableRerender={this.child.current}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n ContactDetailsMessages={this.state.ContactDetailsMessages}\r\n heading={\"Contact Details\"}\r\n />\r\n \r\n\r\n
    \r\n (\r\n {option.name}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n \r\n\r\n
    \r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n Reset All\r\n \r\n
    \r\n\r\n {this.state.campaignNatureType === 0 && (\r\n \r\n
    \r\n \r\n Sample File\r\n \r\n \r\n {this.state.selectExcel ? (\r\n \r\n Upload Excel\r\n \r\n ) : (\r\n
    \r\n this.onDrop(e.target.files)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {this.state.selectExcel ? (\r\n
      \r\n
    • {this.state.selectExcel.name}
    • \r\n \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n )}\r\n
    \r\n\r\n {(this.props.type === \"Nurture Campaign\" ||\r\n this.props.type === \"Follow on Campaign\" ||\r\n this.props.type === \"1st connection campaign\" ||\r\n this.props.type === \"In mail campaign\") && (\r\n
    \r\n (\r\n {option.name}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n \r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n )}\r\n \r\n {selectedEngagedRow && (\r\n this.ExportData()}\r\n target={selectedEngagedRow && selectedEngagedRow.anchorEl}\r\n contactStatus={selectedEngagedRow.original.contactstatus}\r\n campaignStatus={selectedEngagedRow.original.campaignstatus}\r\n id={selectedEngagedRow.original.id}\r\n clientY={this.state.clientY}\r\n clientX={this.state.clientX}\r\n tableRerender={this.child.current}\r\n onClose={this.onCloseEngagedPopup}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n />\r\n )}\r\n \r\n
    \r\n\r\n
    \r\n \r\n {moveToContactCount === 0 || moveToContactCount === undefined\r\n ? \"No out of \" + `${totalContactAll}` + \" contacts are selected\"\r\n : moveToContactCount === 1\r\n ? `${moveToContactCount}` +\r\n \" out of \" +\r\n `${totalContactAll}` +\r\n \" contacts are selected\"\r\n : `${moveToContactCount}` +\r\n \" out of \" +\r\n `${totalContactAll}` +\r\n \" contacts are selected\"}\r\n \r\n\r\n this.OnMoveToContactClick(this.state.selectedArray)}\r\n disabled={this.state.disabled}\r\n >\r\n \r\n Move selected to contacts\r\n \r\n \r\n\r\n \r\n this.OnRemoveToContactClick(this.state.selectedArray)\r\n }\r\n disabled={this.state.disabled}\r\n >\r\n \r\n Remove selected\r\n \r\n \r\n {/*
    */}\r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CampaignTempListTab;\r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport swal from \"sweetalert\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nimport { campaignZapierurlDetails, contactExport } from \"../../../Queries\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nclass ExportToExcel extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loading: false, anchorEl: null, fileName: \"NoOpp\" };\r\n }\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n ExcelRecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let date1 = `${dd}/${mm}/${yyyy}`;\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = date1 + \" \" + time);\r\n }\r\n };\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return (date = date + \" \" + time);\r\n }\r\n };\r\n exportToClick = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n event.stopPropagation();\r\n };\r\n\r\n exportToClose = () => {\r\n this.setState({ anchorEl: null });\r\n };\r\n createExportHistory = async data => {\r\n var variables = {\r\n data\r\n };\r\n return await fetchMethod(contactExport, variables).then(response => {\r\n return response.json();\r\n });\r\n };\r\n setDataWithZapierurl = async campaignId => {\r\n return await fetchMethod(campaignZapierurlDetails(campaignId))\r\n .then(response => response.json())\r\n .then(responseAsJson => responseAsJson.data.Campaigns.zapierurl)\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n setDataWithZapier = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n let steps = item.currentStage.Contactworkflowhistories;\r\n // let List1 = steps[steps.length - 1];\r\n let Messages = item.Contactmessagesfk.Contactmessages;\r\n\r\n let message = [];\r\n Messages.map(m => {\r\n message.push(\r\n m.message +\r\n \"\\n\" +\r\n this.ExcelRecieveddateFomate(m.messagedatetime) +\r\n \" (\" +\r\n m.type +\r\n \")\"\r\n );\r\n });\r\n let wholeMessages = message.join(\"\\n \\n\");\r\n\r\n let executedonVisit = [];\r\n let x = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"VISIT\"\r\n ) {\r\n executedonVisit.push(step.executedon);\r\n }\r\n });\r\n let executedonFollow = [];\r\n let y = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"FOLLOW\"\r\n ) {\r\n executedonFollow.push(step.executedon);\r\n }\r\n });\r\n var movetolink = item.moveto;\r\n if (item.moveto == \"\" || item.moveto == null) {\r\n movetolink = \"Zapier\";\r\n }\r\n return filedata.push({\r\n contactid: item.id,\r\n campaignid: item.campaignid,\r\n Name: item.name,\r\n fname: item.fname,\r\n organization: item.organization,\r\n designation: item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n linkedinid: item.linkedinid,\r\n Email: item.email,\r\n phonenumber: item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n InvitationSent: item.InvitationSent,\r\n Connectedon: this.formatDate(item.connectedon),\r\n wholeMessages: wholeMessages,\r\n CurrentStage: item.CurrentStage,\r\n movedby: localStorage.getItem(\"id\"),\r\n moveto: movetolink,\r\n\r\n LR: item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n Name: \"\",\r\n fname: \"\",\r\n organization: \"\",\r\n designation: \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n linkedinid: \"\",\r\n Email: \"\",\r\n phonenumber: \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n InvitationSent: \"\",\r\n Connectedon: \"\",\r\n wholeMessages: \"\",\r\n CurrentStage: \"\",\r\n LR: \"\",\r\n Status: \"\",\r\n contactid: \"\",\r\n campaignid: \"\",\r\n movedby: \"\",\r\n moveto: \"\"\r\n });\r\n return filedata;\r\n };\r\n setDataWithHeader = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n let steps = item.currentStage.Contactworkflowhistories;\r\n let List1 = steps[steps.length - 1];\r\n let Messages = item.Contactmessagesfk.Contactmessages;\r\n let message = [];\r\n Messages.map(m => {\r\n message.push(this.ExcelRecieveddateFomate(m.messagedatetime));\r\n\r\n message.push(m.message);\r\n });\r\n let wholeMessages = message.join(\"\\n\");\r\n\r\n let executedonVisit = [];\r\n let x = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"VISIT\"\r\n ) {\r\n executedonVisit.push(step.executedon);\r\n }\r\n });\r\n let executedonFollow = [];\r\n let y = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"FOLLOW\"\r\n ) {\r\n executedonFollow.push(step.executedon);\r\n }\r\n });\r\n return filedata.push({\r\n Name: item.name,\r\n \"First Name\": item.fname,\r\n \"Current Company\": item.organization,\r\n \"Current Position\": item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n \"Linkedin Url\": item.linkedinid,\r\n Email: item.email,\r\n \"Phone \": item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n \"Invitation Sent\": item.InvitationSent,\r\n \"Connected On\": this.formatDate(item.connectedon),\r\n \"Messages Notes\": wholeMessages,\r\n \"Current Stage\": item.CurrentStage,\r\n\r\n \"Last Response\": item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n Name: \"\",\r\n \"First Name\": \"\",\r\n \"Current Company\": \"\",\r\n \"Current Position\": \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n \"Linkedin Url\": \"\",\r\n Email: \"\",\r\n \"Phone \": \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n \"Invitation Sent\": \"\",\r\n \"Connected On\": \"\",\r\n \"Messages Notes\": \"\",\r\n \"Current Stage\": \"\",\r\n \"Last Response\": \"\",\r\n Status: \"\"\r\n });\r\n return filedata;\r\n };\r\n\r\n setDataWithHeader = fileData => {\r\n let filedata = [];\r\n\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n let steps = item.currentStage.Contactworkflowhistories;\r\n let List1 = steps[steps.length - 1];\r\n let Messages = item.Contactmessagesfk.Contactmessages;\r\n let message = [];\r\n Messages.map(m => {\r\n message.push(this.ExcelRecieveddateFomate(m.messagedatetime));\r\n\r\n message.push(m.message);\r\n });\r\n let wholeMessages = message.join(\"\\n\");\r\n let executedonVisit = [];\r\n let x = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"VISIT\"\r\n ) {\r\n executedonVisit.push(step.executedon);\r\n }\r\n });\r\n let executedonFollow = [];\r\n let y = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"FOLLOW\"\r\n ) {\r\n executedonFollow.push(step.executedon);\r\n }\r\n });\r\n return filedata.push({\r\n Name: item.name,\r\n \"First Name\": item.fname,\r\n \"Current Company\": item.organization,\r\n \"Current Position\": item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n \"Linkedin Url\": item.linkedinid,\r\n Email: item.email,\r\n \"Phone \": item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n \"Invitation Sent\": item.InvitationSent,\r\n \"Connected On\": this.formatDate(item.connectedon),\r\n \"Messages Notes\": wholeMessages,\r\n \"Current Stage\": item.CurrentStage,\r\n\r\n \"Last Response\": item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n Name: \"\",\r\n \"First Name\": \"\",\r\n \"Current Company\": \"\",\r\n \"Current Position\": \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n \"Linkedin Url\": \"\",\r\n Email: \"\",\r\n \"Phone \": \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n \"Invitation Sent\": \"\",\r\n \"Connected On\": \"\",\r\n \"Messages Notes\": \"\",\r\n \"Current Stage\": \"\",\r\n \"Last Response\": \"\",\r\n Status: \"\"\r\n });\r\n return filedata;\r\n };\r\n\r\n exportToExcel = (fileData, fileName) => {\r\n if (this.props.fileData && this.props.fileData.length > 0) {\r\n let filedata = this.setDataWithHeader(fileData);\r\n try {\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n const name = \"NoOpp\";\r\n const ws = XLSX.utils.json_to_sheet(filedata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, {\r\n bookType: \"xlsx\",\r\n type: \"array\"\r\n });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n\r\n FileSaver.saveAs(data, name + fileExtension);\r\n this.exportToClose();\r\n } catch (e) {\r\n swal(\"Error\", { icon: \"error\" });\r\n }\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }, 5000);\r\n }\r\n };\r\n\r\n exportToZapier = async salesforceData => {\r\n var urldata = await this.setDataWithZapierurl(\r\n this.props.fileData[0].campaignid\r\n );\r\n var selectedcontactData = this.props.fileData;\r\n let selectedArrayIds2 = [];\r\n if (salesforceData.length == selectedcontactData.length) {\r\n let filedata = this.setDataWithZapier(selectedcontactData);\r\n\r\n selectedArrayIds2 = filedata;\r\n } else {\r\n salesforceData.map(a => {\r\n selectedcontactData.map(b => {\r\n if (a.id == b.id) {\r\n selectedArrayIds2.push({\r\n campaignid: b.campaignid,\r\n moveto: urldata,\r\n Contactmessagesfk: b.Contactmessagesfk,\r\n campaignstatus: b.campaignstatus,\r\n connect: b.connect,\r\n connectedon: b.connectedon,\r\n contactstatus: b.contactstatus,\r\n CurrentStage: b.CurrentStage,\r\n currentStage: b.currentStage,\r\n currentstatus: b.currentstatus,\r\n dateofbirth: b.dateofbirth,\r\n designation: b.designation,\r\n email: b.email,\r\n fname: b.fname,\r\n id: b.id,\r\n industry: b.industry,\r\n InvitationSent: b.InvitationSent,\r\n linkedinid: b.linkedinid,\r\n location: b.location,\r\n name: b.name,\r\n organization: b.organization,\r\n phonenumber: b.phonenumber,\r\n profileimage: b.profileimage,\r\n skype: b.skype,\r\n thanksmsgdate: b.thanksmsgdate,\r\n twitter: b.twitter,\r\n Visit: b.Visit,\r\n Follow: b.Follow\r\n });\r\n }\r\n });\r\n });\r\n\r\n let filedata = this.setDataWithZapier(selectedArrayIds2);\r\n selectedArrayIds2 = filedata;\r\n }\r\n if (urldata != \"\" && urldata != null) {\r\n var urldata = await this.createExportHistory(selectedArrayIds2);\r\n let selectedArrayIds = selectedArrayIds2;\r\n var dataT = JSON.stringify(selectedArrayIds);\r\n var request = require(\"request\");\r\n var options = {\r\n method: \"POST\",\r\n url: urldata,\r\n headers: {\r\n \"Content-Type\": \"text/plain\"\r\n },\r\n body: dataT\r\n };\r\n this.exportToClose();\r\n request(options, function(error, response) {\r\n if (error) {\r\n swal(\"Please try again later\", { icon: \"warning\" });\r\n } else {\r\n swal(\"Successfully moved to Zapier\", { icon: \"success\" });\r\n }\r\n });\r\n } else {\r\n swal(\r\n \"Please configure the Zapier Integration URL on Campaign Details page\",\r\n { icon: \"warning\" }\r\n );\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n const { anchorEl, fileData, fileName } = this.state;\r\n return (\r\n
    \r\n \r\n Export as\r\n \r\n \r\n \r\n Export to\r\n \r\n this.exportToZapier(this.props.SalesHubdata)}\r\n >\r\n Zapier\r\n \r\n {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }}\r\n >\r\n Excel\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ExportToExcel;\r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem } from \"@material-ui/core\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport {\r\n campaignContactStatusMutation,\r\n campaignContactLogMaintain\r\n} from \"../../../Queries\";\r\nimport swal from \"sweetalert\";\r\nimport \"./Engaged.css\";\r\n\r\nclass NoOppTo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n anchorEl: this.props.target,\r\n convertTo: [\"Suspect\", \"Prospect\", \"Opportunity\"],\r\n campaignStatus: [\"Live Campaign\", \"Engaged Contact\", \"Remove Contact\"],\r\n limit: 0,\r\n offset: 0\r\n };\r\n }\r\n componentDidMount() {\r\n this.convertToClickList();\r\n }\r\n convertToList = () => {\r\n let convertToMessage = [];\r\n let campaignstatus = [];\r\n let contactstatus =\r\n this.props.contactStatus !== null\r\n ? this.props.contactStatus.toLowerCase()\r\n : \"\";\r\n let campStatus =\r\n this.props.campaignStatus != null\r\n ? this.props.campaignStatus.toLowerCase()\r\n : \"\";\r\n switch (campStatus) {\r\n case \"live\":\r\n campaignstatus[0] = \"Pause Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Engaged Contact\";\r\n break;\r\n case \"pause\":\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Engaged Contact\";\r\n\r\n break;\r\n default:\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[1] = \"Pause Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Engaged Contact\";\r\n }\r\n switch (contactstatus) {\r\n case \"suspect\":\r\n convertToMessage[0] = \"Prospect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"prospect\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"opportunity\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n break;\r\n default:\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n convertToMessage[2] = \"Opportunity\";\r\n }\r\n this.setState({ convertTo: convertToMessage });\r\n this.setState({ campaignStatus: campaignstatus });\r\n };\r\n\r\n convertToClickList = () => {\r\n this.convertToList(this.state.anchorEl);\r\n };\r\n\r\n clickToConvertStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n switch (status) {\r\n case \"suspect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"prospect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"opportunity\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n default:\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n }\r\n this.convertToClose();\r\n };\r\n\r\n changeContactStatus = (newStatus, status, id) => {\r\n let updateStatus = {};\r\n\r\n if (newStatus !== \"NOOP\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n updatedon: Date(Date.now()),\r\n\r\n noop: 0,\r\n leads: 1,\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n } else {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n\r\n noop: 0,\r\n leads: 1,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", {\r\n icon: \"success\"\r\n }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n logMaintain = (newStatus, id) => {\r\n let newstatus = newStatus.toLowerCase();\r\n let updateLog = {};\r\n let createdBy = localStorage.getItem(\"id\");\r\n switch (newstatus) {\r\n case \"prospect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n leads: 1,\r\n action: \"CONVERT_TO_PROSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"suspect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n leads: 1,\r\n action: \"CONVERT_TO_SUSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"opportunity\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n leads: 1,\r\n action: \"CONVERT_TO_OPPORTUNITY\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"noop\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_NOOP\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n default: {\r\n }\r\n }\r\n\r\n if (newStatus === \"Pause Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_PAUSED\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Live Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_LIVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Remove Contact\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_REMOVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Engaged Contact\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_ENGAGED\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n\r\n fetchMethod(campaignContactLogMaintain, updateLog)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => res)\r\n .catch(e => console.log(e));\r\n };\r\n\r\n onClickToConvertCampaignStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n // let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n this.changeCampaignStatus(newStatus, this.props.id);\r\n this.props.onClose();\r\n };\r\n\r\n changeCampaignStatus = (newStatus, id) => {\r\n let newstatus = newStatus !== null ? newStatus.toLowerCase() : \"\";\r\n let updatedBy = localStorage.getItem(\"id\");\r\n let updateStatus = {};\r\n\r\n if (newstatus === \"live campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"LIVE\",\r\n noop: 0,\r\n contactstatus: null,\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"remove contact\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n active: 0,\r\n leads: 0,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"engaged contact\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n engaged: 1,\r\n noop: 0,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", { icon: \"success\" }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n convertToClose = () => {\r\n const { onCloseEngagedPopup: cb } = this.props;\r\n cb && cb();\r\n this.setState({ anchorEl: null });\r\n this.props.onClose();\r\n };\r\n\r\n render() {\r\n // const { isOpen, id, target } = this.props;\r\n const { anchorEl, convertTo } = this.state;\r\n return (\r\n
    \r\n\r\n \r\n {this.state.campaignStatus.map((newCamp, key) => {\r\n return (\r\n {\r\n this.onClickToConvertCampaignStatus(\r\n e,\r\n newCamp,\r\n this.props.campaignStatus\r\n );\r\n }}\r\n >\r\n {newCamp}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n \r\n Convert to\r\n \r\n {convertTo.map((newstatus, key) => {\r\n return (\r\n \r\n this.clickToConvertStatus(\r\n e,\r\n newstatus,\r\n this.props.contactStatus\r\n )\r\n }\r\n style={{ marginLeft: \"10px\" }}\r\n >\r\n {newstatus}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default NoOppTo;\r\n","import CloseIcon from \"@material-ui/icons/Close\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport React, { Component } from \"react\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport photo from \"../../assets/photo.png\";\r\nimport EditCompany from \"../../LinkedinForm/EditCompany\";\r\nimport EditPosition from \"../../LinkedinForm/EditPosition\";\r\nimport EditName from \"../../LinkedinForm/EditName\";\r\nimport EditSurname from \"../../LinkedinForm/EditSurname\";\r\nimport EditGender from \"../../LinkedinForm/EditGender\";\r\nimport EditCountry from \"../../LinkedinForm/EditCountry\";\r\nimport EditState from \"../../LinkedinForm/EditState\";\r\nimport { getContactImageUrl } from \"../../../config\";\r\nimport {\r\n // CampaignsSteps2,\r\n getCampaignsSteps,\r\n UpdatePositionContact,\r\n UpdatefNameContact,\r\n SendMessages,\r\n UpdateCompanyContact,\r\n UpdateSurnameContact,\r\n UpdateGenderContact,\r\n UpdateCountryContact,\r\n UpdateStateContact\r\n} from \"../campaignQueries\";\r\nimport \"./ContactDetails.css\";\r\nimport ContactDetailsAction from \"./ContactDetailsAction\";\r\nclass ContactDetails extends Component {\r\n\r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n id: null,\r\n messageText: null,\r\n setOpen: false,\r\n fName: \"\",\r\n validationAlert: \"\"\r\n };\r\n }\r\n componentDidMount() {\r\n\r\n this.campaignSteps();\r\n }\r\n\r\n campaignSteps = async () => {\r\n let data = await getCampaignsSteps(this.props.Campaignid);\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n var dd = date.getDate();\r\n var mm = date.getMonth() + 1;\r\n var yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n return (date = dd + \"/\" + mm + \"/\" + yyyy);\r\n }\r\n };\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n\r\n RecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n ConnectedOnformatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.SendMessage();\r\n };\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n SendMessage = () => {\r\n var firstConn = this.props.details.connectedon;\r\n if (firstConn == null || firstConn == \"\") {\r\n swal(\r\n \"This contact is not connected. Please send the message with Linkedin\",\r\n { icon: \"warning\" }\r\n );\r\n } else {\r\n let test =\r\n this.state.messageText.trim().length > 0\r\n ? {\r\n data: {\r\n type: \"SENT\",\r\n campaignid: this.props.details.campaignid,\r\n contactid: this.props.details.id,\r\n message: this.state.messageText,\r\n realmsgdatetime: Date.now(),\r\n messagetobesent: 1\r\n }\r\n }\r\n : \"\";\r\n\r\n fetchMethod(SendMessages, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState({ messageText: \"\" }, () => {\r\n this.props.refreshMessage(this.props.details.id);\r\n });\r\n\r\n if (res.data.ContactmessagesCreate.id) {\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n };\r\n \r\n\r\n handleChange = event => {\r\n this.setState({ messageText: event.target.value });\r\n };\r\n\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n handleOpen = () => {\r\n this.setState({ setOpen: true }, () => { });\r\n };\r\n handleClose = () => {\r\n this.setState({ setOpen: false });\r\n };\r\n\r\n render() {\r\n\r\n let details = this.props.details;\r\n\r\n let fName = details !== undefined ? details.fname : \"\";\r\n // let organization = details !== undefined ? details.organization : \"\";\r\n // let designation = details !== undefined ? details.designation : \"\";\r\n // let customer = this.props.Customer;\r\n let workflowStep = this.props.ContactDetailsWorkflow;\r\n\r\n let ContactDetailsMessages = this.props.ContactDetailsMessages;\r\n\r\n let Name = details !== undefined ? details.name : \"\";\r\n let surname = details !== undefined ? details.surname : \"\";\r\n let gender = details !== undefined ? details.gender : \"\";\r\n\r\n let image =\r\n details !== undefined &&\r\n details.profileimage !== undefined &&\r\n details.profileimage !== null\r\n ? details.profileimage.substr(0, 5)\r\n : \"\";\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {this.props.heading}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {image === \"https\" ? (\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + details.image;\r\n }}\r\n style={{\r\n width: \"88px\",\r\n height: \"88px\",\r\n border: \"1px\",\r\n borderColor: \"gray\"\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n

    {Name}

    \r\n\r\n
    \r\n
      \r\n
    • \r\n Gender \r\n :\r\n {details !== undefined ? gender : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editGender\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n First Name\r\n :\r\n {details !== undefined ? fName : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editFName\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n Surname \r\n :\r\n {details !== undefined ? surname : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditSurname\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n Phone\r\n :\r\n \r\n {details !== undefined ? details.phonenumber : \"\"}\r\n \r\n
    • \r\n\r\n
    • \r\n Email\r\n :\r\n {details !== undefined ? details.email : \"\"}\r\n
    • \r\n\r\n
    • \r\n D.O.B\r\n :\r\n \r\n {details !== undefined ? details.dateofbirth : \"\"}\r\n \r\n
    • \r\n\r\n
    • \r\n Connected On\r\n :\r\n \r\n {details !== undefined\r\n ? this.ConnectedOnformatDate(details.connectedon)\r\n : \"\"}\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Address

    \r\n
    \r\n
      \r\n
    • \r\n Location\r\n :\r\n {details !== undefined ? details.location : \"\"}\r\n
    • \r\n
    • \r\n State\r\n :\r\n \r\n {details !== undefined ? details.state : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditState\"}\r\n />\r\n \r\n \r\n
    • \r\n
    • \r\n Country\r\n :\r\n \r\n {details !== undefined ? details.country : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditCountry\"}\r\n />\r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Social Contacts

    \r\n
    \r\n
      \r\n
    • \r\n Twitter\r\n :\r\n {details !== undefined ? details.twitter : \"\"}\r\n
    • \r\n\r\n
    • \r\n Skype\r\n :\r\n {details !== undefined ? details.skype : \"\"}\r\n
    • \r\n\r\n
    • \r\n Followers\r\n :\r\n \r\n {details !== undefined ? details.numberoffollowers : \"\"}\r\n \r\n
    • \r\n\r\n
    • \r\n LinkedIn\r\n :\r\n \r\n \r\n {details !== undefined ? details.linkedinid : \"\"}\r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Professional Details

    \r\n
    \r\n
      \r\n
    • \r\n Current Position\r\n :\r\n \r\n {details !== undefined ? details.designation : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditPosition\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Company\r\n :\r\n \r\n {details !== undefined ? details.organization : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editFName\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Industry\r\n :\r\n {details !== undefined ? details.industry : \"\"}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Workflow Followed

    \r\n\r\n {workflowStep !== undefined &&\r\n workflowStep !== null &&\r\n workflowStep.length !== 0 ? (\r\n workflowStep.map((workflow, index) => {\r\n var stepDate = workflow.utctasktime;\r\n\r\n if (workflow.utctasktime == null) {\r\n\r\n stepDate = workflow.executedon;\r\n }\r\n let count = index + 1;\r\n\r\n if (\r\n workflow.contactworkflowhistoryIbfk2rel.Campaignsteps.length ===\r\n 1\r\n ) {\r\n return (\r\n
    \r\n \r\n {workflow.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .stepname === \"VISIT\"\r\n ? \"Visit\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 1\r\n ? \"Invite Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 0\r\n ? \"Invite Not Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_THANKS_MESSAGE\"\r\n ? \"Send Thanks Message\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"FOLLOW\"\r\n ? \"Follow\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_EMAIL\"\r\n ? \"Send InMail\"\r\n : \"Send Message\"}\r\n \r\n\r\n {this.formatDate(stepDate)}\r\n {this.formatDate1(stepDate)}\r\n Step{\" \" + count}\r\n
    \r\n );\r\n }\r\n })\r\n ) : (\r\n
    No workflow Followed
    \r\n )}\r\n\r\n
    \r\n

    Messages

    \r\n {ContactDetailsMessages !== undefined &&\r\n ContactDetailsMessages !== null &&\r\n ContactDetailsMessages.length !== 0\r\n ? ContactDetailsMessages.map(message => {\r\n \r\n var messageDate = message.utcmessagetime;\r\n\r\n if (message.utcmessagetime == null) {\r\n\r\n messageDate = message.messagedatetime;\r\n }\r\n\r\n\r\n\r\n if (\r\n message.type === \"SENT\" &&\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n\r\n return (\r\n \r\n
    \r\n {message.message}\r\n
    \r\n
    \r\n\r\n \r\n {messageDate\r\n ? this.formatDate(messageDate)\r\n : \"\"}\r\n \r\n \r\n {this.formatDate1(messageDate)}\r\n\r\n \r\n
    \r\n
    \r\n );\r\n } else if (\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
    \r\n {message.message}\r\n
    \r\n
    \r\n \r\n \r\n {messageDate\r\n ? this.formatDate(messageDate)\r\n : \"\"}\r\n \r\n \r\n {this.formatDate1(messageDate)}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n })\r\n : \"\"}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ContactDetails;\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport \"../../tables/reactTable.css\";\r\nimport ReactTableComponent from \"../../tables/ReactTable\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport editicon from \"../../../../src/Components/assets/edit.png\";\r\nimport { getContactImageUrl } from \"../../../config\";\r\nimport {\r\n campaignContactsTabList,\r\n campaignContactsTabSelectList,\r\n campaignContactsExport\r\n} from \"../../../Queries\";\r\nimport swal from \"sweetalert\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker\r\n} from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\n\r\nimport SearchIcon from \"../../assets/search.png\";\r\nimport { TextField, Button, IconButton } from \"@material-ui/core\";\r\nimport { Checkbox } from \"pretty-checkbox-react\";\r\nimport \"../CampaignTables.css\";\r\nimport \"../CampaignTabs.css\";\r\nimport \"./CampaignContactsTab.css\";\r\nimport ExportTo from \"./NoOppExcel\";\r\nimport NoOppTo from \"./NoOppTo\";\r\nimport {\r\n contacts,\r\n Profileid,\r\n plannedDate,\r\n UpdatefollowUp\r\n} from \"../campaignQueries\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport ContactDetails from \"./ContactDetails.js\";\r\nimport { Drawer } from \"@material-ui/core\";\r\nimport Photo from \"../../assets/photo.png\";\r\nconst moment = require(\"moment\");\r\nclass CampaignContactsTab extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n loading: false,\r\n limit: 0,\r\n offset: 0,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n campaignContacts: [],\r\n campaignContactsTableList: [],\r\n totalCount: 0,\r\n selectedDate: new Date(),\r\n fileName: \"Contacts\",\r\n Currentstage: [],\r\n invitationSent: [],\r\n anchorEl: null,\r\n show: \"\",\r\n openDetails: false,\r\n columnFilter: \"\",\r\n shortfilter: false,\r\n getData: [],\r\n getCampaignId: null,\r\n getCampaignId2: null,\r\n getCustomer: [],\r\n contactStatus: null,\r\n campaignStatus: null,\r\n contactId: null,\r\n Row: \"\",\r\n ContactDetailsWorkflow: [],\r\n ContactDetailsMessages: [],\r\n campStatus: [\"All\", \"Live\", \"Pause\", \"Completed\"],\r\n defaultCampStatus: \"All\",\r\n contStatus: [\"All\", \"Suspect\", \"Prospect\", \"Opportunity\"],\r\n defaultContStatus: \"All\",\r\n selected: {},\r\n selectAll: 0,\r\n selectedArray: [],\r\n campaignContactAllSelectedList: [],\r\n profileid: undefined,\r\n salesforcetoken: null,\r\n hubspottoken: null,\r\n isSearching: false,\r\n campaignContactsExportData: [],\r\n clientY: null,\r\n clientX: null\r\n };\r\n }\r\n componentDidMount() {\r\n this.ExportData();\r\n this.setState({ show: false }, () =>\r\n this.props.detailEdit(this.state.show)\r\n );\r\n this.Profile();\r\n }\r\n\r\n ExportData = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignContactsExport, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n campaignContactsExportData: res.data.allContacts.Contacts\r\n });\r\n });\r\n };\r\n\r\n Profile = () => {\r\n fetchMethod(Profileid(this.props.campaignId))\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n profileid:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].id,\r\n hubspottoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].hubspottoken,\r\n salesforcetoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].salesforcetoken\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n emptySelectedArray = () => {\r\n this.setState({ selectedArray: [], selectAll: false, selected: {} });\r\n };\r\n\r\n handleDateChange = date => {\r\n this.setState({\r\n selectedDate: date\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n setContactsListData = response => {\r\n let data = response.data.allContacts.Contacts;\r\n\r\n this.setState(\r\n {\r\n campaignContacts: data,\r\n totalCount: response.data.allContacts.totalCount\r\n },\r\n () => this.fetchSequence(this.state.campaignContacts)\r\n );\r\n };\r\n\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n }\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n handleSearchChange = event => {\r\n this.setState({\r\n search: event.target.value,\r\n searchFlag: true,\r\n isSearching: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n this.setState({ isSearching: false });\r\n },\r\n 200\r\n );\r\n };\r\n\r\n onTableRowClick = rowInfo => {\r\n this.setState({ Row: rowInfo.original.id });\r\n };\r\n\r\n fetchContactDrawerDetails = (side, open, row) => event => {\r\n this.setState({ getData: [] });\r\n fetchMethod(contacts(row.id))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsWorkflow:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactworkflowhistoryfk\r\n .Contactworkflowhistories\r\n : \"\",\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\",\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\",\r\n getCampaignId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n getCampaignId2:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n\r\n getCustomer:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null &&\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns.length > 0\r\n ? res.data.allContacts.Contacts[0].Campaigns.Campaigns[0]\r\n .Customers.Customers[0]\r\n : \"\",\r\n contactStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].contactstatus\r\n : \"\",\r\n campaignStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignstatus\r\n : \"\",\r\n contactId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].id\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n closeDetails = () => {\r\n this.setState({\r\n openDetails: false,\r\n getCampaignId: [],\r\n getCustomer: [],\r\n getData: [],\r\n contactStatus: null,\r\n campaignStatus: null\r\n });\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n search: \"\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n }\r\n );\r\n };\r\n\r\n fetchRefresh = response => {\r\n this.fetchMessage(response);\r\n };\r\n fetchMessage = response => {\r\n fetchMethod(contacts(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n formatDate2 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${mm}/${dd}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n fetchRefresh1 = response => {\r\n this.fetchName(response);\r\n };\r\n fetchName = response => {\r\n fetchMethod(contacts(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n gettingAllDataFromQuery = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignContactsTabSelectList, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n let allselectedIds = [];\r\n responseAsJson.data.allContacts.Contacts.map(i => {\r\n allselectedIds.push({ id: i.id });\r\n });\r\n this.setState(\r\n {\r\n campaignContactAllSelectedList: allselectedIds\r\n },\r\n () => {\r\n let selectedArr = [];\r\n let consolidateArray = [];\r\n this.state.campaignContactAllSelectedList.map(item => {\r\n consolidateArray[item.id] = true;\r\n selectedArr.push({ id: item.id });\r\n });\r\n this.setState({\r\n selectAll: true,\r\n selected: consolidateArray,\r\n selectedArray: selectedArr\r\n });\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n onRowSelected = sarray => {\r\n if (sarray.length === this.state.totalCount) {\r\n this.setState({ selectAll: true });\r\n } else {\r\n this.setState({ selectAll: false });\r\n }\r\n };\r\n\r\n toggleRowNew = (id, rowInfo) => {\r\n const newSelected = Object.assign({}, this.state.selected);\r\n newSelected[id] = !this.state.selected[id];\r\n this.setState({\r\n selected: newSelected\r\n });\r\n const { selectedArray } = this.state;\r\n let arr = selectedArray.filter(val => val.id !== id);\r\n if (!arr.length) {\r\n this.setState(\r\n {\r\n selectedArray: []\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n if (arr.length === selectedArray.length) {\r\n this.setState(\r\n {\r\n selectedArray: [...selectedArray, rowInfo]\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n selectedArray: arr\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n };\r\n\r\n toggleSelectAllRow = isChecked => {\r\n if (isChecked) {\r\n this.gettingAllDataFromQuery();\r\n } else {\r\n this.setState({\r\n selectAll: false,\r\n selectedArray: [],\r\n selected: {}\r\n });\r\n }\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ columnFilter: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ columnFilter: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter = () => {\r\n this.setState({ columnFilter: \"organization asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n CompanyFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"organization desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter = () => {\r\n this.setState({ columnFilter: \"designation asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n PositionFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"designation desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter = () => {\r\n this.setState({ columnFilter: \"location asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n LocationFilter1 = () => {\r\n this.setState({ columnFilter: \"location desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n connectedonFilter = () => {\r\n this.setState({ columnFilter: \"connectedon asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n connectedonFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"connectedon desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n InvitationsentFilter = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n InvitationsentFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n currentstatusFilter = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n currentstatusFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n filter = () => {\r\n const Search = this.state.clickToSearch\r\n ? this.state.search.trim().replace(/\\s\\s+/g, \" \")\r\n : \"\";\r\n const like = `%${Search}%`;\r\n const filterr = {\r\n where: {\r\n active: \"1\",\r\n noop: \"1\",\r\n campaignid: this.props.campaignId,\r\n contactstatus: { like: \"%noop%\", options: \"i\" },\r\n order: this.state.columnFilter,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n return filterr;\r\n };\r\n\r\n fetchSequence = async responsee => {\r\n let index = 0;\r\n responsee.map(async response => {\r\n if (\r\n response !== undefined &&\r\n response.currentStage !== undefined &&\r\n response.currentStage.Contactworkflowhistories !== undefined\r\n ) {\r\n let l = response.currentStage.Contactworkflowhistories.length - 1;\r\n let sequence = response.currentStage.Contactworkflowhistories[l];\r\n if (\r\n sequence &&\r\n sequence.contactworkflowhistoryIbfk2rel &&\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0] &&\r\n sequence.contactworkflowhistoryIbfk2rel &&\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n ) {\r\n const plannedDateFilter = {\r\n where: {\r\n campaignid:\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .campaignid,\r\n active: 1,\r\n sequence:\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .sequence + 1\r\n }\r\n };\r\n\r\n response.currentStage.Contactworkflowhistories[\r\n l\r\n ].nextStep = undefined;\r\n await fetchMethod(plannedDate, plannedDateFilter)\r\n .then(res => res.json())\r\n .then(res => {\r\n if (\r\n res &&\r\n res.data &&\r\n res.data.allCampaignsteps &&\r\n res.data.allCampaignsteps.Campaignsteps.length > 0 &&\r\n res.data.allCampaignsteps.Campaignsteps[0]\r\n ) {\r\n let daysDelay =\r\n res.data.allCampaignsteps.Campaignsteps[0].daysdelay;\r\n let NextStepName =\r\n res.data.allCampaignsteps.Campaignsteps[0].stepname;\r\n if (\r\n NextStepName === \"SEND_THANKS_MESSAGE\" &&\r\n response.connectedon\r\n ) {\r\n var Connectedon = \"\";\r\n if (\r\n response.thanksmsgdate == \"\" ||\r\n response.thanksmsgdate == null\r\n ) {\r\n Connectedon = response.connectedon.split(\"/\");\r\n } else {\r\n Connectedon = response.thanksmsgdate.split(\"/\");\r\n }\r\n Connectedon =\r\n Connectedon[2] +\r\n \"/\" +\r\n Connectedon[1] +\r\n \"/\" +\r\n Connectedon[0];\r\n let date = new Date(Connectedon);\r\n let someDate = new Date(date);\r\n\r\n let addDate = 0;\r\n if (\r\n response.thanksmsgdate == \"\" ||\r\n response.thanksmsgdate == null\r\n ) {\r\n addDate = daysDelay;\r\n } else {\r\n addDate = 0;\r\n }\r\n\r\n let dd1 = someDate.setDate(someDate.getDate() + addDate);\r\n\r\n let oldDate = new Date(dd1);\r\n\r\n let todayDate = new Date();\r\n\r\n let diffTime = todayDate - oldDate;\r\n\r\n let diffDays = diffTime / (1000 * 60 * 60 * 24);\r\n\r\n if (diffDays >= 0) {\r\n let Planndate = new Date(todayDate);\r\n\r\n let dd = Planndate.getDate(dd1);\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n Planndate = `${dd}/${mm}/${yyyy}`;\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message\" + \" \" + Planndate;\r\n } else if (diffDays < 0) {\r\n let Planndate = new Date(oldDate);\r\n\r\n let dd = Planndate.getDate(dd1);\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n Planndate = `${dd}/${mm}/${yyyy}`;\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message\" + \" \" + Planndate;\r\n } else {\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message\" + \" \" + date;\r\n }\r\n } else if (NextStepName !== \"SEND_THANKS_MESSAGE\") {\r\n var current_date = \"\";\r\n var addDay = 0;\r\n if (sequence.nextstep == null || sequence.nextstep == \"\") {\r\n current_date = sequence.executedon;\r\n addDay = daysDelay;\r\n } else {\r\n current_date = sequence.nextstep;\r\n addDay = 0;\r\n }\r\n\r\n var someDate = new Date(current_date);\r\n\r\n current_date = someDate.setDate(someDate.getDate() + addDay);\r\n let oldDate = new Date(current_date).getTime();\r\n let todayDate = new Date().getTime();\r\n\r\n let difference = todayDate - oldDate;\r\n let diffDays = difference / (1000 * 3600 * 24);\r\n\r\n if (diffDays >= 0) {\r\n let date = moment(todayDate)\r\n .toDate();\r\n let current_date1 = new Date(date);\r\n let utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n let offset_time = new Date(utc + 3600000 * 5.5);\r\n let planDate = moment(offset_time).format(\"DD/MM/YYYY\");\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + planDate;\r\n } else if (diffDays < 0) {\r\n let date = moment(oldDate)\r\n .toDate();\r\n\r\n let current_date1 = new Date(date);\r\n let utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n let offset_time = new Date(utc + 3600000 * 5.5);\r\n let planDate = moment(offset_time).format(\"DD/MM/YYYY\");\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + planDate;\r\n } else {\r\n let date = moment(current_date)\r\n .add(daysDelay, \"days\")\r\n .toDate();\r\n let current_date1 = new Date(date);\r\n var utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n var offset_time = new Date(utc + 3600000 * 5.5);\r\n var date1 = moment(offset_time).format(\"DD/MM/YYYY\");\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + date1;\r\n }\r\n }\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n }\r\n index++;\r\n if (index === responsee.length && this.state.totalCount !== 0) {\r\n this.setState({ campaignContacts: responsee });\r\n }\r\n });\r\n };\r\n formatDate3 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(date);\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n handleStatusChange2 = (row, updateStatus, date) => event => {\r\n updateStatus = {\r\n where: { id: row.original.id },\r\n data: {\r\n followup: this.formatDate3(event)\r\n }\r\n };\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(UpdatefollowUp, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully updated\", { icon: \"success\" }).then(() => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n });\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n showEngagedToPopup = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n render() {\r\n //filter\r\n const campaignContacts = [...this.state.campaignContacts];\r\n //cons\r\n const { selectedEngagedRow } = this.state;\r\n const campaignContactsExportData = [\r\n ...this.state.campaignContactsExportData\r\n ];\r\n const CampaignContactsListHeaders = [\r\n {\r\n Header: obj => {\r\n return (\r\n {\r\n this.toggleSelectAllRow(e.target.checked);\r\n }}\r\n />\r\n );\r\n },\r\n width: 38,\r\n Cell: rowInfo => {\r\n return (\r\n \r\n this.toggleRowNew(rowInfo.original.id, rowInfo.original)\r\n }\r\n />\r\n );\r\n }\r\n },\r\n {\r\n Header: \"Image\",\r\n accessor: \"Image\",\r\n width: 70\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Name\r\n \r\n );\r\n },\r\n accessor: \"Name\",\r\n width: 150,\r\n Cell: row => (\r\n \r\n {row.original.name}\r\n \r\n )\r\n },\r\n {\r\n Header: \"First Name\",\r\n accessor: \"fname\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Company\r\n \r\n );\r\n },\r\n accessor: \"organization\",\r\n width: 150,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Position\r\n \r\n );\r\n },\r\n accessor: \"designation\",\r\n width: 150,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Location\r\n \r\n );\r\n },\r\n accessor: \"location\",\r\n width: 150,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Connected On\r\n \r\n );\r\n },\r\n accessor: \"Connectedon\",\r\n width: 110,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Invitation Sent\r\n \r\n );\r\n },\r\n accessor: \"InvitationSent\",\r\n width: 110,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Stage\r\n \r\n );\r\n },\r\n accessor: \"CurrentStage\"\r\n },\r\n\r\n {\r\n Header: \"Last Response\",\r\n accessor: \"LR\",\r\n width: 110,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Follow Up\r\n \r\n );\r\n },\r\n accessor: \"followup\",\r\n\r\n Cell: row => {\r\n return (\r\n \r\n {row.original.followup}\r\n\r\n \r\n \r\n \r\n }\r\n InputProps={{\r\n disableUnderline: true\r\n }}\r\n helperText={\"\"}\r\n />\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n {\r\n Header: \" Status\",\r\n accessor: \"CampaignStatus\"\r\n },\r\n {\r\n Header: \"\",\r\n Cell: row => {\r\n return (\r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n }\r\n }\r\n ];\r\n\r\n campaignContacts.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = this.formatDate(list.lastresponse.split(\"T\")[0]);\r\n }\r\n\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup !== \"\" &&\r\n list.followup\r\n ) {\r\n var date = this.formatDate2(list.followup.split(\"T\")[0]);\r\n var cmTime = new Date(date);\r\n var dateday = cmTime.getDay();\r\n if (dateday >= 3) {\r\n \r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 5);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n } else {\r\n \r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 3);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n }\r\n }\r\n\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup\r\n ) {\r\n list.followup = this.formatDate(list.followup.split(\"T\")[0]);\r\n }\r\n let image =\r\n list.profileimage !== undefined && list.profileimage !== null\r\n ? list.profileimage.substr(0, 5)\r\n : \"\";\r\n if (image === \"https\") {\r\n list.Image = (\r\n \r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + list.image;\r\n }}\r\n style={{ borderRadius: \"50%\", width: \"30px\" }}\r\n />\r\n \r\n );\r\n } else {\r\n list.Image = (\r\n \r\n \r\n \r\n );\r\n }\r\n \r\n\r\n list.CampaignStatus =\r\n list.campaignstatus !== null && list.campaignstatus !== undefined\r\n ? list.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : list.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : \"Live\"\r\n : \"\";\r\n\r\n if (\r\n list.connectedon !== undefined &&\r\n list.connectedon !== null &&\r\n list.connectedon\r\n ) {\r\n list.Connectedon = this.formatDate(list.connectedon);\r\n }\r\n\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = this.formatDate(\r\n list.invitationsent.split(\"T\")[0]\r\n );\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n if (\r\n list.invitesent == 0 &&\r\n (list.currentstatus == \"Invite Sent\" ||\r\n list.currentstatus == \"Invite Not Sent\")\r\n ) {\r\n list.CurrentStage = \"Invite not Sent\";\r\n } else {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n\r\n campaignContactsExportData.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = list.lastresponse;\r\n }\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = list.invitationsent.split(\"T\")[0];\r\n }\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n });\r\n\r\n const filter = this.filter();\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.closeDetails()}\r\n >\r\n this.closeDetails()}\r\n details={this.state.getData}\r\n //Campaignid={this.state.getCampaignId}\r\n Campaignid={this.state.getCampaignId2}\r\n Customer={this.state.getCustomer}\r\n contactStatus={this.state.contactStatus}\r\n campaignStatus={this.state.campaignStatus}\r\n id={this.state.contactId}\r\n tableRerender={this.child.current}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n ContactDetailsWorkflow={this.state.ContactDetailsWorkflow}\r\n ContactDetailsMessages={this.state.ContactDetailsMessages}\r\n heading={\"Contact Details\"}\r\n />\r\n \r\n\r\n
    \r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n {selectedEngagedRow && (\r\n \r\n )}\r\n\r\n \r\n \r\n Total Records: {this.state.totalCount}\r\n

    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default CampaignContactsTab;\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport \"../../tables/reactTable.css\";\r\nimport ReactTableComponent from \"../../tables/ReactTable\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport editicon from \"../../../../src/Components/assets/edit.png\";\r\nimport { getContactImageUrl } from \"../../../config\";\r\nimport {\r\n campaignContactsTabList,\r\n campaignContactsTabSelectList,\r\n campaignContactsExport\r\n} from \"../../../Queries\";\r\nimport swal from \"sweetalert\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker\r\n} from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\n\r\nimport SearchIcon from \"../../assets/search.png\";\r\nimport { TextField, Button, IconButton } from \"@material-ui/core\";\r\nimport { Checkbox } from \"pretty-checkbox-react\";\r\nimport \"../CampaignTables.css\";\r\nimport \"../CampaignTabs.css\";\r\nimport \"./CampaignContactsTab.css\";\r\nimport ExportTo from \"./NoOppExcel\";\r\nimport NoOppTo from \"./NoOppTo\";\r\nimport {\r\n contacts,\r\n Profileid,\r\n plannedDate,\r\n UpdatefollowUp\r\n} from \"../campaignQueries\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport ContactDetails from \"./ContactDetails.js\";\r\nimport { Drawer } from \"@material-ui/core\";\r\n//import Photo from \"../../assets/photo.png\";\r\nconst moment = require(\"moment\");\r\nclass CampaignContactsTab extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n loading: false,\r\n limit: 0,\r\n offset: 0,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n campaignContacts: [],\r\n campaignContactsTableList: [],\r\n totalCount: 0,\r\n selectedDate: new Date(),\r\n fileName: \"Contacts\",\r\n Currentstage: [],\r\n invitationSent: [],\r\n anchorEl: null,\r\n show: \"\",\r\n openDetails: false,\r\n columnFilter: \"\",\r\n shortfilter: false,\r\n getData: [],\r\n getCampaignId: null,\r\n getCampaignId2: null,\r\n getCustomer: [],\r\n contactStatus: null,\r\n campaignStatus: null,\r\n contactId: null,\r\n Row: \"\",\r\n ContactDetailsWorkflow: [],\r\n ContactDetailsMessages: [],\r\n campStatus: [\"All\", \"Live\", \"Pause\", \"Completed\"],\r\n defaultCampStatus: \"All\",\r\n contStatus: [\"All\", \"Suspect\", \"Prospect\", \"Opportunity\"],\r\n defaultContStatus: \"All\",\r\n selected: {},\r\n selectAll: 0,\r\n selectedArray: [],\r\n campaignContactAllSelectedList: [],\r\n profileid: undefined,\r\n salesforcetoken: null,\r\n hubspottoken: null,\r\n isSearching: false,\r\n campaignContactsExportData: [],\r\n clientY: null,\r\n clientX: null\r\n };\r\n }\r\n componentDidMount() {\r\n this.ExportData();\r\n this.setState({ show: false }, () =>\r\n this.props.detailEdit(this.state.show)\r\n );\r\n this.Profile();\r\n }\r\n\r\n ExportData = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignContactsExport, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n campaignContactsExportData: res.data.allContacts.Contacts\r\n });\r\n });\r\n };\r\n\r\n Profile = () => {\r\n fetchMethod(Profileid(this.props.campaignId))\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n profileid:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].id,\r\n hubspottoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].hubspottoken,\r\n salesforcetoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].salesforcetoken\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n emptySelectedArray = () => {\r\n this.setState({ selectedArray: [], selectAll: false, selected: {} });\r\n };\r\n\r\n handleDateChange = date => {\r\n this.setState({\r\n selectedDate: date\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n setContactsListData = response => {\r\n let data = response.data.allContacts.Contacts;\r\n\r\n this.setState(\r\n {\r\n campaignContacts: data,\r\n totalCount: response.data.allContacts.totalCount\r\n },\r\n () => this.fetchSequence(this.state.campaignContacts)\r\n );\r\n };\r\n\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n }\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n handleSearchChange = event => {\r\n this.setState({\r\n search: event.target.value,\r\n searchFlag: true,\r\n isSearching: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n this.setState({ isSearching: false });\r\n },\r\n 200\r\n );\r\n };\r\n\r\n onTableRowClick = rowInfo => {\r\n this.setState({ Row: rowInfo.original.id });\r\n };\r\n\r\n fetchContactDrawerDetails = (side, open, row) => event => {\r\n this.setState({ getData: [] });\r\n fetchMethod(contacts(row.id))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsWorkflow:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactworkflowhistoryfk\r\n .Contactworkflowhistories\r\n : \"\",\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\",\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\",\r\n getCampaignId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n getCampaignId2:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n\r\n getCustomer:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null &&\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns.length > 0\r\n ? res.data.allContacts.Contacts[0].Campaigns.Campaigns[0]\r\n .Customers.Customers[0]\r\n : \"\",\r\n contactStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].contactstatus\r\n : \"\",\r\n campaignStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignstatus\r\n : \"\",\r\n contactId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].id\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n closeDetails = () => {\r\n this.setState({\r\n openDetails: false,\r\n getCampaignId: [],\r\n getCustomer: [],\r\n getData: [],\r\n contactStatus: null,\r\n campaignStatus: null\r\n });\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n search: \"\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n }\r\n );\r\n };\r\n\r\n fetchRefresh = response => {\r\n this.fetchMessage(response);\r\n };\r\n fetchMessage = response => {\r\n fetchMethod(contacts(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n formatDate2 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${mm}/${dd}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n fetchRefresh1 = response => {\r\n this.fetchName(response);\r\n };\r\n fetchName = response => {\r\n fetchMethod(contacts(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n gettingAllDataFromQuery = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignContactsTabSelectList, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n let allselectedIds = [];\r\n responseAsJson.data.allContacts.Contacts.map(i => {\r\n allselectedIds.push({ id: i.id });\r\n });\r\n this.setState(\r\n {\r\n campaignContactAllSelectedList: allselectedIds\r\n },\r\n () => {\r\n let selectedArr = [];\r\n let consolidateArray = [];\r\n this.state.campaignContactAllSelectedList.map(item => {\r\n consolidateArray[item.id] = true;\r\n selectedArr.push({ id: item.id });\r\n });\r\n this.setState({\r\n selectAll: true,\r\n selected: consolidateArray,\r\n selectedArray: selectedArr\r\n });\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n onRowSelected = sarray => {\r\n if (sarray.length === this.state.totalCount) {\r\n this.setState({ selectAll: true });\r\n } else {\r\n this.setState({ selectAll: false });\r\n }\r\n };\r\n\r\n toggleRowNew = (id, rowInfo) => {\r\n const newSelected = Object.assign({}, this.state.selected);\r\n newSelected[id] = !this.state.selected[id];\r\n this.setState({\r\n selected: newSelected\r\n });\r\n const { selectedArray } = this.state;\r\n let arr = selectedArray.filter(val => val.id !== id);\r\n if (!arr.length) {\r\n this.setState(\r\n {\r\n selectedArray: []\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n if (arr.length === selectedArray.length) {\r\n this.setState(\r\n {\r\n selectedArray: [...selectedArray, rowInfo]\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n selectedArray: arr\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n };\r\n\r\n toggleSelectAllRow = isChecked => {\r\n if (isChecked) {\r\n this.gettingAllDataFromQuery();\r\n } else {\r\n this.setState({\r\n selectAll: false,\r\n selectedArray: [],\r\n selected: {}\r\n });\r\n }\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ columnFilter: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ columnFilter: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter = () => {\r\n this.setState({ columnFilter: \"organization asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n CompanyFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"organization desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter = () => {\r\n this.setState({ columnFilter: \"designation asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n PositionFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"designation desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter = () => {\r\n this.setState({ columnFilter: \"location asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n LocationFilter1 = () => {\r\n this.setState({ columnFilter: \"location desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n connectedonFilter = () => {\r\n this.setState({ columnFilter: \"connectedon asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n connectedonFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"connectedon desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n InvitationsentFilter = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n InvitationsentFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n currentstatusFilter = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n currentstatusFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n filter = () => {\r\n const Search = this.state.clickToSearch\r\n ? this.state.search.trim().replace(/\\s\\s+/g, \" \")\r\n : \"\";\r\n const like = `%${Search}%`;\r\n const filterr = {\r\n where: {\r\n active: \"1\",\r\n open: \"1\",\r\n campaignid: this.props.campaignId,\r\n order: this.state.columnFilter,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n return filterr;\r\n };\r\n\r\n fetchSequence = async responsee => {\r\n let index = 0;\r\n responsee.map(async response => {\r\n if (\r\n response !== undefined &&\r\n response.currentStage !== undefined &&\r\n response.currentStage.Contactworkflowhistories !== undefined\r\n ) {\r\n let l = response.currentStage.Contactworkflowhistories.length - 1;\r\n let sequence = response.currentStage.Contactworkflowhistories[l];\r\n if (\r\n sequence &&\r\n sequence.contactworkflowhistoryIbfk2rel &&\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0] &&\r\n sequence.contactworkflowhistoryIbfk2rel &&\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n ) {\r\n const plannedDateFilter = {\r\n where: {\r\n campaignid:\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .campaignid,\r\n active: 1,\r\n sequence:\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .sequence + 1\r\n }\r\n };\r\n\r\n response.currentStage.Contactworkflowhistories[\r\n l\r\n ].nextStep = undefined;\r\n await fetchMethod(plannedDate, plannedDateFilter)\r\n .then(res => res.json())\r\n .then(res => {\r\n if (\r\n res &&\r\n res.data &&\r\n res.data.allCampaignsteps &&\r\n res.data.allCampaignsteps.Campaignsteps.length > 0 &&\r\n res.data.allCampaignsteps.Campaignsteps[0]\r\n ) {\r\n let daysDelay =\r\n res.data.allCampaignsteps.Campaignsteps[0].daysdelay;\r\n let NextStepName =\r\n res.data.allCampaignsteps.Campaignsteps[0].stepname;\r\n if (\r\n NextStepName === \"SEND_THANKS_MESSAGE\" &&\r\n response.connectedon\r\n ) {\r\n var Connectedon = \"\";\r\n if (\r\n response.thanksmsgdate == \"\" ||\r\n response.thanksmsgdate == null\r\n ) {\r\n Connectedon = response.connectedon.split(\"/\");\r\n } else {\r\n Connectedon = response.thanksmsgdate.split(\"/\");\r\n }\r\n Connectedon =\r\n Connectedon[2] +\r\n \"/\" +\r\n Connectedon[1] +\r\n \"/\" +\r\n Connectedon[0];\r\n let date = new Date(Connectedon);\r\n let someDate = new Date(date);\r\n\r\n let addDate = 0;\r\n if (\r\n response.thanksmsgdate == \"\" ||\r\n response.thanksmsgdate == null\r\n ) {\r\n addDate = daysDelay;\r\n } else {\r\n addDate = 0;\r\n }\r\n\r\n let dd1 = someDate.setDate(someDate.getDate() + addDate);\r\n\r\n let oldDate = new Date(dd1);\r\n\r\n let todayDate = new Date();\r\n\r\n let diffTime = todayDate - oldDate;\r\n\r\n let diffDays = diffTime / (1000 * 60 * 60 * 24);\r\n\r\n if (diffDays >= 0) {\r\n let Planndate = new Date(todayDate);\r\n\r\n let dd = Planndate.getDate(dd1);\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n Planndate = `${dd}/${mm}/${yyyy}`;\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message\" + \" \" + Planndate;\r\n } else if (diffDays < 0) {\r\n let Planndate = new Date(oldDate);\r\n\r\n let dd = Planndate.getDate(dd1);\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n Planndate = `${dd}/${mm}/${yyyy}`;\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message\" + \" \" + Planndate;\r\n } else {\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message\" + \" \" + date;\r\n }\r\n } else if (NextStepName !== \"SEND_THANKS_MESSAGE\") {\r\n var current_date = \"\";\r\n var addDay = 0;\r\n if (sequence.nextstep == null || sequence.nextstep == \"\") {\r\n current_date = sequence.executedon;\r\n addDay = daysDelay;\r\n } else {\r\n current_date = sequence.nextstep;\r\n addDay = 0;\r\n }\r\n\r\n var someDate = new Date(current_date);\r\n\r\n current_date = someDate.setDate(someDate.getDate() + addDay);\r\n let oldDate = new Date(current_date).getTime();\r\n let todayDate = new Date().getTime();\r\n\r\n let difference = todayDate - oldDate;\r\n let diffDays = difference / (1000 * 3600 * 24);\r\n\r\n if (diffDays >= 0) {\r\n let date = moment(todayDate)\r\n \r\n .toDate();\r\n let current_date1 = new Date(date);\r\n let utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n let offset_time = new Date(utc + 3600000 * 5.5);\r\n let planDate = moment(offset_time).format(\"DD/MM/YYYY\");\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + planDate;\r\n } else if (diffDays < 0) {\r\n let date = moment(oldDate)\r\n \r\n .toDate();\r\n\r\n let current_date1 = new Date(date);\r\n let utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n let offset_time = new Date(utc + 3600000 * 5.5);\r\n let planDate = moment(offset_time).format(\"DD/MM/YYYY\");\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + planDate;\r\n } else {\r\n let date = moment(current_date)\r\n .add(daysDelay, \"days\")\r\n .toDate();\r\n let current_date1 = new Date(date);\r\n var utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n var offset_time = new Date(utc + 3600000 * 5.5);\r\n var date1 = moment(offset_time).format(\"DD/MM/YYYY\");\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + date1;\r\n }\r\n }\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n }\r\n index++;\r\n if (index === responsee.length && this.state.totalCount !== 0) {\r\n this.setState({ campaignContacts: responsee });\r\n }\r\n });\r\n };\r\n formatDate3 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(date);\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n handleStatusChange2 = (row, updateStatus, date) => event => {\r\n updateStatus = {\r\n where: { id: row.original.id },\r\n data: {\r\n followup: this.formatDate3(event)\r\n }\r\n };\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(UpdatefollowUp, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully updated\", { icon: \"success\" }).then(() => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n });\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n showEngagedToPopup = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n render() {\r\n //filter\r\n const campaignContacts = [...this.state.campaignContacts];\r\n //cons\r\n const { selectedEngagedRow } = this.state;\r\n const campaignContactsExportData = [\r\n ...this.state.campaignContactsExportData\r\n ];\r\n const CampaignContactsListHeaders = [\r\n {\r\n Header: obj => {\r\n return (\r\n {\r\n this.toggleSelectAllRow(e.target.checked);\r\n }}\r\n />\r\n );\r\n },\r\n width: 38,\r\n Cell: rowInfo => {\r\n return (\r\n \r\n this.toggleRowNew(rowInfo.original.id, rowInfo.original)\r\n }\r\n />\r\n );\r\n }\r\n },\r\n {\r\n Header: \"Image\",\r\n accessor: \"Image\",\r\n width: 70\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Name\r\n \r\n );\r\n },\r\n accessor: \"Name\",\r\n width: 150,\r\n Cell: row => (\r\n \r\n {row.original.name}\r\n \r\n )\r\n },\r\n {\r\n Header: \"First Name\",\r\n accessor: \"fname\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Company\r\n \r\n );\r\n },\r\n accessor: \"organization\",\r\n width: 150,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Position\r\n \r\n );\r\n },\r\n accessor: \"designation\",\r\n width: 150,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Location\r\n \r\n );\r\n },\r\n accessor: \"location\",\r\n width: 150,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Connected On\r\n \r\n );\r\n },\r\n accessor: \"Connectedon\",\r\n width: 110,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Invitation Sent\r\n \r\n );\r\n },\r\n accessor: \"InvitationSent\",\r\n width: 110,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Stage\r\n \r\n );\r\n },\r\n accessor: \"CurrentStage\"\r\n },\r\n\r\n {\r\n Header: \"Last Response\",\r\n accessor: \"LR\",\r\n width: 110,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Follow Up\r\n \r\n );\r\n },\r\n accessor: \"followup\",\r\n\r\n Cell: row => {\r\n return (\r\n \r\n {row.original.followup}\r\n\r\n \r\n \r\n \r\n }\r\n InputProps={{\r\n disableUnderline: true\r\n }}\r\n helperText={\"\"}\r\n />\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n {\r\n Header: \" Status\",\r\n accessor: \"CampaignStatus\"\r\n },\r\n {\r\n Header: \"\",\r\n Cell: row => {\r\n return (\r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n }\r\n }\r\n ];\r\n\r\n campaignContacts.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = this.formatDate(list.lastresponse.split(\"T\")[0]);\r\n }\r\n\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup !== \"\" &&\r\n list.followup\r\n ) {\r\n var date = this.formatDate2(list.followup.split(\"T\")[0]);\r\n var cmTime = new Date(date);\r\n var dateday = cmTime.getDay();\r\n if (dateday >= 3) {\r\n \r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 5);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n } else {\r\n \r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 3);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n }\r\n }\r\n\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup\r\n ) {\r\n list.followup = this.formatDate(list.followup.split(\"T\")[0]);\r\n }\r\n let image =\r\n list.profileimage !== undefined && list.profileimage !== null\r\n ? list.profileimage.substr(0, 5)\r\n : \"\";\r\n if (image === \"https\") {\r\n list.Image = (\r\n \r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + list.image;\r\n }}\r\n style={{ borderRadius: \"50%\", width: \"30px\" }}\r\n />\r\n \r\n );\r\n } else {\r\n list.Image = (\r\n \r\n \r\n \r\n );\r\n }\r\n \r\n list.CampaignStatus =\r\n list.campaignstatus !== null && list.campaignstatus !== undefined\r\n ? list.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : list.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : \"Live\"\r\n : \"\";\r\n\r\n if (\r\n list.connectedon !== undefined &&\r\n list.connectedon !== null &&\r\n list.connectedon\r\n ) {\r\n list.Connectedon = this.formatDate(list.connectedon);\r\n }\r\n\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = this.formatDate(\r\n list.invitationsent.split(\"T\")[0]\r\n );\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n if (\r\n list.invitesent == 0 &&\r\n (list.currentstatus == \"Invite Sent\" ||\r\n list.currentstatus == \"Invite Not Sent\")\r\n ) {\r\n list.CurrentStage = \"Invite not Sent\";\r\n } else {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n\r\n campaignContactsExportData.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = list.lastresponse;\r\n }\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = list.invitationsent.split(\"T\")[0];\r\n }\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n });\r\n\r\n const filter = this.filter();\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.closeDetails()}\r\n >\r\n this.closeDetails()}\r\n details={this.state.getData}\r\n Campaignid={this.state.getCampaignId2}\r\n Customer={this.state.getCustomer}\r\n contactStatus={this.state.contactStatus}\r\n campaignStatus={this.state.campaignStatus}\r\n id={this.state.contactId}\r\n tableRerender={this.child.current}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n ContactDetailsWorkflow={this.state.ContactDetailsWorkflow}\r\n ContactDetailsMessages={this.state.ContactDetailsMessages}\r\n heading={\"Contact Details\"}\r\n />\r\n \r\n\r\n
    \r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n {selectedEngagedRow && (\r\n \r\n )}\r\n\r\n \r\n \r\n Total Records: {this.state.totalCount}\r\n

    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default CampaignContactsTab;\r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport swal from \"sweetalert\";\r\nimport { salesforceApi, hubspotApi } from \"../../../config\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nimport { campaignZapierurlDetails, contactExport } from \"../../../Queries\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nclass ExportToExcel extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loading: false, anchorEl: null, fileName: \"Leads\" };\r\n }\r\n\r\n ExcelRecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let date1 = `${dd}/${mm}/${yyyy}`;\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = date1 + \" \" + time);\r\n }\r\n };\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return (date = date + \" \" + time);\r\n }\r\n };\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n exportToClick = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n event.stopPropagation();\r\n };\r\n\r\n exportToClose = () => {\r\n this.setState({ anchorEl: null });\r\n };\r\n\r\n exportToSalesforce = salesforceData => {\r\n let selectedArrayIds = [];\r\n salesforceData.map(a => {\r\n selectedArrayIds.push(a.id);\r\n });\r\n\r\n if (salesforceData.length > 0) {\r\n selectedArrayIds = JSON.stringify(selectedArrayIds);\r\n if (this.props.SalesforceToken !== null) {\r\n fetch(\r\n salesforceApi.url +\r\n `${selectedArrayIds}` +\r\n `&profileId=${this.props.Profile}` +\r\n `&access_token=${localStorage.getItem(\"token\")}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n this.exportToClose();\r\n swal(\"Successfully moved to Salesforce\", { icon: \"success\" });\r\n this.props.selectedArray();\r\n })\r\n .catch(err => {\r\n console.log(\"Error\", err);\r\n swal(\"Please try Again later\", { icon: \"warning\" });\r\n });\r\n } else {\r\n swal(\"Please First Connect to Salesforce\", { icon: \"warning\" });\r\n }\r\n } else {\r\n swal(\"Please select contact\", { icon: \"warning\" });\r\n }\r\n };\r\n\r\n exportToHubspot = hubspotData => {\r\n let selectedArrayIds = [];\r\n hubspotData.map(a => {\r\n selectedArrayIds.push(a.id);\r\n });\r\n\r\n if (hubspotData.length > 0) {\r\n if (this.props.HubspotToken !== null) {\r\n selectedArrayIds = JSON.stringify(selectedArrayIds);\r\n fetch(\r\n hubspotApi.url +\r\n `${selectedArrayIds}` +\r\n `&profileId=${this.props.Profile}` +\r\n `&access_token=${localStorage.getItem(\"token\")}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.response === \"success\") {\r\n this.exportToClose();\r\n swal(\"Successfully moved to hubspot\", { icon: \"success\" });\r\n this.props.selectedArray();\r\n }\r\n })\r\n .catch(err => {\r\n console.log(\"Error\", err);\r\n swal(\"Please try Again later\", { icon: \"warning\" });\r\n });\r\n } else {\r\n swal(\"Please First Connect to Salesforce\", { icon: \"warning\" });\r\n }\r\n } else {\r\n swal(\"Please select contact\", { icon: \"warning\" });\r\n }\r\n };\r\n createExportHistory = async data => {\r\n var variables = {\r\n data\r\n };\r\n return await fetchMethod(contactExport, variables).then(response => {\r\n return response.json();\r\n });\r\n };\r\n setDataWithZapierurl = async campaignId => {\r\n return await fetchMethod(campaignZapierurlDetails(campaignId))\r\n .then(response => response.json())\r\n .then(responseAsJson => responseAsJson.data.Campaigns.zapierurl)\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n setDataWithZapier = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n let steps = item.currentStage.Contactworkflowhistories;\r\n // let List1 = steps[steps.length - 1];\r\n let Messages = item.Contactmessagesfk.Contactmessages;\r\n\r\n let message = [];\r\n Messages.map(m => {\r\n message.push(\r\n m.message +\r\n \"\\n\" +\r\n this.ExcelRecieveddateFomate(m.messagedatetime) +\r\n \" (\" +\r\n m.type +\r\n \")\"\r\n );\r\n });\r\n let wholeMessages = message.join(\"\\n \\n\");\r\n\r\n let executedonVisit = [];\r\n let x = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"VISIT\"\r\n ) {\r\n executedonVisit.push(step.executedon);\r\n }\r\n });\r\n let executedonFollow = [];\r\n let y = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"FOLLOW\"\r\n ) {\r\n executedonFollow.push(step.executedon);\r\n }\r\n });\r\n var movetolink = item.moveto;\r\n if (item.moveto == \"\" || item.moveto == null) {\r\n movetolink = (item.campaignIbfk4rel && item.campaignIbfk4rel.Campaigns && item.campaignIbfk4rel.Campaigns[0] && item.campaignIbfk4rel.Campaigns[0].zapierurl) \r\n ? item.campaignIbfk4rel.Campaigns[0].zapierurl \r\n : 'Zapier';\r\n }\r\n \r\n var campaign= item.campaignname;\r\n if (item.campaignname == \"\" || item.campaignname == null) {\r\n campaign = (item.campaignIbfk4rel && item.campaignIbfk4rel.Campaigns && item.campaignIbfk4rel.Campaigns[0] && item.campaignIbfk4rel.Campaigns[0].zapierurl) \r\n ? item.campaignIbfk4rel.Campaigns[0].name \r\n : item.campaignname;\r\n }\r\n return filedata.push({\r\n campaignname: campaign,\r\n contactid: item.id,\r\n campaignid: item.campaignid,\r\n Name: item.name,\r\n fname: item.fname,\r\n organization: item.organization,\r\n designation: item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n linkedinid: item.linkedinid,\r\n Email: item.email,\r\n phonenumber: item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n InvitationSent: item.InvitationSent,\r\n Connectedon: this.formatDate(item.connectedon),\r\n wholeMessages: wholeMessages,\r\n CurrentStage: item.CurrentStage,\r\n movedby: localStorage.getItem(\"id\"),\r\n moveto: movetolink,\r\n State: item.state,\r\n Country: item.country,\r\n surname: item.surname,\r\n Source: \"Xseller8\",\r\n LR: item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n campaignname: \"\",\r\n Name: \"\",\r\n fname: \"\",\r\n State: \"\",\r\n Country:\"\",\r\n surname:\"\",\r\n Source: \"\",\r\n organization: \"\",\r\n designation: \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n linkedinid: \"\",\r\n Email: \"\",\r\n phonenumber: \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n InvitationSent: \"\",\r\n Connectedon: \"\",\r\n wholeMessages: \"\",\r\n CurrentStage: \"\",\r\n LR: \"\",\r\n Status: \"\",\r\n contactid: \"\",\r\n campaignid: \"\",\r\n movedby: \"\",\r\n moveto: \"\"\r\n });\r\n return filedata;\r\n };\r\n setDataWithHeader = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n let steps = item.currentStage.Contactworkflowhistories;\r\n let List1 = steps[steps.length - 1];\r\n let Messages = item.Contactmessagesfk.Contactmessages;\r\n let message = [];\r\n Messages.map(m => {\r\n message.push(this.ExcelRecieveddateFomate(m.messagedatetime));\r\n\r\n message.push(m.message);\r\n });\r\n let wholeMessages = message.join(\"\\n\");\r\n\r\n let executedonVisit = [];\r\n let x = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"VISIT\"\r\n ) {\r\n executedonVisit.push(step.executedon);\r\n }\r\n });\r\n let executedonFollow = [];\r\n let y = steps.filter(step => {\r\n if (\r\n step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n \"FOLLOW\"\r\n ) {\r\n executedonFollow.push(step.executedon);\r\n }\r\n });\r\n return filedata.push({\r\n Name: item.name,\r\n \"First Name\": item.fname,\r\n \"Surname\" : item.surname,\r\n \"Current Company\": item.organization,\r\n \"Current Position\": item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n \"Linkedin Url\": item.linkedinid,\r\n Email: item.email,\r\n \"Phone \": item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n \"Invitation Sent\": item.InvitationSent,\r\n \"Connected On\": this.formatDate(item.connectedon),\r\n \"Messages Notes\": wholeMessages,\r\n \"Current Stage\": item.CurrentStage,\r\n\r\n \"Last Response\": item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n Name: \"\",\r\n \"First Name\": \"\",\r\n \"Current Company\": \"\",\r\n \"Current Position\": \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n \"Linkedin Url\": \"\",\r\n Email: \"\",\r\n \"Phone \": \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n \"Invitation Sent\": \"\",\r\n \"Connected On\": \"\",\r\n \"Messages Notes\": \"\",\r\n \"Current Stage\": \"\",\r\n \"Last Response\": \"\",\r\n Status: \"\"\r\n });\r\n return filedata;\r\n };\r\n\r\n exportToExcel = (fileData, fileName) => {\r\n if (this.props.fileData && this.props.fileData.length > 0) {\r\n let filedata = this.setDataWithHeader(fileData);\r\n try {\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n const name = \"Leads\";\r\n const ws = XLSX.utils.json_to_sheet(filedata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, {\r\n bookType: \"xlsx\",\r\n type: \"array\"\r\n });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, name + fileExtension);\r\n this.exportToClose();\r\n } catch (e) {\r\n swal(\"Error\", { icon: \"error\" });\r\n }\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }, 5000);\r\n }\r\n };\r\n\r\n exportToZapier = async salesforceData => {\r\n var urldata = await this.setDataWithZapierurl(\r\n this.props.fileData[0].campaignid\r\n );\r\n var selectedcontactData = this.props.fileData;\r\n let selectedArrayIds2 = [];\r\n if (salesforceData.length == selectedcontactData.length) {\r\n let filedata = this.setDataWithZapier(selectedcontactData);\r\n\r\n selectedArrayIds2 = filedata;\r\n } else {\r\n salesforceData.map(a => {\r\n selectedcontactData.map(b => {\r\n if (a.id == b.id) {\r\n selectedArrayIds2.push({\r\n campaignname: b.campaignIbfk4rel.Campaigns[0].name,\r\n campaignid: b.campaignid,\r\n moveto: urldata,\r\n Contactmessagesfk: b.Contactmessagesfk,\r\n campaignstatus: b.campaignstatus,\r\n connect: b.connect,\r\n connectedon: b.connectedon,\r\n contactstatus: b.contactstatus,\r\n CurrentStage: b.CurrentStage,\r\n currentStage: b.currentStage,\r\n currentstatus: b.currentstatus,\r\n dateofbirth: b.dateofbirth,\r\n designation: b.designation,\r\n email: b.email,\r\n fname: b.fname,\r\n id: b.id,\r\n industry: b.industry,\r\n InvitationSent: b.InvitationSent,\r\n linkedinid: b.linkedinid,\r\n location: b.location,\r\n name: b.name,\r\n organization: b.organization,\r\n phonenumber: b.phonenumber,\r\n profileimage: b.profileimage,\r\n skype: b.skype,\r\n thanksmsgdate: b.thanksmsgdate,\r\n twitter: b.twitter,\r\n Visit: b.Visit,\r\n Follow: b.Follow,\r\n Source: \"Xseller8\",\r\n country: b.country,\r\n State: b.state,\r\n Country: b.country,\r\n surname: b.surname,\r\n \r\n });\r\n }\r\n });\r\n });\r\n\r\n let filedata = this.setDataWithZapier(selectedArrayIds2);\r\n selectedArrayIds2 = filedata;\r\n }\r\n if (urldata != \"\" && urldata != null) {\r\n var urldata2 = await this.createExportHistory(selectedArrayIds2);\r\n let selectedArrayIds = selectedArrayIds2;\r\n var dataT = JSON.stringify(selectedArrayIds);\r\n var request = require(\"request\");\r\n var options = {\r\n method: \"POST\",\r\n url: urldata,\r\n headers: {\r\n \"Content-Type\": \"text/plain\"\r\n },\r\n body: dataT\r\n };\r\n this.exportToClose();\r\n request(options, function(error, response) {\r\n if (error) {\r\n swal(\"Please try again later\", { icon: \"warning\" });\r\n } else {\r\n swal(\"Successfully moved to Zapier\", { icon: \"success\" });\r\n }\r\n });\r\n } else {\r\n swal(\r\n \"Please configure the Zapier Integration URL on Campaign Details page\",\r\n { icon: \"warning\" }\r\n );\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n const { anchorEl, fileData, fileName } = this.state;\r\n return (\r\n
    \r\n \r\n Export as\r\n \r\n \r\n \r\n Export to\r\n \r\n this.exportToZapier(this.props.SalesHubdata)}\r\n >\r\n Zapier\r\n \r\n {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }}\r\n >\r\n Excel\r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ExportToExcel;\r\n","import CloseIcon from \"@material-ui/icons/Close\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport React, { Component } from \"react\";\r\nimport swal from \"sweetalert\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport photo from \"../../assets/photo.png\";\r\nimport EditCompany from \"../../LinkedinForm/EditCompany\";\r\nimport EditPosition from \"../../LinkedinForm/EditPosition\";\r\nimport EditName from \"../../LinkedinForm/EditName\";\r\nimport EditSurname from \"../../LinkedinForm/EditSurname\";\r\nimport EditGender from \"../../LinkedinForm/EditGender\";\r\nimport EditEmail from \"../../LinkedinForm/EditEmail\";\r\nimport EditPhone from \"../../LinkedinForm/EditPhone\";\r\nimport EditCountry from \"../../LinkedinForm/EditCountry\";\r\nimport EditState from \"../../LinkedinForm/EditState\";\r\nimport { getContactImageUrl } from \"../../../config\";\r\nimport {\r\n //CampaignsSteps2,\r\n getCampaignsSteps,\r\n UpdatePositionContact,\r\n UpdatefNameContact,\r\n SendMessages,\r\n UpdateCompanyContact,\r\n UpdateSurnameContact,\r\n UpdateGenderContact,\r\n UpdateEmailContact,\r\n UpdateCountryContact,\r\n UpdateStateContact,\r\n UpdatePhoneContact\r\n} from \"../campaignQueries\";\r\nimport \"./ContactDetails.css\";\r\nimport ContactDetailsAction from \"./ContactDetailsAction\";\r\nclass LeadsDetails extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n id: null,\r\n messageText: null,\r\n setOpen: false,\r\n fName: \"\",\r\n validationAlert: \"\"\r\n };\r\n }\r\n componentDidMount() {\r\n this.campaignSteps();\r\n }\r\n\r\n campaignSteps = async () => {\r\n let data = await getCampaignsSteps(this.props.Campaignid);\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n var dd = date.getDate();\r\n var mm = date.getMonth() + 1;\r\n var yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n return (date = dd + \"/\" + mm + \"/\" + yyyy);\r\n }\r\n };\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n\r\n RecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n var date = new Date(date);\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = time);\r\n }\r\n };\r\n ConnectedOnformatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.SendMessage();\r\n };\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n SendMessage = () => {\r\n var firstConn = this.props.details.connectedon;\r\n if (firstConn == null || firstConn == \"\") {\r\n swal(\r\n \"This contact is not connected. Please send the message with Linkedin\",\r\n { icon: \"warning\" }\r\n );\r\n } else {\r\n let test =\r\n this.state.messageText.trim().length > 0\r\n ? {\r\n data: {\r\n type: \"SENT\",\r\n campaignid: this.props.details.campaignid,\r\n contactid: this.props.details.id,\r\n message: this.state.messageText,\r\n realmsgdatetime: Date.now(),\r\n messagetobesent: 1\r\n \r\n }\r\n }\r\n : \"\";\r\n\r\n fetchMethod(SendMessages, test)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState({ messageText: \"\" }, () => {\r\n this.props.refreshMessage(this.props.details.id);\r\n });\r\n\r\n if (res.data.ContactmessagesCreate.id) {\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n };\r\n \r\n handleChange = event => {\r\n this.setState({ messageText: event.target.value });\r\n };\r\n\r\n OnSubmit = event => {\r\n return event.key === \"Enter\" ? this.SendMessage() : \"\";\r\n };\r\n handleOpen = () => {\r\n this.setState({ setOpen: true }, () => {});\r\n };\r\n handleClose = () => {\r\n this.setState({ setOpen: false });\r\n };\r\n\r\n render() {\r\n let details = this.props.details;\r\n let fName = details !== undefined ? details.fname : \"\";\r\n // let organization = details !== undefined ? details.organization : \"\";\r\n // let designation = details !== undefined ? details.designation : \"\";\r\n // let customer = this.props.Customer;\r\n let workflowStep = this.props.ContactDetailsWorkflow;\r\n let ContactDetailsMessages = this.props.ContactDetailsMessages;\r\n let Name = details !== undefined ? details.name : \"\";\r\n let surname = details !== undefined ? details.surname : \"\";\r\n let gender = details !== undefined ? details.gender : \"\";\r\n let email = details !== undefined ? details.email : \"\";\r\n let phonenumber = details !== undefined ? details.phonenumber : \"\";\r\n\r\n let image =\r\n details !== undefined &&\r\n details.profileimage !== undefined &&\r\n details.profileimage !== null\r\n ? details.profileimage.substr(0, 5)\r\n : \"\";\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {this.props.heading}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {image === \"https\" ? (\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + details.image;\r\n }}\r\n style={{\r\n width: \"88px\",\r\n height: \"88px\",\r\n border: \"single\",\r\n borderColor: \"gray\"\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n

    {Name}

    \r\n\r\n
    \r\n
      \r\n
    • \r\n Gender \r\n :\r\n {details !== undefined ? gender : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editGender\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n First Name\r\n :\r\n {details !== undefined ? fName : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editFName\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n Surname \r\n :\r\n {details !== undefined ? surname : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditSurname\"}\r\n />\r\n \r\n
    • \r\n \r\n
    • \r\n Phone \r\n :\r\n {details !== undefined ? phonenumber : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditPhone\"}\r\n />\r\n \r\n
    • \r\n\r\n
    • \r\n Email \r\n :\r\n {details !== undefined ? email : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditEmail\"}\r\n />\r\n \r\n
    • \r\n
    • \r\n D.O.B\r\n :\r\n \r\n {details !== undefined ? details.dateofbirth : \"\"}\r\n \r\n
    • \r\n\r\n
    • \r\n Connected On\r\n :\r\n \r\n {details !== undefined\r\n ? this.ConnectedOnformatDate(details.connectedon)\r\n : \"\"}\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n

    \r\n {details !== undefined ? details.contactstatus : \"\"}{\" \"}\r\n

    \r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Address

    \r\n
    \r\n
      \r\n
    • \r\n Location\r\n :\r\n {details !== undefined ? details.location : \"\"}\r\n
    • \r\n
    • \r\n State\r\n :\r\n \r\n {details !== undefined ? details.state : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditState\"}\r\n />\r\n \r\n \r\n
    • \r\n
    • \r\n Country\r\n :\r\n \r\n {details !== undefined ? details.country : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditCountry\"}\r\n />\r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Social Contacts

    \r\n
    \r\n
      \r\n
    • \r\n Twitter\r\n :\r\n {details !== undefined ? details.twitter : \"\"}\r\n
    • \r\n\r\n
    • \r\n Skype\r\n :\r\n {details !== undefined ? details.skype : \"\"}\r\n
    • \r\n\r\n
    • \r\n Followers\r\n :\r\n \r\n {details !== undefined ? details.numberoffollowers : \"\"}\r\n \r\n
    • \r\n\r\n
    • \r\n LinkedIn\r\n :\r\n \r\n \r\n {details !== undefined ? details.linkedinid : \"\"}\r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Professional Details

    \r\n
    \r\n
      \r\n
    • \r\n Current Position\r\n :\r\n \r\n {details !== undefined ? details.designation : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"EditPosition\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Company\r\n :\r\n \r\n {details !== undefined ? details.organization : \"\"}\r\n \r\n {\r\n this.props.onSearchClick();\r\n\r\n this.props.refreshMessage(this.props.details.id);\r\n }}\r\n className={\"editFName\"}\r\n />\r\n \r\n \r\n
    • \r\n\r\n
    • \r\n Industry\r\n :\r\n {details !== undefined ? details.industry : \"\"}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Workflow Followed

    \r\n\r\n {workflowStep !== undefined &&\r\n workflowStep !== null &&\r\n workflowStep.length !== 0 ? (\r\n workflowStep.map((workflow, index) => {\r\n \r\n var stepDate = workflow.utctasktime;\r\n\r\n if (workflow.utctasktime == null) {\r\n\r\n stepDate = workflow.executedon;\r\n }\r\n let count = index + 1;\r\n\r\n if (\r\n workflow.contactworkflowhistoryIbfk2rel.Campaignsteps.length ===\r\n 1\r\n ) {\r\n return (\r\n
    \r\n \r\n {workflow.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .stepname === \"VISIT\"\r\n ? \"Visit\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 1\r\n ? \"Invite Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_INVITE\" &&\r\n workflow.successflag == 0\r\n ? \"Invite Not Sent\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_THANKS_MESSAGE\"\r\n ? \"Send Thanks Message\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"FOLLOW\"\r\n ? \"Follow\"\r\n : workflow.contactworkflowhistoryIbfk2rel\r\n .Campaignsteps[0].stepname === \"SEND_EMAIL\"\r\n ? \"Send InMail\"\r\n : \"Send Message\"}\r\n \r\n {this.formatDate(stepDate)}\r\n {this.formatDate1(stepDate)}\r\n \r\n Step{\" \" + count}\r\n
    \r\n );\r\n }\r\n })\r\n ) : (\r\n
    No workflow Followed
    \r\n )}\r\n\r\n
    \r\n

    Messages

    \r\n {ContactDetailsMessages !== undefined &&\r\n ContactDetailsMessages !== null &&\r\n ContactDetailsMessages.length !== 0\r\n ? ContactDetailsMessages.map(message => {\r\n\r\n \r\n var messageDate = message.utcmessagetime;\r\n if (message.utcmessagetime == null) {\r\n messageDate = message.messagedatetime;\r\n }\r\n if (\r\n message.type === \"SENT\" &&\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
    \r\n {message.message}\r\n
    \r\n
    \r\n \r\n \r\n {messageDate\r\n ? this.formatDate(messageDate)\r\n : \"\"}\r\n \r\n \r\n {this.formatDate1(messageDate)}\r\n \r\n
    \r\n
    \r\n );\r\n } else if (\r\n message.message !== \"\" &&\r\n message.message !== null\r\n ) {\r\n return (\r\n \r\n
    \r\n {message.message}\r\n
    \r\n
    \r\n \r\n {messageDate\r\n ? this.formatDate(messageDate)\r\n : \"\"}\r\n \r\n \r\n {this.formatDate1(messageDate)}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n })\r\n : \"\"}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default LeadsDetails;\r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport {\r\n campaignContactStatusMutation,\r\n campaignContactLogMaintain\r\n} from \"../../../Queries\";\r\nimport swal from \"sweetalert\";\r\nimport \"./Engaged.css\";\r\n\r\nclass LeadTo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n anchorEl: this.props.target,\r\n convertTo: [\"Suspect\", \"Prospect\", \"Opportunity\"],\r\n campaignStatus: [\"Live Campaign\", \"Pause Campaign\", \"Remove Contact\"],\r\n limit: 0,\r\n offset: 0\r\n };\r\n }\r\n componentDidMount() {\r\n this.convertToClickList();\r\n }\r\n convertToList = () => {\r\n let convertToMessage = [];\r\n let campaignstatus = [];\r\n let contactstatus =\r\n this.props.contactStatus !== null\r\n ? this.props.contactStatus.toLowerCase()\r\n : \"\";\r\n let campStatus =\r\n this.props.campaignStatus != null\r\n ? this.props.campaignStatus.toLowerCase()\r\n : \"\";\r\n switch (campStatus) {\r\n case \"live\":\r\n campaignstatus[0] = \"Pause Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n break;\r\n case \"pause\":\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n break;\r\n default:\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[1] = \"Pause Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n }\r\n switch (contactstatus) {\r\n case \"suspect\":\r\n convertToMessage[0] = \"Prospect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"prospect\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"opportunity\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n break;\r\n default:\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n convertToMessage[2] = \"Opportunity\";\r\n }\r\n this.setState({ convertTo: convertToMessage });\r\n this.setState({ campaignStatus: campaignstatus });\r\n };\r\n\r\n convertToClickList = () => {\r\n this.convertToList(this.state.anchorEl);\r\n };\r\n\r\n clickToConvertStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n switch (status) {\r\n case \"suspect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"prospect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"opportunity\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n default:\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n }\r\n this.convertToClose();\r\n };\r\n\r\n changeContactStatus = (newStatus, status, id) => {\r\n let updateStatus = {};\r\n\r\n if (newStatus !== \"NOOP\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n\r\n leads: 1,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n } else {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n campaignstatus: \"Pause\",\r\n noop: 1,\r\n engaged: 0,\r\n leads: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", {\r\n icon: \"success\"\r\n }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n logMaintain = (newStatus, id) => {\r\n let newstatus = newStatus.toLowerCase();\r\n let updateLog = {};\r\n let createdBy = localStorage.getItem(\"id\");\r\n switch (newstatus) {\r\n case \"prospect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_PROSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"suspect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_SUSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"opportunity\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n action: \"CONVERT_TO_OPPORTUNITY\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"noop\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n engaged: 0,\r\n action: \"CONVERT_TO_NOOP\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n default: {\r\n }\r\n }\r\n if (newStatus == \"Pause Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_PAUSED\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus == \"Live Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_LIVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus == \"Remove Contact\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_REMOVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus == \"Convert Engaged\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_ENGAGED\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n\r\n fetchMethod(campaignContactLogMaintain, updateLog)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => res);\r\n };\r\n\r\n onClickToConvertCampaignStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n this.changeCampaignStatus(newStatus, this.props.id);\r\n this.props.onClose();\r\n };\r\n\r\n changeCampaignStatus = (newStatus, id) => {\r\n let newstatus = newStatus !== null ? newStatus.toLowerCase() : \"\";\r\n let updatedBy = localStorage.getItem(\"id\");\r\n let updateStatus = {};\r\n if (newstatus === \"live campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Live\",\r\n engaged: 0,\r\n leads: 0,\r\n contactstatus: null,\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"pause campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"remove contact\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n active: 0,\r\n leads: 0,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", { icon: \"success\" }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n convertToClose = () => {\r\n const { onCloseEngagedPopup: cb } = this.props;\r\n cb && cb();\r\n this.setState({ anchorEl: null });\r\n this.props.onClose();\r\n };\r\n\r\n render() {\r\n const { isOpen, id, target } = this.props;\r\n const { anchorEl, convertTo } = this.state;\r\n return (\r\n
    \r\n \r\n {this.state.campaignStatus.map((newCamp, key) => {\r\n return (\r\n {\r\n this.onClickToConvertCampaignStatus(\r\n e,\r\n newCamp,\r\n this.props.campaignStatus\r\n );\r\n }}\r\n >\r\n {newCamp}\r\n \r\n );\r\n })}\r\n {\r\n this.clickToConvertStatus(e, \"NOOP\", this.props.contactStatus);\r\n }}\r\n >\r\n No Opp\r\n \r\n
    \r\n \r\n Convert to\r\n \r\n {convertTo.map((newstatus, key) => {\r\n return (\r\n \r\n this.clickToConvertStatus(\r\n e,\r\n newstatus,\r\n this.props.contactStatus\r\n )\r\n }\r\n style={{ marginLeft: \"10px\" }}\r\n >\r\n {newstatus}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default LeadTo;\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport \"../../tables/reactTable.css\";\r\nimport { getContactImageUrl } from \"../../../config\";\r\nimport ReactTableComponent from \"../../tables/ReactTable\";\r\nimport {\r\n campaignLeadsTabList,\r\n campaignLeadsTabSelectList,\r\n campaignLeadsExport\r\n} from \"../../../Queries\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker\r\n} from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport {\r\n Profileid,\r\n // plannedDate,\r\n Engaged,\r\n UpdatefollowUp\r\n} from \"../campaignQueries\";\r\nimport editicon from \"../../../../src/Components/assets/edit.png\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport SearchIcon from \"../../assets/search.png\";\r\nimport { TextField, Button, Drawer, IconButton } from \"@material-ui/core\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport \"../CampaignTables.css\";\r\nimport \"../CampaignTabs.css\";\r\nimport \"./CampaignNoOpTab.css\";\r\nimport \"./CampaignLeadsTab.css\";\r\n//import Photo from \"../../assets/photo.png\";\r\nimport ExportTo from \"./LeadToExcel\";\r\nimport { Checkbox } from \"pretty-checkbox-react\";\r\nimport LeadsDetails from \"./LeadsDetails\";\r\nimport swal from \"sweetalert\";\r\nimport LeadTo from \"./LeadTo\";\r\nconst moment = require(\"moment\");\r\n\r\nclass CampaignLeadsTab extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n loading: false,\r\n limit: 0,\r\n offset: 0,\r\n searchFlag: false,\r\n coulmnFilter: \"\",\r\n shortfilter: false,\r\n clickToSearch: false,\r\n campaignLeadsTableList: [],\r\n campaignLeadsList: [],\r\n totalCount: 0,\r\n show: \"\",\r\n Currentstage: [],\r\n invitationSent: [],\r\n selected: {},\r\n selectAll: 0,\r\n selectedArray: [],\r\n campaignLeadsAllSelectedList: [],\r\n profileid: undefined,\r\n salesforcetoken: null,\r\n hubspottoken: null,\r\n isSearching: false,\r\n campaignLeadsExportData: [],\r\n Row: \"\"\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.ExportData();\r\n this.setState({ show: false }, () =>\r\n this.props.detailEdit(this.state.show)\r\n );\r\n this.Profile();\r\n }\r\n\r\n ExportData = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignLeadsExport, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n campaignLeadsExportData: res.data.allContacts.Contacts\r\n });\r\n });\r\n };\r\n\r\n Profile = () => {\r\n fetchMethod(Profileid(this.props.campaignId))\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n profileid:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].id,\r\n hubspottoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].hubspottoken,\r\n salesforcetoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].salesforcetoken\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n emptySelectedArray = () => {\r\n this.setState({ selectedArray: [], selectAll: false, selected: {} });\r\n };\r\n handleDateChange = date => {\r\n this.setState({\r\n selectedDate: date\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n fetchContactDrawerDetails = (side, open, row) => event => {\r\n fetchMethod(Engaged(row.id))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsWorkflow:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactworkflowhistoryfk\r\n .Contactworkflowhistories\r\n : \"\",\r\n\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\",\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\",\r\n getCampaignId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n getCustomer:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null &&\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns.length > 0\r\n ? res.data.allContacts.Contacts[0].Campaigns.Campaigns[0]\r\n .Customers.Customers[0]\r\n : \"\",\r\n contactStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].contactstatus\r\n : \"\",\r\n campaignStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignstatus\r\n : \"\",\r\n contactId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].id\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => swal({ title: e, icon: \"warning\" }));\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n closeDetails = () => {\r\n this.setState({ openDetails: false });\r\n };\r\n setLeadsListData = response => {\r\n this.setState({\r\n campaignLeadsList: response.data.allContacts.Contacts,\r\n totalCount: response.data.allContacts.totalCount\r\n });\r\n };\r\n\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n }\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n handleChange = event => {\r\n this.setState({\r\n search: event.target.value,\r\n searchFlag: true,\r\n isSearching: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n this.setState({ isSearching: false });\r\n },\r\n 200\r\n );\r\n };\r\n\r\n fetchRefresh = response => {\r\n this.fetchMessage(response);\r\n };\r\n fetchMessage = response => {\r\n fetchMethod(Engaged(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => swal({ title: e, icon: \"warning\" }));\r\n };\r\n\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n gettingAllDataFromQuery = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignLeadsTabSelectList, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n let allselectedIds = [];\r\n responseAsJson.data.allContacts.Contacts.map(i => {\r\n allselectedIds.push({ id: i.id });\r\n });\r\n this.setState(\r\n {\r\n campaignLeadsTabSelectList: allselectedIds\r\n },\r\n () => {\r\n let selectedArr = [];\r\n let consolidateArray = [];\r\n this.state.campaignLeadsTabSelectList.map(item => {\r\n consolidateArray[item.id] = true;\r\n selectedArr.push({ id: item.id });\r\n });\r\n this.setState({\r\n selectAll: true,\r\n selected: consolidateArray,\r\n selectedArray: selectedArr\r\n });\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n onRowSelected = sarray => {\r\n if (sarray.length === this.state.totalCount) {\r\n this.setState({ selectAll: true });\r\n } else {\r\n this.setState({ selectAll: false });\r\n }\r\n };\r\n\r\n toggleRowNew = (id, rowInfo) => {\r\n const newSelected = Object.assign({}, this.state.selected);\r\n newSelected[id] = !this.state.selected[id];\r\n this.setState({\r\n selected: newSelected\r\n });\r\n const { selectedArray } = this.state;\r\n let arr = selectedArray.filter(val => val.id !== id);\r\n if (!arr.length) {\r\n this.setState(\r\n {\r\n selectedArray: []\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n if (arr.length === selectedArray.length) {\r\n this.setState(\r\n {\r\n selectedArray: [...selectedArray, rowInfo]\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n selectedArray: arr\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n };\r\n\r\n toggleSelectAllRow = isChecked => {\r\n if (isChecked) {\r\n this.gettingAllDataFromQuery();\r\n } else {\r\n this.setState({\r\n selectAll: false,\r\n selectedArray: [],\r\n selected: {}\r\n });\r\n }\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n search: \"\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n }\r\n );\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date && date !== \"Yes\") {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n formatDate2 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${mm}/${dd}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ columnFilter: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ columnFilter: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter = () => {\r\n this.setState(\r\n { columnFilter: \"organization asc\", shortfilter: true },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n }\r\n );\r\n };\r\n CompanyFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"organization desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter = () => {\r\n this.setState({ columnFilter: \"designation asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n PositionFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"designation desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter = () => {\r\n this.setState({ columnFilter: \"location asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n LocationFilter1 = () => {\r\n this.setState({ columnFilter: \"location desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n connectedonFilter = () => {\r\n this.setState({ columnFilter: \"connectedon asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n connectedonFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"connectedon desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n InvitationsentFilter = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n InvitationsentFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n currentstatusFilter = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n currentstatusFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n LeadsTypeFilter = () => {\r\n this.setState(\r\n { columnFilter: \"ContactStatus asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LeadsTypeFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"ContactStatus desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n filter = () => {\r\n const search = this.state.clickToSearch ? this.state.search : \"\";\r\n const like = \"%\" + `${search}` + \"%\";\r\n\r\n const filter = {\r\n where: {\r\n active: \"1\",\r\n leads: \"1\",\r\n campaignid: this.props.campaignId,\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n\r\n order: this.state.columnFilter,\r\n\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n return filter;\r\n };\r\n\r\n formatDate3 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(date);\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n handleStatusChange2 = (row, updateStatus, date) => event => {\r\n updateStatus = {\r\n where: { id: row.original.id },\r\n data: {\r\n followup: this.formatDate3(event)\r\n }\r\n };\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(UpdatefollowUp, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully updated\", { icon: \"success\" }).then(() => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n });\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n showEngagedToPopup = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n showEngagedToPopup = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n };\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n onTableRowClick = rowInfo => {\r\n this.setState({ Row: rowInfo.original.id });\r\n };\r\n render() {\r\n const { selectedEngagedRow } = this.state;\r\n const campaignLeadsList = [...this.state.campaignLeadsList];\r\n const campaignLeadsExportData = [...this.state.campaignLeadsExportData];\r\n const CampaignLeadsListHeaders = [\r\n {\r\n Header: obj => {\r\n return (\r\n {\r\n this.toggleSelectAllRow(e.target.checked);\r\n }}\r\n />\r\n );\r\n },\r\n width: 38,\r\n Cell: rowInfo => {\r\n return (\r\n \r\n this.toggleRowNew(rowInfo.original.id, rowInfo.original)\r\n }\r\n />\r\n );\r\n }\r\n },\r\n {\r\n Header: \"Image\",\r\n accessor: \"Image\",\r\n \r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Name\r\n \r\n );\r\n },\r\n accessor: \"name\",\r\n width: 150,\r\n Cell: row => (\r\n \r\n {row.original.name}\r\n \r\n )\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Company\r\n \r\n );\r\n },\r\n accessor: \"organization\",\r\n width: 150,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Position\r\n \r\n );\r\n },\r\n accessor: \"designation\",\r\n width: 150,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Location\r\n \r\n );\r\n },\r\n accessor: \"location\",\r\n width: 150,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Connected On\r\n \r\n );\r\n },\r\n accessor: \"Connectedon\",\r\n width: 110,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Lead Type\r\n \r\n );\r\n },\r\n accessor: \"ContactStatus\"\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Invitation Sent\r\n \r\n );\r\n },\r\n accessor: \"InvitationSent\",\r\n width: 110,\r\n },\r\n\r\n {\r\n Header: \"Last Response\",\r\n accessor: \"LR\",\r\n width: 110,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Follow Up\r\n \r\n );\r\n },\r\n \r\n\r\n Cell: row => {\r\n return (\r\n \r\n {row.original.followup}\r\n\r\n \r\n \r\n \r\n }\r\n InputProps={{\r\n disableUnderline: true\r\n }}\r\n helperText={\"\"}\r\n />\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n {\r\n Header: \" Status\",\r\n accessor: \"CampaignStatus\"\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Stage\r\n \r\n );\r\n },\r\n accessor: \"CurrentStage\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"Kebab_Menu\",\r\n Cell: rowInfo => (\r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n )\r\n }\r\n ];\r\n\r\n campaignLeadsList.map(list => {\r\n \r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = this.formatDate(list.lastresponse.split(\"T\")[0]);\r\n }\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup !== \"\" &&\r\n list.followup\r\n ) {\r\n var date = this.formatDate2(list.followup.split(\"T\")[0]);\r\n var cmTime = new Date(date);\r\n var dateday = cmTime.getDay();\r\n if (dateday >= 3) {\r\n \r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 5);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n } else {\r\n \r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 3);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n }\r\n }\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup\r\n ) {\r\n list.followup = this.formatDate(list.followup.split(\"T\")[0]);\r\n }\r\n\r\n let image =\r\n list.profileimage !== undefined && list.profileimage !== null\r\n ? list.profileimage.substr(0, 5)\r\n : \"\";\r\n if (image === \"https\") {\r\n list.Image = (\r\n \r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + list.image;\r\n }}\r\n style={{ borderRadius: \"50%\", width: \"30px\" }}\r\n />\r\n \r\n );\r\n } else {\r\n list.Image = (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n\r\n list.ContactStatus =\r\n list.contactstatus === \"SUSPECT\"\r\n ? \"Suspect\"\r\n : list.contactstatus === \"PROSPECT\"\r\n ? \"Prospect\"\r\n : list.contactstatus === \"OPPORTUNITY\"\r\n ? \"Opportunity\"\r\n : list.contactstatus;\r\n\r\n list.organization =\r\n list.organization !== undefined && list.organization !== null\r\n ? list.organization\r\n : \"\";\r\n list.CampaignStatus =\r\n list.campaignstatus !== null && list.campaignstatus !== undefined\r\n ? list.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : list.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : \"Live\"\r\n : \"\";\r\n\r\n\r\n if (\r\n list.connectedon !== undefined &&\r\n list.connectedon !== null &&\r\n list.connectedon\r\n ) {\r\n list.Connectedon = this.formatDate(list.connectedon);\r\n }\r\n\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = this.formatDate(\r\n list.invitationsent.split(\"T\")[0]\r\n );\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n if (\r\n list.invitesent == 0 &&\r\n (list.currentstatus == \"Invite Sent\" ||\r\n list.currentstatus == \"Invite Not Sent\")\r\n ) {\r\n list.CurrentStage = \"Invite not Sent\";\r\n } else {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n\r\n campaignLeadsExportData.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = list.lastresponse;\r\n }\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = list.invitationsent.split(\"T\")[0];\r\n }\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n });\r\n\r\n const filterr = this.filter();\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n this.closeDetails()}\r\n >\r\n this.closeDetails()}\r\n details={this.state.getData}\r\n Campaignid={this.state.getCampaignId}\r\n Customer={this.state.getCustomer}\r\n contactStatus={this.state.contactStatus}\r\n campaignStatus={this.state.campaignStatus}\r\n id={this.state.contactId}\r\n // id={row.id}\r\n tableRerender={this.child.current}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n ContactDetailsWorkflow={this.state.ContactDetailsWorkflow}\r\n ContactDetailsMessages={this.state.ContactDetailsMessages}\r\n heading={\"Leads Details\"}\r\n />\r\n \r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
    \r\n
    \r\n {selectedEngagedRow && (\r\n \r\n )}\r\n\r\n
    \r\n

    \r\n Total Records: {this.state.totalCount}\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\nexport default CampaignLeadsTab;\r\n","import React, { Component } from \"react\";\r\nimport \"./CampaignDetailsTab.css\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport { campaignDetails } from \"../../../Queries\";\r\nimport Linkify from 'react-linkify';\r\nclass CampaignDetailsTab extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n name: \"\",\r\n description: \"\",\r\n customer: \"\",\r\n campManagerFirstName: \"\",\r\n campManagerLastName: \"\",\r\n campAdminFirstName: \"\",\r\n campAdminLastName: \"\",\r\n linkedInProfile: \"\",\r\n status: \"\",\r\n connectionsToBeSent: \"\",\r\n startDate: \"\",\r\n startTime: \"\",\r\n steps: [],\r\n show: false\r\n };\r\n }\r\n componentDidMount() {\r\n this.fetchDetails(this.props.campaignId);\r\n }\r\n\r\n fetchDetails = campaignId => {\r\n fetchMethod(campaignDetails(campaignId))\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n this.setState(\r\n {\r\n loading: false,\r\n show: true\r\n },\r\n () => this.props.detailEdit(this.state.show)\r\n );\r\n this.setDetails(responseAsJson);\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n setTimeZone = startTime => {\r\n let timezones = [\r\n { name: \"PST\", value: \"-28800\" },\r\n { name: \"MST/PDT\", value: \"-25200\" },\r\n { name: \"CST/MDT\", value: \"-21600\" },\r\n { name: \"EST/CDT\", value: \"-18000\" },\r\n { name: \"EDT\", value: \"-14400\" },\r\n { name: \"GMT\", value: \"0\" },\r\n { name: \"BST\", value: \"+3600\" },\r\n { name: \"IST\", value: \"+19800\" }\r\n ];\r\n let stime = \"\";\r\n timezones.map(t => {\r\n if (t.value === startTime) {\r\n stime = t.name;\r\n }\r\n });\r\n this.setState({ startTime: stime });\r\n };\r\n\r\n setDetails = response => {\r\n let customer =\r\n response.data.Campaigns.customerIbfk1rel !== undefined\r\n ? response.data.Campaigns.customerIbfk1rel.Customers.map(c => {\r\n return c.company;\r\n })\r\n : \"\";\r\n let campAdminFirstName =\r\n response.data.Campaigns.Admin !== undefined\r\n ? response.data.Campaigns.Admin.Usersdata.map(fname => {\r\n return fname.name;\r\n })\r\n : \"\";\r\n\r\n let campManagerFirstName =\r\n response.data.Campaigns.Manager !== undefined &&\r\n response.data.Campaigns.Manager !== null\r\n ? response.data.Campaigns.Manager.Usersdata.map(name => {\r\n let fname =\r\n name.firstName !== undefined && name.firstName !== null\r\n ? name.firstName\r\n : \"\";\r\n let lname =\r\n name.lastName !== undefined && name.lastName !== null\r\n ? name.lastName\r\n : \"\";\r\n return fname + \" \" + lname;\r\n })\r\n : \"\";\r\n\r\n let linkedInProfile =\r\n response.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles !== undefined &&\r\n response.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles !== null\r\n ? response.data.Campaigns.customercredentialsIbfk1rel.Customerlinkedinprofiles.map(\r\n name => {\r\n return name.name;\r\n }\r\n )\r\n : \"\";\r\n this.setTimeZone(response.data.Campaigns.timezone);\r\n\r\n this.setState(\r\n {\r\n name: response.data.Campaigns.name,\r\n description: response.data.Campaigns.description,\r\n customer: customer,\r\n campAdminFirstName: campAdminFirstName,\r\n campManagerFirstName: campManagerFirstName,\r\n linkedInProfile: linkedInProfile,\r\n status: response.data.Campaigns.status,\r\n connectionsToBeSent: response.data.Campaigns.targetconnections,\r\n // connectionsToBeSent: response.data.Campaigns.zapierurl,\r\n startDate: response.data.Campaigns.startdate,\r\n steps:\r\n response.data.Campaigns.Campaignstepfk !== undefined\r\n ? response.data.Campaigns.Campaignstepfk.Campaignsteps\r\n : \"\"\r\n },\r\n () => {\r\n this.state.steps.sort(function(a, b) {\r\n return a.sequence - b.sequence;\r\n });\r\n this.props.name(this.state.name);\r\n }\r\n );\r\n };\r\n render() {\r\n \r\n const {\r\n name,\r\n description,\r\n customer,\r\n // campAdminFirstName,\r\n // campAdminLastName,\r\n linkedInProfile,\r\n status,\r\n startDate,\r\n connectionsToBeSent,\r\n // startTime,\r\n steps\r\n } = this.state;\r\n\r\n let Status = status !== null ? status : \"\";\r\n let StartDate = startDate.split(\"T\")[0];\r\n let date = StartDate.split(\"-\")\r\n .reverse()\r\n .join(\"/\");\r\n let dateArray = date.split(\"/\");\r\n let reverseDate =\r\n dateArray[0] !== \"\"\r\n ? dateArray[0] + \"/\" + dateArray[1] + \"/\" + dateArray[2]\r\n : \"\";\r\n let StartTime = startDate.split(\"T\")[1];\r\n let reverseTime =\r\n StartTime !== undefined && StartTime !== null\r\n ? StartTime.split(\".\")[0]\r\n : \"\";\r\n let time =\r\n reverseTime !== undefined && reverseTime !== null\r\n ? reverseTime.split(\":\")\r\n : \"\";\r\n let Timestart =\r\n time[0] !== undefined && time[1] !== undefined\r\n ? time[0] + \":\" + time[1]\r\n : \"\";\r\n\r\n const campaignManager = this.state.campManagerFirstName;\r\n\r\n let pos = 0;\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {\"Name & Description\"}
    \r\n

    {name !== null && name !== \" \" && name ? name : \"--\"}

    \r\n
    \r\n
    \r\n

    \r\n {description !== null && description !== \" \" && description\r\n ? description\r\n : \"--\"}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {customer !== null && customer !== \" \" && customer\r\n ? customer\r\n : \"--\"}\r\n

    \r\n
    \r\n
    \r\n

    \r\n {campaignManager !== null &&\r\n campaignManager !== \" \" &&\r\n campaignManager\r\n ? campaignManager\r\n : \"--\"}\r\n

    \r\n
    \r\n
    \r\n

    \r\n {linkedInProfile !== null &&\r\n linkedInProfile !== \" \" &&\r\n linkedInProfile\r\n ? linkedInProfile\r\n : \"--\"}\r\n

    \r\n
    \r\n
    \r\n

    \r\n {Status !== null && Status !== \" \" && Status ? (\r\n Status.toLowerCase() === \"live\" ? (\r\n {Status}\r\n ) : Status.toLowerCase() === \"paused\" ? (\r\n {Status}\r\n ) : Status.toLowerCase() === \"completed\" ? (\r\n {Status}\r\n ) : (\r\n {Status}\r\n )\r\n ) : (\r\n \"--\"\r\n )}\r\n

    \r\n
    \r\n
    \r\n

    \r\n {connectionsToBeSent !== null &&\r\n connectionsToBeSent !== \" \" &&\r\n connectionsToBeSent\r\n ? connectionsToBeSent\r\n : \"--\"}\r\n

    \r\n
    \r\n
    \r\n

    \r\n {reverseDate !== null &&\r\n reverseDate !== \"\" &&\r\n reverseDate !== undefined &&\r\n Timestart !== null &&\r\n Timestart !== \"\" &&\r\n Timestart !== undefined\r\n ? reverseDate + \" \" + Timestart\r\n : \"--\"}\r\n

    \r\n
    \r\n
    \r\n
    {steps.length > 0 ? \"Steps\" : \" \"}
    \r\n
    \r\n {steps.map((step, key) => {\r\n const count = key + 1;\r\n let stepclass =\r\n step.stepname === \"SEND_INVITE\"\r\n ? `sendInvite`\r\n : step.stepname === \"FOLLOW\"\r\n ? `follow`\r\n : step.stepname === \"VISIT\"\r\n ? `visit`\r\n : step.stepname === \"SEND_THANKS_MESSAGE\"\r\n ? `sendThanks`\r\n : step.stepname === \"SEND_MESSAGE\"\r\n ? `sendMessage`\r\n : step.stepname === \"SEND_EMAIL\"\r\n ? `sendMessage`\r\n : \"\";\r\n if (step.stepname === \"SEND_MESSAGE\" || \"SEND_EMAIL\") {\r\n pos = pos + 1;\r\n }\r\n return (\r\n
    \r\n

    \r\n \r\n {step.stepname === \"SEND_INVITE\"\r\n ? count + \". Send Invite\"\r\n : step.stepname === \"FOLLOW\"\r\n ? count + \". Follow Profile\"\r\n : step.stepname === \"VISIT\"\r\n ? count + \". Visit Profile\"\r\n : step.stepname === \"SEND_THANKS_MESSAGE\"\r\n ? count + \". Send Thanks Message\"\r\n : step.stepname === \"SEND_MESSAGE\"\r\n ? count + \". Send Message \" + pos\r\n : step.stepname === \"SEND_EMAIL\"\r\n ? count + \". Send InMail\" + pos\r\n : \"\"}\r\n \r\n

    \r\n {step.stepname === \"SEND_MESSAGE\" ||\r\n step.stepname === \"SEND_EMAIL\" ||\r\n step.stepname === \"SEND_THANKS_MESSAGE\" ||\r\n step.stepname === \"SEND_INVITE\" ? (\r\n step.message !== null &&\r\n step.message !== \" \" &&\r\n step.message ? (\r\n \r\n

    \r\n {step.message}\r\n

    \r\n \r\n ) : (\r\n

    --

    \r\n )\r\n ) : (\r\n \"\"\r\n )}\r\n

    \r\n {step.limitperday !== null &&\r\n step.limitperday !== \" \" &&\r\n step.limitperday\r\n ? step.limitperday\r\n : \"--\"}{\" \"}\r\n {step.stepname === \"SEND_MESSAGE\" ? (\r\n message per day ~ \r\n ) : step.stepname === \"SEND_INVITE\" ? (\r\n invite per day ~ \r\n ) : step.stepname === \"FOLLOW\" ? (\r\n follow per day ~ \r\n ) : step.stepname === \"SEND_THANKS_MESSAGE\" ? (\r\n thanks message per day ~ \r\n ) : step.stepname === \"SEND_EMAIL\" ? (\r\n email per day ~ \r\n ) : (\r\n visit per day ~ \r\n )}\r\n {step.daysdelay !== null &&\r\n step.daysdelay !== \" \" &&\r\n step.daysdelay\r\n ? step.daysdelay\r\n : \"0\"}{\" \"}\r\n days delay\r\n

    \r\n
    \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CampaignDetailsTab; \r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport swal from \"sweetalert\";\r\nimport { salesforceApi, hubspotApi } from \"../../../config\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nimport { campaignZapierurlDetails, contactExport } from \"../../../Queries\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nclass ExportToExcel extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loading: false, anchorEl: null, fileName: \"Engaged\" };\r\n }\r\n\r\n ExcelRecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let date1 = `${dd}/${mm}/${yyyy}`;\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = date1 + \" \" + time);\r\n }\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return (date = date + \" \" + time);\r\n }\r\n };\r\n exportToClick = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n event.stopPropagation();\r\n };\r\n\r\n exportToClose = () => {\r\n this.setState({ anchorEl: null });\r\n };\r\n\r\n exportToSalesforce = salesforceData => {\r\n let selectedArrayIds = [];\r\n salesforceData.map(a => {\r\n selectedArrayIds.push(a.id);\r\n });\r\n\r\n if (salesforceData.length > 0) {\r\n selectedArrayIds = JSON.stringify(selectedArrayIds);\r\n if (this.props.SalesforceToken !== null) {\r\n fetch(\r\n salesforceApi.url +\r\n `${selectedArrayIds}` +\r\n `&profileId=${this.props.Profile}` +\r\n `&access_token=${localStorage.getItem(\"token\")}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n this.exportToClose();\r\n swal(\"Successfully moved to Salesforce\", { icon: \"success\" });\r\n this.props.selectedArray();\r\n })\r\n .catch(err => {\r\n console.log(\"Error\", err);\r\n swal(\"Please try Again later\", { icon: \"warning\" });\r\n });\r\n } else {\r\n swal(\"Connect to Salesforce First\", { icon: \"warning\" });\r\n }\r\n } else {\r\n swal(\"Please select contact\", { icon: \"warning\" });\r\n }\r\n };\r\n\r\n exportToHubspot = hubspotData => {\r\n let selectedArrayIds = [];\r\n hubspotData.map(a => {\r\n selectedArrayIds.push(a.id);\r\n });\r\n\r\n if (hubspotData.length > 0) {\r\n if (this.props.HubspotToken !== null) {\r\n selectedArrayIds = JSON.stringify(selectedArrayIds);\r\n fetch(\r\n hubspotApi.url +\r\n `${selectedArrayIds}` +\r\n `&profileId=${this.props.Profile}` +\r\n `&access_token=${localStorage.getItem(\"token\")}`,\r\n {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.response === \"success\") {\r\n this.exportToClose();\r\n swal(\"Successfully moved to hubspot\", { icon: \"success\" });\r\n this.props.selectedArray();\r\n }\r\n })\r\n .catch(err => {\r\n console.log(\"Error\", err);\r\n swal(\"Please try Again later\", { icon: \"warning\" });\r\n });\r\n } else {\r\n swal(\"Connect to Hubspot First\", { icon: \"warning\" });\r\n }\r\n } else {\r\n swal(\"Please select contact\", { icon: \"warning\" });\r\n }\r\n };\r\n createExportHistory = async data => {\r\n var variables = {\r\n data\r\n };\r\n return await fetchMethod(contactExport, variables).then(response => {\r\n return response.json();\r\n });\r\n };\r\n setDataWithZapierurl = async campaignId => {\r\n return await fetchMethod(campaignZapierurlDetails(campaignId))\r\n .then(response => response.json())\r\n .then(responseAsJson => responseAsJson.data.Campaigns.zapierurl)\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n setDataWithZapier = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n // let steps = item.currentStage.Contactworkflowhistories;\r\n // let List1 = steps[steps.length - 1];\r\n // let Messages = item.Contactmessagesfk.Contactmessages;\r\n let steps = item?.currentStage?.Contactworkflowhistories || [];\r\n let List1 = steps.length > 0 ? steps[steps.length - 1] : null;\r\n\r\n let Messages = item?.Contactmessagesfk?.Contactmessages || [];\r\n\r\n let message = [];\r\n // Messages.map(m => {\r\n // message.push(\r\n // m.message +\r\n // \"\\n\" +\r\n // this.ExcelRecieveddateFomate(m.messagedatetime) +\r\n // \" (\" +\r\n // m.type +\r\n // \")\"\r\n // );\r\n // });\r\n (Messages || []).forEach(m => {\r\n if (m?.message && m?.messagedatetime && m?.type) {\r\n message.push(\r\n `${m.message}\\n${this.ExcelRecieveddateFomate(m.messagedatetime)} (${m.type})`\r\n );\r\n }\r\n });\r\n \r\n let wholeMessages = message.join(\"\\n \\n\");\r\n\r\n // let executedonVisit = [];\r\n // let x = steps.filter(step => {\r\n // if (\r\n // step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n // \"VISIT\"\r\n // ) {\r\n // executedonVisit.push(step.executedon);\r\n // }\r\n // });\r\n // let executedonFollow = [];\r\n // let y = steps.filter(step => {\r\n // if (\r\n // step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n // \"FOLLOW\"\r\n // ) {\r\n // executedonFollow.push(step.executedon);\r\n // }\r\n // });\r\n // var movetolink = item.moveto;\r\n // if (item.moveto == \"\" || item.moveto == null) {\r\n // movetolink = \"Zapier\";\r\n // }\r\n\r\n let executedonVisit = [];\r\nlet executedonFollow = [];\r\n\r\nlet x = (steps || []).filter(step => {\r\n if (step?.contactworkflowhistoryIbfk2rel?.Campaignsteps?.[0]?.stepname === \"VISIT\") {\r\n executedonVisit.push(step.executedon);\r\n return true; // Include in the filtered array\r\n }\r\n return false; // Exclude otherwise\r\n});\r\n\r\nlet y = (steps || []).filter(step => {\r\n if (step?.contactworkflowhistoryIbfk2rel?.Campaignsteps?.[0]?.stepname === \"FOLLOW\") {\r\n executedonFollow.push(step.executedon);\r\n return true; // Include in the filtered array\r\n }\r\n return false; // Exclude otherwise\r\n});\r\n\r\n\r\n var movetolink = item.moveto;\r\n if (item.moveto == \"\" || item.moveto == null) {\r\n movetolink = (item.campaignIbfk4rel && item.campaignIbfk4rel.Campaigns && item.campaignIbfk4rel.Campaigns[0] && item.campaignIbfk4rel.Campaigns[0].zapierurl) \r\n ? item.campaignIbfk4rel.Campaigns[0].zapierurl \r\n : 'Zapier';\r\n }\r\n\r\n var campaign= item.campaignname;\r\n if (item.campaignname == \"\" || item.campaignname == null) {\r\n campaign = (item.campaignIbfk4rel && item.campaignIbfk4rel.Campaigns && item.campaignIbfk4rel.Campaigns[0] && item.campaignIbfk4rel.Campaigns[0].zapierurl) \r\n ? item.campaignIbfk4rel.Campaigns[0].name \r\n : item.campaignname;\r\n }\r\n return filedata.push({\r\n campaignname: campaign,\r\n contactid: item.id,\r\n campaignid: item.campaignid,\r\n Name: item.name,\r\n fname: item.fname,\r\n organization: item.organization,\r\n designation: item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n linkedinid: item.linkedinid,\r\n Email: item.email,\r\n phonenumber: item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n State: item.state,\r\n Country: item.country,\r\n surname: item.surname,\r\n Source: \"Xseller8\",\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n InvitationSent: item.InvitationSent,\r\n Connectedon: this.formatDate(item.connectedon),\r\n wholeMessages: wholeMessages,\r\n CurrentStage: item.CurrentStage,\r\n movedby: localStorage.getItem(\"id\"),\r\n moveto: movetolink,\r\n\r\n LR: item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n campaignname: \"\",\r\n Name: \"\",\r\n fname: \"\",\r\n organization: \"\",\r\n designation: \"\",\r\n State: \"\",\r\n Country:\"\",\r\n surname:\"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n linkedinid: \"\",\r\n Email: \"\",\r\n phonenumber: \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n InvitationSent: \"\",\r\n Connectedon: \"\",\r\n wholeMessages: \"\",\r\n CurrentStage: \"\",\r\n LR: \"\",\r\n Status: \"\",\r\n contactid: \"\",\r\n campaignid: \"\",\r\n movedby: \"\",\r\n moveto: \"\",\r\n Source: \"\"\r\n });\r\n return filedata;\r\n };\r\n setDataWithHeader = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n let steps = item?.currentStage?.Contactworkflowhistories || \"\";\r\n // let steps = item.currentStage.Contactworkflowhistories;\r\n // let List1 = steps[steps.length - 1];\r\n let Messages = item?.Contactmessagesfk?.Contactmessages || \"\";\r\n // let Messages = item.Contactmessagesfk.Contactmessages;\r\n let message = [];\r\n // Messages.map(m => {\r\n // message.push(this.ExcelRecieveddateFomate(m.messagedatetime));\r\n\r\n // message.push(m.message);\r\n // });\r\n (Messages || []).forEach(m => {\r\n if (m?.messagedatetime && m?.message) { // Ensure properties exist\r\n message.push(this.ExcelRecieveddateFomate(m.messagedatetime));\r\n message.push(m.message);\r\n }\r\n }); \r\n \r\n let wholeMessages = message.join(\"\\n\");\r\n\r\n let executedonVisit = [];\r\n // let x = steps.filter(step => {\r\n // if (\r\n // step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n // \"VISIT\"\r\n // ) {\r\n // executedonVisit.push(step.executedon);\r\n // }\r\n // });\r\n let x = (steps || []).filter(step => {\r\n if (\r\n step?.contactworkflowhistoryIbfk2rel?.Campaignsteps?.[0]?.stepname ===\r\n \"VISIT\"\r\n ) {\r\n executedonVisit.push(step.executedon);\r\n return true; // Ensure the step is included in the filtered array\r\n }\r\n return false; // Exclude the step if the condition is not met\r\n });\r\n let executedonFollow = [];\r\n // let y = steps.filter(step => {\r\n // if (\r\n // step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n // \"FOLLOW\"\r\n // ) {\r\n // executedonFollow.push(step.executedon);\r\n // }\r\n // });\r\n \r\n let y = (steps || []).filter(step => {\r\n if (\r\n step?.contactworkflowhistoryIbfk2rel?.Campaignsteps?.[0]?.stepname ===\r\n \"FOLLOW\"\r\n ) {\r\n executedonFollow.push(step.executedon);\r\n return true; // Include the step in the filtered array\r\n }\r\n return false; // Exclude the step if the condition is not met\r\n });\r\n \r\n return filedata.push({\r\n Name: item.name,\r\n \"First Name\": item.fname,\r\n \"Surname\" : item.surname,\r\n \"Current Company\": item.organization,\r\n \"Current Position\": item.designation,\r\n Location: item.location,\r\n Industry: item.industry,\r\n \"Linkedin Url\": item.linkedinid,\r\n Email: item.email,\r\n \"Phone \": item.phonenumber,\r\n Twitter: item.twitter,\r\n Skype: item.skype,\r\n DOB: item.dateofbirth,\r\n Visit: this.formatDate(executedonVisit[0]),\r\n Follow: this.formatDate(executedonFollow[0]),\r\n \"Invitation Sent\": item.InvitationSent,\r\n \"Connected On\": this.formatDate(item.connectedon),\r\n \"Messages Notes\": wholeMessages,\r\n \"Current Stage\": item.CurrentStage,\r\n\r\n \"Last Response\": item.LR,\r\n Status:\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n Name: \"\",\r\n \"First Name\": \"\",\r\n \"Current Company\": \"\",\r\n \"Current Position\": \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n \"Linkedin Url\": \"\",\r\n Email: \"\",\r\n \"Phone \": \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n \"Invitation Sent\": \"\",\r\n \"Connected On\": \"\",\r\n \"Messages Notes\": \"\",\r\n \"Current Stage\": \"\",\r\n \"Last Response\": \"\",\r\n Status: \"\"\r\n });\r\n return filedata;\r\n };\r\n\r\n exportToExcel = (fileData, fileName) => {\r\n if (this.props.fileData && this.props.fileData.length > 0) {\r\n let filedata = this.setDataWithHeader(fileData);\r\n try {\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n const name = \"Contacts\";\r\n const ws = XLSX.utils.json_to_sheet(filedata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, {\r\n bookType: \"xlsx\",\r\n type: \"array\"\r\n });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, name + fileExtension);\r\n\r\n this.exportToClose();\r\n } catch (e) {\r\n swal(\"Error\", { icon: \"error\" });\r\n }\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }, 5000);\r\n }\r\n };\r\n\r\n exportToZapier = async salesforceData => {\r\n var urldata = await this.setDataWithZapierurl(\r\n this.props.fileData[0]?.campaignid\r\n );\r\n\r\n var selectedcontactData = this.props.fileData;\r\n let selectedArrayIds2 = [];\r\n if (salesforceData.length == selectedcontactData.length) {\r\n let filedata = this.setDataWithZapier(selectedcontactData);\r\n\r\n selectedArrayIds2 = filedata;\r\n } else {\r\n salesforceData.map(a => {\r\n selectedcontactData.map(b => {\r\n if (a.id == b.id) {\r\n selectedArrayIds2.push({\r\n campaignname: b.campaignIbfk4rel.Campaigns[0].name,\r\n campaignid: b.campaignid,\r\n moveto: urldata,\r\n Contactmessagesfk: b.Contactmessagesfk,\r\n campaignstatus: b.campaignstatus,\r\n connect: b.connect,\r\n connectedon: b.connectedon,\r\n contactstatus: b.contactstatus,\r\n CurrentStage: b.CurrentStage,\r\n currentStage: b.currentStage,\r\n currentstatus: b.currentstatus,\r\n dateofbirth: b.dateofbirth,\r\n designation: b.designation,\r\n email: b.email,\r\n fname: b.fname,\r\n surname: b.surname,\r\n id: b.id,\r\n industry: b.industry,\r\n InvitationSent: b.InvitationSent,\r\n linkedinid: b.linkedinid,\r\n location: b.location,\r\n name: b.name,\r\n organization: b.organization,\r\n phonenumber: b.phonenumber,\r\n profileimage: b.profileimage,\r\n skype: b.skype,\r\n thanksmsgdate: b.thanksmsgdate,\r\n twitter: b.twitter,\r\n Visit: b.Visit,\r\n Follow: b.Follow,\r\n state: b.state,\r\n Source: \"Xseller8\",\r\n country: b.country,\r\n State: b.state,\r\n Country: b.country,\r\n \r\n });\r\n }\r\n });\r\n });\r\n\r\n let filedata = this.setDataWithZapier(selectedArrayIds2);\r\n\r\n selectedArrayIds2 = filedata;\r\n }\r\n\r\n if (urldata != \"\" && urldata != null) {\r\n \r\n var urldata1 = await this.createExportHistory(selectedArrayIds2);\r\n let selectedArrayIds = selectedArrayIds2;\r\n var dataT = JSON.stringify(selectedArrayIds);\r\n // var ZaapUrl=selectedArrayIds2[0].moveto;\r\n var request = require(\"request\");\r\n \r\n var options = {\r\n method: \"POST\",\r\n url: urldata,\r\n // url: \"https://hooks.zapier.com/hooks/catch/10737927/33ynz8h/\",\r\n headers: {\r\n \"Content-Type\": \"text/plain\"\r\n },\r\n body: dataT\r\n };\r\n this.exportToClose();\r\n request(options, function(error, response) {\r\n if (error) {\r\n swal(\"Please try again later\", { icon: \"warning\" });\r\n } else {\r\n swal(\"Successfully moved to Zapier\", { icon: \"success\" });\r\n }\r\n });\r\n } else {\r\n swal(\r\n \"Please configure the Zapier Integration URL on Campaign Details page\",\r\n {\r\n icon: \"warning\"\r\n }\r\n );\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n const { anchorEl, fileData, fileName } = this.state;\r\n return (\r\n
    \r\n \r\n Export as\r\n \r\n \r\n \r\n Export to\r\n \r\n this.exportToZapier(this.props.SalesHubdata)}\r\n >\r\n Zapier\r\n \r\n {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }}\r\n >\r\n Excel\r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ExportToExcel;\r\n","import React, { Component } from \"react\";\r\n//import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem } from \"@material-ui/core\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport {\r\n campaignContactStatusMutation,\r\n campaignContactLogMaintain\r\n} from \"../../../Queries\";\r\nimport swal from \"sweetalert\";\r\nimport \"./Engaged.css\";\r\n\r\nclass ConvertTo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n anchorEl: this.props.target,\r\n convertTo: [\"Suspect\", \"Prospect\", \"Opportunity\"],\r\n campaignStatus: [\r\n \"Live Campaign\",\r\n \"Pause Campaign\",\r\n \"Remove Contact\",\r\n \"Convert Engaged\"\r\n ],\r\n limit: 0,\r\n offset: 0,\r\n campaignContactsExportData: []\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.convertToClickList();\r\n }\r\n\r\n convertToList = anchorEl => {\r\n let convertToMessage = [];\r\n let campaignstatus = [];\r\n\r\n let contactstatus =\r\n this.props.contactStatus !== null\r\n ? this.props.contactStatus.toLowerCase()\r\n : \"\";\r\n let campStatus =\r\n this.props.campaignStatus != null\r\n ? this.props.campaignStatus.toLowerCase()\r\n : \"\";\r\n\r\n switch (campStatus) {\r\n case \"live\":\r\n campaignstatus[0] = \"Pause Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Convert Engaged\";\r\n break;\r\n case \"pause\":\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Convert Engaged\";\r\n break;\r\n default:\r\n campaignstatus[0] = \"Live Campaign\";\r\n campaignstatus[1] = \"Pause Campaign\";\r\n campaignstatus[2] = \"Remove Contact\";\r\n campaignstatus[3] = \"Convert Engaged\";\r\n }\r\n switch (contactstatus) {\r\n case \"suspect\":\r\n convertToMessage[0] = \"Prospect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"prospect\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Opportunity\";\r\n break;\r\n case \"opportunity\":\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n break;\r\n default:\r\n convertToMessage[0] = \"Suspect\";\r\n convertToMessage[1] = \"Prospect\";\r\n convertToMessage[2] = \"Opportunity\";\r\n }\r\n this.setState({\r\n anchorEl,\r\n convertTo: convertToMessage,\r\n campaignStatus: campaignstatus\r\n });\r\n };\r\n\r\n convertToClickList = () => {\r\n this.convertToList(this.state.anchorEl);\r\n };\r\n\r\n clickToConvertStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n switch (status) {\r\n case \"suspect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"prospect\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n case \"opportunity\":\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n break;\r\n default:\r\n this.changeContactStatus(newStatus, status, this.props.id);\r\n }\r\n this.props.onClose();\r\n };\r\n\r\n changeContactStatus = (newStatus, status, id) => {\r\n let updateStatus = {};\r\n\r\n if (newStatus !== \"NOOP\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n campaignstatus: \"Pause\",\r\n leads: 1,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n } else {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n contactstatus: newStatus,\r\n campaignstatus: \"Pause\",\r\n noop: 1,\r\n engaged: 0,\r\n leads: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n }\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", {\r\n icon: \"success\"\r\n }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n\r\n this.logMaintain(newStatus, id);\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n .catch(err => {\r\n this.convertToClose.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n logMaintain = (newStatus, id) => {\r\n let newstatus = newStatus.toLowerCase();\r\n let updateLog = {};\r\n let createdBy = localStorage.getItem(\"id\");\r\n switch (newstatus) {\r\n case \"prospect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n campaignstatus: \"Pause\",\r\n action: \"CONVERT_TO_PROSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"suspect\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n campaignstatus: \"Pause\",\r\n action: \"CONVERT_TO_SUSPECT\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"opportunity\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n campaignstatus: \"Pause\",\r\n action: \"CONVERT_TO_OPPORTUNITY\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n case \"noop\":\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n campaignstatus: \"Pause\",\r\n engaged: 0,\r\n action: \"CONVERT_TO_NOOP\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n break;\r\n\r\n default: {\r\n }\r\n }\r\n\r\n if (newStatus === \"Pause Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_PAUSED\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Live Campaign\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_LIVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Remove Contact\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_REMOVE\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n if (newStatus === \"Convert Engaged\") {\r\n updateLog = {\r\n data: {\r\n contactid: id,\r\n\r\n action: \"CONVERT_TO_ENGAGED\",\r\n createdon: Date(Date.now()),\r\n createdby: createdBy\r\n }\r\n };\r\n }\r\n\r\n fetchMethod(campaignContactLogMaintain, updateLog)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => res)\r\n .catch(e => console.log(e));\r\n };\r\n\r\n onClickToConvertCampaignStatus = (e, newStatus, currentStatus) => {\r\n e.stopPropagation();\r\n // let status = currentStatus !== null ? currentStatus.toLowerCase() : \"\";\r\n this.changeCampaignStatus(newStatus, this.props.id);\r\n this.props.onClose();\r\n };\r\n\r\n changeCampaignStatus = (newStatus, id) => {\r\n let newstatus = newStatus !== null ? newStatus.toLowerCase() : \"\";\r\n let updatedBy = localStorage.getItem(\"id\");\r\n let updateStatus = {};\r\n if (newstatus === \"live campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Live\",\r\n engaged: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"pause campaign\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"remove contact\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n active: 0,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n if (newstatus === \"convert engaged\") {\r\n updateStatus = {\r\n where: { id: id },\r\n data: {\r\n engaged: 1,\r\n campaignstatus: \"Pause\",\r\n updatedon: Date(Date.now()),\r\n updatedby: updatedBy\r\n }\r\n };\r\n }\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(campaignContactStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.ContactsUpsertWithWhere) {\r\n swal(\"Successfully converted\", { icon: \"success\" }).then(() => {\r\n this.props.tableRerender.searchFetch(\r\n this.props.limit,\r\n this.props.offset\r\n );\r\n });\r\n\r\n this.logMaintain(newStatus, id);\r\n this.props.refresh();\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n convertToClose = () => {\r\n const { onCloseEngagedPopup: cb } = this.props;\r\n cb && cb();\r\n this.setState({ anchorEl: null });\r\n this.props.onClose();\r\n };\r\n\r\n render() {\r\n // const { isOpen, id, target } = this.props;\r\n const { anchorEl, convertTo } = this.state;\r\n return (\r\n
    \r\n \r\n {this.state.campaignStatus.map((newCamp, key) => {\r\n return (\r\n {\r\n this.onClickToConvertCampaignStatus(\r\n e,\r\n newCamp,\r\n this.props.campaignStatus\r\n );\r\n }}\r\n >\r\n {newCamp}\r\n \r\n );\r\n })}\r\n {\r\n this.clickToConvertStatus(e, \"NOOP\", this.props.contactStatus);\r\n }}\r\n >\r\n No Opp\r\n \r\n
    \r\n \r\n Convert to\r\n \r\n {convertTo.map((newstatus, key) => {\r\n return (\r\n \r\n this.clickToConvertStatus(\r\n e,\r\n newstatus,\r\n this.props.contactStatus\r\n )\r\n }\r\n style={{ marginLeft: \"10px\" }}\r\n >\r\n {newstatus}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n );\r\n }\r\n}\r\nexport default ConvertTo;\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport \"../../tables/reactTable.css\";\r\nimport ReactTableComponent from \"../../tables/ReactTable\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { getContactImageUrl } from \"../../../config\";\r\nimport {\r\n campaignContactsTabList,\r\n campaignContactsTabSelectList,\r\n campaignContactsExport,\r\n campaignContactsExport2,\r\n campaignFreeContacts,\r\n campaignDetails\r\n} from \"../../../Queries\";\r\n\r\nimport SearchIcon from \"../../assets/search.png\";\r\nimport { TextField, Button, IconButton } from \"@material-ui/core\";\r\nimport { Checkbox } from \"pretty-checkbox-react\";\r\nimport \"../CampaignTables.css\";\r\nimport \"../CampaignTabs.css\";\r\nimport \"./CampaignContactsTab.css\";\r\nimport ExportTo from \"./ExportToExcel\";\r\nimport ConvertTo from \"./ConvertTo\";\r\nimport { contacts, Profileid, plannedDate } from \"../campaignQueries\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport ContactDetails from \"./ContactDetails.js\";\r\nimport { Drawer } from \"@material-ui/core\";\r\n//import Photo from \"../../assets/photo.png\";\r\nconst moment = require(\"moment\");\r\n\r\nclass CampaignContactsTab extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n loading: false,\r\n limit: 0,\r\n offset: 0,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n campaignContacts: [],\r\n campaignContactsTableList: [],\r\n totalCount: 0,\r\n totalFreeCount: 0,\r\n selectedDate: new Date(),\r\n fileName: \"Contacts\",\r\n Currentstage: [],\r\n invitationSent: [],\r\n anchorEl: null,\r\n show: \"\",\r\n openDetails: false,\r\n columnFilter: \"\",\r\n shortfilter: false,\r\n getData: [],\r\n getCampaignId: null,\r\n getCampaignId2: null,\r\n getCustomer: [],\r\n contactStatus: null,\r\n campaignStatus: null,\r\n contactId: null,\r\n Row: \"\",\r\n ContactDetailsWorkflow: [],\r\n ContactDetailsMessages: [],\r\n campStatus: [\"All\", \"Live\", \"Pause\", \"Completed\"],\r\n defaultCampStatus: \"All\",\r\n contStatus: [\"All\", \"Suspect\", \"Prospect\", \"Opportunity\"],\r\n defaultContStatus: \"All\",\r\n selected: {},\r\n selectAll: 0,\r\n selectedArray: [],\r\n campaignContactAllSelectedList: [],\r\n profileid: undefined,\r\n salesforcetoken: null,\r\n hubspottoken: null,\r\n isSearching: false,\r\n campaignContactsExportData: [],\r\n clientY: null,\r\n clientX: null\r\n };\r\n }\r\n componentDidMount() {\r\n this.fetchDetails(this.props.campaignId);\r\n this.FreeData();\r\n setTimeout(() => {\r\n this.ExportData();\r\n }, 1000);\r\n // this.ExportData();\r\n this.setState({ show: false }, () =>\r\n this.props.detailEdit(this.state.show)\r\n );\r\n this.Profile();\r\n }\r\n\r\n fetchDetails = campaignId => {\r\n fetchMethod(campaignDetails(campaignId))\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n this.setState(\r\n {\r\n loading: false,\r\n show: true\r\n },\r\n () => this.props.detailEdit(this.state.show)\r\n );\r\n this.setDetails(responseAsJson);\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n setDetails = response => {\r\n this.setState(\r\n {\r\n name: response.data.Campaigns.name,\r\n status: response.data.Campaigns.status,\r\n totalTabDataCount: response.data.Campaigns.contactcountfortab\r\n },\r\n () => {\r\n \r\n this.props.name(this.state.name);\r\n }\r\n );\r\n };\r\n\r\n ExportData = () => {\r\n \r\n var countactCount = this.state.totalTabDataCount;\r\n if (countactCount < 2500 ){\r\nvar exportQuery =campaignContactsExport;\r\n }else{\r\n var exportQuery =campaignContactsExport2;\r\n }\r\n \r\n const filter = this.filter();\r\n fetchMethod(exportQuery, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n campaignContactsExportData: res.data.allContacts.Contacts\r\n });\r\n });\r\n };\r\n FreeData = () => {\r\n const filter = this.filter2();\r\n\r\n fetchMethod(campaignFreeContacts, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n totalFreeCount: res.data.allContacts.totalCount\r\n });\r\n });\r\n };\r\n\r\n Profile = () => {\r\n fetchMethod(Profileid(this.props.campaignId))\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n profileid:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].id,\r\n hubspottoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].hubspottoken,\r\n salesforcetoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].salesforcetoken\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n emptySelectedArray = () => {\r\n this.setState({ selectedArray: [], selectAll: false, selected: {} });\r\n };\r\n\r\n handleDateChange = date => {\r\n this.setState({\r\n selectedDate: date\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n setContactsListData = response => {\r\n let data = response.data.allContacts.Contacts;\r\n\r\n this.setState(\r\n {\r\n campaignContacts: data,\r\n totalCount: response.data.allContacts.totalCount\r\n \r\n },\r\n () => this.fetchSequence(this.state.campaignContacts)\r\n );\r\n };\r\n\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n this.FreeData();\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n this.FreeData();\r\n });\r\n }\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n handleSearchChange = event => {\r\n this.setState({\r\n search: event.target.value,\r\n searchFlag: true,\r\n isSearching: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n this.setState({ isSearching: false });\r\n },\r\n 200\r\n );\r\n };\r\n\r\n onTableRowClick = rowInfo => {\r\n this.setState({ Row: rowInfo.original.id });\r\n };\r\n\r\n fetchContactDrawerDetails = (side, open, row) => event => {\r\n \r\n this.setState({ getData: [] });\r\n fetchMethod(contacts(row.id))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsWorkflow:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactworkflowhistoryfk\r\n .Contactworkflowhistories\r\n : \"\",\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\",\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\",\r\n getCampaignId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n getCampaignId2:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n\r\n getCustomer:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null &&\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns.length > 0\r\n ? res.data.allContacts.Contacts[0].Campaigns.Campaigns[0]\r\n .Customers.Customers[0]\r\n : \"\",\r\n contactStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].contactstatus\r\n : \"\",\r\n campaignStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignstatus\r\n : \"\",\r\n contactId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].id\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n closeDetails = () => {\r\n this.setState({\r\n openDetails: false,\r\n getCampaignId: [],\r\n getCustomer: [],\r\n getData: [],\r\n contactStatus: null,\r\n campaignStatus: null\r\n });\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n search: \"\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n this.FreeData();\r\n }\r\n );\r\n };\r\n\r\n fetchRefresh = response => {\r\n this.fetchMessage(response);\r\n };\r\n fetchMessage = response => {\r\n fetchMethod(contacts(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n fetchRefresh1 = response => {\r\n this.fetchName(response);\r\n };\r\n fetchName = response => {\r\n fetchMethod(contacts(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n gettingAllDataFromQuery = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignContactsTabSelectList, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n let allselectedIds = [];\r\n responseAsJson.data.allContacts.Contacts.map(i => {\r\n allselectedIds.push({ id: i.id });\r\n });\r\n this.setState(\r\n {\r\n campaignContactAllSelectedList: allselectedIds\r\n },\r\n () => {\r\n let selectedArr = [];\r\n let consolidateArray = [];\r\n this.state.campaignContactAllSelectedList.map(item => {\r\n consolidateArray[item.id] = true;\r\n selectedArr.push({ id: item.id });\r\n });\r\n this.setState({\r\n selectAll: true,\r\n selected: consolidateArray,\r\n selectedArray: selectedArr\r\n });\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n onRowSelected = sarray => {\r\n if (sarray.length === this.state.totalCount) {\r\n this.setState({ selectAll: true });\r\n } else {\r\n this.setState({ selectAll: false });\r\n }\r\n };\r\n\r\n toggleRowNew = (id, rowInfo) => {\r\n const newSelected = Object.assign({}, this.state.selected);\r\n newSelected[id] = !this.state.selected[id];\r\n this.setState({\r\n selected: newSelected\r\n });\r\n const { selectedArray } = this.state;\r\n let arr = selectedArray.filter(val => val.id !== id);\r\n if (!arr.length) {\r\n this.setState(\r\n {\r\n selectedArray: []\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n if (arr.length === selectedArray.length) {\r\n this.setState(\r\n {\r\n selectedArray: [...selectedArray, rowInfo]\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n selectedArray: arr\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n };\r\n\r\n toggleSelectAllRow = isChecked => {\r\n if (isChecked) {\r\n this.gettingAllDataFromQuery();\r\n } else {\r\n this.setState({\r\n selectAll: false,\r\n selectedArray: [],\r\n selected: {}\r\n });\r\n }\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ columnFilter: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ columnFilter: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter = () => {\r\n this.setState({ columnFilter: \"organization asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n CompanyFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"organization desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter = () => {\r\n this.setState({ columnFilter: \"designation asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n PositionFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"designation desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter = () => {\r\n this.setState({ columnFilter: \"location asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n LocationFilter1 = () => {\r\n this.setState({ columnFilter: \"location desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n connectedonFilter = () => {\r\n this.setState({ columnFilter: \"connectedon asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n connectedonFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"connectedon desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n InvitationsentFilter = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n InvitationsentFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"invitationsent desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n currentstatusFilter = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n currentstatusFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"currentstatus desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n filter = () => {\r\n const search = this.state.clickToSearch ? this.state.search : \"\";\r\n const like = `%${search}%`; //\"%\" + `${search}` + \"%\";\r\n const filter = {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n active: 1,\r\n leads: {\r\n nlike: \"%1%\",\r\n options: \"i\"\r\n },\r\n engaged: {\r\n nlike: \"%1%\",\r\n options: \"i\"\r\n },\r\n noop: 0,\r\n open:0,\r\n order: this.state.columnFilter,\r\n\r\n and: [\r\n {\r\n or: [\r\n { organization: { like: like, options: \"i\" } },\r\n { name: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n return filter;\r\n };\r\n filter2 = () => {\r\n const search = this.state.clickToSearch ? this.state.search : \"\";\r\n const like =`%${search}%`; // \"%\" + `${search}` + \"%\"; \r\n\r\n\r\n const filter = {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n\r\n active: 1,\r\n engaged: 0,\r\n noop: 0,\r\n leads: 0,\r\n campaignstatus: null,\r\n leads: {\r\n nlike: \"%1%\",\r\n options: \"i\"\r\n },\r\n engaged: {\r\n nlike: \"%1%\",\r\n options: \"i\"\r\n },\r\n noop: 0,\r\n order: this.state.columnFilter,\r\n\r\n and: [\r\n {\r\n or: [\r\n { organization: { like: like, options: \"i\" } },\r\n { name: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n return filter;\r\n };\r\n\r\n fetchSequence = async responsee => {\r\n let index = 0;\r\n responsee.map(async response => {\r\n if (\r\n response !== undefined &&\r\n response.currentStage !== undefined &&\r\n response.currentStage.Contactworkflowhistories !== undefined\r\n ) {\r\n let l = response.currentStage.Contactworkflowhistories.length - 1;\r\n let sequence = response.currentStage.Contactworkflowhistories[l];\r\n if (\r\n sequence &&\r\n sequence.contactworkflowhistoryIbfk2rel &&\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0] &&\r\n sequence.contactworkflowhistoryIbfk2rel &&\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n ) {\r\n const plannedDateFilter = {\r\n where: {\r\n campaignid:\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .campaignid,\r\n active: 1,\r\n sequence:\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .sequence + 1\r\n }\r\n };\r\n\r\n response.currentStage.Contactworkflowhistories[\r\n l\r\n ].nextStep = undefined;\r\n await fetchMethod(plannedDate, plannedDateFilter)\r\n .then(res => res.json())\r\n .then(res => {\r\n if (\r\n res &&\r\n res.data &&\r\n res.data.allCampaignsteps &&\r\n res.data.allCampaignsteps.Campaignsteps.length > 0 &&\r\n res.data.allCampaignsteps.Campaignsteps[0]\r\n ) {\r\n let daysDelay =\r\n res.data.allCampaignsteps.Campaignsteps[0].daysdelay;\r\n let NextStepName =\r\n res.data.allCampaignsteps.Campaignsteps[0].stepname;\r\n if (\r\n NextStepName === \"SEND_THANKS_MESSAGE\" &&\r\n response.connectedon\r\n ) {\r\n var Connectedon = \"\";\r\n if (\r\n response.thanksmsgdate === \"\" ||\r\n response.thanksmsgdate == null\r\n ) {\r\n Connectedon = response.connectedon.split(\"/\");\r\n } else {\r\n Connectedon = response.thanksmsgdate.split(\"/\");\r\n }\r\n \r\n Connectedon =\r\n Connectedon[2] +\r\n \"/\" +\r\n Connectedon[1] +\r\n \"/\" +\r\n Connectedon[0];\r\n let date = new Date(Connectedon);\r\n let someDate = new Date(date);\r\n\r\n let addDate = 0;\r\n if (\r\n response.thanksmsgdate === \"\" ||\r\n response.thanksmsgdate == null\r\n ) {\r\n addDate = daysDelay;\r\n } else {\r\n addDate = 0;\r\n }\r\n\r\n let dd1 = someDate.setDate(someDate.getDate() + addDate);\r\n\r\n let oldDate = new Date(dd1);\r\n\r\n let todayDate = new Date();\r\n\r\n let diffTime = todayDate - oldDate;\r\n\r\n let diffDays = diffTime / (1000 * 60 * 60 * 24);\r\n\r\n if (diffDays >= 0) {\r\n let Planndate = new Date(todayDate);\r\n\r\n let dd = Planndate.getDate(dd1);\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n Planndate = `${dd}/${mm}/${yyyy}`;\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message \" + Planndate;\r\n } else if (diffDays < 0) {\r\n let Planndate = new Date(oldDate);\r\n\r\n let dd = Planndate.getDate(dd1);\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n Planndate = `${dd}/${mm}/${yyyy}`;\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message \" + Planndate;\r\n } else {\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message \" + date;\r\n }\r\n } else if (NextStepName !== \"SEND_THANKS_MESSAGE\") {\r\n var current_date = \"\";\r\n var addDay = 0;\r\n if (sequence.nextstep == null || sequence.nextstep === \"\") {\r\n current_date = sequence.executedon;\r\n addDay = daysDelay;\r\n } else {\r\n current_date = sequence.nextstep;\r\n addDay = 0;\r\n }\r\n\r\n var someDate = new Date(current_date);\r\n\r\n current_date = someDate.setDate(someDate.getDate() + addDay);\r\n let oldDate = new Date(current_date).getTime();\r\n let todayDate = new Date().getTime();\r\n\r\n let difference = todayDate - oldDate;\r\n let diffDays = difference / (1000 * 3600 * 24);\r\n\r\n if (diffDays >= 0) {\r\n let date = moment(todayDate).toDate();\r\n let current_date1 = new Date(date);\r\n let utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n let offset_time = new Date(utc + 3600000 * 5.5);\r\n let planDate = moment(offset_time).format(\"DD/MM/YYYY\");\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + planDate;\r\n } else if (diffDays < 0) {\r\n let date = moment(oldDate).toDate();\r\n\r\n let current_date1 = new Date(date);\r\n let utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n let offset_time = new Date(utc + 3600000 * 5.5);\r\n let planDate = moment(offset_time).format(\"DD/MM/YYYY\");\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + planDate;\r\n } else {\r\n let date = moment(current_date)\r\n .add(daysDelay, \"days\")\r\n .toDate();\r\n let current_date1 = new Date(date);\r\n var utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n var offset_time = new Date(utc + 3600000 * 5.5);\r\n var date1 = moment(offset_time).format(\"DD/MM/YYYY\");\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + date1;\r\n }\r\n }\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n }\r\n index++;\r\n if (index === responsee.length && this.state.totalCount !== 0) {\r\n this.setState({ campaignContacts: responsee });\r\n }\r\n });\r\n };\r\n\r\n showEngagedToPopup = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n this.ExportData();\r\n this.FreeData();\r\n };\r\n\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n render() {\r\n \r\n // var cc = this.state.Row;\r\n const campaignContacts = [...this.state.campaignContacts];\r\n\r\n const { selectedEngagedRow } = this.state;\r\n const campaignContactsExportData = [\r\n ...this.state.campaignContactsExportData\r\n ];\r\n const CampaignContactsListHeaders = [\r\n {\r\n Header: obj => {\r\n return (\r\n {\r\n this.toggleSelectAllRow(e.target.checked);\r\n }}\r\n />\r\n );\r\n },\r\n Cell: rowInfo => {\r\n return (\r\n \r\n this.toggleRowNew(rowInfo.original.id, rowInfo.original)\r\n }\r\n />\r\n );\r\n }\r\n },\r\n {\r\n Header: \"Image\",\r\n accessor: \"Image\",\r\n width: 100\r\n },\r\n // {\r\n // Header: \"Gender\",\r\n // accessor: \"gender\"\r\n // },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Name\r\n \r\n );\r\n },\r\n accessor: \"Name\",\r\n width: 150,\r\n Cell: row => (\r\n \r\n {row.original.name}\r\n \r\n )\r\n },\r\n {\r\n Header: \"First Name\",\r\n accessor: \"fname\"\r\n },\r\n {\r\n Header: \"Surname\",\r\n accessor: \"surname\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Company\r\n \r\n );\r\n },\r\n accessor: \"organization\",\r\n width: 150\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Position\r\n \r\n );\r\n },\r\n accessor: \"designation\",\r\n width: 150,\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Location\r\n \r\n );\r\n },\r\n accessor: \"location\",\r\n width: 150,\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Connected On\r\n \r\n );\r\n },\r\n accessor: \"Connectedon\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Invitation Sent\r\n \r\n );\r\n },\r\n accessor: \"InvitationSent\"\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Stage\r\n \r\n );\r\n },\r\n accessor: \"CurrentStage\"\r\n },\r\n {\r\n Header: \"Next Step\",\r\n accessor: \"Next_Step\",\r\n width: 150\r\n },\r\n {\r\n Header: \"Last Response\",\r\n accessor: \"LR\",\r\n \r\n },\r\n {\r\n Header: \" Status\",\r\n accessor: \"CampaignStatus\"\r\n },\r\n {\r\n Header: \"\",\r\n Cell: row => {\r\n return (\r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n }\r\n }\r\n ];\r\n\r\n campaignContacts.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = this.formatDate(list.lastresponse.split(\"T\")[0]);\r\n }\r\n\r\n let image =\r\n list.profileimage !== undefined && list.profileimage !== null\r\n ? list.profileimage.substr(0, 5)\r\n : \"\";\r\n if (image === \"https\") {\r\n list.Image = (\r\n \r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + list.image;\r\n }}\r\n style={{ borderRadius: \"50%\", width: \"30px\" }}\r\n />\r\n \r\n );\r\n } else {\r\n list.Image = (\r\n \r\n \r\n \r\n );\r\n }\r\n \r\n list.CampaignStatus =\r\n list.campaignstatus !== null && list.campaignstatus !== undefined\r\n ? list.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : list.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : \"Live\"\r\n : \"\";\r\n\r\n if (\r\n list.connectedon !== undefined &&\r\n list.connectedon !== null &&\r\n list.connectedon\r\n ) {\r\n list.Connectedon = this.formatDate(list.connectedon);\r\n }\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = this.formatDate(\r\n list.invitationsent.split(\"T\")[0]\r\n );\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n if (\r\n list.invitesent === 0 &&\r\n (list.currentstatus === \"Invite Sent\" ||\r\n list.currentstatus === \"Invite Not Sent\")\r\n ) {\r\n list.CurrentStage = \"Invite not Sent\";\r\n } else {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n }\r\n\r\n if (list.connectedon !== \"\" && list.connectedon != null) {\r\n if (\r\n list.nextstepname !== undefined &&\r\n list.nextstepname !== null &&\r\n list.nextstepname\r\n ) {\r\n let oldDate = new Date(list.nextstepdate);\r\n if (list.nextstepdate === \"\" || list.nextstepdate == null) {\r\n oldDate = new Date(list.thanksmsgdate);\r\n }\r\n var nextDate1 = \"\";\r\n let todayDate = new Date();\r\n let diffTime = todayDate - oldDate;\r\n let diffDays = diffTime / (1000 * 60 * 60 * 24);\r\n if (diffDays >= 0) {\r\n let Planndate = new Date();\r\n let dd = Planndate.getDate();\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n nextDate1 = `${dd}/${mm}/${yyyy}`;\r\n } else {\r\n nextDate1 = list.nextstepdate;\r\n }\r\n list.Next_Step = list.nextstepname + \" \" + this.formatDate(nextDate1);\r\n }\r\n }\r\n\r\n if (\r\n list.nextstepname !== \"Send Thanks Message\" &&\r\n list.nextstepname !== \"Send Message\"\r\n ) {\r\n if (\r\n list.nextstepname !== undefined &&\r\n list.nextstepname !== null &&\r\n list.nextstepname\r\n ) {\r\n var shownextstepname = \"\";\r\n if (list.nextstepname === \"Invite Sent\") {\r\n shownextstepname = \"Send Invite\";\r\n } else {\r\n shownextstepname = list.nextstepname;\r\n }\r\n\r\n list.Next_Step = shownextstepname;\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n\r\n campaignContactsExportData.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = list.lastresponse;\r\n }\r\n if (\r\n list.invitationsent !== undefined &&\r\n list.invitationsent !== null &&\r\n list.invitationsent\r\n ) {\r\n list.InvitationSent = list.invitationsent.split(\"T\")[0];\r\n }\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n });\r\n\r\n const filter = this.filter();\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.closeDetails()}\r\n >\r\n this.closeDetails()}\r\n details={this.state.getData}\r\n Campaignid={this.state.getCampaignId2}\r\n Customer={this.state.getCustomer}\r\n contactStatus={this.state.contactStatus}\r\n campaignStatus={this.state.campaignStatus}\r\n id={this.state.contactId}\r\n tableRerender={this.child.current}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n ContactDetailsWorkflow={this.state.ContactDetailsWorkflow}\r\n ContactDetailsMessages={this.state.ContactDetailsMessages}\r\n heading={\"Contact Details\"}\r\n />\r\n \r\n\r\n
    \r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n {selectedEngagedRow && (\r\n this.ExportData()}\r\n refresh2={() => this.FreeData()}\r\n target={selectedEngagedRow && selectedEngagedRow.anchorEl}\r\n contactStatus={selectedEngagedRow.original.contactstatus}\r\n campaignStatus={selectedEngagedRow.original.campaignstatus}\r\n id={selectedEngagedRow.original.id}\r\n clientY={this.state.clientY}\r\n clientX={this.state.clientX}\r\n tableRerender={this.child.current}\r\n onClose={this.onCloseEngagedPopup}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n />\r\n )}\r\n\r\n
    \r\n \r\n Free Contacts:{\" \"}\r\n \r\n {this.state.totalFreeCount}\r\n {\" \"}\r\n \r\n {\" \"}\r\n   {\" \"}Total Records:{\" \"}\r\n {this.state.totalCount}\r\n \r\n

    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\nexport default CampaignContactsTab;\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport \"../../tables/reactTable.css\";\r\nimport ReactTableComponent from \"../../tables/ReactTable\";\r\n\r\nimport editicon from \"../../../../src/Components/assets/edit.png\";\r\nimport swal from \"sweetalert\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport NextArrow from \"../../../../src/Components/assets/upAerrow.png\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\n\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker\r\n} from \"@material-ui/pickers\";\r\nimport {\r\n campaignContactsTabList2,\r\n campaignContactsTabSelectList2,\r\n campaignContactsExport,\r\n triggerStatusMutation\r\n} from \"../../../Queries\";\r\n\r\nimport SearchIcon from \"../../assets/search.png\";\r\nimport { TextField, Button, MenuItem, Select } from \"@material-ui/core\";\r\nimport \"../CampaignTables.css\";\r\nimport \"../CampaignTabs.css\";\r\nimport \"./CampaignContactsTab.css\";\r\nimport \"./CampaignTriggersTab.css\";\r\n\r\nimport ConvertTo from \"./ConvertTo\";\r\nimport { contacts, Profileid, plannedDate } from \"../campaignQueries\";\r\nimport { fetchMethod } from \"../../../FetchMethod\";\r\nimport ContactDetails from \"./ContactDetails.js\";\r\nimport { Drawer } from \"@material-ui/core\";\r\nimport Photo from \"../../assets/photo.png\";\r\nconst moment = require(\"moment\");\r\n\r\nclass CampaignContactsTab extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n search2: \"All\",\r\n loading: false,\r\n limit: 0,\r\n offset: 0,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n campaignContacts: [],\r\n campaignContactsTableList: [],\r\n totalCount: 0,\r\n selectedDate: new Date(),\r\n fileName: \"Contacts\",\r\n Currentstage: [],\r\n invitationSent: [],\r\n anchorEl: null,\r\n show: \"\",\r\n openDetails: false,\r\n columnFilter: \"\",\r\n shortfilter: false,\r\n getData: [],\r\n getCampaignId: null,\r\n getCampaignId2: null,\r\n getCustomer: [],\r\n contactStatus: null,\r\n campaignStatus: null,\r\n contactId: null,\r\n Row: \"\",\r\n row2: null,\r\n ContactDetailsWorkflow: [],\r\n ContactDetailsMessages: [],\r\n campStatus: [\"All\", \"Live\", \"Pause\", \"Completed\"],\r\n defaultCampStatus: \"All\",\r\n contStatus: [\"All\", \"Suspect\", \"Prospect\", \"Opportunity\"],\r\n defaultContStatus: \"All\",\r\n selected: {},\r\n selectAll: 0,\r\n selectedArray: [],\r\n campaignContactAllSelectedList: [],\r\n profileid: undefined,\r\n salesforcetoken: null,\r\n hubspottoken: null,\r\n isSearching: false,\r\n campaignContactsExportData: [],\r\n clientY: null,\r\n clientX: null,\r\n triggertype: \"\",\r\n startDate: null,\r\n updateStatus: {},\r\n options2: [],\r\n anchorEl: false,\r\n confil: 0\r\n };\r\n }\r\n componentDidMount() {\r\n this.setState({\r\n options2: [\r\n { id: \"Shared a post\", name: \"Shared a post\" },\r\n { id: \"viewed your profile\", name: \"viewed your profile\" },\r\n { id: \"started a new position\", name: \"started a new position\" },\r\n { id: \"liked your post\", name: \"liked your post\" }\r\n ]\r\n });\r\n \r\n this.setState({ show: false }, () =>\r\n this.props.detailEdit(this.state.show)\r\n );\r\n this.Profile();\r\n }\r\n\r\n ExportData = () => {\r\n const filter = this.filter();\r\n this.setState({\r\n filter: this.filter()\r\n });\r\n\r\n fetchMethod(campaignContactsExport, filter).then(res => res.json());\r\n };\r\n ExportData2 = () => {\r\n this.setState({\r\n confil: 1\r\n });\r\n const filter = this.filter();\r\n fetchMethod(campaignContactsExport, filter).then(res => res.json());\r\n };\r\n\r\n Profile = () => {\r\n fetchMethod(Profileid(this.props.campaignId))\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n profileid:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].id,\r\n hubspottoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].hubspottoken,\r\n salesforcetoken:\r\n res.data.Campaigns.customercredentialsIbfk1rel\r\n .Customerlinkedinprofiles[0].salesforcetoken\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n emptySelectedArray = () => {\r\n this.setState({ selectedArray: [], selectAll: false, selected: {} });\r\n };\r\n\r\n handleDateChange = date => {\r\n this.setState({\r\n selectedDate: date\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n setContactsListData = response => {\r\n let data = response.data.allTriggernotifications.Triggernotifications;\r\n\r\n this.setState(\r\n {\r\n campaignContacts: data,\r\n totalCount: response.data.allTriggernotifications.totalCount\r\n },\r\n () => this.fetchSequence(this.state.campaignContacts)\r\n );\r\n };\r\n\r\n onSearchClick2 = () => {\r\n \r\n\r\n const updateStatus = {\r\n where: { id: this.state.row2 },\r\n data: {\r\n followup: this.state.startDate\r\n }\r\n };\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(triggerStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.handleClose();\r\n if (res.data.TriggernotificationUpsertWithWhere) {\r\n swal(\"Successfully updated\", { icon: \"success\" }).then(() => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n });\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n handleClose = () => {\r\n this.setState({ anchorEl: false });\r\n };\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n });\r\n }\r\n };\r\n\r\n onSearchClick3 = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData2();\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData2();\r\n });\r\n }\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n handleSearchChange = event => {\r\n this.setState({\r\n search: event.target.value,\r\n confil: 0,\r\n searchFlag: true,\r\n isSearching: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n this.setState({ isSearching: false });\r\n },\r\n 200\r\n );\r\n };\r\n\r\n handleSearchChange2 = event => {\r\n if (event.target.outerText === \"Shared a post\") {\r\n this.setState({\r\n options2: [\r\n { id: \"All\", name: \"All\" },\r\n { id: \"viewed your profile\", name: \"viewed your profile\" },\r\n { id: \"started a new position\", name: \"started a new position\" },\r\n { id: \"liked your post\", name: \"liked your post\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"All\") {\r\n this.setState({\r\n options2: [\r\n { id: \"Shared a post\", name: \"Shared a post\" },\r\n { id: \"viewed your profile\", name: \"viewed your profile\" },\r\n { id: \"started a new position\", name: \"started a new position\" },\r\n { id: \"liked your post\", name: \"liked your post\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"viewed your profile\") {\r\n this.setState({\r\n options2: [\r\n { id: \"All\", name: \"All\" },\r\n { id: \"Shared a post\", name: \"Shared a post\" },\r\n { id: \"started a new position\", name: \"started a new position\" },\r\n { id: \"liked your post\", name: \"liked your post\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"started a new position\") {\r\n this.setState({\r\n options2: [\r\n { id: \"All\", name: \"All\" },\r\n { id: \"Shared a post\", name: \"Shared a post\" },\r\n { id: \"viewed your profile\", name: \"viewed your profile\" },\r\n { id: \"liked your post\", name: \"liked your post\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"liked your post\") {\r\n this.setState({\r\n options2: [\r\n { id: \"All\", name: \"All\" },\r\n { id: \"Shared a post\", name: \"Shared a post\" },\r\n { id: \"viewed your profile\", name: \"viewed your profile\" },\r\n { id: \"started a new position\", name: \"started a new position\" }\r\n ]\r\n });\r\n }\r\n\r\n this.setState({\r\n search2: event.target.outerText,\r\n\r\n confil: 1,\r\n\r\n searchFlag: true,\r\n isSearching: true\r\n });\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick3();\r\n this.setState({ isSearching: false });\r\n },\r\n 200\r\n );\r\n };\r\n\r\n handleStatusChange = (row, updateStatus) => event => {\r\n updateStatus = {\r\n where: { id: row.original.id },\r\n data: {\r\n triggerstatus: event.target.value,\r\n lastactiondate: new Date().toISOString().slice(0, 10)\r\n }\r\n };\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(triggerStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.TriggernotificationUpsertWithWhere) {\r\n swal(\"Successfully updated\", { icon: \"success\" }).then(() => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n });\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n handleStatusChange2 = (row, updateStatus, date) => event => {\r\n updateStatus = {\r\n where: { id: row.original.id },\r\n data: {\r\n followup: this.formatDate3(event)\r\n }\r\n };\r\n\r\n swal({\r\n title: \"Are you sure want to convert?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willConvert => {\r\n if (willConvert) {\r\n fetchMethod(triggerStatusMutation, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n if (res.data.TriggernotificationUpsertWithWhere) {\r\n swal(\"Successfully updated\", { icon: \"success\" }).then(() => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n });\r\n } else swal(\"Error\", { icon: \"error\" });\r\n })\r\n\r\n .catch(err => {\r\n console.log(err);\r\n swal(\"Error\", { icon: \"error\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n onTableRowClick = rowInfo => {\r\n this.setState({ Row: rowInfo.original.contactid });\r\n };\r\n fetchContactDrawerDetails = (side, open, row) => event => {\r\n this.setState({ getData: [] });\r\n fetchMethod(contacts(row.contactid))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsWorkflow:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactworkflowhistoryfk\r\n .Contactworkflowhistories\r\n : \"\",\r\n ContactDetailsMessages:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].Contactmessagesfk\r\n .Contactmessages\r\n : \"\",\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allContacts.Contacts[0]\r\n : \"\",\r\n getCampaignId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n getCampaignId2:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignid\r\n : \"\",\r\n\r\n getCustomer:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null &&\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns.length > 0\r\n ? res.data.allContacts.Contacts[0].Campaigns.Campaigns[0]\r\n .Customers.Customers[0]\r\n : \"\",\r\n contactStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].contactstatus\r\n : \"\",\r\n campaignStatus:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].campaignstatus\r\n : \"\",\r\n contactId:\r\n res.data.allContacts.Contacts[0] !== undefined &&\r\n res.data.allContacts.Contacts[0] !== null\r\n ? res.data.allContacts.Contacts[0].id\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n closeDetails = () => {\r\n this.setState({\r\n openDetails: false,\r\n getCampaignId: [],\r\n getCustomer: [],\r\n getData: [],\r\n contactStatus: null,\r\n campaignStatus: null\r\n });\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n search: \"\",\r\n search2: \"All\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n }\r\n );\r\n };\r\n\r\n fetchRefresh = response => {\r\n this.fetchMessage(response);\r\n };\r\n fetchMessage = response => {\r\n fetchMethod(contacts(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n ContactDetailsMessages:\r\n res.data.allTriggernotifications.Triggernotifications[0] !==\r\n undefined &&\r\n res.data.allTriggernotifications.Triggernotifications[0] !==\r\n null\r\n ? res.data.allTriggernotifications.Triggernotifications[0]\r\n .Contactmessagesfk.Contactmessages\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n handleStartDate = date => {\r\n this.setState(\r\n {\r\n startDate: this.formatDate3(date)\r\n },\r\n () => {\r\n this.onSearchClick2();\r\n }\r\n );\r\n };\r\n\r\n formatDate3 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(date);\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n formatDate = date => {\r\n\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n\r\n formatDate2 = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${mm}/${dd}/${yyyy}`;\r\n return date;\r\n }\r\n return;\r\n };\r\n\r\n fetchRefresh1 = response => {\r\n this.fetchName(response);\r\n };\r\n fetchName = response => {\r\n fetchMethod(contacts(response))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allContacts !== undefined\r\n ? this.setState({\r\n getData:\r\n res.data.allContacts !== undefined &&\r\n res.data.allContacts !== null\r\n ? res.data.allTriggernotifications.Triggernotifications[0]\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n gettingAllDataFromQuery = () => {\r\n const filter = this.filter();\r\n fetchMethod(campaignContactsTabSelectList2, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n let allselectedIds = [];\r\n responseAsJson.data.allTriggernotifications.Triggernotifications.map(\r\n i => {\r\n allselectedIds.push({ id: i.id });\r\n }\r\n );\r\n this.setState(\r\n {\r\n campaignContactAllSelectedList: allselectedIds\r\n },\r\n () => {\r\n let selectedArr = [];\r\n let consolidateArray = [];\r\n this.state.campaignContactAllSelectedList.map(item => {\r\n consolidateArray[item.id] = true;\r\n selectedArr.push({ id: item.id });\r\n });\r\n this.setState({\r\n selectAll: true,\r\n selected: consolidateArray,\r\n selectedArray: selectedArr\r\n });\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n onRowSelected = sarray => {\r\n if (sarray.length === this.state.totalCount) {\r\n this.setState({ selectAll: true });\r\n } else {\r\n this.setState({ selectAll: false });\r\n }\r\n };\r\n\r\n toggleRowNew = (id, rowInfo) => {\r\n const newSelected = Object.assign({}, this.state.selected);\r\n newSelected[id] = !this.state.selected[id];\r\n this.setState({\r\n selected: newSelected\r\n });\r\n const { selectedArray } = this.state;\r\n let arr = selectedArray.filter(val => val.id !== id);\r\n if (!arr.length) {\r\n this.setState(\r\n {\r\n selectedArray: []\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n if (arr.length === selectedArray.length) {\r\n this.setState(\r\n {\r\n selectedArray: [...selectedArray, rowInfo]\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n selectedArray: arr\r\n },\r\n () => {\r\n this.onRowSelected(this.state.selectedArray);\r\n }\r\n );\r\n }\r\n };\r\n\r\n toggleSelectAllRow = isChecked => {\r\n if (isChecked) {\r\n this.gettingAllDataFromQuery();\r\n } else {\r\n this.setState({\r\n selectAll: false,\r\n selectedArray: [],\r\n selected: {}\r\n });\r\n }\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ columnFilter: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ columnFilter: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter = () => {\r\n this.setState({ columnFilter: \"organization asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n CompanyFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"organization desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter = () => {\r\n this.setState({ columnFilter: \"designation asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n PositionFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"designation desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter = () => {\r\n this.setState({ columnFilter: \"location asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n LocationFilter1 = () => {\r\n this.setState({ columnFilter: \"location desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n notificationdateFilter = () => {\r\n this.setState({ columnFilter: \"notificationdate asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n notificationdateFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"notificationdate desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n triggertypeFilter = () => {\r\n this.setState(\r\n { columnFilter: \"triggertype asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n triggertypeFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"triggertype desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n triggerstatusFilter = () => {\r\n this.setState(\r\n { columnFilter: \"triggerstatus asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n triggerstatusFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"triggerstatus desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n lastactiondateFilter = () => {\r\n this.setState(\r\n { columnFilter: \"lastactiondate asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n lastactiondateFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"lastactiondate desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n //followup\r\n followupFilter = () => {\r\n this.setState(\r\n { columnFilter: \"followup asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n followupFilter1 = () => {\r\n this.setState(\r\n { columnFilter: \"followup desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n filter = () => {\r\n const search = this.state.clickToSearch ? this.state.search : \"\";\r\n const like = `%${search}%`; // \"%\" + `${search}` + \"%\";\r\n const search2 = this.state.clickToSearch ? this.state.search2 : \"\";\r\n const like2 = `%${search2}%`; //\"%\" + `${search2}` + \"%\";\r\n let filter = {};\r\n\r\n if (this.state.confil === 0) {\r\n \r\n filter = {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n active: 1,\r\n\r\n order: this.state.columnFilter,\r\n and: [\r\n {\r\n or: [\r\n { organization: { like: like, options: \"i\" } },\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { triggertype: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n } else {\r\n filter = {\r\n where: {\r\n campaignid: this.props.campaignId,\r\n active: 1,\r\n and: [\r\n {\r\n or: [\r\n { triggerdata: { like: like2, options: \"i\" } },\r\n { triggertype: { like: like2, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n }\r\n\r\n return filter;\r\n };\r\n\r\n fetchSequence = async responsee => {\r\n let index = 0;\r\n responsee.map(async response => {\r\n if (\r\n response !== undefined &&\r\n response.currentStage !== undefined &&\r\n response.currentStage.Contactworkflowhistories !== undefined\r\n ) {\r\n let l = response.currentStage.Contactworkflowhistories.length - 1;\r\n let sequence = response.currentStage.Contactworkflowhistories[l];\r\n if (\r\n sequence &&\r\n sequence.contactworkflowhistoryIbfk2rel &&\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0] &&\r\n sequence.contactworkflowhistoryIbfk2rel &&\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n ) {\r\n const plannedDateFilter = {\r\n where: {\r\n campaignid:\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .campaignid,\r\n active: 1,\r\n sequence:\r\n sequence.contactworkflowhistoryIbfk2rel.Campaignsteps[0]\r\n .sequence + 1\r\n }\r\n };\r\n\r\n response.currentStage.Contactworkflowhistories[\r\n l\r\n ].nextStep = undefined;\r\n await fetchMethod(plannedDate, plannedDateFilter)\r\n .then(res => res.json())\r\n .then(res => {\r\n if (\r\n res &&\r\n res.data &&\r\n res.data.allCampaignsteps &&\r\n res.data.allCampaignsteps.Campaignsteps.length > 0 &&\r\n res.data.allCampaignsteps.Campaignsteps[0]\r\n ) {\r\n let daysDelay =\r\n res.data.allCampaignsteps.Campaignsteps[0].daysdelay;\r\n let NextStepName =\r\n res.data.allCampaignsteps.Campaignsteps[0].stepname;\r\n if (\r\n NextStepName === \"SEND_THANKS_MESSAGE\" &&\r\n response.connectedon\r\n ) {\r\n var Connectedon = \"\";\r\n if (\r\n response.thanksmsgdate === \"\" ||\r\n response.thanksmsgdate == null\r\n ) {\r\n Connectedon = response.connectedon.split(\"/\");\r\n } else {\r\n Connectedon = response.thanksmsgdate.split(\"/\");\r\n }\r\n Connectedon =\r\n Connectedon[2] +\r\n \"/\" +\r\n Connectedon[1] +\r\n \"/\" +\r\n Connectedon[0];\r\n let date = new Date(Connectedon);\r\n let someDate = new Date(date);\r\n\r\n let addDate = 0;\r\n if (\r\n response.thanksmsgdate === \"\" ||\r\n response.thanksmsgdate == null\r\n ) {\r\n addDate = daysDelay;\r\n } else {\r\n addDate = 0;\r\n }\r\n\r\n let dd1 = someDate.setDate(someDate.getDate() + addDate);\r\n\r\n let oldDate = new Date(dd1);\r\n\r\n let todayDate = new Date();\r\n\r\n let diffTime = todayDate - oldDate;\r\n\r\n let diffDays = diffTime / (1000 * 60 * 60 * 24);\r\n\r\n if (diffDays >= 0) {\r\n let Planndate = new Date(todayDate);\r\n\r\n let dd = Planndate.getDate(dd1);\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n Planndate = `${dd}/${mm}/${yyyy}`;\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message \" + Planndate;\r\n } else if (diffDays < 0) {\r\n let Planndate = new Date(oldDate);\r\n\r\n let dd = Planndate.getDate(dd1);\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n Planndate = `${dd}/${mm}/${yyyy}`;\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message \" + Planndate;\r\n } else {\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n \"Send Thanks Message \" + date;\r\n }\r\n } else if (NextStepName !== \"SEND_THANKS_MESSAGE\") {\r\n var current_date = \"\";\r\n var addDay = 0;\r\n if (sequence.nextstep == null || sequence.nextstep === \"\") {\r\n current_date = sequence.executedon;\r\n addDay = daysDelay;\r\n } else {\r\n current_date = sequence.nextstep;\r\n addDay = 0;\r\n }\r\n\r\n var someDate = new Date(current_date);\r\n\r\n current_date = someDate.setDate(someDate.getDate() + addDay);\r\n let oldDate = new Date(current_date).getTime();\r\n let todayDate = new Date().getTime();\r\n\r\n let difference = todayDate - oldDate;\r\n let diffDays = difference / (1000 * 3600 * 24);\r\n\r\n if (diffDays >= 0) {\r\n let date = moment(todayDate)\r\n .toDate();\r\n let current_date1 = new Date(date);\r\n let utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n let offset_time = new Date(utc + 3600000 * 5.5);\r\n let planDate = moment(offset_time).format(\"DD/MM/YYYY\");\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite\"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow\"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit\"\r\n : \"Send Message\" + \" \" + planDate;\r\n } else if (diffDays < 0) {\r\n let date = moment(oldDate)\r\n .toDate();\r\n\r\n let current_date1 = new Date(date);\r\n let utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n let offset_time = new Date(utc + 3600000 * 5.5);\r\n let planDate = moment(offset_time).format(\"DD/MM/YYYY\");\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite \"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow \"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit \"\r\n : \"Send Message \" + planDate;\r\n } else {\r\n let date = moment(current_date)\r\n .add(daysDelay, \"days\")\r\n .toDate();\r\n let current_date1 = new Date(date);\r\n var utc =\r\n current_date1.getTime() +\r\n current_date1.getTimezoneOffset() * 60000;\r\n var offset_time = new Date(utc + 3600000 * 5.5);\r\n var date1 = moment(offset_time).format(\"DD/MM/YYYY\");\r\n\r\n response.currentStage.Contactworkflowhistories[l].nextStep =\r\n NextStepName === \"SEND_INVITE\"\r\n ? \"Send Invite \"\r\n : NextStepName === \"FOLLOW\"\r\n ? \"Follow \"\r\n : NextStepName === \"VISIT\"\r\n ? \"Visit \"\r\n : \"Send Message \" + date1;\r\n }\r\n }\r\n }\r\n })\r\n .catch(e => console.log(e));\r\n }\r\n }\r\n index++;\r\n if (index === responsee.length && this.state.totalCount !== 0) {\r\n this.setState({ campaignContacts: responsee });\r\n }\r\n });\r\n };\r\n\r\n showEngagedToPopup = row => e => {\r\n this.setState({\r\n selectedEngagedRow: {\r\n ...row,\r\n\r\n anchorEl: e.currentTarget\r\n },\r\n\r\n clientY: e.clientY,\r\n clientX: e.clientX\r\n });\r\n this.ExportData();\r\n };\r\n\r\n onCloseEngagedPopup = () => {\r\n this.setState({ selectedEngagedRow: null });\r\n };\r\n\r\n handleClick = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ anchorEl: false });\r\n };\r\n\r\n render() {\r\n const open = Boolean(this.state.anchorEl);\r\n // const id = open ? \"simple-popover\" : undefined;\r\n const campaignContacts = [...this.state.campaignContacts];\r\n \r\n const { selectedEngagedRow } = this.state;\r\n const campaignContactsExportData = [\r\n ...this.state.campaignContactsExportData\r\n ];\r\n const CampaignContactsListHeaders = [\r\n {\r\n \r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Name\r\n \r\n );\r\n },\r\n accessor: \"Name\",\r\n width: 130,\r\n Cell: row => (\r\n \r\n {row.original.name}\r\n \r\n )\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Company\r\n \r\n );\r\n },\r\n accessor: \"organization\",\r\n width: 130,\r\n },\r\n {\r\n Header: \" Position \",\r\n accessor: \"position\"\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Location\r\n \r\n );\r\n },\r\n accessor: \"location\"\r\n },\r\n {\r\n Header: \" Trigger \",\r\n accessor: \"triggerdata\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Trigger Type\r\n \r\n );\r\n },\r\n accessor: \"triggertype\",\r\n width: 130,\r\n },\r\n\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Date\r\n \r\n );\r\n },\r\n accessor: \"notificationdate\"\r\n },\r\n\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n URL\r\n \r\n );\r\n },\r\n accessor: \"url\",\r\n Cell: row => (\r\n \r\n )\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Status\r\n \r\n );\r\n },\r\n accessor: \"triggerstatus\",\r\n Cell: row => (\r\n
    \r\n \r\n Actioned\r\n Not relevant\r\n Revisit\r\n \r\n
    \r\n )\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Last Action Date\r\n \r\n );\r\n },\r\n accessor: \"lastactiondate\",\r\n width: 150,\r\n Cell: row =>
    {this.formatDate(row.original.lastactiondate)}
    \r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Follow Up\r\n \r\n );\r\n },\r\n accessor: \"followup\",\r\n width: 130,\r\n Cell: row => {\r\n return (\r\n \r\n {row.original.followup}\r\n\r\n \r\n \r\n \r\n }\r\n InputProps={{\r\n disableUnderline: true\r\n }}\r\n helperText={\"\"}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n {}\r\n ];\r\n\r\n campaignContacts.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = this.formatDate(list.lastresponse.split(\"T\")[0]);\r\n \r\n }\r\n\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup !== \"\" &&\r\n list.followup\r\n ) {\r\n var date = this.formatDate2(list.followup.split(\"T\")[0]);\r\n var cmTime = new Date(date);\r\n var dateday = cmTime.getDay();\r\n if (dateday >= 3) {\r\n\r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 5);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n } else {\r\n var lastDay = cmTime;\r\n lastDay.setDate(cmTime.getDate() + 3);\r\n var today = new Date();\r\n if (lastDay > today) {\r\n list.followup2 = 1;\r\n } else {\r\n list.followup2 = 0;\r\n }\r\n }\r\n }\r\n\r\n if (\r\n list.followup !== undefined &&\r\n list.followup !== null &&\r\n list.followup\r\n ) {\r\n list.followup = this.formatDate(list.followup.split(\"T\")[0]);\r\n }\r\n let image =\r\n list.profileimage !== undefined && list.profileimage !== null\r\n ? list.profileimage.substr(0, 5)\r\n : \"\";\r\n if (image === \"https\") {\r\n list.Image = (\r\n \r\n \r\n \r\n );\r\n } else if (image !== \"https\") {\r\n list.Image = (\r\n \r\n \r\n \r\n );\r\n } else {\r\n list.Image = (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n list.CampaignStatus =\r\n list.campaignstatus !== null && list.campaignstatus !== undefined\r\n ? list.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : list.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : \"Live\"\r\n : \"\";\r\n if (\r\n list.connectedon !== undefined &&\r\n list.connectedon !== null &&\r\n list.connectedon\r\n ) {\r\n list.Connectedon = this.formatDate(list.connectedon);\r\n }\r\n\r\n if (\r\n list.notificationdate !== undefined &&\r\n list.notificationdate !== null &&\r\n list.notificationdate\r\n ) {\r\n list.notificationdate = this.formatDate(\r\n list.notificationdate\r\n );\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n if (\r\n list.invitesent === 0 &&\r\n (list.currentstatus === \"Invite Sent\" ||\r\n list.currentstatus === \"Invite Not Sent\")\r\n ) {\r\n list.CurrentStage = \"Invite not Sent\";\r\n } else {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n }\r\n\r\n if (list.connectedon !== \"\" && list.connectedon != null) {\r\n if (\r\n list.nextstepname !== undefined &&\r\n list.nextstepname !== null &&\r\n list.nextstepname\r\n ) {\r\n let oldDate = new Date(list.nextstepdate);\r\n if (list.nextstepdate == \"\" || list.nextstepdate == null) {\r\n oldDate = new Date(list.thanksmsgdate);\r\n }\r\n var nextDate1 = \"\";\r\n let todayDate = new Date();\r\n let diffTime = todayDate - oldDate;\r\n let diffDays = diffTime / (1000 * 60 * 60 * 24);\r\n if (diffDays >= 0) {\r\n let Planndate = new Date();\r\n let dd = Planndate.getDate();\r\n let mm = Planndate.getMonth() + 1;\r\n let yyyy = Planndate.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n nextDate1 = `${dd}/${mm}/${yyyy}`;\r\n } else {\r\n nextDate1 = list.nextstepdate;\r\n }\r\n list.Next_Step = list.nextstepname + \" \" + this.formatDate(nextDate1);\r\n }\r\n }\r\n\r\n if (\r\n list.nextstepname !== \"Send Thanks Message\" &&\r\n list.nextstepname !== \"Send Message\"\r\n ) {\r\n if (\r\n list.nextstepname !== undefined &&\r\n list.nextstepname !== null &&\r\n list.nextstepname\r\n ) {\r\n var shownextstepname = \"\";\r\n if (list.nextstepname === \"Invite Sent\") {\r\n shownextstepname = \"Send Invite\";\r\n } else {\r\n shownextstepname = list.nextstepname;\r\n }\r\n list.Next_Step = shownextstepname;\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n\r\n campaignContactsExportData.map(list => {\r\n if (\r\n list.lastresponse !== undefined &&\r\n list.lastresponse !== null &&\r\n list.lastresponse\r\n ) {\r\n list.LR = list.lastresponse;\r\n }\r\n\r\n if (\r\n list.notificationdate !== undefined &&\r\n list.notificationdate !== null &&\r\n list.notificationdate\r\n ) {\r\n \r\n list.notificationdate = list.notificationdate;\r\n }\r\n\r\n\r\n if (\r\n list.currentstatus !== undefined &&\r\n list.currentstatus !== null &&\r\n list.currentstatus\r\n ) {\r\n list.CurrentStage = list.currentstatus;\r\n }\r\n });\r\n\r\n const filter = this.filter();\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n this.closeDetails()}\r\n >\r\n this.closeDetails()}\r\n details={this.state.getData}\r\n Campaignid={this.state.getCampaignId2}\r\n Customer={this.state.getCustomer}\r\n contactStatus={this.state.contactStatus}\r\n campaignStatus={this.state.campaignStatus}\r\n id={this.state.contactId}\r\n tableRerender={this.child.current}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n ContactDetailsWorkflow={this.state.ContactDetailsWorkflow}\r\n ContactDetailsMessages={this.state.ContactDetailsMessages}\r\n heading={\"Contact Details\"}\r\n />\r\n \r\n\r\n \r\n
    \r\n
    \r\n (\r\n {option.name}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n\r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n {selectedEngagedRow && (\r\n this.ExportData()}\r\n target={selectedEngagedRow && selectedEngagedRow.anchorEl}\r\n contactStatus={selectedEngagedRow.original.contactstatus}\r\n campaignStatus={selectedEngagedRow.original.campaignstatus}\r\n id={selectedEngagedRow.original.id}\r\n clientY={this.state.clientY}\r\n clientX={this.state.clientX}\r\n tableRerender={this.child.current}\r\n onClose={this.onCloseEngagedPopup}\r\n limit={this.state.limit}\r\n offset={this.state.offset}\r\n />\r\n )}\r\n\r\n \r\n \r\n Total Records: {this.state.totalCount}\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default CampaignContactsTab;\r\n\r\n\r\n\r\n\r\n\r\n","import React from \"react\";\r\nimport \"./card2.css\";\r\n// import { Link } from \"react-router-dom\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n// import {\r\n// Paper,\r\n// Table,\r\n// TableBody,\r\n// TableCell,\r\n// TableContainer,\r\n// TableHead,\r\n// TableRow\r\n// } from \"@material-ui/core\";\r\n\r\nfunction MediaCard3(props) {\r\n const formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n\r\n const history = useHistory();\r\n\r\n const onNameClick = row => {\r\n\r\n props.onHandleCampaign(row);\r\n localStorage.setItem(\"label\", \"Leads\");\r\n history.push(\"/campaigns\");\r\n\r\n };\r\n\r\n const rows = props.DashboardData[7];\r\n\r\n return rows.map(row => (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n

    onNameClick(row)}>\r\n {row.name}{\" \"}\r\n {row.contactStatus !== null ? row.contactStatus : \"\"}\r\n\r\n

    \r\n\r\n
    \r\n {row.designation !== null && row.designation !== \"\" ? row.designation + \",\" : \"\"} {\" \"}\r\n {row.location !== null ? row.location : \"\"}\r\n
    \r\n\r\n\r\n
    \r\n {\" \"}\r\n Connected on{\" \"}\r\n {row.connectedOn !== null ? formatDate(row.connectedOn) : \" \"}{\" \"}\r\n \r\n {\" \"}\r\n Last response on{\" \"}\r\n {row.lastResponse !== null ? formatDate(row.lastResponse) : \"\"}\r\n \r\n
    \r\n
    \r\n {row.currentstatus !== null ? row.currentstatus : \"\"}\r\n
    \r\n
    \r\n
    \r\n ));\r\n\r\n function onClickCard(currentHeader) {\r\n props.onClickCard(currentHeader);\r\n }\r\n\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n\r\n return {\r\n onHandleCampaign: data =>\r\n dispatch({\r\n type: \"Campaign_Detail\",\r\n payload: data\r\n })\r\n };\r\n};\r\nexport default connect(null, mapDispatchToProps)(MediaCard3);\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { API_URL } from \"../../../config\";\r\nimport \"./CampaignDetailsTab2.css\";\r\nimport ConnectRateIcon from \"../../assets/marketing.svg\";\r\nimport TotalEngagedIcon from \"../../assets/market.svg\";\r\nimport TotalLeadIcon from \"../../assets/target.svg\";\r\nimport TotalinvitesentIcon from \"../../assets/invitesent.png\";\r\nimport Step001 from \"../../assets/step001.png\";\r\nimport Step01 from \"../../assets/step01.png\";\r\nimport Step02 from \"../../assets/step02.png\";\r\nimport Step1 from \"../../assets/step1.png\";\r\nimport Step2 from \"../../assets/step2.png\";\r\nimport Step3 from \"../../assets/step3.png\";\r\nimport Step21 from \"../../assets/step21.png\";\r\nimport Step22 from \"../../assets/step22.png\";\r\nimport Step23 from \"../../assets/step23.png\";\r\nimport Step24 from \"../../assets/step24.png\";\r\n\r\nimport Step31 from \"../../assets/step31.png\";\r\nimport Step32 from \"../../assets/step32.png\";\r\nimport Step33 from \"../../assets/step33.png\";\r\nimport Step34 from \"../../assets/step34.png\";\r\nimport Step35 from \"../../assets/step35.png\";\r\n\r\nimport { fetchMethod } from \"../../../../src/FetchMethod\";\r\nimport { campaignDetails } from \"../../../Queries\";\r\n\r\nimport colorLib from \"@kurkle/color\";\r\n\r\n\r\nimport { Line } from \"react-chartjs-2\";\r\nimport MediaCard5 from \"../../Card/Card5\";\r\nimport MediaCard6 from \"../../Card/TriggersCard\";\r\n\r\nimport {\r\n Chart as ChartJS,\r\n CategoryScale,\r\n LinearScale,\r\n PointElement,\r\n LineElement,\r\n Title,\r\n Tooltip,\r\n Legend,\r\n Filler\r\n} from \"chart.js\";\r\nChartJS.register(\r\n CategoryScale,\r\n LinearScale,\r\n PointElement,\r\n LineElement,\r\n Title,\r\n Tooltip,\r\n Legend,\r\n Filler\r\n);\r\n\r\nclass CampaignDetailsTab2 extends Component {\r\n \r\n constructor(props) {\r\n \r\n super(props);\r\n\r\n this.state = {\r\n loading: false,\r\n name: \"\",\r\n description: \"\",\r\n customer: \"\",\r\n campManagerFirstName: \"\",\r\n campManagerLastName: \"\",\r\n campAdminFirstName: \"\",\r\n campAdminLastName: \"\",\r\n linkedInProfile: \"\",\r\n status: \"\",\r\n selectedCampaignStatus: \"\",\r\n campaignid:0,\r\n connectionsToBeSent: \"\",\r\n startDate: \"\",\r\n startTime: \"\",\r\n steps: [],\r\n show: false,\r\n DashboardData2: {\r\n TotalSent: 0,\r\n TotalConnection: 0,\r\n TotalEngagedCon: 0,\r\n TotalLeadsCon: 0,\r\n \r\n step1: 0,\r\n step2: 0,\r\n step3: 0,\r\n step4: 0,\r\n step5: 0,\r\n \r\n step2Remain:0,\r\n step3Remain:0,\r\n step4Remain:0,\r\n step5Remain:0,\r\n step2Remain1st:0,\r\n\r\n stepLength: 0,\r\n TotalConnectRate: \"\",\r\n LiveConnectRate: \"\",\r\n TotalEngaged: \"\",\r\n LiveEngaged: \"\",\r\n TotalLeads: \"\",\r\n LiveLeads: \"\",\r\n newRecentdata: \"\",\r\n recentLeads: [],\r\n recentcontactCount: []\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n \r\n \r\n this.getDashboardData2();\r\n this.fetchDetails(this.props.campaignId);\r\n }\r\n\r\n fetchDetails = campaignId => {\r\n fetchMethod(campaignDetails(campaignId))\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n this.setState(\r\n {\r\n loading: false,\r\n show: true\r\n },\r\n () => this.props.detailEdit(this.state.show)\r\n );\r\n this.setDetails(responseAsJson);\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n this.setState({ loading: true });\r\n });\r\n };\r\n\r\n setDetails = response => {\r\n \r\n this.setState(\r\n {\r\n name: response.data.Campaigns.name,\r\n description: response.data.Campaigns.description,\r\n status: response.data.Campaigns.status,\r\n selectedCampaignStatus:response.data.Campaigns.status,\r\n campaignid:response.data.Campaigns.id,\r\n connectionsToBeSent: response.data.Campaigns.targetconnections,\r\n connectionsToBeSent: response.data.Campaigns.zapierurl,\r\n startDate: response.data.Campaigns.startdate,\r\n steps:\r\n response.data.Campaigns.Campaignstepfk !== undefined\r\n ? response.data.Campaigns.Campaignstepfk.Campaignsteps\r\n : \"\"\r\n },\r\n () => {\r\n this.state.steps.sort(function(a, b) {\r\n return a.sequence - b.sequence;\r\n });\r\n this.props.name(this.state.name);\r\n }\r\n );\r\n };\r\n\r\n getDashboardData2 = () => {\r\n // var dasId = 0;\r\n // if (localStorage.getItem(\"role\") == \"CUSTOMER\") {\r\n // dasId = localStorage.getItem(\"customer\");\r\n // } else {\r\n // dasId = localStorage.getItem(\"id\");\r\n // }\r\n\r\n fetch(\r\n `${API_URL}/api/Campaigns/getCampaignHomeDas?campaignId=${\r\n this.props.campaignId\r\n }&access_token=${localStorage.getItem(\"token\")}`,\r\n {\r\n method: \"POST\",\r\n mode: \"cors\",\r\n headers: {\r\n \"Content-type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n // .then(res => {\r\n\r\n .then(res => {\r\n this.setState(\r\n {\r\n DashboardlistData2: res.response\r\n },\r\n () => {\r\n this.setDataCalculation2();\r\n }\r\n );\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n });\r\n };\r\n\r\n setDataCalculation2 = () => {\r\n const { DashboardlistData2, DashboardData2 } = this.state;\r\n\r\n var engData = \"0\";\r\n var leadData = \"0\";\r\n var connectData = \"0\";\r\n\r\n if (DashboardlistData2[1].engagedRate != null) {\r\n engData = DashboardlistData2[1].engagedRate.toFixed(0);\r\n }\r\n if (DashboardlistData2[2].leadsRate != null) {\r\n leadData = DashboardlistData2[2].leadsRate.toFixed(0);\r\n }\r\n if (DashboardlistData2[0].connectRate != null) {\r\n connectData = DashboardlistData2[0].connectRate.toFixed(0);\r\n }\r\n \r\n DashboardData2.TotalSent = DashboardlistData2[3];\r\n DashboardData2.TotalConnection = DashboardlistData2[6];\r\n DashboardData2.TotalEngagedCon = DashboardlistData2[5];\r\n DashboardData2.TotalLeadsCon = DashboardlistData2[4];\r\n DashboardData2.TotalEngaged = engData;\r\n DashboardData2.TotalLeads = leadData;\r\n DashboardData2.TotalConnectRate = connectData;\r\n DashboardData2.recentLeads = DashboardlistData2[7];\r\n DashboardData2.recentTrigger = DashboardlistData2[8];\r\n DashboardData2.stepLength = DashboardlistData2[12].stepContacts.length;\r\n var TotalLength = DashboardlistData2[12].stepContacts.length;\r\n var flag=0;\r\n\r\n\r\n\r\n for (var i = 0; i < TotalLength; i++) {\r\n \r\n var index = i+flag;\r\n\r\nvar name = DashboardlistData2[12].stepContacts[i].stepname;\r\n\r\n\r\nif(name === \"VISIT\"){\r\n name=\"Visit\";\r\n}\r\nif(name === \"FOLLOW\"){\r\n name=\"Follow\";\r\n}\r\nif(name === \"SEND_INVITE\"){\r\n name=\"Connections\";\r\n}\r\nif(name === \"SEND_THANKS_MESSAGE\"){\r\n name=\"Thank You Message\";\r\n}\r\nif(name === \"SEND_MESSAGE\"){\r\n name=\"Send Message\";\r\n}\r\nif(name === \"SEND_EMAIL\"){\r\n name=\"Send Inmail\";\r\n}\r\n\r\n\r\n\r\n\r\nif ( i === 0 && (DashboardlistData2[12].stepContacts[0].stepname === \"SEND_EMAIL\" || DashboardlistData2[12].stepContacts[0].stepname === \"SEND_MESSAGE\")){\r\n DashboardData2.stepLength =DashboardData2.stepLength +1;\r\n\r\n DashboardData2.step1 =\r\n DashboardlistData2[15];\r\n DashboardData2.stepname1 =\"Connections\";\r\n flag=1;\r\n\r\n if (DashboardlistData2[12].stepContacts[0].stepname == \"SEND_EMAIL\" ){\r\n DashboardData2.step2 = DashboardlistData2[12].stepContacts[0].totalDone;\r\n DashboardData2.step2Remain1st = (DashboardlistData2[15]) -(DashboardlistData2[12].stepContacts[0].totalDone) ;\r\n }else{\r\n DashboardData2.step2 = DashboardlistData2[12].stepContacts[0].totalCount;\r\n DashboardData2.step2Remain1st = (DashboardlistData2[15]) -(DashboardlistData2[12].stepContacts[0].totalCount) ;\r\n }\r\n // DashboardData2.step2 = DashboardlistData2[12].stepContacts[0].totalCount;\r\n DashboardData2.stepname2 =name;\r\n // DashboardData2.step2Remain1st = (DashboardlistData2[15]) -(DashboardlistData2[12].stepContacts[0].totalCount) ;\r\n}\r\nelse{\r\n switch (index) {\r\n \r\n case 0:\r\n DashboardData2.step1 = DashboardData2.TotalConnection;\r\n DashboardData2.stepname1 =\"Connections\";\r\n\r\n \r\n break;\r\n case 1:\r\n DashboardData2.step2 =\r\n DashboardlistData2[12].stepContacts[i].totalDone;\r\n DashboardData2.stepname2 =name;\r\n DashboardData2.step2Remain = DashboardlistData2[12].stepContacts[i].totalPen ;\r\n break;\r\n case 2:\r\n DashboardData2.step3 =\r\n DashboardlistData2[12].stepContacts[i].totalDone;\r\n DashboardData2.stepname3 =name;\r\n DashboardData2.step3Remain = DashboardlistData2[12].stepContacts[i].totalPen + DashboardData2.step2Remain ;\r\n break;\r\n case 3:\r\n DashboardData2.step4 =\r\n DashboardlistData2[12].stepContacts[i].totalDone;\r\n DashboardData2.stepname4 =name;\r\n DashboardData2.step4Remain = DashboardlistData2[12].stepContacts[i].totalPen + DashboardData2.step3Remain;\r\n break;\r\n \r\n case 4:\r\n DashboardData2.step5 =\r\n DashboardlistData2[12].stepContacts[i].totalDone;\r\n DashboardData2.stepname5 =name;\r\n DashboardData2.step5Remain = DashboardlistData2[12].stepContacts[i].totalPen + DashboardData2.step4Remain;\r\n break;\r\n }\r\n }\r\n \r\n }\r\n\r\n \r\n this.setState({\r\n DashboardlistData2,\r\n loading: false\r\n });\r\n };\r\n\r\n render() {\r\n const options = {\r\n animations: {\r\n y: {\r\n easing: \"easeInOutElastic\",\r\n from: ctx => {\r\n if (ctx.type === \"data\") {\r\n if (ctx.mode === \"default\" && !ctx.dropped) {\r\n ctx.dropped = true;\r\n return 0;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n plugins: {\r\n filler: {\r\n propagate: true\r\n }\r\n },\r\n \r\n };\r\n \r\n //var campaignStatus = \"\";\r\n var monthsData = [];\r\n var monthsCount = [];\r\n var monthsEngCount = [];\r\n var monthsleaCount = [];\r\n\r\n if (this.state.DashboardlistData2 !== undefined) {\r\n // campaignStatus = this.state.DashboardlistData2[13][0].status;\r\n \r\n var datacount = this.state.DashboardlistData2[9];\r\n var engcount = this.state.DashboardlistData2[10];\r\n var leacount = this.state.DashboardlistData2[11];\r\n \r\n var connectList = datacount[0];\r\n // var dataLeng = datacount[0].length;\r\n\r\n \r\n for (var i = 0; i < datacount[0].length; i++) {\r\n\r\n// const d = new Date();\r\n// let curMonth = d.getMonth() +1;\r\n// let curYear = d.getFullYear();\r\n var months = connectList[i].month;\r\n if (i === datacount[0].length -1){\r\n \r\n let connect = (this.state.DashboardlistData2[0].connectRate != null ) ? this.state.DashboardlistData2[0].connectRate.toFixed(0) : 0;\r\nmonthsCount.push(connect);\r\n }else{\r\nmonthsCount.push(connectList[i].countdata);\r\n } \r\n\r\n switch (months) {\r\n case 1:\r\n monthsData.push(\"Jan\");\r\n break\r\n ;\r\n case 2:\r\n monthsData.push(\"Feb\");\r\n break;\r\n case 3:\r\n monthsData.push(\"Mar\");\r\n break;\r\n case 4:\r\n monthsData.push(\"Apr\");\r\n break;\r\n case 5:\r\n monthsData.push(\"May\");\r\n break;\r\n case 6:\r\n monthsData.push(\"Jun\");\r\n break;\r\n case 7:\r\n monthsData.push(\"Jul\");\r\n break;\r\n case 8:\r\n monthsData.push(\"Aug\");\r\n break;\r\n case 9:\r\n monthsData.push(\"Sep\");\r\n break;\r\n case 10:\r\n monthsData.push(\"Oct\");\r\n break;\r\n case 11:\r\n monthsData.push(\"Nov\");\r\n break;\r\n case 12:\r\n monthsData.push(\"Dec\");\r\n break;\r\n }\r\n }\r\n\r\n \r\n var engagedList = engcount[0];\r\n var leadList = leacount[0];\r\n for (var i = 0; i < engcount[0].length; i++) {\r\n \r\n // const d = new Date();\r\n // let curMonth = d.getMonth() +1;\r\n // let curYear = d.getFullYear();\r\n if (i === engcount[0].length-1){\r\n \r\n let engaged = (this.state.DashboardlistData2[1].engagedRate != null ) ? this.state.DashboardlistData2[1].engagedRate.toFixed(0) : 0;\r\n monthsEngCount.push(engaged);\r\n }else{\r\n monthsEngCount.push(engagedList[i].countdata);\r\n }\r\n }\r\n for (var i = 0; i < leacount[0].length; i++) {\r\n \r\n //const d = new Date();\r\n // let curMonth = d.getMonth() +1;\r\n // let curYear = d.getFullYear();\r\n if (i === leacount[0].length-1){\r\n \r\n let leads = (this.state.DashboardlistData2[2].leadsRate != null ) ? this.state.DashboardlistData2[2].leadsRate.toFixed(0) : 0;\r\n monthsleaCount.push(leads);\r\n }else{\r\n monthsleaCount.push(leadList[i].countdata);\r\n }\r\n }\r\n }\r\n\r\n const labels = monthsData;\r\n const CHART_COLORS = {\r\n red: \"rgb(255, 99, 132)\",\r\n orange: \"rgb(255, 102, 0)\",\r\n yellow: \"rgb(255, 205, 86)\",\r\n green: \"rgb(43,\t173,\t221)\",\r\n blue: \"rgb(0, 125, 150)\",\r\n purple: \"rgb(153, 102, 255)\",\r\n grey: \"rgb(201, 203, 207)\"\r\n };\r\n function transparentize(value, opacity) {\r\n var alpha = opacity === undefined ? 0.5 : 1 - opacity;\r\n return colorLib(value)\r\n .alpha(alpha)\r\n .rgbString();\r\n }\r\n const type = \"line\";\r\n const datasets =[];\r\n const data = {\r\n labels,\r\n datasets};\r\n \r\n\r\n if (this.state.DashboardlistData2 !== undefined) {\r\n\r\n if (this.state.DashboardlistData2[12].stepContacts[0] !== undefined) {\r\n if (this.state.DashboardlistData2[12].stepContacts[0].stepname === \"SEND_EMAIL\" || this.state.DashboardlistData2[12].stepContacts[0].stepname === \"SEND_MESSAGE\"){\r\n\r\n datasets.push( \r\n {\r\n animations: {\r\n y: {\r\n duration: 1000,\r\n delay: 500\r\n }\r\n },\r\n label: `Engaged%`,\r\n data: monthsEngCount,\r\n\r\n borderColor: \"#007D96\",\r\n backgroundColor: transparentize(CHART_COLORS.blue, 0.8),\r\n fill: true,\r\n tension: 0.5\r\n },\r\n {\r\n label: \"Leads%\",\r\n data: monthsleaCount,\r\n\r\n borderColor: \"#FF6600\",\r\n backgroundColor: transparentize(CHART_COLORS.orange, 0.8),\r\n fill: true,\r\n tension: 0.5\r\n },\r\n )\r\n \r\n }else{\r\n\r\n datasets.push(\r\n {\r\n label: \"Connect%\",\r\n\r\n animations: {\r\n y: {\r\n duration: 1000,\r\n delay: 500\r\n }\r\n },\r\n\r\n data: monthsCount,\r\n\r\n borderColor: \"#2BADDD\",\r\n backgroundColor: transparentize(CHART_COLORS.green, 0.8),\r\n fill: true,\r\n tension: 0.5\r\n },\r\n\r\n {\r\n label: `Engaged%`,\r\n data: monthsEngCount,\r\n\r\n borderColor: \"#007D96\",\r\n backgroundColor: transparentize(CHART_COLORS.blue, 0.8),\r\n fill: true,\r\n tension: 0.5\r\n },\r\n {\r\n label: \"Leads%\",\r\n data: monthsleaCount,\r\n\r\n borderColor: \"#FF6600\",\r\n backgroundColor: transparentize(CHART_COLORS.orange, 0.8),\r\n fill: true,\r\n tension: 0.5\r\n })\r\n }\r\n }else{\r\n datasets.push( \r\n {\r\n label: \"Connect%\",\r\n\r\n animations: {\r\n y: {\r\n duration: 1000,\r\n delay: 500\r\n }\r\n },\r\n\r\n data: monthsCount,\r\n\r\n borderColor: \"#2BADDD\",\r\n backgroundColor: transparentize(CHART_COLORS.green, 0.8),\r\n fill: true,\r\n tension: 0.5\r\n },\r\n {\r\n \r\n label: `Engaged%`,\r\n data: monthsEngCount,\r\n\r\n borderColor: \"#007D96\",\r\n backgroundColor: transparentize(CHART_COLORS.blue, 0.8),\r\n fill: true,\r\n tension: 0.5\r\n },\r\n {\r\n label: \"Leads%\",\r\n data: monthsleaCount,\r\n\r\n borderColor: \"#FF6600\",\r\n backgroundColor: transparentize(CHART_COLORS.orange, 0.8),\r\n fill: true,\r\n tension: 0.5\r\n },\r\n )\r\n }\r\n}\r\n\r\n // var cc = this.state.DashboardlistData2;\r\n var today = new Date();\r\n // var curHr = today.getHours();\r\n \r\n const onNameClick = row => { \r\n \r\n this.props.onHandleCampaign(row);\r\n localStorage.setItem(\"label\",\"Leads\");\r\n localStorage.setItem(\"path\",\"/campaigns\"); \r\n\r\n };\r\n const onNameClick2 = row => { \r\n\r\n this.props.onHandleCampaign(row);\r\n localStorage.setItem(\"label\",\"Trigger\");\r\n localStorage.setItem(\"path\",\"/campaigns\"); \r\n\r\n };\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {this.state.DashboardlistData2 !== undefined && (\r\n
    \r\n \r\n
    \r\n )}\r\n {this.state.DashboardlistData2 !== undefined && this.state.DashboardlistData2[12].stepContacts[0] ? ( \r\n \r\n < div className=\"campaign_data_stats0\"> \r\n {(this.state.DashboardlistData2[12].stepContacts[0].stepname === \"SEND_EMAIL\" || this.state.DashboardlistData2[12].stepContacts[0].stepname === \"SEND_MESSAGE\") && (\r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.step1}{\" \"}\r\n

    {\" \"}\r\n

    \r\n {\" \"}\r\n

    Total Connections\r\n

    \r\n
    \r\n\r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    \r\n {((this.state.DashboardData2.step2/this.state.DashboardData2.step1)*100).toFixed(0)}% (\r\n {this.state.DashboardData2.step2}){\" \"}\r\n

    \r\n

    Message Sent

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n {((this.state.DashboardData2.TotalEngagedCon/this.state.DashboardData2.step2)*100).toFixed(0)}% (\r\n {this.state.DashboardData2.TotalEngagedCon})\r\n

    \r\n

    Total Engaged

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {((this.state.DashboardData2.TotalLeadsCon/this.state.DashboardData2.step2)*100).toFixed(0)}% (\r\n {this.state.DashboardData2.TotalLeadsCon})\r\n

    \r\n

    Total Leads

    \r\n
    \r\n
    \r\n

    \r\n {\" \"}\r\n
    \r\n \"users\"\r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {(this.state.DashboardlistData2[12].stepContacts[0].stepname !== \"SEND_EMAIL\" && this.state.DashboardlistData2[12].stepContacts[0].stepname !== \"SEND_MESSAGE\") && (\r\n
    \r\n
    \r\n
    \r\n

    {this.state.DashboardData2.TotalSent}

    \r\n

    Invitation Sent

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalConnectRate}% (\r\n {this.state.DashboardData2.TotalConnection}){\" \"}\r\n

    {\" \"}\r\n

    \r\n {\" \"}\r\n

    Total Connections\r\n

    \r\n
    \r\n\r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalEngaged}% (\r\n {this.state.DashboardData2.TotalEngagedCon})\r\n

    \r\n

    Total Engaged

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalLeads}% (\r\n {this.state.DashboardData2.TotalLeadsCon})\r\n

    \r\n

    Total Leads

    \r\n
    \r\n
    \r\n

    \r\n {\" \"}\r\n
    \r\n \"users\"\r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n ):(\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {this.state.DashboardData2.TotalSent}

    \r\n

    Invitation Sent

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalConnectRate}% (\r\n {this.state.DashboardData2.TotalConnection}){\" \"}\r\n

    {\" \"}\r\n

    \r\n {\" \"}\r\n

    Total Connections\r\n

    \r\n
    \r\n\r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalEngaged}% (\r\n {this.state.DashboardData2.TotalEngagedCon})\r\n

    \r\n

    Total Engaged

    \r\n
    \r\n
    \r\n \"users\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.DashboardData2.TotalLeads}% (\r\n {this.state.DashboardData2.TotalLeadsCon})\r\n

    \r\n

    Total Leads

    \r\n
    \r\n
    \r\n

    \r\n {\" \"}\r\n
    \r\n \"users\"\r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    )}\r\n \r\n
    \r\n {this.state.DashboardData2.stepLength > 0 && (\r\n
    \r\n
    \r\n \r\n\r\n {this.state.DashboardData2.stepLength === 1 && (\r\n
    \r\n \r\n
    \r\n \"users\"\r\n\r\n

    {this.state.DashboardData2.step1}

    {this.state.DashboardData2.stepname1}

    \r\n \r\n
    \r\n \r\n
    \r\n )}\r\n {this.state.DashboardData2.stepLength === 2 && (\r\n
    \r\n
    \r\n \"users\"\r\n\r\n

    {this.state.DashboardData2.step1}

    {this.state.DashboardData2.stepname1}

    \r\n \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step2 + \" out of \" + (this.state.DashboardData2.step2Remain + this.state.DashboardData2.step2 +this.state.DashboardData2.step2Remain1st)}

    {this.state.DashboardData2.stepname2}

    \r\n
    \r\n \r\n
    \r\n )}\r\n {this.state.DashboardData2.stepLength === 3 && (\r\n
    \r\n\r\n
    \r\n \"users\"\r\n\r\n

    {this.state.DashboardData2.step1}

    {this.state.DashboardData2.stepname1}

    \r\n \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step2 + \" out of \" + (this.state.DashboardData2.step2Remain + this.state.DashboardData2.step2 +this.state.DashboardData2.step2Remain1st)}

    {this.state.DashboardData2.stepname2}

    \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step3 + \" out of \" + (this.state.DashboardData2.step3Remain + this.state.DashboardData2.step3)}

    {this.state.DashboardData2.stepname3}

    \r\n \r\n
    \r\n\r\n
    \r\n )}\r\n {this.state.DashboardData2.stepLength === 4 && (\r\n
    \r\n
    \r\n \"users\"\r\n\r\n

    {this.state.DashboardData2.step1}

    {this.state.DashboardData2.stepname1}

    \r\n \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step2 + \" out of \" + (this.state.DashboardData2.step2Remain + this.state.DashboardData2.step2 + this.state.DashboardData2.step2Remain1st)}

    {this.state.DashboardData2.stepname2}

    \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step3 + \" out of \" + (this.state.DashboardData2.step3Remain + this.state.DashboardData2.step3)}

    {this.state.DashboardData2.stepname3}

    \r\n \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step4 + \" out of \" + (this.state.DashboardData2.step4Remain + this.state.DashboardData2.step4)}

    {this.state.DashboardData2.stepname4}

    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n {this.state.DashboardData2.stepLength === 5 && (\r\n
    \r\n\r\n
    \r\n \"users\"\r\n\r\n

    {this.state.DashboardData2.step1}

    {this.state.DashboardData2.stepname1}

    \r\n \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step2 + \" out of \" + (this.state.DashboardData2.step2Remain + this.state.DashboardData2.step2 +this.state.DashboardData2.step2Remain1st) }

    {this.state.DashboardData2.stepname2}

    \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step3 + \" out of \" + (this.state.DashboardData2.step3Remain + this.state.DashboardData2.step3)}

    {this.state.DashboardData2.stepname3 }

    \r\n \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step4 + \" out of \" + (this.state.DashboardData2.step4Remain + this.state.DashboardData2.step4)}

    {this.state.DashboardData2.stepname4}

    \r\n \r\n
    \r\n
    \r\n \"users\"\r\n

    {this.state.DashboardData2.step5 + \" out of \" + (this.state.DashboardData2.step5Remain + this.state.DashboardData2.step5)}

    {this.state.DashboardData2.stepname5}

    \r\n \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n {this.state.DashboardlistData2 !== undefined && (\r\n \r\n
    \r\n
    \r\n

    onNameClick(this.state)} > Recent Leads

    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    onNameClick2(this.state)} >Recent Triggers

    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n \r\n return {\r\n onHandleCampaign: data =>\r\n dispatch({\r\n type: \"Campaign_Detail\",\r\n payload: data\r\n })\r\n };\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps) (CampaignDetailsTab2);\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport \"../tables/reactTable.css\";\r\nimport CampaignTabs from \"./CampaignTabs\";\r\nimport \"./CampaignTables.css\";\r\nimport \"./CampaignTabs.css\";\r\nimport { Button, Drawer } from \"@material-ui/core\";\r\nimport EditButton from \"../assets/edit-icon.png\";\r\nimport LeftArrow from \"../assets/leftArrow.png\";\r\nimport CampaignEngagedTab from \"./CampaignTabs/CampaignEngagedTab\";\r\nimport CampaignTempListTab from \"./CampaignTabs/CampaignTempList\";\r\nimport CampaignNoOpTab from \"./CampaignTabs/CampaignNoOpTab\";\r\nimport CampaignOpenTab from \"./CampaignTabs/CampaignOpenTab\";\r\nimport { getEdit, getStepEdit } from \"./campaignQueries\";\r\nimport CampaignLeadsTab from \"./CampaignTabs/CampaignLeadsTab\";\r\nimport CampaignDetailsTab from \"./CampaignTabs/CampaignDetailsTab\";\r\nimport CampaignContactsTab from \"./CampaignTabs/CampaignContactsTab\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { connect } from \"react-redux\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nimport EditCampaign from \"../Form/EditForm\";\r\nimport CampaignTriggersTab from \"./CampaignTabs/CampaignTriggersTab\";\r\nimport CampaignDetailsTab2 from \"./CampaignTabs/CampaignDetailsTab2\";\r\nimport FiberManualRecordIcon from \"@material-ui/icons/FiberManualRecord\";\r\n\r\nclass CampaignTablesComponent extends Component {\r\n constructor(props) {\r\n \r\n super(props);\r\n\r\n this.child = React.createRef();\r\n this.state = {\r\n show: \"\",\r\n name: \"\",\r\n openForm: false,\r\n editableData: undefined,\r\n editCampaignStepsData: undefined\r\n };\r\n }\r\n \r\n EditDetails = reponse => {\r\n this.setState({ show: reponse });\r\n };\r\n\r\n campaignTabDetailFetch = response => {};\r\n CampaignName = res => {\r\n this.setState({ name: res });\r\n };\r\n\r\n toggleDrawer = (side, open, user) => async event => {\r\n\r\n let data = await getEdit(this.props.campaignid);\r\n\r\n this.setState(\r\n {\r\n editableData:\r\n data.data !== undefined &&\r\n data.data.allCampaigns !== null &&\r\n data.data.allCampaigns.Campaigns[0] !== null\r\n ? data.data.allCampaigns.Campaigns[0]\r\n : \"\"\r\n },\r\n () => this.props.editFormData(this.state.editableData)\r\n );\r\n\r\n fetchMethod(getStepEdit(this.props.campaignid))\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState(\r\n {\r\n editCampaignStepsData:\r\n res.data !== undefined &&\r\n res.data.allCampaignsteps !== null &&\r\n res.data.allCampaignsteps.Campaignsteps !== undefined\r\n ? res.data.allCampaignsteps.Campaignsteps\r\n : \"\"\r\n },\r\n () => {\r\n this.props.onEditMode(true);\r\n this.props.getId(this.state.editableData.id);\r\n if (this.child.current !== null && this.props.campaignid) {\r\n this.child.current.fetchDetails(this.props.campaignid);\r\n }\r\n this.state.editCampaignStepsData.sort(function(a, b) {\r\n return a.sequence - b.sequence;\r\n });\r\n return this.props.OnEdit(this.state.editCampaignStepsData);\r\n }\r\n );\r\n })\r\n .catch(e => console.log(e));\r\n\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n \r\n render() {\r\n \r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \"<\"\r\n \r\n \r\n {this.state.name}\r\n \r\n \r\n
    \r\n\r\n \r\n \r\n\r\n
    \r\n {this.state.show === true ? (\r\n \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n }\r\n >\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n {this.state.editableData ? (\r\n \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n

    \r\n \r\n \r\n {this.props.selectedCampaignStatus === \"LIVE\" && (\r\n
    \r\n \r\n {this.props.selectedCampaignStatus\r\n .charAt(0)\r\n .toUpperCase() +\r\n this.props.selectedCampaignStatus\r\n .slice(1)\r\n .toLowerCase()}\r\n
    \r\n )}\r\n {this.props.selectedCampaignStatus !== \"LIVE\" && (\r\n
    \r\n \r\n {this.props.selectedCampaignStatus\r\n .charAt(0)\r\n .toUpperCase() +\r\n this.props.selectedCampaignStatus\r\n .slice(1)\r\n .toLowerCase()}\r\n
    \r\n )}\r\n
    \r\n \r\n

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n\r\n \r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ) : (\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n editFormData: data => dispatch({ type: \"Form_data\", payload: data }),\r\n OnEdit: editCampaignStepsData =>\r\n dispatch({ type: \"Edit_Step_Data\", StepId: editCampaignStepsData }),\r\n onEditMode: editMode =>\r\n dispatch({ type: \"IsEditModeable\", editMode: editMode }),\r\n getId: id => dispatch({ type: \"GetId\", id: id })\r\n\r\n };\r\n};\r\n\r\n\r\nexport default connect(null, mapDispatchToProps)(CampaignTablesComponent);\r\n","import React, { Component } from \"react\";\r\n//import AddCircleOutlineOutlinedIcon from \"@material-ui/icons/AddCircleOutlineOutlined\";\r\nimport FiberManualRecordIcon from \"@material-ui/icons/FiberManualRecord\";\r\nimport { Button, Drawer } from \"@material-ui/core\";\r\n// import Check from \"../assets/check.png\";\r\n// import Cross from \"..//assets/cross.png\";\r\n\r\nimport SearchCampaign from \"./SearchCampaign\";\r\nimport AddCampaign from \"../Form/AddNewForm\";\r\nimport {\r\n addCampaignForm,\r\n campaignValidation,\r\n editcampaignValidation,\r\n editCampaignForm\r\n} from \"./CampaignConfig\";\r\n\r\nimport \"./campaign.css\";\r\nimport \"./editCampaign.css\";\r\n//import store from \"../../Redux/Store\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { thCampaignsArray } from \"../variables/THeaders\";\r\nimport { CampaignInfo } from \"../../Queries\";\r\nimport ReactTableComponent from \"../tables/ReactTable\";\r\nimport \"./CampaignActiveTab.css\";\r\nimport CampaignTablesComponent from \"./CampaignTables\";\r\n\r\nimport { connect } from \"react-redux\";\r\n\r\nimport {\r\n getCampaignCustomers,\r\n getcampaignmanager,\r\n addNewCampaign,\r\n saveCampaignstep,\r\n getcampaignmanagerassignto,\r\n EditCampaignQuery\r\n} from \"../Campaign/campaignQueries\";\r\n\r\n\r\nclass Campaign extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n header: \"Campaign Management\",\r\n loading: false,\r\n campaigns: [],\r\n custdata: [],\r\n custdata1: [],\r\n campmanager: [],\r\n campmanager1: [],\r\n linkedinProfile: [],\r\n addsteps: [],\r\n openForm: false,\r\n openEdit: false,\r\n clear: [],\r\n totalCount: 0,\r\n limit: 50,\r\n filterColumn: \"\",\r\n shortfilter: false,\r\n offset: 50,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n showTab: false,\r\n campaignName: \"\",\r\n campaingnEditid: 0,\r\n campaignTempListData: [],\r\n editCampaignData: [],\r\n editCampaignStepsData: [],\r\n Row: [],\r\n assignTo: [],\r\n selected: {},\r\n campaignId: \"\",\r\n customerId: \"\",\r\n managerId: \"\",\r\n Status: \"LIVE\",\r\n lastResponse: undefined,\r\n customerfilter: \"\",\r\n campaignsProfile: [],\r\n linkedinid: \"\",\r\n datafromcampaign: \"\",\r\n salesNavigator: \"\",\r\n type: \"\"\r\n };\r\n }\r\n\r\n toggleDrawer = (side, open) => event => {\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.props.OnClear(this.state.clear);\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n setLinkedinData = data => {\r\n this.setState({ linkedinProfile: data });\r\n };\r\n\r\n componentDidMount() {\r\n localStorage.setItem(\"path\", \"/campaigns\");\r\n const filter1 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n active: 1,\r\n createdby: localStorage.getItem(\"id\"),\r\n order: \"company asc\"\r\n }\r\n }\r\n : { where: { active: 1, order: \"company asc\" } };\r\n fetchMethod(getCampaignCustomers, filter1)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ custdata: res.data.allCustomers.Customers }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter2 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n order: \"company asc\",\r\n createdby: localStorage.getItem(\"id\")\r\n }\r\n }\r\n : { where: { order: \"company asc\" } };\r\n fetchMethod(getCampaignCustomers, filter2)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ custdata1: res.data.allCustomers.Customers }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n role: \"CAMPAIGNMANAGER\",\r\n status: 1,\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n role: \"CAMPAIGNMANAGER\",\r\n status: 1,\r\n order: \"firstName asc\"\r\n }\r\n };\r\n\r\n fetchMethod(getcampaignmanager, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n let data =\r\n res.data.allUsersdata !== undefined && res.data.allUsersdata !== null\r\n ? res.data.allUsersdata.Usersdata\r\n : \"\";\r\n\r\n this.setState({ campmanager: data }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter3 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n };\r\n\r\n fetchMethod(getcampaignmanager, filter3)\r\n .then(res => res.json())\r\n .then(res => {\r\n let data =\r\n res.data.allUsersdata !== undefined && res.data.allUsersdata !== null\r\n ? res.data.allUsersdata.Usersdata\r\n : \"\";\r\n\r\n this.setState({ campmanager1: data }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n fetchMethod(getcampaignmanagerassignto)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ assignTo: res.data.allUsersdata.Usersdata }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n this.props.onHandleSidebarText(\"/campaigns\");\r\n }\r\n\r\n setListData = response => {\r\n this.setState({\r\n campaigns: response.data.allCampaigns.Campaigns,\r\n totalCount: response.data.allCampaigns.totalCount\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n SearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n }\r\n };\r\n\r\n setCampaignRowClick = rowInfo => {};\r\n\r\n backToCampaignList = () => {\r\n this.props.onHandleCampaign();\r\n this.setState(\r\n {\r\n showTab: false,\r\n customerId: \"\",\r\n search: \"\",\r\n managerId: \"\",\r\n Status: \"LIVE\"\r\n },\r\n () => {\r\n this.props.LastResponse(this.state.lastResponse);\r\n }\r\n );\r\n this.props.onEditMode(false);\r\n };\r\n\r\n setmanagerId = response => {\r\n response === \"Select\"\r\n ? this.setState({ managerId: \"\" })\r\n : this.setState(\r\n {\r\n managerId: response\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n }\r\n );\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ filterColumn: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ filterColumn: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n StatusFilter = () => {\r\n this.setState({ filterColumn: \"status asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n StatusFilter1 = () => {\r\n this.setState({ filterColumn: \"status desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n DateFilter = () => {\r\n this.setState({ filterColumn: \"startdate asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n DateFilter1 = () => {\r\n this.setState({ filterColumn: \"startdate desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n statusChange = response => {\r\n this.setState(\r\n {\r\n Status: response\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n }\r\n );\r\n };\r\n setCustomerId = response => {\r\n this.setState({ customerId: response }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n };\r\n handleSearchChange = response => {\r\n this.setState({ search: response });\r\n };\r\n handleSearch = response => {\r\n this.setState({ searchFlag: response }, () => this.SearchClick());\r\n };\r\n handleonclickSearch = response => {\r\n this.setState({ clickToSearch: response });\r\n };\r\n\r\n onNameClick = campaigns => {\r\n this.setState({ Row: campaigns });\r\n\r\n this.setState({\r\n showTab: true,\r\n campaignName: campaigns.name,\r\n campaignStatus: campaigns.status,\r\n campaignId: campaigns.id,\r\n customerId: campaigns.customerid,\r\n linkedinid: campaigns.linkedinid,\r\n datafromcampaign: campaigns.datafromcampaign,\r\n salesNavigator: campaigns.salesNavigator,\r\n type: campaigns.type\r\n });\r\n };\r\n\r\n render() {\r\n const search = this.state.clickToSearch ? this.state.search : \"\";\r\n const like = `%${search}%`;\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? this.state.Status === \"ALL\"\r\n ? this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n status: this.state.Status,\r\n active: 1,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n status: this.state.Status,\r\n active: 1,\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n status: this.state.Status,\r\n active: 1,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n status: this.state.Status,\r\n active: 1,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? this.state.Status === \"ALL\"\r\n ? this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n status: this.state.Status,\r\n active: 1,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n active: 1,\r\n customerid: localStorage.getItem(\"customer\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n status: this.state.Status,\r\n active: 1,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n status: this.state.Status,\r\n active: 1,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? this.state.Status === \"ALL\"\r\n ? this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n status: this.state.Status,\r\n active: 1,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n active: 1,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n active: 1,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n status: this.state.Status,\r\n active: 1,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.Status === \"ALL\"\r\n ? this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n status: this.state.Status,\r\n active: 1,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n active: 1,\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n active: 1,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n status: this.state.Status,\r\n active: 1,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n };\r\n const filterSort = [\r\n {\r\n Header: \"Customer\",\r\n accessor: \"Customer\"\r\n },\r\n {\r\n Header: \"Profile\",\r\n accessor: \"Profile\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Campaign\r\n \r\n );\r\n },\r\n accessor: \"Name\"\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Status\r\n \r\n );\r\n },\r\n accessor: \"status\",\r\n Cell: row => {\r\n \r\n row.styles[\"color\"] =\r\n row.value === \"LIVE\"\r\n ? \"#03AC58\"\r\n : row.value === \"PAUSED\"\r\n ? \"#FFA500\"\r\n : row.value === \"COMPLETED\"\r\n ? \"#00ff00\"\r\n : \"grey\";\r\n\r\n return row.value;\r\n }\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Start Date\r\n \r\n );\r\n },\r\n accessor: \"startDate\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Running\r\n \r\n );\r\n },\r\n accessor: \"runonWeb\"\r\n },\r\n {\r\n Header: \"# Invites\",\r\n accessor: \"invitedcount\"\r\n },\r\n {\r\n Header: \"# Connected\",\r\n accessor: \"connectedcount\"\r\n },\r\n {\r\n Header: \"% Connected\",\r\n accessor: \"connectedper\"\r\n },\r\n {\r\n Header: \"# Engaged\",\r\n accessor: \"engagedcount\"\r\n },\r\n {\r\n Header: \"% Engaged\",\r\n accessor: \"engagedper\"\r\n },\r\n {\r\n Header: \"# Leads\",\r\n accessor: \"leadcount\"\r\n },\r\n {\r\n Header: \"% Leads\",\r\n accessor: \"leadper\"\r\n }\r\n ];\r\n let campaigns = [...this.state.campaigns];\r\n campaigns.map(campaigns => {\r\n let date = campaigns.startdate\r\n .split(\"T\")[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\");\r\n let datearray = date.split(\"/\");\r\n campaigns.startDate =\r\n datearray[0] + \"/\" + datearray[1] + \"/\" + datearray[2];\r\n\r\n campaigns.Name = (\r\n {\r\n this.onNameClick(campaigns);\r\n }}\r\n >\r\n {campaigns.name}\r\n \r\n );\r\n\r\n campaigns.Customer =\r\n campaigns.customerIbfk1rel !== undefined &&\r\n campaigns.customerIbfk1rel !== null\r\n ? campaigns.customerIbfk1rel.Customers.map(company => {\r\n return (\r\n {\r\n this.onNameClick(campaigns);\r\n }}\r\n >\r\n {company.company}\r\n \r\n );\r\n })\r\n : \"\";\r\n\r\n if (\r\n campaigns.runningCampaign == undefined ||\r\n campaigns.runningCampaign == null ||\r\n campaigns.runningCampaign == \"\"\r\n ) {\r\n campaigns.runonWeb = (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n } else {\r\n campaigns.runonWeb = (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n\r\n\r\n campaigns.Profile =\r\n campaigns.customercredentialsIbfk1rel !== undefined &&\r\n campaigns.customercredentialsIbfk1rel !== null\r\n ? campaigns.customercredentialsIbfk1rel.Customerlinkedinprofiles.map(\r\n name => {\r\n return (\r\n {\r\n this.onNameClick(campaigns);\r\n }}\r\n >\r\n {name.name}\r\n \r\n );\r\n }\r\n )\r\n : \"\";\r\n\r\n\r\n\r\n return null;\r\n });\r\n\r\n return (\r\n
    \r\n {this.state.showTab || this.props.campaignProps ? (\r\n \r\n ) : (\r\n \r\n
    \r\n
    \r\n

    Campaigns

    \r\n Total {this.state.totalCount} Records\r\n
    \r\n
    \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" &&\r\n localStorage.getItem(\"role\") !== \"CAMPAIGNMANAGER\" ? (\r\n \r\n New{\" \"}\r\n  C\r\n ampaign\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n )\r\n }\r\n storeArray=\"addModalStep\"\r\n />\r\n \r\n
    \r\n {}}\r\n clickToSearch={this.state.clickToSearch}\r\n />\r\n
    \r\n )}\r\n
    \r\n );\r\n }\r\n}\r\nconst mapStateToProps = state => {\r\n return {\r\n showTab: state.showTab,\r\n formData: state.formData,\r\n campaignProps: state.campaignDetail\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n \r\n return {\r\n editFormData: data => dispatch({ type: \"Form_data\", payload: data }),\r\n OnEdit: editCampaignStepsData =>\r\n dispatch({ type: \"Edit_Step_Data\", StepId: editCampaignStepsData }),\r\n OnClear: clear => dispatch({ type: \"Clear_ADD_STEP\", stepData: clear }),\r\n onEditMode: editMode =>\r\n dispatch({ type: \"IsEditModeable\", editMode: editMode }),\r\n getId: id => dispatch({ type: \"GetId\", id: id }),\r\n onHandleSidebarText: data =>\r\n dispatch({\r\n type: \"HANDLE_SIDEBAR_TEXT\",\r\n payload: data\r\n }),\r\n LastResponse: response =>\r\n dispatch({ type: \"Last_Response\", payload: response }),\r\n Customer_Filter: filter =>\r\n dispatch({ type: \"Customer_Filter\", payload: filter }),\r\n onHandleCampaign: data =>\r\n dispatch({ type: \"Campaign_Detail\", payload: null })\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Campaign);\r\n","import { fetchMethod } from \"../../FetchMethod\";\r\nimport gql from \"graphql-tag\";\r\nexport const contacts = id =>\r\n `query {\r\n allContacts(where: { id: ${id}}) {\r\n totalCount\r\n Contacts {\r\n id\r\n linkedinid\r\n campaignid\r\n profileimage\r\n image\r\n profileurl\r\n invitationsent\r\n currentstatus\r\n email\r\n industry\r\n dateofbirth\r\n organization\r\n name\r\n Campaigns: campaignIbfk4rel {\r\n Campaigns {\r\n name\r\n customerid\r\n status\r\n active\r\n Customers: customerIbfk1rel {\r\n Customers {\r\n company\r\n }\r\n }\r\n }\r\n }\r\n designation\r\n joiningdate\r\n lasteducationinstitute\r\n twitter\r\n skype\r\n phonenumber\r\n phonetype\r\n numberoffollowers\r\n connectedon\r\n createdon\r\n headline \r\n location\r\n campaignstatus\r\n contactstatus\r\n updatedon\r\n active\r\n state\r\n country\r\n\r\n }\r\n }\r\n}`;\r\n\r\nexport const getContactData = async id =>\r\n await fetchMethod(contacts(id))\r\n .then(response => response.json().then(data => data))\r\n .catch(e => console.log(\"Errror\", e));\r\n\r\nexport const updateStatus = gql`\r\n mutation($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\nexport const addAction = gql`\r\n mutation($data: JSON) {\r\n ContactlogsCreate(data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\n\r\n\r\nexport const CustomerInfo = `query($where:JSON){\r\n allCampaigns(where:$where){\r\n Campaigns{\r\n customerIbfk1rel{\r\n Customers{\r\n company\r\n id\r\n }\r\n }\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const allcampaigns = gql`\r\n query($where: JSON) {\r\n allCampaigns(where: $where) {\r\n totalCount\r\n Campaigns {\r\n id\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const ManagerName = gql`\r\n query($where: JSON) {\r\n allCampaigns(where: $where) {\r\n Campaigns {\r\n id\r\n customerid\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const Company = gql`\r\n query($where: JSON) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n }\r\n }\r\n }\r\n`;\r\nexport const ManagersName = gql`\r\n query($where: JSON) {\r\n allCampaigns(where: $where) {\r\n Campaigns {\r\n id\r\n name\r\n linkedinid\r\n customercredentialsIbfk1rel {\r\n Customerlinkedinprofiles {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nexport const ProfileName = gql`\r\n query($where: JSON) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n Customerlinkedinprofilesfk {\r\n Customerlinkedinprofiles {\r\n name\r\n id\r\n Campaignsfk {\r\n Campaigns {\r\n id\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport clsx from \"clsx\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport StepLabel from \"@material-ui/core/StepLabel\";\r\nimport Check from \"@material-ui/icons/Check\";\r\nimport \"./details.css\";\r\nimport { StepConnector } from \"@material-ui/core\";\r\n\r\nconst useQontoStepIconStyles = makeStyles({\r\n root: {\r\n color: \"#eaeaf0\",\r\n display: \"flex\",\r\n height: 22,\r\n alignItems: \"center\"\r\n },\r\n active: {\r\n color: \"rgb(52, 107, 235)\",\r\n width: 15,\r\n height: 22,\r\n borderRadius: \"50%\"\r\n },\r\n circle: {\r\n width: 15,\r\n height: 15,\r\n borderRadius: \"50%\",\r\n backgroundColor: \"currentColor\"\r\n },\r\n completed: {\r\n color: \" rgb(52, 107, 235)\",\r\n zIndex: 1,\r\n fontSize: 18,\r\n width: 15,\r\n height: 15,\r\n borderRadius: \"50%\",\r\n backgroundColor: \"currentColor\"\r\n }\r\n});\r\nconst ColorlibConnector = withStyles({\r\n alternativeLabel: {\r\n top: 22\r\n },\r\n active: {\r\n \"& $line\": {\r\n backgroundColor: \"rgb(52, 107, 235)\"\r\n }\r\n },\r\n completed: {\r\n \"& $line\": {\r\n backgroundColor: \"rgb(52, 107, 235)\"\r\n }\r\n },\r\n line: {\r\n height: 3,\r\n border: 0,\r\n backgroundColor: \"#eaeaf0\",\r\n borderRadius: 1\r\n }\r\n})(StepConnector);\r\n\r\nfunction QontoStepIcon(props) {\r\n const classes = useQontoStepIconStyles();\r\n const { active, completed } = props;\r\n return (\r\n \r\n {completed ? (\r\n
    \r\n ) : (\r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nQontoStepIcon.propTypes = {\r\n active: PropTypes.bool,\r\n completed: PropTypes.bool\r\n};\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n button: {\r\n marginRight: theme.spacing(1)\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1)\r\n }\r\n}));\r\n\r\nfunction getSteps() {\r\n return [\"Suspect\", \"Prospect\", \"Opportunity\"];\r\n}\r\n\r\nexport default function CustomizedSteppers(props) {\r\n const classes = useStyles();\r\n // const [activeStep, setActiveStep] = React.useState(obj[props.Status]);\r\n const steps = getSteps();\r\n return (\r\n
    \r\n
    \r\n }\r\n >\r\n {steps.map(label => (\r\n \r\n \r\n {label}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport \"./details.css\";\r\nimport photo from \"../assets/photo.png\";\r\nimport { getContactImageUrl } from \"../../config\";\r\n\r\nimport Steeper from \"./steeper\";\r\nclass LeadDetails extends Component {\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n render() {\r\n let details = this.props.details;\r\n // let customer = this.props.Customer;\r\n let campaigns = this.props.Campaigns;\r\n let image = details.profileimage ? details.profileimage.substr(0, 5) : \"\";\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {details.name}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {image === \"https\" ? (\r\n // \"profile\"\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src =\r\n getContactImageUrl.url + details.image;\r\n }}\r\n />\r\n ) : (\r\n \"profile\"\r\n )}\r\n {/* {image !== \"https\" ? (\r\n \r\n ) : (\r\n \r\n )} */}\r\n {/* {details.profileimage ? (\r\n \r\n ) : (\r\n \r\n )} */}\r\n
    \r\n
    \r\n
      \r\n {details.headline ? (\r\n
    • \r\n Headline\r\n :\r\n {details.headline}\r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n {details.phonenumber ? (\r\n
    • \r\n Phone\r\n :\r\n {details.phonenumber}\r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n {details.email ? (\r\n
    • \r\n Email\r\n :\r\n {details.email}\r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n {details.dateofbirth ? (\r\n
    • \r\n D.O.B\r\n :\r\n {details.dateofbirth}\r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {details.location ? (\r\n
    \r\n
    \r\n
      \r\n
    • \r\n Location\r\n :\r\n {details.location}\r\n
    • \r\n
    • \r\n State\r\n :\r\n {details.state}\r\n
    • \r\n
    • \r\n Country\r\n :\r\n {details.country}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \" \"\r\n )}\r\n {details.designation || details.organization ? (\r\n
    \r\n
    \r\n
      \r\n {details.designation ? (\r\n
    • \r\n Current Position\r\n :\r\n {details.designation}\r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n {details.organization ? (\r\n
    • \r\n Current Company\r\n :\r\n {details.organization}\r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n {details.industry ? (\r\n
    • \r\n Industry\r\n :\r\n {details.industry}\r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n {details.twitter ||\r\n details.skype ||\r\n details.numberoffollowers ||\r\n details.linkedinid ? (\r\n
    \r\n
    \r\n
      \r\n {details.twitter ? (\r\n
    • \r\n Twitter\r\n :\r\n \r\n {details.twitter}\r\n {/* */}\r\n \r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n {details.skype ? (\r\n
    • \r\n Skype\r\n :\r\n {details.skype}\r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n {details.numberoffollowers ? (\r\n
    • \r\n Followers\r\n :\r\n \r\n {details.numberoffollowers}\r\n {/* */}\r\n \r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {details.linkedinid ? (\r\n
    • \r\n LinkedIn\r\n :\r\n \r\n \r\n {details.linkedinid}\r\n \r\n \r\n
    • \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n {details.campaignstatus !== undefined ? (\r\n
    \r\n
    \r\n {campaigns.map((item, key) => {\r\n return (\r\n
    \r\n
    \r\n {item.name}\r\n {details.campaignstatus}\r\n {details.contactstatus}\r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default LeadDetails;\r\n","import React, { Component } from \"react\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport swal from \"sweetalert\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nclass ExportToExcel extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loading: false, anchorEl: null, fileName: \"Leads\" };\r\n }\r\n\r\n exportToClick = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n event.stopPropagation();\r\n };\r\n\r\n exportToClose = () => {\r\n this.setState({ anchorEl: null });\r\n };\r\n\r\n setDataWithHeader = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n filedata.push({\r\n Name: item.name,\r\n \"Current Company\": item.organization,\r\n \"Current Position\": item.designation,\r\n Location: item.location,\r\n \"Lead Status\": item.Status,\r\n \"Last Message Sent\": item.Send_Msg,\r\n \"Last Message Received\": item.Received_Msg,\r\n Customer: item.Customer,\r\n Profile: item.Profile,\r\n \"Campaign Name\": item.Campaign,\r\n \"Contact Status\":\r\n item.campaignstatus === \"COMPLETED\"\r\n ? \"Completed\"\r\n : item.campaignstatus === \"PAUSE\"\r\n ? \"Pause\"\r\n : item.campaignstatus === \"LIVE\"\r\n ? \"Live\"\r\n : \"\"\r\n });\r\n })\r\n : filedata.push({\r\n Name: \"\",\r\n \"Current Company\": \"\",\r\n \"Current Position\": \"\",\r\n Location: \"\",\r\n \"Lead Status\": \"\",\r\n \"Last Message Sent\": \"\",\r\n \"Last Message Received\": \"\",\r\n Customer: \"\",\r\n Profile: \"\",\r\n \"Campaign Name\": \"\",\r\n \"Contact Status\": \"\"\r\n });\r\n return filedata;\r\n };\r\n\r\n exportToExcel = (fileData, fileName) => {\r\n if (this.props.fileData && this.props.fileData.length > 0) {\r\n let filedata = this.setDataWithHeader(fileData);\r\n try {\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n const name = \"Leads\";\r\n const ws = XLSX.utils.json_to_sheet(filedata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, {\r\n bookType: \"xlsx\",\r\n type: \"array\"\r\n });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, name + fileExtension);\r\n this.exportToClose();\r\n } catch (e) {\r\n swal(\"Error\", { icon: \"error\" });\r\n }\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }, 5000);\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n const { anchorEl, fileData, fileName } = this.state;\r\n return (\r\n
    \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }}\r\n >\r\n Export To Excel\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ExportToExcel;\r\n","import React, { Component } from \"react\";\r\nimport ReactTableComponent from \"../tables/ReactTable\";\r\nimport SearchIcon from \"../assets/search.png\";\r\nimport NextArrow from \"../assets/next-arrow.png\";\r\nimport { getContactImageUrl } from \"../../config\";\r\n\r\nimport { TextField, MenuItem, Drawer, Button } from \"@material-ui/core\";\r\nimport { LeadsInfo, LeadsExport } from \"../../Queries\";\r\nimport {\r\n contacts,\r\n allcampaigns,\r\n Company,\r\n CustomerInfo,\r\n ProfileName,\r\n ManagerName,\r\n ManagersName\r\n} from \"../Leads/LeadsQuery\";\r\nimport { connect } from \"react-redux\";\r\nimport \"./Leads.css\";\r\nimport Photo from \"../assets/photo.png\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\n//import clearFilters from \"../assets/clear-filters.png\";\r\nimport LeadDetails from \"./LeadDetails\";\r\n//import SimpleMenu from \"./LeadMenu\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport ExportTo from \"./ExportToExcel\";\r\n\r\nclass Leads extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n loading: false,\r\n allLeads: [],\r\n action: [],\r\n totalCount: 0,\r\n limit: 50,\r\n offset: 50,\r\n header: \"Leads Management\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n anchorEl: null,\r\n anchorE2: null,\r\n fileName: \"Leads\",\r\n CustomerData: [],\r\n Row: [],\r\n getData: [],\r\n getCampaign: [],\r\n getCustomer: [],\r\n campaignId: undefined,\r\n openDetails: false,\r\n drawerOpenClose: false,\r\n managerId: undefined,\r\n flag: false,\r\n flag1: false,\r\n customer: [],\r\n campaignlist: [],\r\n company: \"Select\",\r\n camp: \"Select\",\r\n value: \"Select\",\r\n customerId: \"\",\r\n camp1: \"Select\",\r\n campaignstatus: \"PAUSE\",\r\n status: [],\r\n profilelist: [],\r\n profileid: \"Select\",\r\n profilename: \"Select\",\r\n campaignProfilelist: [],\r\n campaignNames: [],\r\n filterColumn: \"\",\r\n shortfilter: false,\r\n LeadsExportData: [],\r\n Check: \"No\",\r\n\r\n //campaignStatusList: [\"ALL\", \"LIVE\", \"PAUSED\", \"COMPLETED\"],\r\n get campaignStatusList() {\r\n return this._campaignStatusList;\r\n },\r\n set campaignStatusList(value) {\r\n this._campaignStatusList = value;\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n localStorage.setItem(\"path\", \"/leads\");\r\n //this.ExportData();\r\n this.leadsCustomer();\r\n this.leadsCampaignsId();\r\n \r\n this.props.onHandleCampaign();\r\n this.props.onHandleSidebarText(\"/leads\");\r\n // this.props.onHandleSidebarText(this.state.header);\r\n // this.ExportData();\r\n // this.state.CustomerData.sort(compare);\r\n }\r\n\r\n ExportData = () => {\r\n \r\n const filter = this.filter();\r\n\r\n fetchMethod(LeadsExport, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({\r\n LeadsExportData: res.data.allContacts.Contacts\r\n });\r\n });\r\n };\r\n leadsCustomer = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? {\r\n where: {\r\n // active: 1,\r\n customerid: localStorage.getItem(\"customer\")\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n // active: 1,\r\n createdby: localStorage.getItem(\"id\")\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? {\r\n where: {\r\n // active: 1,\r\n campaignmanagerid: localStorage.getItem(\"id\")\r\n }\r\n }\r\n : {\r\n where: {\r\n // active: 1\r\n }\r\n };\r\n\r\n fetchMethod(CustomerInfo, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n res !== undefined\r\n ? this.setState(\r\n {\r\n customer: res.data.allCampaigns.Campaigns.map(id => {\r\n return id.customerIbfk1rel.Customers !== undefined\r\n ? id.customerIbfk1rel.Customers.length > 0\r\n ? id.customerIbfk1rel.Customers[0]\r\n : \"\"\r\n : \"\";\r\n })\r\n },\r\n () => this.LeadCompany()\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n LeadCompany = () => {\r\n const filter = {\r\n where: {\r\n and: [\r\n {\r\n or: this.state.customer.map(id => {\r\n return { id: id.id };\r\n })\r\n }\r\n ],\r\n order: \"company asc\"\r\n }\r\n };\r\n\r\n fetchMethod(Company, filter)\r\n .then(res => {\r\n return res.json();\r\n })\r\n .then(res => {\r\n res.data.allCustomers !== undefined && res.data.allCustomers !== null\r\n ? this.setState({ CustomerData: res.data.allCustomers.Customers })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n leadsCampaignsId = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n active: 1\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"SADMIN\"\r\n ? {\r\n where: {\r\n active: 1\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n active: 1\r\n }\r\n }\r\n : {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n active: 1\r\n }\r\n };\r\n fetchMethod(allcampaigns, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n \r\n res !== undefined\r\n ? this.setState(\r\n {\r\n Check: \"Yes\",\r\n campaignId: res.data.allCampaigns.Campaigns\r\n },\r\n () => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n }\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n setListData = response => {\r\n this.setState({\r\n allLeads: response.data.allContacts.Contacts,\r\n action: response.data.allContacts.Contacts,\r\n totalCount: response.data.allContacts.totalCount\r\n });\r\n };\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n handleClick = event => {\r\n this.setState({\r\n anchorEl: event.currentTarget\r\n });\r\n };\r\n\r\n handleClose = event => {\r\n this.setState({ anchorEl: null });\r\n event.stopPropagation();\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n company: \"Select\",\r\n camp1: \"Select\",\r\n camp: \"Select\",\r\n campaignlist: [],\r\n search: \"\",\r\n campaignstatus: \"PAUSE\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n profileid: \"Select\",\r\n profilename: \"Select\",\r\n profilelist: [],\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n this.ExportData();\r\n }\r\n );\r\n };\r\n\r\n setContactRowClick = rowInfo => {};\r\n debounceTimer = null;\r\n onSearchClick = searchFlag => {\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.ExportData();\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n },\r\n 200\r\n );\r\n searchFlag || this.state.searchFlag\r\n ? this.setState({ clickToSearch: true }, () => {\r\n this.ExportData();\r\n })\r\n : this.setState({ clickToSearch: false }, () => {\r\n this.ExportData();\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n toggleDrawer = (side, open, row) => event => {\r\n fetchMethod(contacts(row))\r\n .then(res => {\r\n return res.json();\r\n })\r\n .then(res => {\r\n this.setState({\r\n drawerOpenClose: false,\r\n getData: res.data.allContacts.Contacts[0],\r\n getCampaign: res.data.allContacts.Contacts[0].Campaigns.Campaigns,\r\n getCustomer:\r\n res.data.allContacts.Contacts[0].Campaigns.Campaigns[0].Customers\r\n .Customers[0],\r\n status: res.data.allContacts.Contacts[0].contactstatus\r\n });\r\n })\r\n .catch(e => {\r\n this.setState({ loading: true });\r\n });\r\n\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n closeDetails() {\r\n this.setState({ openDetails: false, getData: [], getCampaign: [] });\r\n }\r\n\r\n handleCompany = (event, v) => {\r\n if (v !== undefined && v !== null) {\r\n this.setState({\r\n profileid: \"Select\",\r\n profilename: \"Select\",\r\n camp1: \"Select\",\r\n camp: \"Select\"\r\n });\r\n const filter =\r\n localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? {\r\n where: {\r\n active: 1,\r\n customerid: v.id,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: \"name asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n active: 1,\r\n customerid: v.id,\r\n order: \"name asc\"\r\n }\r\n };\r\n\r\n const test = {\r\n where: {\r\n id: v.id,\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n }\r\n }\r\n };\r\n\r\n fetchMethod(ManagerName, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n res !== undefined &&\r\n res !== null &&\r\n res.data.allCampaigns !== undefined &&\r\n res.data.allCampaigns !== null\r\n ? this.setState(\r\n {\r\n company: \"\",\r\n campaignlist: \"\",\r\n customerId: \"\"\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n company: v.company,\r\n campaignlist: res.data.allCampaigns.Campaigns,\r\n customerId: v.id\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n fetchMethod(ProfileName, test)\r\n .then(res => res.json())\r\n .then(res => {\r\n res !== undefined &&\r\n res !== null &&\r\n res.data.allCustomers !== undefined &&\r\n res.data.allCustomers !== null &&\r\n res.data.allCustomers.Customers[0] !== null &&\r\n res.data.allCustomers.Customers[0] !== undefined\r\n ? this.setState(\r\n {\r\n company: \"\",\r\n\r\n profilelist: \"\",\r\n customerId: \"\"\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n company: v.company,\r\n profilelist:\r\n res.data.allCustomers.Customers[0]\r\n .Customerlinkedinprofilesfk !== undefined\r\n ? res.data.allCustomers.Customers[0]\r\n .Customerlinkedinprofilesfk\r\n .Customerlinkedinprofiles\r\n : \"\",\r\n\r\n customerId: v.id\r\n },\r\n () => {}\r\n );\r\n }\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n } else {\r\n this.setState({\r\n company: \"Select\",\r\n camp1: \"Select\",\r\n loading: true\r\n });\r\n }\r\n };\r\n handleProfile = (event, v) => {\r\n if (v === null) {\r\n this.setState({\r\n profilename: \"Select\",\r\n profilelist: this.state.profilelist\r\n });\r\n return;\r\n }\r\n\r\n if (\r\n v !== undefined &&\r\n v !== null &&\r\n this.state.company !== \"Select\" &&\r\n this.state.company\r\n ) {\r\n this.setState({\r\n camp1: \"Select\",\r\n camp: \"Select\",\r\n profileid: v.id,\r\n profilename: v.name\r\n });\r\n\r\n const test = {\r\n where: {\r\n linkedinid: v.id,\r\n order: \"name asc\"\r\n }\r\n };\r\n\r\n fetchMethod(ManagersName, test)\r\n .then(res => res.json())\r\n .then(res => {\r\n res !== undefined &&\r\n res !== null &&\r\n res.data.allCampaigns !== undefined &&\r\n res.data.allCampaigns !== null &&\r\n res.data.allCampaigns.Campaigns !== null &&\r\n res.data.allCampaigns.Campaigns !== undefined\r\n ? this.setState(\r\n {\r\n profileid: \"\",\r\n campaignProfilelist: \"\",\r\n // profilelist: \"\",\r\n profilename: \"\"\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n profilename: v.name,\r\n campaignNames:\r\n res.data.allCampaigns.Campaigns !== undefined\r\n ? res.data.allCampaigns.Campaigns\r\n : \"\",\r\n campaignProfilelist:\r\n res.data.allCampaigns.Campaigns !== undefined\r\n ? res.data.allCampaigns.Campaigns\r\n : [],\r\n\r\n profileid: v.id\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n )\r\n : this.setState({ loading: true });\r\n });\r\n } else {\r\n this.setState({\r\n camp: \"Select\",\r\n camp1: \"Select\",\r\n loading: true,\r\n campaignProfilelist: \"Select\"\r\n });\r\n }\r\n };\r\n\r\n handleCampaign = (event, v) => {\r\n if (\r\n v !== undefined &&\r\n v !== null &&\r\n this.state.company !== \"Select\" &&\r\n this.state.company\r\n )\r\n this.setState(\r\n {\r\n camp: \"\",\r\n camp1: \"\",\r\n searchFlag: \"\"\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n camp: v.id,\r\n camp1: v.name,\r\n searchFlag: true\r\n },\r\n () => {\r\n this.child.current.searchFetch(\r\n this.state.limit,\r\n this.state.offset\r\n );\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n );\r\n else {\r\n this.setState({ campaignlist: this.state.campaignlist });\r\n }\r\n };\r\n handleChange = event => {\r\n this.setState({ search: event.target.value }, () => {\r\n if (this.state.search !== \"\") {\r\n this.setState(\r\n {\r\n searchFlag: true\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n searchFlag: false\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n });\r\n };\r\n onStatusChange = event => {\r\n this.setState(\r\n {\r\n campaignstatus: event.target.value,\r\n searchFlag: true\r\n },\r\n () => {\r\n this.onSearchClick();\r\n }\r\n );\r\n };\r\n\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n NameFilter = () => {\r\n this.setState({ filterColumn: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n NameFilter1 = () => {\r\n this.setState({ filterColumn: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter = () => {\r\n this.setState({ filterColumn: \"organization asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n CompanyFilter1 = () => {\r\n this.setState(\r\n { filterColumn: \"organization desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter = () => {\r\n this.setState({ filterColumn: \"designation asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n PositionFilter1 = () => {\r\n this.setState(\r\n { filterColumn: \"designation desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter = () => {\r\n this.setState({ filterColumn: \"location asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LocationFilter1 = () => {\r\n this.setState({ filterColumn: \"location desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LeadStatusFilter = () => {\r\n this.setState(\r\n { filterColumn: \"contactstatus asc\", shortfilter: true },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n LeadStatusFilter1 = () => {\r\n this.setState(\r\n { filterColumn: \"contactstatus desc\", shortfilter: false },\r\n () => this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n filter = () => {\r\n const search = this.state.clickToSearch ? this.state.search : \"\";\r\n\r\n const like = `%${search}%`;\r\n const filter =\r\n localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? this.state.campaignstatus === \"ALL\"\r\n ? this.state.company === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n order: this.state.filterColumn,\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company !== \"Select\" &&\r\n this.state.profilename === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n order: this.state.filterColumn,\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignlist !== undefined &&\r\n this.state.campaignlist.length > 0\r\n ? this.state.campaignlist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.profilename !== \"Select\" &&\r\n this.state.camp === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n order: this.state.filterColumn,\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignProfilelist !== undefined &&\r\n this.state.campaignProfilelist.length > 0\r\n ? this.state.campaignProfilelist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.camp\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n order: this.state.filterColumn,\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n campaignid: this.state.camp,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n active: \"1 \",\r\n order: this.state.filterColumn,\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company !== \"Select\" &&\r\n this.state.profilename === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n order: this.state.filterColumn,\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignlist !== undefined &&\r\n this.state.campaignlist.length > 0\r\n ? this.state.campaignlist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.profilename !== \"Select\" && this.state.camp === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignProfilelist !== undefined &&\r\n this.state.campaignProfilelist.length > 0\r\n ? this.state.campaignProfilelist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.camp\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n campaignid: this.state.camp,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? this.state.campaignstatus === \"ALL\"\r\n ? this.state.company === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company !== \"Select\" &&\r\n this.state.profilename === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignlist !== undefined &&\r\n this.state.campaignlist.length > 0\r\n ? this.state.campaignlist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.profilename !== \"Select\" &&\r\n this.state.camp === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignProfilelist !== undefined &&\r\n this.state.campaignProfilelist.length > 0\r\n ? this.state.campaignProfilelist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.camp\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignid: this.state.camp,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company !== \"Select\" &&\r\n this.state.profilename === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignlist !== undefined &&\r\n this.state.campaignlist.length > 0\r\n ? this.state.campaignlist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.profilename !== \"Select\" && this.state.camp === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignProfilelist !== undefined &&\r\n this.state.campaignProfilelist.length > 0\r\n ? this.state.campaignProfilelist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.camp\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n campaignid: this.state.camp,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? this.state.campaignstatus === \"ALL\"\r\n ? this.state.company === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company !== \"Select\" &&\r\n this.state.profilename === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignlist !== undefined &&\r\n this.state.campaignlist.length > 0\r\n ? this.state.campaignlist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.profilename !== \"Select\" &&\r\n this.state.camp === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignProfilelist !== undefined &&\r\n this.state.campaignProfilelist.length > 0\r\n ? this.state.campaignProfilelist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.camp\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignid: this.state.camp,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company !== \"Select\" &&\r\n this.state.profilename === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignlist !== undefined &&\r\n this.state.campaignlist.length > 0\r\n ? this.state.campaignlist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.profilename !== \"Select\" && this.state.camp === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignProfilelist !== undefined &&\r\n this.state.campaignProfilelist.length > 0\r\n ? this.state.campaignProfilelist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.camp\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n campaignid: this.state.camp,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or:\r\n this.state.campaignId !== undefined &&\r\n this.state.campaignId !== null &&\r\n this.state.campaignId.length > 0\r\n ? this.state.campaignId.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n },\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.campaignstatus === \"ALL\"\r\n ? this.state.company === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company !== \"Select\" &&\r\n this.state.profilename === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignlist !== undefined &&\r\n this.state.campaignlist.length > 0\r\n ? this.state.campaignlist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.profilename !== \"Select\" && this.state.camp === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignProfilelist !== undefined &&\r\n this.state.campaignProfilelist.length > 0\r\n ? this.state.campaignProfilelist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.camp\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignid: this.state.camp,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.company !== \"Select\" && this.state.profilename === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignlist !== undefined &&\r\n this.state.campaignlist.length > 0\r\n ? this.state.campaignlist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.profilename !== \"Select\" && this.state.camp === \"Select\"\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n },\r\n {\r\n or:\r\n this.state.campaignProfilelist !== undefined &&\r\n this.state.campaignProfilelist.length > 0\r\n ? this.state.campaignProfilelist.map(id => {\r\n return { campaignid: id.id };\r\n })\r\n : [{ campaignid: \"\" }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.camp\r\n ? {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n campaignid: this.state.camp,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n active: \"1 \",\r\n contactstatus: {\r\n nlike: \"%noop%\",\r\n options: \"i\"\r\n },\r\n order: this.state.filterColumn,\r\n campaignstatus: this.state.campaignstatus,\r\n and: [\r\n {\r\n or: [\r\n { name: { like: like, options: \"i\" } },\r\n { location: { like: like, options: \"i\" } },\r\n { designation: { like: like, options: \"i\" } },\r\n { organization: { like: like, options: \"i\" } }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n return filter;\r\n };\r\n\r\n render() {\r\n\r\n const Check = this.state.Check;\r\n const filterr = this.filter();\r\n const allLeads = [...this.state.allLeads];\r\n const LeadsExportData = [...this.state.allLeads];\r\n // const LeadsExportData = [...this.state.LeadsExportData];\r\n allLeads.map(lead => {\r\n if (lead.profileimage !== null && lead.profileimage !== undefined) {\r\n let str = lead.profileimage.substr(0, 5);\r\n if (str === \"https\") {\r\n lead.Image = (\r\n \r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.src = getContactImageUrl.url + lead.image;\r\n }}\r\n // src={lead.profileimage}\r\n style={{ borderRadius: \"50%\", width: \"30px\" }}\r\n />\r\n
    \r\n );\r\n } else if (str !== \"https\") {\r\n lead.Image = (\r\n \r\n \r\n \r\n );\r\n }\r\n } else {\r\n lead.Image = (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n lead.Name = (\r\n \r\n {lead.name}\r\n \r\n );\r\n\r\n lead.Profile =\r\n lead.Campaigns.Campaigns[0].Profile.Customerlinkedinprofiles[0].name;\r\n\r\n lead.Customer = (\r\n \r\n {\r\n (lead.Customer =\r\n lead.Campaigns &&\r\n lead.Campaigns.Campaigns &&\r\n lead.Campaigns.Campaigns[0] !== undefined &&\r\n lead.Campaigns.Campaigns[0].Customers &&\r\n lead.Campaigns.Campaigns[0].Customers.Customers &&\r\n lead.Campaigns.Campaigns[0].Customers.Customers[0] &&\r\n lead.Campaigns.Campaigns[0].Customers.Customers[0].company &&\r\n lead.Campaigns.Campaigns[0].Customers.Customers[0].company !==\r\n undefined\r\n ? lead.Campaigns.Campaigns[0].Customers.Customers[0].company\r\n : \"\")\r\n\r\n // lead.Campaigns.Campaigns[0] !== undefined\r\n // ? lead.Campaigns.Campaigns[0].Customers.Customers[0].company\r\n // : \"\"\r\n }\r\n \r\n );\r\n\r\n lead.Campaign =\r\n lead.Campaigns.Campaigns[0] !== undefined\r\n ? lead.Campaigns.Campaigns[0].name\r\n : \"\";\r\n lead.Campaign_Status =\r\n lead.campaignstatus !== undefined && lead.campaignstatus !== null\r\n ? lead.campaignstatus\r\n : \"\";\r\n lead.Organization =\r\n lead.organization !== undefined && lead.organization !== null\r\n ? lead.organization\r\n : \"\";\r\n lead.Designation =\r\n lead.designation !== undefined && lead.designation !== null\r\n ? lead.designation\r\n : \"\";\r\n lead.Location =\r\n lead.location !== undefined && lead.location !== null\r\n ? lead.location\r\n : \"\";\r\n lead.Status =\r\n lead.contactstatus === \"PROSPECT\"\r\n ? \"Prospect\"\r\n : lead.contactstatus === \"OPPORTUNITY\"\r\n ? \"Opportunity\"\r\n : \"Suspect\";\r\n let arr = lead.Contactmessagesfk.Contactmessages;\r\n let action = lead.Contactlogs.Contactlogs;\r\n\r\n if (arr !== null && arr !== undefined) {\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].type === \"RECEIVED\") {\r\n // let date = new Date(arr[i].createdon);\r\n let Received_time = this.formatDate(arr[i].createdon);\r\n lead.Received_Msg = Received_time;\r\n }\r\n if (arr[i].type === \"SENT\") {\r\n // let date = new Date(arr[i].createdon);\r\n\r\n let Send_time = this.formatDate(arr[i].createdon);\r\n lead.Send_Msg = Send_time;\r\n }\r\n }\r\n }\r\n\r\n if (action !== null && action !== undefined) {\r\n for (let i = 0; i < action.length; i++) {\r\n // let date = new Date(action[i].createdon);\r\n if (action[i].action === \"CONVERT_TO_OPPORTUNITY\") {\r\n var Opportunity = this.formatDate(action[i].createdon);\r\n lead.Opportunity = Opportunity;\r\n }\r\n if (action[i].action === \"CONVERT_TO_PROSPECT\") {\r\n let Prospect = this.formatDate(action[i].createdon);\r\n lead.Prospect = Prospect;\r\n }\r\n if (action[i].action === \"CONVERT_TO_SUSPECT\") {\r\n let Suspect = this.formatDate(action[i].createdon);\r\n lead.Suspect = Suspect;\r\n }\r\n }\r\n }\r\n return null;\r\n });\r\n \r\n const thLeadsArray = [\r\n {\r\n Header: \"Image\",\r\n accessor: \"Image\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Name\r\n \r\n );\r\n },\r\n accessor: \"Name\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Company\r\n \r\n );\r\n },\r\n accessor: \"Organization\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Current Position\r\n \r\n );\r\n },\r\n accessor: \"Designation\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Locations\r\n \r\n );\r\n },\r\n accessor: \"Location\"\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Lead Status\r\n \r\n );\r\n },\r\n accessor: \"Status\"\r\n },\r\n {\r\n Header: \"Last Message Sent\",\r\n accessor: \"Send_Msg\"\r\n },\r\n {\r\n Header: \"Last Message Received\",\r\n accessor: \"Received_Msg\"\r\n },\r\n {\r\n Header: \"Customer\",\r\n accessor: \"Customer\"\r\n },\r\n {\r\n Header: \"Profile\",\r\n accessor: \"Profile\"\r\n },\r\n {\r\n Header: \"Campaign Name\",\r\n accessor: \"Campaign\"\r\n },\r\n {\r\n Header: \"Contact Status\",\r\n accessor: \"Campaign_Status\"\r\n }\r\n ];\r\n\r\n LeadsExportData.map(lead => {\r\n lead.Profile =\r\n lead.Campaigns.Campaigns[0].Profile.Customerlinkedinprofiles[0].name;\r\n\r\n lead.Customer =\r\n lead.Campaigns &&\r\n lead.Campaigns.Campaigns &&\r\n lead.Campaigns.Campaigns[0] !== undefined &&\r\n lead.Campaigns.Campaigns[0].Customers &&\r\n lead.Campaigns.Campaigns[0].Customers.Customers &&\r\n lead.Campaigns.Campaigns[0].Customers.Customers[0] &&\r\n lead.Campaigns.Campaigns[0].Customers.Customers[0].company &&\r\n lead.Campaigns.Campaigns[0].Customers.Customers[0].company !== undefined\r\n ? lead.Campaigns.Campaigns[0].Customers.Customers[0].company\r\n : \"\";\r\n\r\n // lead.Customer =\r\n // lead.Campaigns.Campaigns[0] !== undefined\r\n // ? lead.Campaigns.Campaigns[0].Customers.Customers[0].company\r\n // : \"\";\r\n lead.Campaign =\r\n lead.Campaigns.Campaigns[0] !== undefined\r\n ? lead.Campaigns.Campaigns[0].name\r\n : \"\";\r\n\r\n lead.Status =\r\n lead.contactstatus === \"PROSPECT\"\r\n ? \"Prospect\"\r\n : lead.contactstatus === \"OPPORTUNITY\"\r\n ? \"Opportunity\"\r\n : \"Suspect\";\r\n let arr = lead.Contactmessagesfk.Contactmessages;\r\n let action = lead.Contactlogs.Contactlogs;\r\n\r\n if (arr !== null && arr !== undefined) {\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].type === \"RECEIVED\") {\r\n // let date = new Date(arr[i].createdon);\r\n let Received_time = this.formatDate(arr[i].createdon);\r\n lead.Received_Msg = Received_time;\r\n }\r\n if (arr[i].type === \"SENT\") {\r\n // let date = new Date(arr[i].createdon);\r\n\r\n let Send_time = this.formatDate(arr[i].createdon);\r\n lead.Send_Msg = Send_time;\r\n }\r\n }\r\n }\r\n\r\n if (action !== null && action !== undefined) {\r\n for (let i = 0; i < action.length; i++) {\r\n // let date = new Date(action[i].createdon);\r\n if (action[i].action === \"CONVERT_TO_OPPORTUNITY\") {\r\n var Opportunity = this.formatDate(action[i].createdon);\r\n lead.Opportunity = Opportunity;\r\n }\r\n if (action[i].action === \"CONVERT_TO_PROSPECT\") {\r\n let Prospect = this.formatDate(action[i].createdon);\r\n lead.Prospect = Prospect;\r\n }\r\n if (action[i].action === \"CONVERT_TO_SUSPECT\") {\r\n let Suspect = this.formatDate(action[i].createdon);\r\n lead.Suspect = Suspect;\r\n }\r\n }\r\n }\r\n });\r\n // const filterr = this.filter();\r\n // if (Check === \"Yes\"){\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Leads

    \r\n

    \r\n Total {this.state.totalCount} Records\r\n

    \r\n
    \r\n
    \r\n
    \r\n this.closeDetails()}\r\n >\r\n this.closeDetails()}\r\n details={this.state.getData}\r\n Campaigns={this.state.getCampaign}\r\n Customer={this.state.getCustomer}\r\n Leads={this.state.allLeads}\r\n Status={this.state.status}\r\n />\r\n \r\n
    \r\n
    \r\n {/*
    \r\n this.handleCompany(event, value)}\r\n options={\r\n this.state.CustomerData ? this.state.CustomerData : []\r\n }\r\n // getOptionLabel={option => option.company}\r\n renderOption={option => (\r\n {option.company}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n //autoComplete: \"Company\"\r\n\r\n // disable autocomplete and autofill\r\n }}\r\n />\r\n )}\r\n />\r\n
    */}\r\n {/* div for profile */}\r\n {/*
    \r\n this.handleProfile(event, value)}\r\n options={this.state.profilelist ? this.state.profilelist : []}\r\n renderOption={option => (\r\n {option.name}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n // value={this.state.camp}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n // autoComplete: \"camp\"\r\n\r\n // disable autocomplete and autofill\r\n }}\r\n />\r\n )}\r\n />\r\n
    */}\r\n\r\n {/*
    \r\n this.handleCampaign(event, value)}\r\n options={\r\n this.state.company !== \"Select\" &&\r\n this.state.profilename !== \"Select\" &&\r\n this.state.campaignNames\r\n ? this.state.campaignNames\r\n : []\r\n }\r\n // getOptionLabel={option => option.name}\r\n\r\n renderOption={option => (\r\n {option.name}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n // value={this.state.camp}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps,\r\n autoComplete: \"camp\"\r\n\r\n // disable autocomplete and autofill\r\n }}\r\n />\r\n )}\r\n />\r\n
    */}\r\n {/*
    \r\n \r\n )\r\n }}\r\n >\r\n All\r\n LIVE\r\n PAUSE\r\n COMPLETED\r\n \r\n
    */}\r\n
    \r\n this.onSearchClick()}\r\n />\r\n )\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {Check == \"Yes\" && (\r\n \r\n )}\r\n
    \r\n\r\n );\r\n // }\r\n }\r\n}\r\n//------------------\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onHandleSidebarText: data =>\r\n dispatch({\r\n type: \"HANDLE_SIDEBAR_TEXT\",\r\n payload: data\r\n }),\r\n onHandleCampaign: data =>\r\n dispatch({ type: \"Campaign_Detail\", payload: null })\r\n };\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps)(Leads);\r\n","import gql from \"graphql-tag\";\r\nimport * as Yup from \"yup\";\r\nexport const systemSettingForm = {\r\n title: \"Campaign Global Setting\",\r\n fields: [\r\n {\r\n name: \"id\",\r\n value: 1\r\n },\r\n {\r\n label: \"Max Visits Per Day\",\r\n type: \"input\",\r\n placeholder: \"eg 100\",\r\n name: \"maxvisitperday\",\r\n isRequired: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Max Follows Per Day\",\r\n type: \"input\",\r\n placeholder: \"eg 100\",\r\n name: \"maxfollowperday\",\r\n isRequired: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Max Invites Per Day\",\r\n type: \"input\",\r\n placeholder: \"eg 100\",\r\n name: \"maxconnectionperday\",\r\n isRequired: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Max Messages Per Day\",\r\n type: \"input\",\r\n placeholder: \"eg 100\",\r\n name: \"maxmessageperday\",\r\n isRequired: true,\r\n value: \"\"\r\n }\r\n ]\r\n};\r\nexport const systemSettingValidation = Yup.object().shape({\r\n maxvisitperday: Yup.string()\r\n .required(\"Required\")\r\n .matches(/^[0-9]*$/, {\r\n message: \"Incorrect Format\",\r\n excludeEmptyString: true\r\n })\r\n .max(9, \"Max Visit Per Day should be less than 10 digits\"),\r\n maxfollowperday: Yup.string()\r\n .required(\"Required\")\r\n .matches(/^[0-9]*$/, {\r\n message: \"Incorrect Format\",\r\n excludeEmptyString: true\r\n })\r\n .max(9, \"Max Follows Per Day should be less than 10 digits\"),\r\n maxconnectionperday: Yup.string()\r\n .required(\"Required\")\r\n .matches(/^[0-9]*$/, {\r\n message: \"Incorrect Format\",\r\n excludeEmptyString: true\r\n })\r\n .max(9, \"Max Connection Per Day should be less than 10 digits\"),\r\n maxmessageperday: Yup.string()\r\n .required(\"Required\")\r\n .matches(/^[0-9]*$/, {\r\n message: \"Incorrect Format\",\r\n excludeEmptyString: true\r\n })\r\n .max(9, \"Max Messages Per Day should be less than 10 digits\")\r\n});\r\n\r\nexport const systemSetting = gql`\r\n mutation SystemsettingsUpsertWithWhere($id: JSON, $data: JSON) {\r\n SystemsettingsUpsertWithWhere(where: $id, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const getData = gql`\r\n query {\r\n allSystemsettings(where: { id: 1 }) {\r\n Systemsettings {\r\n id\r\n maxvisitperday\r\n maxfollowperday\r\n maxconnectionperday\r\n maxmessageperday\r\n }\r\n }\r\n }\r\n`;\r\n","import React, { Component } from \"react\";\r\nimport FormComponent from \"../Form/FormComponent\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n systemSettingForm,\r\n systemSetting,\r\n systemSettingValidation,\r\n getData\r\n} from \"./SystemConfig\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nimport \"./systemsetting.css\";\r\nclass SystemSetting extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n systemData: undefined,\r\n header: \"System Settings\",\r\n loading: false\r\n };\r\n }\r\n componentDidMount() {\r\n this.fetchData();\r\n this.props.onHandleSidebarText(\"/setting\");\r\n }\r\n fetchData = () => {\r\n this.setState({ loading: true }, () => {\r\n fetchMethod(getData)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n this.setState({\r\n systemData: res.data.allSystemsettings.Systemsettings[0],\r\n loading: false\r\n });\r\n })\r\n .catch(e => console.log(e));\r\n });\r\n };\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n Campaign Global Settings\r\n
    \r\n
    \r\n {this.state.systemData !== undefined ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onHandleSidebarText: data =>\r\n dispatch({\r\n type: \"HANDLE_SIDEBAR_TEXT\",\r\n payload: data\r\n })\r\n };\r\n};\r\nexport default connect(null, mapDispatchToProps)(SystemSetting);\r\n","import React, { Component } from \"react\";\r\nimport { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport swal from \"sweetalert\";\r\n import { SemipolarLoading } from \"react-loadingg\";\r\nclass ExportToMonitoring extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loading: false, anchorEl: null, fileName: \"Engaged\" };\r\n }\r\n\r\n ExcelRecieveddateFomate = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n let time1 = date.getTime();\r\n let time2 = date.getTimezoneOffset() * 60000;\r\n date = time1 + time2;\r\n date = new Date(date);\r\n\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n let date1 = `${dd}/${mm}/${yyyy}`;\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n return (date = date1 + \" \" + time);\r\n }\r\n };\r\n//\r\n calculateDataStatus(freecontact, Iinvitelimit) {\r\n var result;\r\n var ratio = freecontact / Iinvitelimit;\r\n if (isNaN(ratio)) {\r\n result = \"n/a\";\r\n } else if (Math.floor(ratio) <= 2) {\r\n result = \"≤ 2 Days\";\r\n } else if (Math.floor(ratio) > 2 && Math.floor(ratio) <= 5) {\r\n result = \"≤ 5 Days\";\r\n } else if (Math.floor(ratio) > 5 && Math.floor(ratio) <= 9) {\r\n result = \"≤ 9 Days\";\r\n } else {\r\n result = \"≥ 10 Days\";\r\n }\r\n\r\n return result;\r\n}\r\n\r\n formatDate = date => {\r\n if (date !== null && date !== undefined && date) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return date;\r\n }\r\n\r\n return;\r\n };\r\n\r\n formatDate1 = date => {\r\n if (date !== null && date !== undefined) {\r\n date = new Date(\r\n date\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"/\")\r\n );\r\n let dd = date.getDate();\r\n let mm = date.getMonth() + 1;\r\n let yyyy = date.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n hours = hours < 10 ? \"0\" + hours : hours;\r\n let minutes =\r\n date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n let time = hours + \":\" + minutes + \" \" + am_pm;\r\n date = `${dd}/${mm}/${yyyy}`;\r\n return (date = date + \" \" + time);\r\n }\r\n };\r\n exportToClick = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n event.stopPropagation();\r\n };\r\n\r\n exportToClose = () => {\r\n this.setState({ anchorEl: null });\r\n };\r\n\r\n\r\n setDataWithHeader = fileData => {\r\n let filedata = [];\r\n fileData.length > 0\r\n ? fileData.map(item => {\r\n return filedata.push({\r\n \"System IP\": item.systemipadd,\r\n Customer: item.customerIbfk1rel.Customers[0].company,\r\n \"LinkedIn Profile\": item.customercredentialsIbfk1rel.Customerlinkedinprofiles[0].name,\r\n \"Campaign Name\": item.name,\r\n \"Campaign Status\": item.status,\r\n \"Campaign Type\": item.type,\r\n // \"Campaign Type\": item.salesNavigator === 0 ? \"Linkedin\" : \"SalesNavigator\",\r\n \"Invites (daily)\": item.invitelimit,\r\n \"Free Contacts\": item.freecontact,\r\n \"DATA Status\": this.calculateDataStatus(item.freecontact, item.invitelimit), \r\n \"Start Date\": this.formatDate(item.startdate),\r\n \"Login Time\": item.loginTime, \r\n \"Logout Time\": item.logoutTime, \r\n Running: item.runningCampaign === 0 ? \"stop\" : \"Running\",\r\n \"Campaign Target\": item.targetconnections, \r\n \"# Invites\": item.invitedcount,\r\n \"# Connected\": item.connectedcount,\r\n \"% Connected\": item.connectedper,\r\n \"# Engaged\": item.engagedcount,\r\n \"% Engaged\": item.engagedper,\r\n \"# Leads\": item.leadcount,\r\n \"% Leads\": item.leadper,\r\n Error: item.Error,\r\n // DataStatusa: this.calculateDataStatus(item.freecontact, item.invitelimit),\r\n // CampaignType: item.type, \r\n // InviteLimitPerday: item.invitelimit,\r\n \r\n // InviteToday: item.invitetoday,\r\n // TodayInviteOutOf: item.todayStatus,\r\n \r\n \r\n });\r\n })\r\n : filedata.push({\r\n Name: \"\",\r\n \"First Name\": \"\",\r\n \"Current Company\": \"\",\r\n \"Current Position\": \"\",\r\n Location: \"\",\r\n Industry: \"\",\r\n \"Linkedin Url\": \"\",\r\n Email: \"\",\r\n \"Phone \": \"\",\r\n Twitter: \"\",\r\n Skype: \"\",\r\n DOB: \"\",\r\n Visit: \"\",\r\n Follow: \"\",\r\n \"Invitation Sent\": \"\",\r\n \"Connected On\": \"\",\r\n \"Current Stage\": \"\",\r\n \"Last Response\": \"\",\r\n Status: \"\",\r\n \"System IP\":\"\",\r\n });\r\n return filedata;\r\n };\r\n\r\n exportToExcel = (selectedData, fileName) => {\r\n if (selectedData && selectedData.length > 0) {\r\n\r\n let filedata = this.setDataWithHeader(this.props.fileData);\r\n try {\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n const name = \"Monitoring\";\r\n const ws = XLSX.utils.json_to_sheet(filedata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, {\r\n bookType: \"xlsx\",\r\n type: \"array\"\r\n });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, name + fileExtension);\r\n\r\n this.exportToClose();\r\n } catch (e) {\r\n swal(\"Error\", { icon: \"error\" });\r\n }\r\n this.setState({ loading: false });\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n }, 5000);\r\n }\r\n };\r\n\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n const { anchorEl, fileData, fileName } = this.state;\r\n return (\r\n
    \r\n \r\n Export as\r\n \r\n \r\n \r\n Export to\r\n \r\n \r\n {\r\n this.exportToExcel(this.props.fileData, fileName);\r\n // this.exportToExcel(this.props.SalesHubdata, fileName);\r\n }}\r\n >\r\n Excel\r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ExportToMonitoring;\r\n\r\n\r\n\r\n// import React, { Component } from \"react\";\r\n// //import MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\n// import { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\n// import * as FileSaver from \"file-saver\";\r\n// import * as XLSX from \"xlsx\";\r\n// import swal from \"sweetalert\";\r\n// // import { salesforceApi, hubspotApi } from \"../../../config\";\r\n// import { SemipolarLoading } from \"react-loadingg\";\r\n// // import { campaignZapierurlDetails, contactExport } from \"../../../Queries\";\r\n// // import { fetchMethod } from \"../../../FetchMethod\";\r\n// class ExportToMonitoring extends Component {\r\n// constructor(props) {\r\n// super(props);\r\n// this.state = { loading: false, anchorEl: null, fileName: \"Engaged\" };\r\n// }\r\n\r\n// ExcelRecieveddateFomate = date => {\r\n// if (date !== null && date !== undefined) {\r\n// date = new Date(\r\n// date\r\n// .split(\"/\")\r\n// .reverse()\r\n// .join(\"/\")\r\n// );\r\n// let dd = date.getDate();\r\n// let mm = date.getMonth() + 1;\r\n// let yyyy = date.getFullYear();\r\n// if (dd < 10) {\r\n// dd = \"0\" + dd;\r\n// }\r\n// if (mm < 10) {\r\n// mm = \"0\" + mm;\r\n// }\r\n\r\n// let time1 = date.getTime();\r\n// let time2 = date.getTimezoneOffset() * 60000;\r\n// date = time1 + time2;\r\n// date = new Date(date);\r\n\r\n// let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n\r\n// let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n// hours = hours < 10 ? \"0\" + hours : hours;\r\n// let minutes =\r\n// date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n\r\n// let date1 = `${dd}/${mm}/${yyyy}`;\r\n// let time = hours + \":\" + minutes + \" \" + am_pm;\r\n\r\n// return (date = date1 + \" \" + time);\r\n// }\r\n// };\r\n\r\n// formatDate = date => {\r\n// if (date !== null && date !== undefined && date) {\r\n// date = new Date(\r\n// date\r\n// .split(\"/\")\r\n// .reverse()\r\n// .join(\"/\")\r\n// );\r\n// let dd = date.getDate();\r\n// let mm = date.getMonth() + 1;\r\n// let yyyy = date.getFullYear();\r\n// if (dd < 10) {\r\n// dd = \"0\" + dd;\r\n// }\r\n// if (mm < 10) {\r\n// mm = \"0\" + mm;\r\n// }\r\n\r\n// date = `${dd}/${mm}/${yyyy}`;\r\n// return date;\r\n// }\r\n\r\n// return;\r\n// };\r\n\r\n// formatDate1 = date => {\r\n// if (date !== null && date !== undefined) {\r\n// date = new Date(\r\n// date\r\n// .split(\"/\")\r\n// .reverse()\r\n// .join(\"/\")\r\n// );\r\n// let dd = date.getDate();\r\n// let mm = date.getMonth() + 1;\r\n// let yyyy = date.getFullYear();\r\n// if (dd < 10) {\r\n// dd = \"0\" + dd;\r\n// }\r\n// if (mm < 10) {\r\n// mm = \"0\" + mm;\r\n// }\r\n// let hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();\r\n// let am_pm = date.getHours() >= 12 ? \"PM\" : \"AM\";\r\n// hours = hours < 10 ? \"0\" + hours : hours;\r\n// let minutes =\r\n// date.getMinutes() < 10 ? \"0\" + date.getMinutes() : date.getMinutes();\r\n// let time = hours + \":\" + minutes + \" \" + am_pm;\r\n// date = `${dd}/${mm}/${yyyy}`;\r\n// return (date = date + \" \" + time);\r\n// }\r\n// };\r\n// exportToClick = event => {\r\n// this.setState({ anchorEl: event.currentTarget });\r\n// event.stopPropagation();\r\n// };\r\n\r\n// exportToClose = () => {\r\n// this.setState({ anchorEl: null });\r\n// };\r\n\r\n// exportToSalesforce = salesforceData => {\r\n// let selectedArrayIds = [];\r\n// salesforceData.map(a => {\r\n// selectedArrayIds.push(a.id);\r\n// });\r\n\r\n// // if (salesforceData.length > 0) {\r\n// // selectedArrayIds = JSON.stringify(selectedArrayIds);\r\n// // if (this.props.SalesforceToken !== null) {\r\n// // fetch(\r\n// // salesforceApi.url +\r\n// // `${selectedArrayIds}` +\r\n// // `&profileId=${this.props.Profile}` +\r\n// // `&access_token=${localStorage.getItem(\"token\")}`,\r\n// // {\r\n// // method: \"POST\",\r\n// // headers: {\r\n// // Accept: \"application/json\",\r\n// // \"Content-Type\": \"application/json\"\r\n// // }\r\n// // }\r\n// // )\r\n// // .then(res => res.json())\r\n// // .then(response => {\r\n// // this.exportToClose();\r\n// // swal(\"Successfully moved to Salesforce\", { icon: \"success\" });\r\n// // this.props.selectedArray();\r\n// // })\r\n// // .catch(err => {\r\n// // console.log(\"Error\", err);\r\n// // swal(\"Please try Again later\", { icon: \"warning\" });\r\n// // });\r\n// // } else {\r\n// // swal(\"Connect to Salesforce First\", { icon: \"warning\" });\r\n// // }\r\n// // } else {\r\n// // swal(\"Please select contact\", { icon: \"warning\" });\r\n// // }\r\n// };\r\n\r\n// exportToHubspot = hubspotData => {\r\n// let selectedArrayIds = [];\r\n// hubspotData.map(a => {\r\n// selectedArrayIds.push(a.id);\r\n// });\r\n\r\n// // if (hubspotData.length > 0) {\r\n// // if (this.props.HubspotToken !== null) {\r\n// // selectedArrayIds = JSON.stringify(selectedArrayIds);\r\n// // fetch(\r\n// // hubspotApi.url +\r\n// // `${selectedArrayIds}` +\r\n// // `&profileId=${this.props.Profile}` +\r\n// // `&access_token=${localStorage.getItem(\"token\")}`,\r\n// // {\r\n// // method: \"POST\",\r\n// // headers: {\r\n// // Accept: \"application/json\",\r\n// // \"Content-Type\": \"application/json\"\r\n// // }\r\n// // }\r\n// // )\r\n// // .then(res => res.json())\r\n// // .then(response => {\r\n// // if (response.response === \"success\") {\r\n// // this.exportToClose();\r\n// // swal(\"Successfully moved to hubspot\", { icon: \"success\" });\r\n// // this.props.selectedArray();\r\n// // }\r\n// // })\r\n// // .catch(err => {\r\n// // console.log(\"Error\", err);\r\n// // swal(\"Please try Again later\", { icon: \"warning\" });\r\n// // });\r\n// // } else {\r\n// // swal(\"Connect to Hubspot First\", { icon: \"warning\" });\r\n// // }\r\n// // } else {\r\n// // swal(\"Please select contact\", { icon: \"warning\" });\r\n// // }\r\n// };\r\n// // createExportHistory = async data => {\r\n// // var variables = {\r\n// // data\r\n// // };\r\n// // return await fetchMethod(contactExport, variables).then(response => {\r\n// // return response.json();\r\n// // });\r\n// // };\r\n// // setDataWithZapierurl = async campaignId => {\r\n// // return await fetchMethod(campaignZapierurlDetails(campaignId))\r\n// // .then(response => response.json())\r\n// // .then(responseAsJson => responseAsJson.data.Campaigns.zapierurl)\r\n// // .catch(e => {\r\n// // console.log(e);\r\n// // this.setState({ loading: true });\r\n// // });\r\n// // };\r\n\r\n// setDataWithZapier = fileData => {\r\n// let filedata = [];\r\n// fileData.length > 0\r\n// ? fileData.map(item => {\r\n// let steps = item.currentStage.Contactworkflowhistories;\r\n// let List1 = steps[steps.length - 1];\r\n// let Messages = item.Contactmessagesfk.Contactmessages;\r\n\r\n// let message = [];\r\n// Messages.map(m => {\r\n// message.push(\r\n// m.message +\r\n// \"\\n\" +\r\n// this.ExcelRecieveddateFomate(m.messagedatetime) +\r\n// \" (\" +\r\n// m.type +\r\n// \")\"\r\n// );\r\n// });\r\n// let wholeMessages = message.join(\"\\n \\n\");\r\n\r\n// let executedonVisit = [];\r\n// let x = steps.filter(step => {\r\n// if (\r\n// step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n// \"VISIT\"\r\n// ) {\r\n// executedonVisit.push(step.executedon);\r\n// }\r\n// });\r\n// let executedonFollow = [];\r\n// let y = steps.filter(step => {\r\n// if (\r\n// step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n// \"FOLLOW\"\r\n// ) {\r\n// executedonFollow.push(step.executedon);\r\n// }\r\n// });\r\n// var movetolink = item.moveto;\r\n// if (item.moveto == \"\" || item.moveto == null) {\r\n// movetolink = \"Zapier\";\r\n// }\r\n// return filedata.push({\r\n// contactid: item.id,\r\n// campaignid: item.campaignid,\r\n// Name: item.name,\r\n// fname: item.fname,\r\n// organization: item.organization,\r\n// designation: item.designation,\r\n// Location: item.location,\r\n// Industry: item.industry,\r\n// linkedinid: item.linkedinid,\r\n// Email: item.email,\r\n// phonenumber: item.phonenumber,\r\n// Twitter: item.twitter,\r\n// Skype: item.skype,\r\n// DOB: item.dateofbirth,\r\n// Visit: this.formatDate(executedonVisit[0]),\r\n// Follow: this.formatDate(executedonFollow[0]),\r\n// InvitationSent: item.InvitationSent,\r\n// Connectedon: this.formatDate(item.connectedon),\r\n// wholeMessages: wholeMessages,\r\n// CurrentStage: item.CurrentStage,\r\n// movedby: localStorage.getItem(\"id\"),\r\n// moveto: movetolink,\r\n\r\n// LR: item.LR,\r\n// Status:\r\n// item.campaignstatus === \"COMPLETED\"\r\n// ? \"Completed\"\r\n// : item.campaignstatus === \"PAUSE\"\r\n// ? \"Pause\"\r\n// : item.campaignstatus === \"LIVE\"\r\n// ? \"Live\"\r\n// : \"\"\r\n// });\r\n// })\r\n// : filedata.push({\r\n// Name: \"\",\r\n// fname: \"\",\r\n// organization: \"\",\r\n// designation: \"\",\r\n// Location: \"\",\r\n// Industry: \"\",\r\n// linkedinid: \"\",\r\n// Email: \"\",\r\n// phonenumber: \"\",\r\n// Twitter: \"\",\r\n// Skype: \"\",\r\n// DOB: \"\",\r\n// Visit: \"\",\r\n// Follow: \"\",\r\n// InvitationSent: \"\",\r\n// Connectedon: \"\",\r\n// wholeMessages: \"\",\r\n// CurrentStage: \"\",\r\n// LR: \"\",\r\n// Status: \"\",\r\n// contactid: \"\",\r\n// campaignid: \"\",\r\n// movedby: \"\",\r\n// moveto: \"\"\r\n// });\r\n// return filedata;\r\n// };\r\n// setDataWithHeader = fileData => {\r\n// let filedata = [];\r\n// fileData.length > 0\r\n// ? fileData.map(item => {\r\n// let steps = item.currentStage.Contactworkflowhistories;\r\n// let List1 = steps[steps.length - 1];\r\n// let Messages = item.Contactmessagesfk.Contactmessages;\r\n// let message = [];\r\n// Messages.map(m => {\r\n// message.push(this.ExcelRecieveddateFomate(m.messagedatetime));\r\n\r\n// message.push(m.message);\r\n// });\r\n// let wholeMessages = message.join(\"\\n\");\r\n\r\n// let executedonVisit = [];\r\n// let x = steps.filter(step => {\r\n// if (\r\n// step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n// \"VISIT\"\r\n// ) {\r\n// executedonVisit.push(step.executedon);\r\n// }\r\n// });\r\n// let executedonFollow = [];\r\n// let y = steps.filter(step => {\r\n// if (\r\n// step.contactworkflowhistoryIbfk2rel.Campaignsteps[0].stepname ===\r\n// \"FOLLOW\"\r\n// ) {\r\n// executedonFollow.push(step.executedon);\r\n// }\r\n// });\r\n// return filedata.push({\r\n// Name: item.name,\r\n// \"First Name\": item.fname,\r\n// \"Current Company\": item.organization,\r\n// \"Current Position\": item.designation,\r\n// Location: item.location,\r\n// Industry: item.industry,\r\n// \"Linkedin Url\": item.linkedinid,\r\n// Email: item.email,\r\n// \"Phone \": item.phonenumber,\r\n// Twitter: item.twitter,\r\n// Skype: item.skype,\r\n// DOB: item.dateofbirth,\r\n// Visit: this.formatDate(executedonVisit[0]),\r\n// Follow: this.formatDate(executedonFollow[0]),\r\n// \"Invitation Sent\": item.InvitationSent,\r\n// \"Connected On\": this.formatDate(item.connectedon),\r\n// \"Messages Notes\": wholeMessages,\r\n// \"Current Stage\": item.CurrentStage,\r\n\r\n// \"Last Response\": item.LR,\r\n// Status:\r\n// item.campaignstatus === \"COMPLETED\"\r\n// ? \"Completed\"\r\n// : item.campaignstatus === \"PAUSE\"\r\n// ? \"Pause\"\r\n// : item.campaignstatus === \"LIVE\"\r\n// ? \"Live\"\r\n// : \"\"\r\n// });\r\n// })\r\n// : filedata.push({\r\n// Name: \"\",\r\n// \"First Name\": \"\",\r\n// \"Current Company\": \"\",\r\n// \"Current Position\": \"\",\r\n// Location: \"\",\r\n// Industry: \"\",\r\n// \"Linkedin Url\": \"\",\r\n// Email: \"\",\r\n// \"Phone \": \"\",\r\n// Twitter: \"\",\r\n// Skype: \"\",\r\n// DOB: \"\",\r\n// Visit: \"\",\r\n// Follow: \"\",\r\n// \"Invitation Sent\": \"\",\r\n// \"Connected On\": \"\",\r\n// \"Messages Notes\": \"\",\r\n// \"Current Stage\": \"\",\r\n// \"Last Response\": \"\",\r\n// Status: \"\"\r\n// });\r\n// return filedata;\r\n// };\r\n\r\n// exportToExcel = (selectedData, fileName) => {\r\n\r\n// if (selectedData && selectedData.length > 0) {\r\n// try {\r\n// const fileType =\r\n// \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n// const fileExtension = \".xlsx\";\r\n// const name = \"Monitoring\";\r\n// const ws = XLSX.utils.json_to_sheet(selectedData); // Use selected data\r\n// const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n// const excelBuffer = XLSX.write(wb, {\r\n// bookType: \"xlsx\",\r\n// type: \"array\"\r\n// });\r\n// const data = new Blob([excelBuffer], { type: fileType });\r\n// FileSaver.saveAs(data, name + fileExtension);\r\n \r\n// this.exportToClose();\r\n// } catch (e) {\r\n// swal(\"Error\", { icon: \"error\" });\r\n// }\r\n// this.setState({ loading: false });\r\n// } else if(selectedData.length === 0){\r\n// let filedata = this.setDataWithHeader(this.props.fileData);\r\n// try {\r\n// const fileType =\r\n// \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n// const fileExtension = \".xlsx\";\r\n// const name = \"Contacts\";\r\n// const ws = XLSX.utils.json_to_sheet(filedata);\r\n// const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n// const excelBuffer = XLSX.write(wb, {\r\n// bookType: \"xlsx\",\r\n// type: \"array\"\r\n// });\r\n// const data = new Blob([excelBuffer], { type: fileType });\r\n// FileSaver.saveAs(data, name + fileExtension);\r\n\r\n// this.exportToClose();\r\n// } catch (e) {\r\n// swal(\"Error\", { icon: \"error\" });\r\n// }\r\n// this.setState({ loading: false });\r\n// }\r\n// else {\r\n// this.setState({ loading: true });\r\n// setTimeout(() => {\r\n// this.exportToExcel(this.props.fileData, fileName);\r\n// }, 5000);\r\n// }\r\n// };\r\n\r\n// exportToZapier = async salesforceData => {\r\n// var urldata = await this.setDataWithZapierurl(\r\n// this.props.fileData[0]?.campaignid\r\n// );\r\n\r\n// var selectedcontactData = this.props.fileData;\r\n// let selectedArrayIds2 = [];\r\n// if (salesforceData.length == selectedcontactData.length) {\r\n// let filedata = this.setDataWithZapier(selectedcontactData);\r\n\r\n// selectedArrayIds2 = filedata;\r\n// } else {\r\n// salesforceData.map(a => {\r\n// selectedcontactData.map(b => {\r\n// if (a.id == b.id) {\r\n// selectedArrayIds2.push({\r\n// campaignid: b.campaignid,\r\n// moveto: urldata,\r\n// Contactmessagesfk: b.Contactmessagesfk,\r\n// campaignstatus: b.campaignstatus,\r\n// connect: b.connect,\r\n// connectedon: b.connectedon,\r\n// contactstatus: b.contactstatus,\r\n// CurrentStage: b.CurrentStage,\r\n// currentStage: b.currentStage,\r\n// currentstatus: b.currentstatus,\r\n// dateofbirth: b.dateofbirth,\r\n// designation: b.designation,\r\n// email: b.email,\r\n// fname: b.fname,\r\n// id: b.id,\r\n// industry: b.industry,\r\n// InvitationSent: b.InvitationSent,\r\n// linkedinid: b.linkedinid,\r\n// location: b.location,\r\n// name: b.name,\r\n// organization: b.organization,\r\n// phonenumber: b.phonenumber,\r\n// profileimage: b.profileimage,\r\n// skype: b.skype,\r\n// thanksmsgdate: b.thanksmsgdate,\r\n// twitter: b.twitter,\r\n// Visit: b.Visit,\r\n// Follow: b.Follow\r\n// });\r\n// }\r\n// });\r\n// });\r\n\r\n// let filedata = this.setDataWithZapier(selectedArrayIds2);\r\n\r\n// selectedArrayIds2 = filedata;\r\n// }\r\n\r\n// if (urldata != \"\" && urldata != null) {\r\n \r\n// var urldata = await this.createExportHistory(selectedArrayIds2);\r\n// let selectedArrayIds = selectedArrayIds2;\r\n// var dataT = JSON.stringify(selectedArrayIds);\r\n// var request = require(\"request\");\r\n// var options = {\r\n// method: \"POST\",\r\n// url: urldata,\r\n// // url: \"https://hooks.zapier.com/hooks/catch/10737927/33ynz8h/\",\r\n// headers: {\r\n// \"Content-Type\": \"text/plain\"\r\n// },\r\n// body: dataT\r\n// };\r\n// this.exportToClose();\r\n// request(options, function(error, response) {\r\n// if (error) {\r\n// swal(\"Please try again later\", { icon: \"warning\" });\r\n// } else {\r\n// swal(\"Successfully moved to Zapier\", { icon: \"success\" });\r\n// }\r\n// });\r\n// } else {\r\n// swal(\r\n// \"Please configure the Zapier Integration URL on Campaign Details page\",\r\n// {\r\n// icon: \"warning\"\r\n// }\r\n// );\r\n// }\r\n// };\r\n\r\n// render() {\r\n// if (this.state.loading) {\r\n// return (\r\n//
    \r\n// \r\n//
    \r\n// );\r\n// }\r\n// const { anchorEl, fileData, fileName } = this.state;\r\n// return (\r\n//
    \r\n// \r\n// Export as\r\n// \r\n// \r\n// \r\n// Export to\r\n// \r\n \r\n// {\r\n// this.exportToExcel(this.props.fileData, fileName);\r\n// // this.exportToExcel(this.props.SalesHubdata, fileName);\r\n// }}\r\n// >\r\n// Excel\r\n// \r\n \r\n// \r\n//
    \r\n// );\r\n// }\r\n// }\r\n\r\n// export default ExportToMonitoring;\r\n","import gql from \"graphql-tag\";\r\nexport const ContactSearch = `query($where: JSON){\r\n allCampaigns(where: $where){\r\n Campaigns{\r\n customerIbfk1rel{\r\n Customers{\r\n company\r\n id\r\n }\r\n }\r\n }\r\n }\r\n}`;\r\n\r\nexport const CampaignSearch = `query ($where: JSON){\r\n allCustomers(where: $where){\r\n Customers{\r\n id\r\n company\r\n campaignfk{\r\n Campaigns{\r\n id\r\n name\r\n Manager: usersIbfk1rel{\r\n Usersdata{\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}`;\r\nexport const CampaignData = `query ($where: JSON){\r\n allUsersdata(where: $where){\r\n Usersdata{\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n}`;\r\n\r\nexport const Company = gql`\r\n query($where: JSON) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n }\r\n }\r\n }\r\n`;\r\n","import React, { Component } from \"react\";\r\nimport { TextField, MenuItem, Button } from \"@material-ui/core\";\r\nimport SearchIcon from \"../assets/search.png\";\r\nimport NextArrow from \"../assets/next-arrow.png\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport ExportToMonitoring from \"./ExportToMonitoring\";\r\n//import ExportTo from \"./../Campaign/CampaignTabs/ExportToExcel\";\r\n//import NativeSelect from \"@material-ui/core/NativeSelect\";\r\nimport \"./campaign.css\";\r\nimport {\r\n ContactSearch,\r\n CampaignSearch,\r\n Company,\r\n CampaignData\r\n} from \"./SearchCampaignQuery\";\r\n\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport store from \"../../Redux/Store\";\r\n\r\nclass SearchCampaign extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n customerlist: [],\r\n search: \"\",\r\n CampaignManagerList: [],\r\n searchFlag: false,\r\n clickToSearch: false,\r\n Company: [],\r\n status: \"Live\",\r\n flag: false,\r\n cust: [],\r\n ManagerId: undefined,\r\n ManagerId1: \"All\",\r\n CustomerId: \"All\",\r\n company: \"All\",\r\n value: \"All\",\r\n options2: [],\r\n\r\n limit: this.props.limit,\r\n offset: this.props.offset\r\n };\r\n }\r\n componentDidMount() {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n this.fetchdata();\r\n this.fetchmanager();\r\n this.fetchManagerData();\r\n }\r\n\r\n fetchdata = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\")\r\n \r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\")\r\n \r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\")\r\n \r\n }\r\n }\r\n : {\r\n where: {\r\n \r\n }\r\n };\r\n\r\n fetchMethod(ContactSearch, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(responseAsJson => {\r\n responseAsJson !== undefined\r\n ? this.setState(\r\n {\r\n Company: responseAsJson.data.allCampaigns.Campaigns.map(id => {\r\n return id.customerIbfk1rel.Customers !== undefined\r\n ? id.customerIbfk1rel.Customers.length > 0\r\n ? id.customerIbfk1rel.Customers[0]\r\n : \"\"\r\n : \"\";\r\n })\r\n },\r\n () => this.SearchCompany()\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => {\r\n this.setState({ loading: true });\r\n });\r\n };\r\n SearchCompany = () => {\r\n const filter = {\r\n where: {\r\n \r\n and: [\r\n {\r\n or: this.state.Company.map(id => {\r\n return { id: id.id };\r\n })\r\n }\r\n ],\r\n order: \"company asc\"\r\n }\r\n };\r\n fetchMethod(Company, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allCustomers !== undefined && res.data.allCustomers !== null\r\n ? this.setState({ customerlist: res.data.allCustomers.Customers })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n clearFilters = () => {\r\n this.setState(\r\n {\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ],\r\n company: \"All\",\r\n CustomerId: \"\",\r\n ManagerId: \"\",\r\n ManagerId1: \"All\",\r\n search: \"\",\r\n status: \"Live\",\r\n searchFlag: false,\r\n clickToSearch: false,\r\n limit: 50,\r\n offset: 50\r\n },\r\n () => {\r\n this.props.ManagerId(this.state.ManagerId);\r\n this.props.CustomerId(this.state.CustomerId);\r\n this.props.Status(this.state.status);\r\n this.fetchmanager();\r\n this.props.onHandleSearchChange(this.state.search);\r\n }\r\n );\r\n };\r\n\r\n fetchmanager = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? {\r\n where: {\r\n id: localStorage.getItem(\"customer\")\r\n }\r\n }\r\n : this.state.CustomerId !== \"All\"\r\n ? {\r\n where: {\r\n id: this.state.CustomerId\r\n }\r\n }\r\n : {};\r\n\r\n fetchMethod(CampaignSearch, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allCustomers !== undefined && res.data.allCustomers !== null\r\n ? this.setState(\r\n {\r\n cust:\r\n res.data.allCustomers.Customers[0] !== undefined\r\n ? res.data.allCustomers.Customers[0].campaignfk.Campaigns.map(\r\n id => {\r\n return id.Manager.Usersdata;\r\n }\r\n )\r\n : \"\"\r\n },\r\n () => {\r\n this.fetchManagerData();\r\n }\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n fetchManagerData = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? {\r\n where: {\r\n and: [\r\n {\r\n or:\r\n this.state.cust.length > 0\r\n ? this.state.cust.map(id => {\r\n return { id: id[0] !== undefined ? id[0].id : \"\" };\r\n })\r\n : [{ id: \"\" }]\r\n }\r\n ],\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n \r\n role: \"CAMPAIGNMANAGER\",\r\n createdby: localStorage.getItem(\"id\"),\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"SADMIN\"\r\n ? {\r\n where: {\r\n \r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : this.state.cust.length > 0\r\n ? {\r\n where: {\r\n and: [\r\n {\r\n or:\r\n this.state.cust.length > 0\r\n ? this.state.cust.map(id => {\r\n return { id: id[0] !== undefined ? id[0].id : \"\" };\r\n })\r\n : [{ id: \"\" }]\r\n }\r\n ],\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n };\r\n\r\n fetchMethod(CampaignData, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allUsersdata !== undefined && res.data.allUsersdata !== null\r\n ? this.setState({\r\n CampaignManagerList:\r\n localStorage.getItem(\"role\") !== \"CAMPAIGNMANAGER\"\r\n ? res.data.allUsersdata.Usersdata\r\n : \"\"\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n\r\n selectListChange = (event, v) => {\r\n if (v !== undefined && v !== null) {\r\n this.setState(\r\n {\r\n company: \"\",\r\n CustomerId: \"\",\r\n\r\n ManagerId1: \"All\",\r\n ManagerId: undefined\r\n },\r\n () => {\r\n this.setState(\r\n {\r\n company: v.company,\r\n CustomerId: v.id,\r\n\r\n ManagerId: \"All\",\r\n CampaignManagerList: [],\r\n flag: true,\r\n searchFlag: true\r\n },\r\n () => {\r\n this.props.ManagerId(this.state.ManagerId);\r\n this.props.CustomerId(this.state.CustomerId);\r\n this.fetchmanager();\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n this.setState({\r\n company: \"All\",\r\n ManagerId: undefined,\r\n ManagerId1: \"All\",\r\n loading: true\r\n });\r\n }\r\n };\r\n\r\n selectAssignToChange = (event, v) => {\r\n if (\r\n v !== undefined &&\r\n v !== null\r\n \r\n )\r\n this.setState(\r\n {\r\n ManagerId: \"\",\r\n ManagerId1: \"\"\r\n },\r\n () => {\r\n let FirstName =\r\n v.firstName !== undefined && v.firstName !== null\r\n ? v.firstName\r\n : \"\";\r\n let LastName =\r\n v.lastName !== undefined && v.lastName !== null ? v.lastName : \"\";\r\n this.setState(\r\n {\r\n ManagerId: v.id,\r\n ManagerId1: FirstName + \" \" + LastName,\r\n searchFlag: true\r\n },\r\n () => {\r\n this.fetchdata();\r\n this.props.ManagerId(this.state.ManagerId);\r\n this.props.CustomerId(this.state.CustomerId);\r\n this.onSearchClick();\r\n }\r\n );\r\n }\r\n );\r\n else {\r\n this.setState({ CampaignManagerList: this.state.CampaignManagerList });\r\n }\r\n };\r\n\r\n onStatusChange = event => {\r\n if (event.target.outerText === \"Live\") {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"All\") {\r\n this.setState({\r\n options2: [\r\n { id: \"LIVE\", name: \"Live\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"Paused\") {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"LIVE\", name: \"Live\" },\r\n { id: \"COMPLETED\", name: \"Completed\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"Completed\") {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"LIVE\", name: \"Live\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"NOTSTARTED\", name: \"Notstarted\" }\r\n ]\r\n });\r\n }\r\n if (event.target.outerText === \"Notstarted\") {\r\n this.setState({\r\n options2: [\r\n { id: \"ALL\", name: \"All\" },\r\n { id: \"LIVE\", name: \"Live\" },\r\n { id: \"PAUSED\", name: \"Paused\" },\r\n { id: \"COMPLETED\", name: \"Completed\" }\r\n ]\r\n });\r\n }\r\n\r\n this.setState(\r\n {\r\n \r\n status: event.target.outerText,\r\n searchFlag: true\r\n },\r\n () => {\r\n this.props.Status(this.state.status.toUpperCase());\r\n this.onSearchClick();\r\n }\r\n );\r\n };\r\n\r\n debounce = (debounceTimer, func, delay) => {\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(func, delay);\r\n return debounceTimer;\r\n };\r\n debounceTimer = null;\r\n\r\n handleChange = event => {\r\n this.setState({ search: event.target.value }, () => {\r\n if (this.state.search !== \"\") {\r\n this.setState({\r\n searchFlag: true\r\n });\r\n } else {\r\n this.setState({\r\n searchFlag: false\r\n });\r\n }\r\n this.debounceTimer = this.debounce(\r\n this.debounceTimer,\r\n () => {\r\n this.onSearchClick();\r\n },\r\n 300\r\n );\r\n this.props.onHandleSearchChange(this.state.search);\r\n });\r\n };\r\n\r\n onSearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.props.onhandleSearch(this.state.searchFlag);\r\n this.props.onHandleClickSearch(this.state.clickToSearch);\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.props.onhandleSearch(this.state.searchFlag);\r\n this.props.onHandleClickSearch(this.state.clickToSearch);\r\n });\r\n }\r\n };\r\n onSearchKeyDown = event => {\r\n return event.key === \"Enter\" ? this.onSearchClick() : \"\";\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n this.selectListChange(event, value)}\r\n options={this.state.customerlist ? this.state.customerlist : []}\r\n value={\r\n localStorage.getItem(\"role\") === \"CUSTOMER\" &&\r\n store.getState().userName &&\r\n store.getState().userName.customerIbfk5rel &&\r\n store.getState().userName.customerIbfk5rel.Customers &&\r\n store.getState().userName.customerIbfk5rel.Customers[0]\r\n ? store.getState().userName.customerIbfk5rel.Customers[0]\r\n .company\r\n : this.state.company\r\n }\r\n disabled={\r\n localStorage.getItem(\"role\") === \"CUSTOMER\" ? true : false\r\n }\r\n renderOption={option => (\r\n {option.company}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n \r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n\r\n
    \r\n this.selectAssignToChange(event, value)}\r\n options={\r\n this.state.CampaignManagerList\r\n ? this.state.CampaignManagerList\r\n : []\r\n }\r\n renderOption={option => (\r\n \r\n {\" \"}\r\n {option.firstName + \" \" + option.lastName}\r\n \r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n \r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n\r\n
    \r\n (\r\n {option.name}\r\n )}\r\n renderInput={params => (\r\n \r\n )\r\n }}\r\n fullWidth\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n ...params.inputProps\r\n \r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n )\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default SearchCampaign;\r\n","import React from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport PauseIcon from \"@material-ui/icons/Pause\";\r\nimport PlayArrowIcon from \"@material-ui/icons/PlayArrow\";\r\nimport StopIcon from \"@material-ui/icons/Stop\";\r\nimport store from \"../../Redux/Store\";\r\n\r\nlet addnewSteps = {};\r\n\r\nexport const addStepState = newState => {\r\n addnewSteps = newState;\r\n};\r\nexport const getNewState = () => {\r\n return addnewSteps;\r\n};\r\n\r\nexport const addCampaignForm = {\r\n title: \"AddCampaignForm\",\r\n onSubmit: args => {},\r\n fields: [\r\n {\r\n label: \"Customer\",\r\n type: \"dynamicSelect\",\r\n name: \"customerid\",\r\n value: \"Select Customer\",\r\n placeholder: \"Select Customer\",\r\n isRequired: true,\r\n data: \"params\",\r\n key1: \"company\"\r\n },\r\n {\r\n label: \"LinkedIn Profile\",\r\n type: \"dynamicSelect\",\r\n name: \"linkedinid\",\r\n value: \"Select LinkedIn Profile\",\r\n placeholder: \"Select LinkedIn Profile\",\r\n isRequired: true,\r\n key1: \"name\"\r\n },\r\n {\r\n label: \"Campaign Name\",\r\n type: \"input\",\r\n placeholder: \"Enter Campaign Name\",\r\n isRequired: true,\r\n name: \"name\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Campaign Manager\",\r\n type: \"dynamicSelect\",\r\n name: \"campaignmanagerid\",\r\n value: \"Select Campaign Manager\",\r\n placeholder: \"Select Campaign Manager\",\r\n isRequired: true,\r\n data: \"params1\",\r\n key1: \"firstName\",\r\n key2: \"lastName\"\r\n },\r\n {\r\n label: \"Campaign Description\",\r\n type: \"textarea\",\r\n placeholder: \"Enter Campaign Description\",\r\n name: \"description\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Start Date\",\r\n type: \"datepicker\",\r\n name: \"startdate\",\r\n placeholder: \"mm/dd/yyyy\",\r\n minDate: new Date(),\r\n required: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Start Time\",\r\n type: \"timepicker\",\r\n name: \"starttime\",\r\n placeholder: \"hh:mm\",\r\n required: true,\r\n value: \"\"\r\n },\r\n // {\r\n // label: \"Time Zone\",\r\n // type: \"staticSelect\",\r\n // name: \"timezone\",\r\n // value: \"Select Timezone\",\r\n // isRequired: true,\r\n // placeholder: \"Select Timezone\",\r\n // data: [\r\n // { name: \"PST (-8:00)\", value: \"-28800\" },\r\n // { name: \"MST/PDT (-7:00)\", value: \"-25200\" },\r\n // { name: \"CST/MDT (-6:00)\", value: \"-21600\" },\r\n // { name: \"EST/CDT (-5:00)\", value: \"-18000\" },\r\n // { name: \"EDT (-4:00)\", value: \"-14400\" },\r\n // { name: \"GMT (0:00)\", value: \"0\" },\r\n // { name: \"BST (+1:00)\", value: \"+3600\" },\r\n // { name: \"IST (+5:30)\", value: \"+19800\" }\r\n // ]\r\n // },\r\n {\r\n label: \"Campaign Target\",\r\n type: \"input\",\r\n placeholder: \"e.g. 100\",\r\n name: \"targetconnections\",\r\n isRequired: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"Use Sales Navigator\",\r\n type: \"checkbox\",\r\n name: \"salesNavigator\",\r\n value: true\r\n },\r\n {\r\n label: \"Workflow\",\r\n type: \"heading\"\r\n },\r\n \r\n {\r\n type: \"label\"\r\n }\r\n ]\r\n};\r\n\r\nexport const CampaignModalConfig = {\r\n title: \"Add Step\",\r\n\r\n fields: [\r\n {\r\n label: \"Step\",\r\n type: \"staticSelect\",\r\n name: \"stepname\",\r\n isRequired: true,\r\n value: \"Select\",\r\n placeholder: \"Select\",\r\n data: [\r\n { name: \"Visit Profile\", value: \"VISIT\" },\r\n { name: \"Follow Profile\", value: \"FOLLOW\" },\r\n { name: \"Send Invite\", value: \"SEND_INVITE\" },\r\n { name: \"Send Thanks Message\", value: \"SEND_THANKS_MESSAGE\" },\r\n { name: \"Send Message\", value: \"SEND_MESSAGE\" },\r\n { name: \"Inmail Message\", value: \"INMAIL_MESSAGE\" }\r\n ],\r\n active: true\r\n },\r\n {\r\n label: \"Limit Per Day\",\r\n type: \"input\",\r\n placeholder: \"e.g. 100\",\r\n isRequired: true,\r\n name: \"limitperday\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Max Limit \",\r\n type: \"note\",\r\n name: \"note message\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Delay (days)\",\r\n type: \"dynamicInput\",\r\n placeholder: \"e.g. 2\",\r\n isRequired: true,\r\n name: \"daysdelay\",\r\n value: \"\"\r\n },\r\n {\r\n type: \"list\",\r\n name: \"list\",\r\n data: [\r\n \"First Name\",\r\n \"Last Name\",\r\n \"D.O.B\",\r\n \"First Name\",\r\n \"Last Name\",\r\n \"D.O.B\",\r\n \"First Name\",\r\n \"Last Name\",\r\n \"D.O.B\"\r\n ]\r\n },\r\n {\r\n label: \"Message\",\r\n type: \"messageArea\",\r\n placeholder: \"Compose message here...\",\r\n isRequired: true,\r\n rows: \"6\",\r\n column: \"10\",\r\n name: \"message\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Personal Note\",\r\n type: \"personalNote\",\r\n placeholder: \"Compose Personal Note here...\",\r\n rows: \"6\",\r\n column: \"10\",\r\n name: \"personalmessage\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Thanks Message\",\r\n type: \"thanksMessageArea\",\r\n placeholder: \"Compose thanks message here...\",\r\n isRequired: true,\r\n rows: \"6\",\r\n column: \"10\",\r\n name: \"replyMessage\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Thanks Message\",\r\n type: \"thanksMessageArea2\",\r\n placeholder: \"Compose thanks message here...\",\r\n isRequired: true,\r\n rows: \"6\",\r\n column: \"10\",\r\n name: \"replyInmailMessage\",\r\n value: \"\"\r\n }\r\n ]\r\n};\r\n\r\nexport const editCampaignForm = {\r\n title: \"Edit Campaign\",\r\n fields: [\r\n {\r\n label: \"Customer\",\r\n type: \"dynamicSelect\",\r\n name: \"customerid\",\r\n value: \"Select Customer\",\r\n data: \"params\",\r\n key1: \"company\",\r\n isRequired: true,\r\n placeholder: \"Select Customer\",\r\n active: true\r\n },\r\n {\r\n label: \"LinkedIn Profile\",\r\n type: \"dynamicSelect\",\r\n name: \"linkedinid\",\r\n value: \"Select LinkedIn Profile\",\r\n key1: \"name\",\r\n isRequired: true,\r\n placeholder: \"Select LinkedIn Profile\",\r\n link: true\r\n },\r\n {\r\n label: \"Campaign Name\",\r\n type: \"input\",\r\n placeholder: \"Enter Campaign Name\",\r\n isRequired: true,\r\n name: \"name\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Campaign Manager\",\r\n type: \"dynamicSelect\",\r\n name: \"campaignmanagerid\",\r\n value: \"Select Campaign Manager\",\r\n placeholder: \"Select Campaign Manager\",\r\n isRequired: true,\r\n data: \"params1\",\r\n key1: \"firstName\",\r\n key2: \"lastName\"\r\n },\r\n {\r\n label: \"Campaign Description\",\r\n type: \"textarea\",\r\n placeholder: \"Enter Campaign Description\",\r\n name: \"description\",\r\n value: \"\"\r\n },\r\n\r\n\r\n {\r\n label: \"Start Date\",\r\n type: \"datepicker\",\r\n name: \"startdate\",\r\n disabled: true,\r\n placeholder: \"mm/dd/yyyy\",\r\n required: true,\r\n // disablePast: true,\r\n minDate: new Date(),\r\n value: \"\"\r\n },\r\n {\r\n label: \"Start Time\",\r\n type: \"timepicker\",\r\n name: \"starttime\",\r\n placeholder: \"hh:mm\",\r\n disabled: true,\r\n required: true,\r\n value: \"\"\r\n },\r\n // {\r\n // label: \"Time Zone\",\r\n // type: \"staticSelect\",\r\n // name: \"timezone\",\r\n // value: \"Select Timezone\",\r\n // isRequired: true,\r\n // placeholder: \"Select Timezone\",\r\n // data: [\r\n // { name: \"PST (-8:00)\", value: \"-28800\" },\r\n // { name: \"MST/PDT (-7:00)\", value: \"-25200\" },\r\n // { name: \"CST/MDT (-6:00)\", value: \"-21600\" },\r\n // { name: \"EST/CDT (-5:00)\", value: \"-18000\" },\r\n // { name: \"EDT (-4:00)\", value: \"-14400\" },\r\n \r\n // { name: \"GMT (0:00)\", value: \"0\" },\r\n // { name: \"BST (+1:00)\", value: \"+3600\" },\r\n // { name: \"IST (+5:30)\", value: \"+19800\" }\r\n // ]\r\n // },\r\n {\r\n label: \"Campaign Target\",\r\n type: \"input\",\r\n placeholder: \"e.g. 100\",\r\n name: \"targetconnections\",\r\n isRequired: true,\r\n value: \"\"\r\n },\r\n {\r\n label: \"button\",\r\n type: \"button\",\r\n name: \"button\",\r\n color: \"Primary\",\r\n size: \"medium\",\r\n disabled: true,\r\n buttontext: \"Live\",\r\n iconname: ,\r\n value: \"\",\r\n funName: \"setLiveStatus\"\r\n },\r\n {\r\n label: \"button\",\r\n type: \"button\",\r\n name: \"button\",\r\n color: \"Primary\",\r\n size: \"medium\",\r\n buttontext: \"Pause\",\r\n action: true,\r\n iconname: ,\r\n value: \"\",\r\n funName: \"setPauseStatus\"\r\n },\r\n {\r\n label: \"button\",\r\n type: \"button\",\r\n name: \"button\",\r\n color: \"secondary\",\r\n size: \"medium\",\r\n buttontext: \"End\",\r\n iconname: ,\r\n value: \"\",\r\n funName: \"setEndStatus\"\r\n },\r\n {\r\n label: \"button\",\r\n type: \"button\",\r\n name: \"button\",\r\n color: \"secondary\",\r\n size: \"medium\",\r\n delete: true,\r\n buttontext: \"Delete\",\r\n iconname: ,\r\n value: \"\",\r\n funName: \"setDeleteStatus\"\r\n },\r\n {\r\n label: \"Use Sales Navigator\",\r\n type: \"checkbox\",\r\n name: \"salesNavigator\",\r\n value: \"\"\r\n },\r\n {\r\n label: \"Workflow\",\r\n type: \"heading\"\r\n },\r\n\r\n {\r\n type: \"label\"\r\n }\r\n ]\r\n};\r\n\r\nexport const campaignValidation = Yup.object().shape({\r\n name: Yup.string()\r\n .required(\"Please enter campaign name\")\r\n // .min(1, \"Please enter a Campaign Name\")\r\n .max(50, \"Campaign name should be less than 50 characters\")\r\n .matches(/[A-Za-z0-9]/, {\r\n message: \"Please enter valid campaign name\",\r\n excludeEmptyString: true\r\n }),\r\n\r\n description: Yup.string()\r\n .matches(/[A-Za-z0-9]/, {\r\n message: \"Please enter a valid campaign description\",\r\n excludeEmptyString: true\r\n })\r\n .max(250, \"Campaign description should be less than 250 characters\"),\r\n\r\n targetconnections: Yup.string()\r\n .matches(/^\\d+$/, {\r\n message: \"Only numbers allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\r\n \"value not zero\",\r\n \"Connections should be greater than zero.\",\r\n value => {\r\n return value !== 0;\r\n }\r\n )\r\n .max(10, \"Connections should be less than 10 digits\")\r\n .required(\"Please enter connections\"),\r\n\r\n customerid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select customer\", value => {\r\n return value !==\"Select Customer\";\r\n }),\r\n\r\n linkedinid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select Linkedin profile\", value => {\r\n return value !== \"Select LinkedIn Profile\";\r\n }),\r\n\r\n campaignmanagerid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select campaign manager\", value => {\r\n return value !== \"Select Campaign Manager\";\r\n }),\r\n\r\n // timezone: Yup.string()\r\n // .ensure()\r\n // .test(\"customerid\", \"Please select time zone\", value => {\r\n // return value !== \"Select Timezone\";\r\n // })\r\n});\r\n\r\nexport const editcampaignValidation = Yup.object().shape({\r\n name: Yup.string()\r\n .required(\"Please enter campaign name\")\r\n \r\n .max(50, \"Campaign name should be less than 50 characters\")\r\n .matches(/[A-Za-z0-9]/, {\r\n message: \"Please enter valid campaign name\",\r\n excludeEmptyString: true\r\n }),\r\n\r\n description: Yup.string()\r\n .matches(/[A-Za-z0-9]/, {\r\n message: \"Please enter valid campaign description\",\r\n excludeEmptyString: true\r\n })\r\n .max(250, \"Campaign description should be less than 250 characters\"),\r\n\r\n targetconnections: Yup.string()\r\n .matches(/^\\d+$/, {\r\n message: \"Only numbers allowed\",\r\n excludeEmptyString: true\r\n })\r\n .test(\"required connection\", \"Please enter connections\", value => {\r\n return !!value === true;\r\n })\r\n .test(\r\n \"value not zero\",\r\n \"Connections should be greater than zero.\",\r\n value => {\r\n return value !== 0;\r\n }\r\n )\r\n .test(\r\n \"target Connection Value\",\r\n \"Connection value should be greater than current value\",\r\n value => {\r\n return value >= store.getState().formData.targetconnections;\r\n }\r\n )\r\n .max(10, \"Connections should be less than 10 digits\"),\r\n \r\n\r\n customerid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select customer\", value => {\r\n return value !== \"Select Customer\";\r\n }),\r\n\r\n linkedinid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select Linkedin profile\", value => {\r\n return value !== \"Select LinkedIn Profile\";\r\n }),\r\n\r\n campaignmanagerid: Yup.string()\r\n .ensure()\r\n .test(\"customerid\", \"Please select campaign manager\", value => {\r\n return value !== \"Select Campaign Manager\";\r\n }),\r\n\r\n // timezone: Yup.string()\r\n // .ensure()\r\n // .test(\"customerid\", \"Please select time zone\", value => {\r\n // return value !== \"Select Timezone\";\r\n // })\r\n});\r\n","import gql from \"graphql-tag\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport swal from \"sweetalert\";\r\nexport const addNewCampaign = gql`\r\n mutation CampaignsCreate($obj: JSON) {\r\n CampaignsCreate(data: $obj) {\r\n id\r\n }\r\n }\r\n`;\r\nexport const getCampaignCustomers = gql`\r\n query($where: JSON) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n }\r\n }\r\n }\r\n`;\r\nexport const getlinkedinprofiles = gql`\r\n query($where: JSON) {\r\n allCustomerlinkedinprofiles(where: $where) {\r\n Customerlinkedinprofiles {\r\n id\r\n linkedinemail\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const getcampaignmanager = gql`\r\n query($where: JSON) {\r\n allUsersdata(where: $where) {\r\n Usersdata {\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const getcampaignmanagerassignto = gql`\r\n query {\r\n allUsersdata(where: { role: \"CAMPAIGNMANAGER\", order: \"firstName\" }) {\r\n Usersdata {\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const saveCampaignstep = gql`\r\n mutation CampaignstepsCreate($data: JSON) {\r\n CampaignstepsCreate(data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const getEditCampaign = id => `\r\n query {\r\n allCampaigns(where:{id: ${id},active:${1}}) {\r\n Campaigns {\r\n id\r\n name\r\n description\r\n customerid\r\n linkedinid\r\n startdate\r\n timezone\r\n salesNavigator\r\n opencontact\r\n targetconnections\r\n campaignadminid\r\n campaignmanagerid\r\n status\r\n active\r\n }\r\n }\r\n }\r\n`;\r\nexport const getEdit = async id =>\r\n await fetchMethod(getEditCampaign(id))\r\n .then(response => response.json().then(data => data))\r\n .catch(e => swal({ title: \"Unable to reach server\", icon: \"warning\" }));\r\n\r\nexport const getStepEdit = campaignid => `\r\n query {\r\n allCampaignsteps(where: { campaignid: ${campaignid},active:1 }) {\r\n Campaignsteps {\r\n id\r\n campaignid\r\n stepname\r\n sequence\r\n message\r\n limitperday\r\n daysdelay\r\n active\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const EditCampaignQuery = gql`\r\n mutation CampaignsUpsertWithWhere($id: JSON, $data: JSON) {\r\n CampaignsUpsertWithWhere(where: $id, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const EditCampaignStepsQuery = gql`\r\n mutation CampaignstepsUpsertWithWhere($id: JSON, $data: JSON) {\r\n CampaignstepsUpsertWithWhere(where: $id, data: $data) {\r\n id\r\n }\r\n }\r\n`;\r\nexport const getLimitPerDay = gql`\r\n query {\r\n allSystemsettings {\r\n Systemsettings {\r\n maxvisitperday\r\n maxfollowperday\r\n maxconnectionperday\r\n maxmessageperday\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst CampaignsSteps = id => `query {\r\n allCampaignsteps(where: { campaignid: ${id}, active: 1 }) {\r\n Campaignsteps {\r\n id\r\n campaignid\r\n stepname\r\n sequence\r\n message\r\n limitperday\r\n daysdelay\r\n active\r\n open\r\n }\r\n }\r\n}`;\r\n\r\n\r\nexport const getCampaignsSteps = async id =>\r\n await fetchMethod(CampaignsSteps(id))\r\n .then(response => response.json().then(data => data))\r\n .catch(e => {\r\n console.log(e);\r\n swal({ title: \"Unable to reach server\", icon: \"warning\" });\r\n });\r\n\r\n\r\nexport const contacts = id =>\r\n `query {\r\n allContacts(where:{id: ${id}}) {\r\n totalCount\r\n Contacts {\r\n id\r\n name\r\n fname\r\n invitationsent\r\n currentstatus\r\n linkedinid\r\n campaignid\r\n profileimage\r\n profileurl\r\n connectedon\r\n email\r\n industry\r\n dateofbirth\r\n location\r\n organization\r\n Contactworkflowhistoryfk (where:{status:\"SUCCESS\"}){\r\n Contactworkflowhistories{\r\n campaignstepid\r\n successflag\r\n executedon\r\n nextstep\r\n contactworkflowhistoryIbfk2rel{\r\n Campaignsteps{\r\n stepname\r\n \r\n }\r\n }\r\n }\r\n }\r\n Contactmessagesfk(where:{order:\"realmsgdatetime\"}){\r\nContactmessages{\r\ntype\r\nmessage\r\nmessagedatetime\r\nrealmsgdatetime\r\ncreatedon\r\n}\r\n}\r\n \r\n Campaigns: campaignIbfk4rel {\r\n Campaigns {\r\n name\r\n customerid\r\n status\r\n active\r\n Customers: customerIbfk1rel {\r\n Customers {\r\n company\r\n }\r\n }\r\n }\r\n }\r\n designation\r\n joiningdate\r\n country\r\n \r\n \r\n lasteducationinstitute\r\n twitter\r\n skype\r\n phonenumber\r\n phonetype\r\n numberoffollowers\r\n connectedon\r\n \r\n createdon\r\n contactstatus\r\n campaignstatus\r\n updatedon\r\n active\r\n \r\n }\r\n }\r\n }`;\r\n\r\nexport const getContactData = async id =>\r\n await fetchMethod(contacts(id))\r\n .then(response => response.json().then(data => data))\r\n .catch(e => {\r\n console.log(e);\r\n swal({ title: e, icon: \"warning\" });\r\n });\r\n\r\nexport const SendMessages = gql`\r\n mutation($data: JSON) {\r\n ContactmessagesCreate(data: $data) {\r\n id\r\n message\r\n createdon\r\n realmsgdatetime\r\n }\r\n }\r\n`;\r\n\r\nexport const Engaged = id =>\r\n `query {\r\n allContacts(where: {id: ${id}}) {\r\n totalCount\r\n Contacts {\r\n id\r\n name\r\n linkedinid\r\n campaignid\r\n profileimage\r\n profileurl\r\n contactstatus\r\n connectedon\r\n email\r\n invitationsent\r\n currentstatus\r\n industry\r\n dateofbirth\r\n location\r\n organization\r\n Contactworkflowhistoryfk(where: {status: \"SUCCESS\"}) {\r\n Contactworkflowhistories {\r\n campaignstepid\r\n successflag\r\n executedon\r\n contactworkflowhistoryIbfk2rel {\r\n Campaignsteps {\r\n stepname\r\n }\r\n }\r\n }\r\n }\r\n Contactmessagesfk(where:{order:\"realmsgdatetime\"}){\r\nContactmessages{\r\ntype\r\nmessage\r\nmessagedatetime\r\nrealmsgdatetime\r\ncreatedon\r\n}\r\n}\r\n Campaigns: campaignIbfk4rel {\r\n Campaigns {\r\n name\r\n customerid\r\n status\r\n active\r\n Customers: customerIbfk1rel {\r\n Customers {\r\n company\r\n }\r\n }\r\n }\r\n }\r\n designation\r\n joiningdate\r\n country\r\n lasteducationinstitute\r\n twitter\r\n skype\r\n phonenumber\r\n phonetype\r\n numberoffollowers\r\n createdon\r\n contactstatus\r\n campaignstatus\r\n updatedon\r\n active\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const dateFilter = gql`\r\n query($where: JSON) {\r\n allContactmessages(where: $where) {\r\n Contactmessages {\r\n contactid\r\n type\r\n messagedatetime\r\n contactmessagesIbfk1rel {\r\n Contacts {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const messageId = gql`\r\n query($where: JSON) {\r\n allContacts(where: $where) {\r\n totalCount\r\n Contacts {\r\n id\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const engagedData = gql`\r\n query($where: JSON) {\r\n allContacts(where: $where) {\r\n Contacts {\r\n id\r\n }\r\n }\r\n }\r\n`;\r\n\r\n//update fname in templist\r\nexport const UpdatefName = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n fname\r\n }\r\n }\r\n`;\r\n//update company in templist\r\nexport const UpdateCompany = gql`\r\n mutation TempcontactsdetailsUpsertWithWhere($where: JSON, $data: JSON) {\r\n TempcontactsdetailsUpsertWithWhere(where: $where, data: $data) {\r\n organization\r\n }\r\n }\r\n`;\r\n//update fname in contactlist\r\nexport const UpdatefNameContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n fname\r\n }\r\n }\r\n`;\r\n//update company in contactlist\r\nexport const UpdateCompanyContact = gql`\r\n mutation ContactsUpsertWithWhere($where: JSON, $data: JSON) {\r\n ContactsUpsertWithWhere(where: $where, data: $data) {\r\n organization\r\n }\r\n }\r\n`;\r\n\r\nexport const Profileid = id => {\r\n return `query{\r\n Campaigns(id: ${id}) {\r\n id\r\n name\r\n customercredentialsIbfk1rel{\r\n Customerlinkedinprofiles {\r\n id\r\n name\r\n hubspottoken\r\n salesforcetoken\r\n }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\nexport const plannedDate = `query($where:JSON)\r\n{\r\n allCampaignsteps(where:$where){\r\n Campaignsteps{\r\n stepname\r\n campaignid\r\n daysdelay\r\n sequence\r\n }\r\n}\r\n }`;\r\n","import React, { Component } from \"react\";\r\nimport \"react-table/react-table.css\";\r\nimport \"../tables/reactTable.css\";\r\nimport \"./CampaignTables.css\";\r\nimport { Button, Drawer } from \"@material-ui/core\";\r\nimport EditButton from \"../assets/editButton.png\";\r\nimport LeftArrow from \"../assets/leftArrow.png\";\r\nimport { getEdit, getStepEdit } from \"./campaignQueries\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { connect } from \"react-redux\";\r\nimport { SemipolarLoading } from \"react-loadingg\";\r\nimport EditCampaign from \"../Form/EditForm\";\r\n\r\nclass CampaignTablesComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n show: \"\",\r\n name: \"\",\r\n openForm: false,\r\n editableData: undefined,\r\n editCampaignStepsData: undefined\r\n };\r\n }\r\n EditDetails = reponse => {\r\n this.setState({ show: reponse });\r\n };\r\n\r\n campaignTabDetailFetch = response => {};\r\n CampaignName = res => {\r\n this.setState({ name: res });\r\n };\r\n\r\n toggleDrawer = (side, open, user) => async event => {\r\n let data = await getEdit(this.props.campaignid);\r\n\r\n this.setState(\r\n {\r\n editableData:\r\n data.data !== undefined &&\r\n data.data.allCampaigns !== null &&\r\n data.data.allCampaigns.Campaigns[0] !== null\r\n ? data.data.allCampaigns.Campaigns[0]\r\n : \"\"\r\n },\r\n () => this.props.editFormData(this.state.editableData)\r\n );\r\n\r\n fetchMethod(getStepEdit(this.props.campaignid))\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState(\r\n {\r\n editCampaignStepsData:\r\n res.data !== undefined &&\r\n res.data.allCampaignsteps !== null &&\r\n res.data.allCampaignsteps.Campaignsteps !== undefined\r\n ? res.data.allCampaignsteps.Campaignsteps\r\n : \"\"\r\n },\r\n () => {\r\n this.props.onEditMode(true);\r\n this.props.getId(this.state.editableData.id);\r\n if (this.child.current !== null && this.props.campaignid) {\r\n this.child.current.fetchDetails(this.props.campaignid);\r\n }\r\n this.state.editCampaignStepsData.sort(function(a, b) {\r\n return a.sequence - b.sequence;\r\n });\r\n return this.props.OnEdit(this.state.editCampaignStepsData);\r\n }\r\n );\r\n })\r\n .catch(e => console.log(e));\r\n\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \"<\"\r\n \r\n \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\"\r\n ? this.state.name + \" \"\r\n : this.props.selectedCampaignName}{\" \"}\r\n Dashboard\r\n \r\n
    \r\n\r\n {this.state.show === true ? (\r\n \r\n {localStorage.getItem(\"role\") !== \"CUSTOMER\" ? (\r\n }\r\n >\r\n E\r\n dit\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n {this.state.editableData ? (\r\n \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n editFormData: data => dispatch({ type: \"Form_data\", payload: data }),\r\n OnEdit: editCampaignStepsData =>\r\n dispatch({ type: \"Edit_Step_Data\", StepId: editCampaignStepsData }),\r\n onEditMode: editMode =>\r\n dispatch({ type: \"IsEditModeable\", editMode: editMode }),\r\n getId: id => dispatch({ type: \"GetId\", id: id })\r\n };\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps)(CampaignTablesComponent);\r\n","import React, { Component } from \"react\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport SearchCampaign from \"./SearchCampaign\";\r\nimport { editcampaignValidation, editCampaignForm } from \"./CampaignConfig\";\r\nimport \"./campaign.css\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { thCampaignsArray2 } from \"../variables/THeaders\";\r\nimport { CampaignInfo } from \"../../Queries\";\r\nimport ReactTableComponent from \"../tables/ReactTable\";\r\nimport CampaignTablesComponent from \"./CampaignTables\";\r\n// import Check from \"../../Components/assets/check.png\";\r\n// import Cross from \"../../Components/assets/cross.png\";\r\n\r\nimport FiberManualRecordIcon from \"@material-ui/icons/FiberManualRecord\";\r\nimport { EditRunningCampaignQuery } from \"../../Queries\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport {\r\n getCampaignCustomers,\r\n getcampaignmanager,\r\n getcampaignmanagerassignto,\r\n EditCampaignQuery\r\n} from \"../Campaign/campaignQueries\";\r\n\r\nclass Campaign extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n search: \"\",\r\n header: \"Campaign Monitoring\",\r\n loading: false,\r\n campaigns: [],\r\n custdata: [],\r\n custdata1: [],\r\n campmanager: [],\r\n campmanager1: [],\r\n linkedinProfile: [],\r\n addsteps: [],\r\n openForm: false,\r\n openEdit: false,\r\n clear: [],\r\n totalCount: 0,\r\n limit: 50,\r\n filterColumn: \"\",\r\n shortfilter: false,\r\n offset: 50,\r\n searchFlag: false,\r\n clickToSearch: false,\r\n showTab: false,\r\n campaignName: \"\",\r\n campaingnEditid: 0,\r\n campaignTempListData: [],\r\n editCampaignData: [],\r\n editCampaignStepsData: [],\r\n Row: [],\r\n assignTo: [],\r\n selected: {},\r\n campaignId: \"\",\r\n customerId: \"\",\r\n managerId: \"\",\r\n Status: \"LIVE\",\r\n lastResponse: undefined,\r\n customerfilter: \"\"\r\n };\r\n }\r\n\r\n toggleDrawer = (side, open) => event => {\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n this.props.OnClear(this.state.clear);\r\n this.setState({ ...this.state, [side]: open });\r\n };\r\n\r\n setLinkedinData = data => {\r\n this.setState({ linkedinProfile: data });\r\n };\r\n\r\n componentDidMount() {\r\n localStorage.setItem(\"path\", \"/Monitoring\");\r\n this.getlistData();\r\n }\r\n\r\n getlistData = () => {\r\n const filter1 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n active: 1,\r\n createdby: localStorage.getItem(\"id\"),\r\n order: \"company asc\"\r\n }\r\n }\r\n : { where: { active: 1, order: \"company asc\" } };\r\n fetchMethod(getCampaignCustomers, filter1)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ custdata: res.data.allCustomers.Customers }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter2 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n order: \"company asc\",\r\n createdby: localStorage.getItem(\"id\")\r\n }\r\n }\r\n : { where: { order: \"company asc\" } };\r\n fetchMethod(getCampaignCustomers, filter2)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ custdata1: res.data.allCustomers.Customers }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n role: \"CAMPAIGNMANAGER\",\r\n status: 1,\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n role: \"CAMPAIGNMANAGER\",\r\n status: 1,\r\n order: \"firstName asc\"\r\n }\r\n };\r\n\r\n fetchMethod(getcampaignmanager, filter)\r\n .then(res => res.json())\r\n .then(res => {\r\n let data =\r\n res.data.allUsersdata !== undefined && res.data.allUsersdata !== null\r\n ? res.data.allUsersdata.Usersdata\r\n : \"\";\r\n\r\n this.setState({ campmanager: data }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n const filter3 =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n createdby: localStorage.getItem(\"id\"),\r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n }\r\n : {\r\n where: {\r\n role: \"CAMPAIGNMANAGER\",\r\n order: \"firstName asc\"\r\n }\r\n };\r\n\r\n fetchMethod(getcampaignmanager, filter3)\r\n .then(res => res.json())\r\n .then(res => {\r\n let data =\r\n res.data.allUsersdata !== undefined && res.data.allUsersdata !== null\r\n ? res.data.allUsersdata.Usersdata\r\n : \"\";\r\n\r\n this.setState({ campmanager1: data }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n\r\n fetchMethod(getcampaignmanagerassignto)\r\n .then(res => res.json())\r\n .then(res => {\r\n this.setState({ assignTo: res.data.allUsersdata.Usersdata }, () => {});\r\n })\r\n .catch(e => console.log(e));\r\n this.props.onHandleCampaign();\r\n this.props.onHandleSidebarText(this.state.header);\r\n };\r\n setListData = response => {\r\n this.setState({\r\n campaigns: response.data.allCampaigns.Campaigns,\r\n totalCount: response.data.allCampaigns.totalCount\r\n });\r\n };\r\n\r\n SetLimit = limit => {\r\n this.setState({\r\n limit\r\n });\r\n };\r\n\r\n SetOffset = offset => {\r\n this.setState({ offset });\r\n };\r\n\r\n SearchClick = () => {\r\n if (this.state.searchFlag === true) {\r\n this.setState({ clickToSearch: true }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n } else {\r\n this.setState({ clickToSearch: false }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n }\r\n };\r\n\r\n setCampaignRowClick = rowInfo => {};\r\n\r\n backToCampaignList = () => {\r\n this.setState(\r\n {\r\n showTab: false,\r\n customerId: \"\",\r\n search: \"\",\r\n managerId: \"\",\r\n Status: \"LIVE\"\r\n },\r\n () => {\r\n this.props.LastResponse(this.state.lastResponse);\r\n }\r\n );\r\n this.props.onEditMode(false);\r\n };\r\n\r\n setmanagerId = response => {\r\n response === \"Select\"\r\n ? this.setState({ managerId: \"\" })\r\n : this.setState(\r\n {\r\n managerId: response\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n }\r\n );\r\n };\r\n handlerunningCampaignFilter = (campaigns, status) => {\r\n let updateStatus = {\r\n where: { id: campaigns.id },\r\n data: {\r\n runningCampaign: 0,\r\n updatedon: Date(Date.now()),\r\n updatedby: localStorage.getItem(\"id\")\r\n }\r\n };\r\n fetchMethod(EditRunningCampaignQuery, updateStatus)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n // Update the campaigns data in the component's state\r\n this.setState(prevState => (\r\n {\r\n campaigns: prevState.campaigns.map(campaign => {\r\n if (campaign.id === campaigns.id) {\r\n return { ...campaign, runningCampaign: 0, };\r\n }\r\n return campaign;\r\n })\r\n }\r\n ))\r\n });\r\n };\r\n NameFilter = () => {\r\n this.setState({ filterColumn: \"name asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n NameFilter1 = () => {\r\n this.setState({ filterColumn: \"name desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n StatusFilter = () => {\r\n this.setState({ filterColumn: \"status asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n StatusFilter1 = () => {\r\n this.setState({ filterColumn: \"status desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n DateFilter = () => {\r\n this.setState({ filterColumn: \"startdate asc\", shortfilter: true }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n DateFilter1 = () => {\r\n this.setState({ filterColumn: \"startdate desc\", shortfilter: false }, () =>\r\n this.child.current.searchFetch(this.state.limit, this.state.offset)\r\n );\r\n };\r\n\r\n statusChange = response => {\r\n this.setState(\r\n {\r\n Status: response\r\n },\r\n () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n }\r\n );\r\n };\r\n setCustomerId = response => {\r\n this.setState({ customerId: response }, () => {\r\n this.child.current.searchFetch(this.state.limit, this.state.offset);\r\n });\r\n };\r\n handleSearchChange = response => {\r\n this.setState({ search: response });\r\n };\r\n handleSearch = response => {\r\n this.setState({ searchFlag: response }, () => this.SearchClick());\r\n };\r\n handleonclickSearch = response => {\r\n this.setState(\r\n { clickToSearch: response }\r\n // , () => {\r\n // this.SearchClick(this.state.searchFlag);\r\n // }\r\n );\r\n };\r\n\r\n onNameClick = campaigns => {\r\n this.setState({ Row: campaigns });\r\n this.setState({\r\n showTab: true,\r\n campaignName: campaigns.name,\r\n campaignId: campaigns.id,\r\n customerId: campaigns.customerid\r\n });\r\n };\r\n\r\n render() {\r\n const search = this.state.clickToSearch ? this.state.search : \"\";\r\n const like = `%${search}%`;\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? this.state.Status === \"ALL\"\r\n ? this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n status: this.state.Status,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n status: this.state.Status,\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n status: this.state.Status,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n status: this.state.Status,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CUSTOMER\"\r\n ? this.state.Status === \"ALL\"\r\n ? this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n status: this.state.Status,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n customerid: localStorage.getItem(\"customer\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n status: this.state.Status,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n status: this.state.Status,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? this.state.Status === \"ALL\"\r\n ? this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n status: this.state.Status,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n status: this.state.Status,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.Status === \"ALL\"\r\n ? this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" &&\r\n this.state.customerId !== \"\" &&\r\n this.state.managerId !== \"All\" &&\r\n this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n customerid: this.state.customerId,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n status: this.state.Status,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.customerId !== \"All\" && this.state.customerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n customerid: this.state.customerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : this.state.managerId !== \"All\" && this.state.managerId !== \"\"\r\n ? {\r\n where: {\r\n status: this.state.Status,\r\n campaignmanagerid: this.state.managerId,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n }\r\n : {\r\n where: {\r\n status: this.state.Status,\r\n order: this.state.filterColumn,\r\n and: [\r\n {\r\n or: [{ name: { like: like, options: \"i\" } }]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n const filterSort = [\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Reset\r\n \r\n );\r\n },\r\n accessor: \"OnOff\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n System IP\r\n \r\n );\r\n },\r\n accessor: \"systemIP\"\r\n },\r\n {\r\n Header: \"Customer\",\r\n accessor: \"Customer\"\r\n },\r\n {\r\n Header: \"Profile\",\r\n accessor: \"Profile\"\r\n },\r\n // {\r\n // Header: obj => {\r\n // return (\r\n // \r\n // Campaign\r\n // \r\n // );\r\n // },\r\n // accessor: \"Name\"\r\n // },\r\n {\r\n Header: \"Campaign\",\r\n accessor: \"Name\",\r\n Cell: ({ row }) => {\r\n const weekReqFree = row && row.weekreqfree;\r\n const backgroundColor = weekReqFree && weekReqFree < 0 ? \"#FFBF00\" : \"inherit\";\r\n const name = row && row.Name;\r\n \r\n return (\r\n \r\n {name}\r\n \r\n );\r\n }\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Status\r\n \r\n );\r\n },\r\n accessor: \"status\",\r\n Cell: row => {\r\n row.styles[\"color\"] =\r\n row.value === \"LIVE\"\r\n ? \"#03AC58\"\r\n : row.value === \"PAUSED\"\r\n ? \"#FFA500\"\r\n : row.value === \"COMPLETED\"\r\n ? \"#00ff00\"\r\n : \"grey\";\r\n return row.value;\r\n }\r\n },\r\n {\r\n Header: \"Campaign Type \",\r\n accessor: \"type\"\r\n },\r\n {\r\n Header: \"Invites (daily)\",\r\n accessor: \"invitelimit\"\r\n },\r\n {\r\n Header: \"Free Contacts\",\r\n accessor: \"freecontact\"\r\n },\r\n {\r\n Header: \"DATA Status\",\r\n accessor: \"ConStatus\",\r\n Cell: ({ row }) => {\r\n const freecontact = row && row.freecontact;\r\n const invitelimit = row && row.invitelimit;\r\n var name =\"\";\r\n var ratio = freecontact / invitelimit;\r\n let backgroundColor = \"\"; // Change const to let here\r\n \r\n if (isNaN(ratio)) {\r\n name = \"n/a\";\r\n } else if (Math.floor(ratio) <= 2) {\r\n backgroundColor = \"Red\";\r\n name = \"≤ 2 Days\";\r\n } else if (Math.floor(ratio) > 2 && Math.floor(ratio) <= 5) {\r\n backgroundColor = \"Yellow\";\r\n name = \"≤ 5 Days\";\r\n } else if (Math.floor(ratio) > 5 && Math.floor(ratio) <= 9) {\r\n backgroundColor = \"#00B050\";\r\n name = \"≤ 9 Days\";\r\n } else {\r\n backgroundColor = \"#4F6228\";\r\n name = \"≥ 10 Days\";\r\n }\r\n \r\n return (\r\n \r\n {name}\r\n \r\n );\r\n }\r\n },\r\n // {\r\n // Header: \"DATA Status\",\r\n // accessor: \"ConStatus\",\r\n // Cell: ({ row }) => {\r\n // const freecontact = row && row.freecontact;\r\n // const invitelimit = row && row.invitelimit;\r\n // var ratio = freecontact / invitelimit;\r\n // const backgroundColor = \"\";\r\n // if (Math.floor(ratio) <= 2) {\r\n // backgroundColor = \"Red\";\r\n // } else if (Math.floor(ratio) > 2 && Math.floor(ratio) <= 5) {\r\n // backgroundColor = \"Yellow\";\r\n // } else if (Math.floor(ratio) > 5 && Math.floor(ratio) <= 9) {\r\n // backgroundColor = \"Green\";\r\n // } else {\r\n // backgroundColor = \"Blue\";\r\n // }\r\n \r\n \r\n // return (\r\n // \r\n // {name}\r\n // \r\n // );\r\n // }\r\n // },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Start Date\r\n \r\n );\r\n },\r\n accessor: \"startDate\"\r\n },\r\n // {\r\n // Header: obj => {\r\n // return (\r\n // \r\n // System IP\r\n // \r\n // );\r\n // },\r\n // accessor: \"systemIP\"\r\n // },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Login Time\r\n \r\n );\r\n },\r\n accessor: \"loginTime\"\r\n },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Logout Time\r\n \r\n );\r\n },\r\n accessor: \"logoutTime\"\r\n },\r\n\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Running\r\n \r\n );\r\n },\r\n accessor: \"runonWeb\"\r\n },\r\n {\r\n Header: \"Campaign Target \",\r\n accessor: \"targetconnections\"\r\n },\r\n {\r\n Header: \"# Invites\",\r\n accessor: \"invitedcount\"\r\n },\r\n {\r\n Header: \"# Connected\",\r\n accessor: \"connectedcount\"\r\n },\r\n {\r\n Header: \"% Connected\",\r\n accessor: \"connectedper\"\r\n },\r\n {\r\n Header: \"# Engaged\",\r\n accessor: \"engagedcount\"\r\n },\r\n {\r\n Header: \"% Engaged\",\r\n accessor: \"engagedper\"\r\n },\r\n {\r\n Header: \"# Leads\",\r\n accessor: \"leadcount\"\r\n },\r\n {\r\n Header: \"% Leads\",\r\n accessor: \"leadper\"\r\n },\r\n\r\n //Campaign Target\r\n // {\r\n // Header: obj => {\r\n // return (\r\n // \r\n // Reset\r\n // \r\n // );\r\n // },\r\n // accessor: \"OnOff\"\r\n // },\r\n {\r\n Header: obj => {\r\n return (\r\n \r\n Error\r\n \r\n );\r\n },\r\n accessor: \"Error\"\r\n }\r\n ];\r\n let campaigns = [...this.state.campaigns];\r\n\r\n\r\n campaigns.map(campaigns => {\r\n let date = campaigns.startdate\r\n .split(\"T\")[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\");\r\n let datearray = date.split(\"/\");\r\n\r\n campaigns.startDate =\r\n datearray[0] + \"/\" + datearray[1] + \"/\" + datearray[2];\r\n campaigns.Name =
    {campaigns.name}
    ;\r\n\r\n if (\r\n campaigns.logintime !== undefined &&\r\n campaigns.logintime !== null &&\r\n campaigns.logintime\r\n ) {\r\n campaigns.loginTime = new Date(\r\n campaigns.logintime\r\n ).toLocaleString(\"en-GB\", { hour12: false });\r\n }\r\n if (\r\n \r\n campaigns.invitelimit !== undefined &&\r\n campaigns.invitelimit !== null &&\r\n campaigns.invitelimit\r\n ) {\r\n campaigns.todayStatus = (\r\n campaigns.invitetoday +\"/\"+ campaigns.invitelimit\r\n ).toString();\r\n }\r\n\r\n\r\n // if (\r\n // campaigns.weekreqfree !== undefined &&\r\n // campaigns.weekreqfree !== null &&\r\n // campaigns.weekreqfree\r\n // ) {\r\n // if (campaigns.weekreqfree < 0) {\r\n // return 'negative-row';\r\n // }\r\n // }\r\n \r\n\r\n if (\r\n campaigns.systemipadd !== undefined &&\r\n campaigns.systemipadd !== null &&\r\n campaigns.systemipadd\r\n ) {\r\n campaigns.systemIP = campaigns.systemipadd;\r\n }\r\n\r\n if (\r\n campaigns.logouttime !== undefined &&\r\n campaigns.logouttime !== null &&\r\n campaigns.logouttime\r\n ) {\r\n campaigns.logoutTime = new Date(\r\n campaigns.logouttime\r\n ).toLocaleString(\"en-GB\", { hour12: false });\r\n }\r\n\r\n if (\r\n campaigns.runningCampaign == undefined ||\r\n campaigns.runningCampaign == null ||\r\n campaigns.runningCampaign == \"\"\r\n ) {\r\n campaigns.runonWeb = (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n\r\n } else {\r\n campaigns.runonWeb = (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n campaigns.ConStatus = calculateDataStatus(campaigns.freecontact, campaigns.invitelimit);\r\n function calculateDataStatus(freecontact, Iinvitelimit) {\r\n var result;\r\n var ratio = freecontact / Iinvitelimit;\r\n \r\n if (isNaN(ratio)) {\r\n result = \"n/a\";\r\n } else if (Math.floor(ratio) <= 2) {\r\n result = \"≤ 2 Days\";\r\n } else if (Math.floor(ratio) > 2 && Math.floor(ratio) <= 5) {\r\n result = \"≤ 5 Days\";\r\n } else if (Math.floor(ratio) > 5 && Math.floor(ratio) <= 9) {\r\n result = \"≤ 9 Days\";\r\n } else {\r\n result = \"≥ 10 Days\";\r\n }\r\n \r\n return result;\r\n }\r\n \r\n campaigns.OnOff = (\r\n
    \r\n \r\n campaigns.runningCampaign === 1\r\n ? this.handlerunningCampaignFilter(\r\n campaigns,\r\n campaigns.runningCampaign\r\n )\r\n : \"\"\r\n }\r\n name=\"checkedA\"\r\n inputProps={{ \"aria-label\": \"secondary checkbox\" }}\r\n disabled={campaigns.runningCampaign === 0}\r\n />\r\n
    \r\n );\r\n\r\n if (\r\n campaigns.error !== undefined &&\r\n campaigns.error !== null &&\r\n campaigns.error\r\n ) {\r\n campaigns.Error = campaigns.error;\r\n }\r\n\r\n campaigns.Customer =\r\n campaigns.customerIbfk1rel !== undefined &&\r\n campaigns.customerIbfk1rel !== null\r\n ? campaigns.customerIbfk1rel.Customers.map(company => {\r\n return
    {company.company}
    ;\r\n })\r\n : \"\";\r\n\r\n \r\n campaigns.Profile =\r\n campaigns.customercredentialsIbfk1rel !== undefined &&\r\n campaigns.customercredentialsIbfk1rel !== null\r\n ? campaigns.customercredentialsIbfk1rel.Customerlinkedinprofiles.map(\r\n name => {\r\n return (\r\n \r\n {name.name}\r\n \r\n );\r\n }\r\n )\r\n : \"\";\r\n\r\n \r\n return null;\r\n });\r\n\r\n return (\r\n
    \r\n {this.state.showTab ? (\r\n \r\n ) : (\r\n \r\n
    \r\n
    \r\n

    Monitoring

    \r\n

    \r\n Total {this.state.totalCount} Records\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {}}\r\n clickToSearch={this.state.clickToSearch}\r\n />\r\n
    \r\n\r\n \r\n )}\r\n
    \r\n \r\n );\r\n \r\n }\r\n}\r\nconst mapStateToProps = state => {\r\n return {\r\n showTab: state.showTab,\r\n formData: state.formData\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n editFormData: data => dispatch({ type: \"Form_data\", payload: data }),\r\n OnEdit: editCampaignStepsData =>\r\n dispatch({ type: \"Edit_Step_Data\", StepId: editCampaignStepsData }),\r\n OnClear: clear => dispatch({ type: \"Clear_ADD_STEP\", stepData: clear }),\r\n onEditMode: editMode =>\r\n dispatch({ type: \"IsEditModeable\", editMode: editMode }),\r\n getId: id => dispatch({ type: \"GetId\", id: id }),\r\n onHandleSidebarText: data =>\r\n dispatch({\r\n type: \"HANDLE_SIDEBAR_TEXT\",\r\n payload: data\r\n }),\r\n LastResponse: response =>\r\n dispatch({ type: \"Last_Response\", payload: response }),\r\n Customer_Filter: filter =>\r\n dispatch({ type: \"Customer_Filter\", payload: filter }),\r\n onHandleCampaign: data =>\r\n dispatch({ type: \"Campaign_Detail\", payload: null })\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Campaign);\r\n","import React from \"react\";\r\n\r\nimport {\r\n Settings,\r\n People,\r\n FiberDvr,\r\n Dvr,\r\n LinkedCamera,\r\n SettingsInputAntenna,\r\n ViewWeek\r\n} from \"@material-ui/icons\";\r\nimport SideBarMonitoring from \"../assets/SideBarMonitoring.png\";\r\nimport setting from \"../assets/setting.png\";\r\nimport HomePage from \"../Home/Home\";\r\nimport Users from \"../Users/Users\";\r\nimport Customers from \"../Customers/Customer\";\r\nimport Contacts from \"../Contacts/contact\";\r\nimport Campaign from \"../Campaign/Campaign\";\r\nimport Leads from \"../Leads/Leads\";\r\nimport SystemSettings from \"../SystemSettings/SystemSettings\";\r\nimport Monitoring from \"../Monitoring/Campaign\";\r\n\r\nexport const routeConfig = [\r\n {\r\n title: \"Home\",\r\n path: \"/\",\r\n pageHeader: \"Home\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"systemSetupIcon\"\r\n },\r\n {\r\n title: \"Users\",\r\n path: \"/Users\",\r\n pageHeader: \"User Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"clientsIcon\"\r\n },\r\n {\r\n title: \"Customers\",\r\n path: \"/Customers\",\r\n pageHeader: \"Customer Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"siteTypeIcon\"\r\n },\r\n {\r\n title: \"Campaigns\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n {\r\n title: \"ABM\",\r\n path: \"/ABM\",\r\n pageHeader: \"Contacts\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"dvrSetup\"\r\n },\r\n // {\r\n // title: \"Contacts\",\r\n // path: \"/contacts\",\r\n // pageHeader: \"Contacts\",\r\n // exact: true,\r\n // icon: ,\r\n // main: () => ,\r\n // customClass: \"dvrSetup\"\r\n // },\r\n {\r\n title: \"Leads\",\r\n path: \"/leads\",\r\n pageHeader: \"Leads Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"cameraSetupIcon\"\r\n },\r\n\r\n {\r\n title: \"Monitoring\",\r\n path: \"/Monitoring\",\r\n pageHeader: \"Monitor Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"MonitoringSetupIcon\"\r\n },\r\n {\r\n title: (\r\n \r\n ),\r\n path: \"/setting\",\r\n pageHeader: \"System Settings\",\r\n exact: true,\r\n // icon: (\r\n // \r\n // ),\r\n icon: ,\r\n main: () => ,\r\n customClass: \"panelMgmtIcon\"\r\n }\r\n];\r\n\r\nexport const routeAdmin = [\r\n {\r\n title: \"Home\",\r\n path: \"/\",\r\n pageHeader: \"Home\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"systemSetupIcon\"\r\n },\r\n {\r\n title: \"Users\",\r\n path: \"/Users\",\r\n pageHeader: \"User Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"clientsIcon\"\r\n },\r\n {\r\n title: \"Customers\",\r\n path: \"/Customers\",\r\n pageHeader: \"Customer Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"siteTypeIcon\"\r\n },\r\n {\r\n title: \"Campaigns\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n // {\r\n // title: \"ABM\",\r\n // path: \"/ABM\",\r\n // pageHeader: \"Contacts\",\r\n // exact: true,\r\n // icon: ,\r\n // main: () => ,\r\n // customClass: \"dvrSetup\"\r\n // },\r\n\r\n {\r\n title: \"Leads\",\r\n path: \"/leads\",\r\n pageHeader: \"Leads Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"cameraSetupIcon\"\r\n }\r\n];\r\nexport const routeAdmin2 = [\r\n {\r\n title: \"Home\",\r\n path: \"/\",\r\n pageHeader: \"Home\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"systemSetupIcon\"\r\n },\r\n {\r\n title: \"Users\",\r\n path: \"/Users\",\r\n pageHeader: \"User Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"clientsIcon\"\r\n },\r\n {\r\n title: \"Customers\",\r\n path: \"/Customers\",\r\n pageHeader: \"Customer Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"siteTypeIcon\"\r\n },\r\n {\r\n title: \"Campaigns\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n {\r\n title: \"ABM\",\r\n path: \"/ABM\",\r\n pageHeader: \"Contacts\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"dvrSetup\"\r\n },\r\n\r\n {\r\n title: \"Leads\",\r\n path: \"/leads\",\r\n pageHeader: \"Leads Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"cameraSetupIcon\"\r\n }\r\n];\r\nexport const routeCustomer = [\r\n {\r\n title: \"Home\",\r\n path: \"/\",\r\n pageHeader: \"Home\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"systemSetupIcon\"\r\n },\r\n\r\n {\r\n title: \"Campaigns\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n // {\r\n // title: \"ABM\",\r\n // path: \"/ABM\",\r\n // pageHeader: \"Contacts\",\r\n // exact: true,\r\n // icon: ,\r\n // main: () => ,\r\n // customClass: \"dvrSetup\"\r\n // },\r\n {\r\n title: \"Leads\",\r\n path: \"/leads\",\r\n pageHeader: \"Leads Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"cameraSetupIcon\"\r\n }\r\n];\r\nexport const routeCustomer2 = [\r\n {\r\n title: \"Home\",\r\n path: \"/\",\r\n pageHeader: \"Home\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"systemSetupIcon\"\r\n },\r\n\r\n {\r\n title: \"Campaigns\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n {\r\n title: \"ABM\",\r\n path: \"/ABM\",\r\n pageHeader: \"Contacts\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"dvrSetup\"\r\n },\r\n {\r\n title: \"Leads\",\r\n path: \"/leads\",\r\n pageHeader: \"Leads Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"cameraSetupIcon\"\r\n }\r\n];\r\nexport const routeCampaign = [\r\n {\r\n title: \"Home\",\r\n path: \"/\",\r\n pageHeader: \"Home\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"systemSetupIcon\"\r\n },\r\n\r\n {\r\n title: \"Campaigns\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n // {\r\n // title: \"ABM\",\r\n // path: \"/ABM\",\r\n // pageHeader: \"Contacts\",\r\n // exact: true,\r\n // icon: ,\r\n // main: () => ,\r\n // customClass: \"dvrSetup\"\r\n // },\r\n {\r\n title: \"Leads\",\r\n path: \"/leads\",\r\n pageHeader: \"Leads Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"cameraSetupIcon\"\r\n }\r\n];\r\nexport const routeCampaign2 = [\r\n {\r\n title: \"Home\",\r\n path: \"/\",\r\n pageHeader: \"Home\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"systemSetupIcon\"\r\n },\r\n\r\n {\r\n title: \"Campaigns\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n {\r\n title: \"ABM\",\r\n path: \"/ABM\",\r\n pageHeader: \"Contacts\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"dvrSetup\"\r\n },\r\n {\r\n title: \"Leads\",\r\n path: \"/leads\",\r\n pageHeader: \"Leads Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"cameraSetupIcon\"\r\n }\r\n];\r\nexport const DashboardPath2 = [\r\n {\r\n title: \"CAMPAIGNS\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n }\r\n];\r\nexport const DashboardPath = [\r\n {\r\n title: \"CAMPAIGNS\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n {\r\n title: \"CONNECT RATE\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n {\r\n title: \"% ENGAGED\",\r\n path: \"/campaigns\",\r\n pageHeader: \"Campaign Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"DvrModalIcon\"\r\n },\r\n {\r\n title: \"% LEADS\",\r\n path: \"/leads\",\r\n pageHeader: \"Leads Management\",\r\n exact: true,\r\n icon: ,\r\n main: () => ,\r\n customClass: \"cameraSetupIcon\"\r\n }\r\n];\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const changePassword = gql`\r\n mutation UsersdataChangePassword(\r\n $id: JSON\r\n $oldPassword: String\r\n $newPassword: String\r\n ) {\r\n UsersdataChangePassword(\r\n id: $id\r\n oldPassword: $oldPassword\r\n newPassword: $newPassword\r\n )\r\n }\r\n`;\r\n","import React, { useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport swal from \"sweetalert\";\r\nimport {\r\n Menu,\r\n MenuItem,\r\n IconButton,\r\n CssBaseline,\r\n AppBar,\r\n Avatar,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Button,\r\n DialogContentText,\r\n List,\r\n ListItem,\r\n ListItemText,\r\n Typography,\r\n ListItemIcon,\r\n Drawer\r\n} from \"@material-ui/core\";\r\nimport {\r\n editProfile,\r\n addPasswordForm,\r\n getName,\r\n editUsersValidation,\r\n changePasswordValidation\r\n} from \"./SideBarConfig\";\r\nimport { getProfileImageUrl } from \"../../config\";\r\n\r\nimport \"./Sidebar.css\";\r\nimport { MoreVert, Satellite } from \"@material-ui/icons\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport {\r\n routeConfig,\r\n routeAdmin,\r\n routeAdmin2,\r\n routeCustomer,\r\n routeCustomer2,\r\n routeCampaign,\r\n routeCampaign2,\r\n Routes\r\n} from \"./RouteContent\";\r\nimport Logo from \"../assets/logo.png\";\r\nimport {\r\n BrowserRouter as Router,\r\n Redirect,\r\n Route,\r\n Switch,\r\n Link\r\n} from \"react-router-dom\";\r\n//import { fetchMethod } from \"../FetchMethod\";\r\n\r\nimport AttachFileIcon from \"@material-ui/icons/AttachFile\";\r\n//import { API_URL } from \"../Config\";\r\nimport { changePassword } from \"./SidebarQuery\";\r\nimport ChangePassword from \"../Form/EditForm\";\r\nimport \"../ChangePassword/changePassword.css\";\r\nimport EditProfile from \"../Form/EditForm\";\r\nimport { updateUser } from \"../Users/Userquery\";\r\nimport \"../Profile/editProfile.css\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport Profile from \"../assets/profile1.png\";\r\nimport Password from \"../assets/password1.png\";\r\nimport Logout from \"../assets/log_out.png\";\r\n\r\nimport { FadeLoader } from \"react-spinners\";\r\nfunction MiniDrawer(props) {\r\n const loggedInUserId = localStorage.getItem(\"id\");\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [Pdf, setPdf] = React.useState(null);\r\n const [openModal, setopenModal] = React.useState(false);\r\n const [selectPdf, setselectPdf] = React.useState(undefined);\r\n const [disableViewpdf, setdisableViewpdf] = React.useState(false);\r\n useEffect(() => {\r\n if (\r\n loggedInUserId !== undefined &&\r\n loggedInUserId !== null &&\r\n loggedInUserId !== \"\"\r\n ) {\r\n fetchMethod(getName(loggedInUserId))\r\n .then(res => res.json())\r\n .then(res => {\r\n if (\r\n res.data !== undefined &&\r\n res.data.allUsersdata !== undefined &&\r\n res.data.allUsersdata !== null &&\r\n res.data.allUsersdata.Usersdata.length > 0\r\n ) {\r\n setState({ ...state, name: res.data.allUsersdata.Usersdata[0] });\r\n }\r\n })\r\n .catch(e => {\r\n swal({ title: \"Unable to reach server\", icon: \"warning\" }).then(\r\n () => {\r\n localStorage.clear();\r\n window.location = \"/\";\r\n }\r\n );\r\n });\r\n }\r\n }, []);\r\n useEffect(() => {\r\n if (\r\n loggedInUserId === undefined ||\r\n loggedInUserId === null ||\r\n loggedInUserId === \"\"\r\n ) {\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"id\");\r\n localStorage.removeItem(\"email\");\r\n // }\r\n // props.firstLetterNameText(state.name);\r\n // if (state.name === undefined && state.name === null && state.name === \"\") {\r\n // localStorage.removeItem(\"token\");\r\n // localStorage.removeItem(\"id\");\r\n // localStorage.removeItem(\"email\");\r\n }\r\n });\r\n const [state, setState] = React.useState({\r\n right1: false,\r\n right: false,\r\n showTab: false,\r\n status: \"LIVE\",\r\n name: [],\r\n getEditProfileData: [],\r\n loading: false,\r\n customerId: \"\",\r\n lastResponse: undefined\r\n });\r\n const [successMessage, setMessage] = React.useState({\r\n open: false,\r\n severity: \"\",\r\n alertmsg: \"\",\r\n loading: false,\r\n isFileUpload: false\r\n });\r\n const [error, setError] = React.useState(\"\");\r\n const [loading, setLoading] = React.useState(false);\r\n const isMenuOpen = Boolean(anchorEl);\r\n const isPdfOpen = Boolean(Pdf);\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const handlePdfClose = () => {\r\n setPdf(null);\r\n };\r\n /************************Timer for 25 minutes *****************************/\r\n\r\n // useEffect(() => {\r\n\r\n // window.onbeforeunload = confirmExit;\r\n // function confirmExit()\r\n // {\r\n // if (window.performance.navigation.type !==window.performance.navigation.TYPE_RELOAD)\r\n // localStorage.clear()\r\n // }\r\n // }, [])\r\n const { initialMinute = 5, initialSeconds = 0 } = props;\r\n const [minutes, setMinutes] = React.useState(initialMinute);\r\n const [seconds, setSeconds] = React.useState(initialSeconds);\r\n // useEffect(() => {\r\n // let myInterval = setInterval(() => {\r\n // if (seconds > 0) {\r\n // setSeconds(seconds - 1);\r\n // }\r\n // if (seconds === 0) {\r\n // if (minutes === 0) {\r\n // clearInterval(myInterval);\r\n // // handleLogOut();\r\n // } else {\r\n // setMinutes(minutes - 1);\r\n // setSeconds(59);\r\n // }\r\n // }\r\n // }, 1000);\r\n // return () => {\r\n // clearInterval(myInterval);\r\n // };\r\n // });\r\n\r\n let timer = 0;\r\n const secondsToTime = secs => {\r\n let hours = Math.floor(secs / (60 * 60));\r\n\r\n let divisor_for_minutes = secs % (60 * 60);\r\n let minutes = Math.floor(divisor_for_minutes / 60);\r\n minutes = (\"0\" + minutes).slice(-2);\r\n let divisor_for_seconds = divisor_for_minutes % 60;\r\n let seconds = Math.ceil(divisor_for_seconds);\r\n seconds = (\"0\" + seconds).slice(-2);\r\n\r\n let obj = {\r\n h: hours,\r\n m: minutes,\r\n s: seconds\r\n };\r\n return obj;\r\n };\r\n\r\n // Check if we're at zero.\r\n\r\n const handleClose = () => {};\r\n\r\n /*************************************************************/\r\n const [selectedIndex, setSelectedIndex] = React.useState(0);\r\n\r\n const handleProfileMenuOpen = event => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const toggleDrawer = (side, open) => event => {\r\n if (\r\n event &&\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n setState({ ...state, [side]: open });\r\n setAnchorEl(null);\r\n };\r\n\r\n // const handleLogOut = () => {};\r\n const handleLogOut = () => {\r\n swal({\r\n title: \"Are you sure you want to logout?\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete)\r\n return (\r\n localStorage.removeItem(\"token\"),\r\n localStorage.removeItem(\"id\"),\r\n localStorage.removeItem(\"userId\"),\r\n localStorage.removeItem(\"role\"),\r\n localStorage.removeItem(\"customer\"),\r\n localStorage.removeItem(\"email\"),\r\n localStorage.removeItem(\"name\"),\r\n localStorage.removeItem(\"profileImage\"),\r\n (window.location = \"/\")\r\n );\r\n });\r\n };\r\n // const handleProfile = () => {\r\n\r\n // if (\r\n // loggedInUserId !== undefined &&\r\n // loggedInUserId !== null &&\r\n // loggedInUserId !== \"\"\r\n // ) {\r\n // fetchMethod(getName(loggedInUserId))\r\n // .then(res => res.json())\r\n // .then(res => {\r\n\r\n // if (\r\n // res.data !== undefined &&\r\n // res.data.allUsersdata !== undefined &&\r\n // res.data.allUsersdata !== null &&\r\n // res.data.allUsersdata.Usersdata.length > 0\r\n // ) {\r\n // setState({ ...state, name: res.data.allUsersdata.Usersdata[0] });\r\n // }\r\n // })\r\n // .then(data => {\r\n // toggleDrawer(\"right\", true);\r\n // })\r\n // .catch(e => {\r\n // swal({ title: \"Unable to reach server\", icon: \"warning\" }).then(\r\n // () => {\r\n // localStorage.clear();\r\n // window.location = \"/\";\r\n // }\r\n // );\r\n // });\r\n // }\r\n // };\r\n\r\n const firstName =\r\n props.userName.firstName !== null && props.userName.firstName !== undefined\r\n ? props.userName.firstName\r\n : \"\";\r\n const lastName =\r\n props.userName.lastName !== null && props.userName.lastName !== undefined\r\n ? props.userName.lastName\r\n : \"\";\r\n let a = \"\";\r\n let b = \"\";\r\n let firstname = \"\";\r\n let lastname = \"\";\r\n if (\r\n firstName !== undefined &&\r\n lastName !== undefined &&\r\n firstName !== null &&\r\n lastName !== null\r\n ) {\r\n firstname = firstName.split(/\\s/).slice(0, 1);\r\n lastname = lastName.split(/\\s/).slice(0, 1);\r\n a = firstName === \"\" ? \"\" : firstName.charAt(0);\r\n b = lastName === \"\" ? \"\" : lastName.charAt(0);\r\n }\r\n\r\n const menuId = \"primary-search-account-menu\";\r\n const handlePdf = event => {\r\n setPdf(event.currentTarget);\r\n };\r\n\r\n const ModifyPdf = () => {\r\n setopenModal(true);\r\n setPdf(null);\r\n };\r\n const handleClosePdf = () => {\r\n setopenModal(false);\r\n setselectPdf(undefined);\r\n };\r\n const clearPdf = () => {\r\n setselectPdf(undefined);\r\n };\r\n const uploadPdf = () => {};\r\n\r\n const onDrop = acceptedFile => {\r\n setselectPdf(acceptedFile[0]);\r\n };\r\n const viewPdf = () => {};\r\n const renderPdf = (\r\n
    \r\n \r\n \r\n View\r\n \r\n Modify\r\n \r\n
    \r\n );\r\n const renderMenu = (\r\n
    \r\n \r\n \r\n Profile\r\n \r\n \r\n\r\n \r\n Password\r\n \r\n \r\n \r\n Sign Out{\" \"}\r\n \r\n \r\n \r\n
    \r\n );\r\n const footerStyle = {\r\n padding: \"10px 0px\",\r\n textAlign: \"center\"\r\n };\r\n return (\r\n \r\n {loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n \r\n Session Timeout\r\n \r\n \r\n \r\n \r\n \r\n \r\n Your online session will expire in\r\n \r\n {minutes === 0 && seconds === 0 ? null : (\r\n

    \r\n {\" \"}\r\n {minutes < 10 ? `0${minutes}` : minutes} min{\" \"}\r\n {seconds < 10 ? `0${seconds}` : seconds} secs\r\n

    \r\n )}\r\n

    \r\n Please click \"Continue\" to Keep working\r\n or click \"Log Off\" to end your sesion now.\r\n

    \r\n
    \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Upload IFU PDF
    \r\n \r\n \r\n \r\n
    \r\n\r\n

    Choose a file to upload.

    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n onDrop(e.target.files)}\r\n onClick={e => (e.target.value = null)}\r\n />\r\n \r\n \r\n
    • \r\n
    • \r\n

      \r\n {selectPdf ? selectPdf.name : \"Browse File\"}\r\n \r\n {selectPdf ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n

      \r\n
    • \r\n
    • \r\n {selectPdf ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    • \r\n
    \r\n

    \r\n {error}\r\n

    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \"Surveillance\"\r\n {/*

    \r\n UptakeMedicalR\r\n

    \r\n A Broncus Company */}\r\n
    \r\n
    \r\n \r\n {localStorage.getItem(\"role\") === \"SADMIN\"\r\n ? routeConfig.map((items, index) => (\r\n
    \r\n {\r\n \r\n \r\n {\r\n setSelectedIndex(items.path);\r\n if (\r\n localStorage.getItem(\"path\") !== items.path\r\n ) {\r\n localStorage.setItem(\"path\", items.path);\r\n localStorage.setItem(\"rows\", 10);\r\n }\r\n }}\r\n to={`${items.path}`}\r\n >\r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n ))\r\n : localStorage.getItem(\"role\") === \"CUSTOMER\" && localStorage.getItem(\"abmId\") !== localStorage.getItem(\"id\")+1\r\n ? routeCustomer.map((items, index) => (\r\n
    \r\n {\r\n \r\n \r\n {\r\n setSelectedIndex(items.path);\r\n if (\r\n localStorage.getItem(\"path\") !== items.path\r\n ) {\r\n localStorage.setItem(\"path\", items.path);\r\n localStorage.setItem(\"rows\", 10);\r\n }\r\n }}\r\n to={`${items.path}`}\r\n >\r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n ))\r\n : localStorage.getItem(\"role\") === \"CUSTOMER\" && localStorage.getItem(\"abmId\") === localStorage.getItem(\"id\")+1\r\n ? routeCustomer2.map((items, index) => (\r\n
    \r\n {\r\n \r\n \r\n {\r\n setSelectedIndex(items.path);\r\n if (\r\n localStorage.getItem(\"path\") !== items.path\r\n ) {\r\n localStorage.setItem(\"path\", items.path);\r\n localStorage.setItem(\"rows\", 10);\r\n }\r\n }}\r\n to={`${items.path}`}\r\n >\r\n \r\n \r\n \r\n
    \r\n }\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\" && localStorage.getItem(\"abmId\") !== localStorage.getItem(\"id\")+1\r\n ? routeCampaign.map((items, index) => (\r\n
    \r\n {\r\n \r\n \r\n {\r\n setSelectedIndex(items.path);\r\n if (\r\n localStorage.getItem(\"path\") !== items.path\r\n ) {\r\n localStorage.setItem(\"path\", items.path);\r\n localStorage.setItem(\"rows\", 10);\r\n }\r\n }}\r\n to={`${items.path}`}\r\n >\r\n \r\n \r\n \r\n
    \r\n }\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\" && localStorage.getItem(\"abmId\") === localStorage.getItem(\"id\")+1\r\n ? routeCampaign2.map((items, index) => (\r\n
    \r\n {\r\n \r\n \r\n {\r\n setSelectedIndex(items.path);\r\n if (\r\n localStorage.getItem(\"path\") !== items.path\r\n ) {\r\n localStorage.setItem(\"path\", items.path);\r\n localStorage.setItem(\"rows\", 10);\r\n }\r\n }}\r\n to={`${items.path}`}\r\n >\r\n \r\n \r\n \r\n
    \r\n }\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"ADMIN\" && localStorage.getItem(\"abmId\") !== localStorage.getItem(\"id\")+1\r\n ? routeAdmin.map((items, index) => (\r\n
    \r\n {\r\n \r\n \r\n {\r\n setSelectedIndex(items.path);\r\n if (\r\n localStorage.getItem(\"path\") !== items.path\r\n ) {\r\n localStorage.setItem(\"path\", items.path);\r\n localStorage.setItem(\"rows\", 10);\r\n }\r\n }}\r\n to={`${items.path}`}\r\n >\r\n \r\n \r\n \r\n
    \r\n }\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"ADMIN\" && localStorage.getItem(\"abmId\") === localStorage.getItem(\"id\")+1\r\n ? routeAdmin2.map((items, index) => (\r\n
    \r\n {\r\n \r\n \r\n {\r\n setSelectedIndex(items.path);\r\n if (\r\n localStorage.getItem(\"path\") !== items.path\r\n ) {\r\n localStorage.setItem(\"path\", items.path);\r\n localStorage.setItem(\"rows\", 10);\r\n }\r\n }}\r\n to={`${items.path}`}\r\n >\r\n \r\n \r\n \r\n
    \r\n }\r\n \r\n ))\r\n : \"\"}\r\n \r\n
      \r\n {/*
    • \r\n
      \r\n { {localStorage.getItem(\"userInitials\")} }\r\n { {localStorage.getItem(\"name\")} }\r\n\r\n { {localStorage.getItem(\"name\").substring(0, 1)} }\r\n
      \r\n
    • */}\r\n
    • \r\n
      \r\n \r\n {localStorage.getItem(\"profileImage\") != \"null\" && (\r\n \r\n )}\r\n {localStorage.getItem(\"profileImage\") == \"null\" && (\r\n
      {localStorage.getItem(\"name\").substring(0, 1)}
      \r\n )}\r\n\r\n {/* */}\r\n \r\n
      \r\n {renderMenu}\r\n {renderPdf}\r\n
    • \r\n
    • \r\n \r\n
    • \r\n
    \r\n \r\n \r\n {/*****************Footer for Sidebar******************* */}\r\n {/***********************End**************************** */}\r\n
    \r\n {/*
    */}\r\n
    \r\n {/* \r\n {routeConfig.map(\r\n (route, index) => (\r\n \r\n \r\n )\r\n \r\n )}\r\n \r\n */}\r\n \r\n {localStorage.getItem(\"role\") === \"ADMIN\" && localStorage.getItem(\"abmId\") !== localStorage.getItem(\"id\")+1\r\n ? routeAdmin.map((route, index) => (\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"ADMIN\" && localStorage.getItem(\"abmId\") === localStorage.getItem(\"id\")+1\r\n ? routeAdmin2.map((route, index) => (\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"CUSTOMER\" && localStorage.getItem(\"abmId\") !== localStorage.getItem(\"id\")+1\r\n ? routeCustomer.map((route, index) => (\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"CUSTOMER\" && localStorage.getItem(\"abmId\") === localStorage.getItem(\"id\")+1\r\n ? routeCustomer2.map((route, index) => (\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"SADMIN\"\r\n ? routeConfig.map((route, index) => (\r\n // route.main(e, props)}\r\n // />\r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\" && localStorage.getItem(\"abmId\") === localStorage.getItem(\"id\")+1\r\n ? routeCampaign2.map((route, index) => (\r\n \r\n \r\n ))\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\" && localStorage.getItem(\"abmId\") !== localStorage.getItem(\"id\")+1\r\n ? routeCampaign.map((route, index) => (\r\n \r\n ))\r\n : \"\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    © Xseller, 2021. All right reserved
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n showDialogbox: data => dispatch({ type: \"ShowModal\", showModal: data }),\r\n TimeDelay: data => dispatch({ type: \"TimeDelay\", seconds: data })\r\n };\r\n};\r\n\r\n// const mapStateToProps = state => {\r\n// return {\r\n// Header: state.Header,\r\n// sidebarRoute: state.sidebarRoute,\r\n// showModal: state.showModal,\r\n// seconds: state.seconds,\r\n// role: state.role\r\n// };\r\n// };\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n Header: state.Header,\r\n userName: state.userName\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MiniDrawer);\r\n","import gql from \"graphql-tag\";\r\nexport const contacts = id =>\r\n `{\r\n allContacts(where: {id: ${id}}) {\r\n totalCount\r\n Contacts {\r\n id\r\n linkedinid\r\n campaignid\r\n profileimage\r\n image\r\n name\r\n invitationsent\r\n currentstatus\r\n profileurl\r\n email\r\n industry\r\n dateofbirth\r\n organization\r\n Campaigns: campaignIbfk4rel {\r\n Campaigns {\r\n name\r\n customerid\r\n status\r\n active\r\n Customers: customerIbfk1rel {\r\n Customers {\r\n company\r\n }\r\n }\r\n }\r\n }\r\n designation\r\n joiningdate\r\n headline\r\n lasteducationinstitute\r\n twitter\r\n skype\r\n phonenumber\r\n phonetype\r\n numberoffollowers\r\n connectedon\r\n location\r\n createdon\r\n contactstatus\r\n campaignstatus\r\n updatedon\r\n active\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const CustomerInfo = `query($where:JSON){\r\n allCampaigns(where:$where){\r\n Campaigns{\r\n customerIbfk1rel{\r\n Customers{\r\n company\r\n id\r\n }\r\n }\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const campaign = id => ` {\r\n Customers(id: ${id}) {\r\n id\r\n company\r\n campaignfk(where: {order: name}) {\r\n Campaigns {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n}`;\r\n\r\nexport const allcampaigns = gql`\r\n query($where: JSON) {\r\n allCampaigns(where: $where) {\r\n totalCount\r\n Campaigns {\r\n id\r\n }\r\n }\r\n }\r\n`;\r\nexport const allcompanys = gql`\r\n query($where: JSON) {\r\n allContactscompanies{\r\n totalCount\r\n Contactscompanies{\r\n id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const Company = gql`\r\n query($where: JSON) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n }\r\n }\r\n }\r\n`;\r\n// profile\r\nexport const ManagersName = gql`\r\n query($where: JSON) {\r\n allCampaigns(where: $where) {\r\n Campaigns {\r\n id\r\n name\r\n linkedinid\r\n customercredentialsIbfk1rel {\r\n Customerlinkedinprofiles {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const ProfileName = gql`\r\n query($where: JSON) {\r\n allCustomers(where: $where) {\r\n Customers {\r\n id\r\n company\r\n Customerlinkedinprofilesfk {\r\n Customerlinkedinprofiles {\r\n name\r\n id\r\n Campaignsfk {\r\n Campaigns {\r\n id\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const ManagerName = gql`\r\n query($where: JSON) {\r\n allCampaigns(where: $where) {\r\n Campaigns {\r\n id\r\n customerid\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n","import React, { Component } from \"react\";\r\nimport \"./App.css\";\r\nimport { connect } from \"react-redux\";\r\nimport Sidebar from \"./Components/SideBar/Sidebar\";\r\nimport { allcampaigns } from \"./Components/Contacts/contactQuery\";\r\nimport { fetchMethod } from \"./FetchMethod\";\r\n\r\nclass App extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n id: \"\",\r\n name: [],\r\n role: undefined,\r\n campaignId: undefined\r\n };\r\n }\r\n componentWillMount() {\r\n this.contactCampaignsId();\r\n }\r\n\r\n componentDidMount() {\r\n // this.fetchRole();\r\n const loggedInUserId = localStorage.getItem(\"userId\");\r\n const loggedInUserName = localStorage.getItem(\"role\");\r\n let sessionTime = new Date();\r\n sessionTime.setHours(sessionTime.getHours());\r\n this.props.handleSessionTime(sessionTime);\r\n this.setState({ id: loggedInUserName });\r\n this.props.handleUserDetails(loggedInUserId);\r\n sessionStorage.setItem(\"time\", sessionTime);\r\n }\r\n\r\n contactCampaignsId = () => {\r\n const filter =\r\n localStorage.getItem(\"role\") === \"ADMIN\"\r\n ? {\r\n where: {\r\n campaignadminid: localStorage.getItem(\"id\"),\r\n active: 1\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"SADMIN\"\r\n ? {\r\n where: {\r\n active: 1\r\n }\r\n }\r\n : localStorage.getItem(\"role\") === \"CAMPAIGNMANAGER\"\r\n ? {\r\n where: {\r\n campaignmanagerid: localStorage.getItem(\"id\"),\r\n active: 1\r\n }\r\n }\r\n : {\r\n where: {\r\n customerid: localStorage.getItem(\"customer\"),\r\n active: 1\r\n }\r\n };\r\n fetchMethod(allcampaigns, filter)\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(res => {\r\n res !== undefined\r\n ? this.setState(\r\n {\r\n campaignId: res.data.allCampaigns.Campaigns\r\n },\r\n () => {\r\n this.props.handleCampaignId(this.state.campaignId);\r\n }\r\n )\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => console.log(e));\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n handleSessionTime: time => {\r\n dispatch({\r\n type: \"LOGGEDIN_USER_NAME\",\r\n payload: time\r\n });\r\n },\r\n handleUserDetails: id => {\r\n dispatch({\r\n type: \"LOGGEDIN_USERID\",\r\n payload: id\r\n });\r\n },\r\n handleCampaignId: data =>\r\n dispatch({\r\n type: \"Handle_CampaignId\",\r\n payload: data\r\n })\r\n };\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n userName: state.userName\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n \"This web app is being served cache-first by a service \" +\r\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n \"New content is available and will be used when all \" +\r\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\"content-type\");\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n \"No internet connection found. App is running in offline mode.\"\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import gql from \"graphql-tag\";\r\n//import { fetchMethod } from \"../../FetchMethod\";\r\nexport const login = gql`\r\n mutation UsersDataLogin($credentials: JSON) {\r\n UsersdataLogin(credentials: $credentials)\r\n }\r\n`;\r\n\r\nexport const UserIdMatch = id => {\r\n return `query{\r\n allUsersdata(where: {email: ${id}}) {\r\n Usersdata {\r\n id\r\n }\r\n }\r\n}`;\r\n};\r\nexport const ChangePassword = gql`\r\n mutation UsersdataSetPassword($id: JSON, $newPassword: String) {\r\n UsersdataSetPassword(id: $id, newPassword: $newPassword)\r\n }\r\n`;\r\n\r\nexport const ValidUser = gql`\r\n query allUsersdata($where: JSON) {\r\n allUsersdata(where: $where) {\r\n Usersdata {\r\n id\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const UserIdRole = id => {\r\n return `query{\r\nallUsersdata(where:{id:${id}}){\r\nUsersdata{\r\nrole\r\ncustomerid\r\n}}\r\n}`;\r\n};\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Button,\r\n TextField,\r\n Link,\r\n Grid,\r\n Container,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport \"./login.css\";\r\nimport TsiLogo from \"../assets/logo.png\";\r\nimport CCTV from \"../assets/loginbg.jpg\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport { ResetPassword } from \"../../config\";\r\nimport { ChangePassword } from \"./LoginQueries\";\r\nimport swal from \"sweetalert\";\r\n\r\nclass ForgotPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const token = localStorage.getItem(\"token\");\r\n let loggedIn = true;\r\n if (token == null) {\r\n loggedIn = false;\r\n }\r\n\r\n this.state = {\r\n email: \"\",\r\n email1: \"\",\r\n password1: \"\",\r\n userData: undefined,\r\n id: undefined,\r\n\r\n password: undefined,\r\n loading: false,\r\n forgot: true,\r\n errors: { email: \"\" },\r\n };\r\n }\r\n\r\n handleChange = (e) => {\r\n \r\n if (e.target.id === \"email\") {\r\n this.setState({ email: e.target.value });\r\n }\r\n };\r\n validateForm = (email) => {\r\n \r\n const { errors } = this.state;\r\n const validEmailRegex = RegExp(\r\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,}))$/\r\n );\r\n errors.email = validEmailRegex.test(email.trim())\r\n ? \"\"\r\n : \"Email is not valid!\";\r\n this.setState({ errors });\r\n return this.state.errors.email === \"Email is not valid!\" ? false : true;\r\n };\r\n\r\n handleClickShowPassword = () => {\r\n \r\n this.setState({ showPassword: !this.state.showPassword });\r\n };\r\n\r\n onSubmit = (e) => {\r\n \r\n e.preventDefault();\r\n\r\n if (this.state.email === \"\") {\r\n swal({\r\n icon: \"warning\",\r\n title: \"Please enter Email-ID \",\r\n });\r\n }\r\n if (this.validateForm(this.state.email)) {\r\n fetch(`${ResetPassword.url}` + `${localStorage.getItem(\"email\")}`, {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((res) => res.json())\r\n .then((res) => {\r\n if (res.response[0].id !== undefined && res.response[0].id !== null) {\r\n this.setState(\r\n {\r\n id: res.response[0].id,\r\n password: res.response[1],\r\n },\r\n () => this.SendPassword()\r\n );\r\n } else {\r\n swal(\"This email does not exist\", { icon: \"error\" });\r\n }\r\n })\r\n .catch((e) => {\r\n this.setState({ loading: true });\r\n });\r\n }\r\n };\r\n SendPassword = () => {\r\n const reset = {\r\n id: this.state.id,\r\n newPassword: this.state.password,\r\n };\r\n fetchMethod(ChangePassword, reset)\r\n .then((res) => res.json())\r\n .then((response) => {\r\n if (response.data.UsersdataSetPassword === null) {\r\n swal({\r\n icon: \"success\",\r\n title:\r\n \"New password has been sent to the email address\" +\r\n \"\\n\" +\r\n localStorage.getItem(\"email\"),\r\n }).then((willOk) => {\r\n window.location = \"/\";\r\n });\r\n } else {\r\n this.setState({ loading: true });\r\n }\r\n })\r\n .catch((e) => this.setState({ loading: true }));\r\n };\r\n\r\n render() {\r\n localStorage.setItem(\"email\", this.state.email);\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n A common platform to manage all LinkedIn
    campaign\r\n solutions!\r\n
    \r\n \r\n {this.state.errors.email.length > 0 && (\r\n \r\n {this.state.errors.email}\r\n \r\n )}\r\n \r\n \"New password\" will be sent to the above mentioned email\r\n address!\r\n \r\n \r\n \r\n Send Me Link\r\n \r\n \r\n \r\n \r\n Back To Login\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n\r\n handleMouseDownPassword = (e) => {\r\n e.preventDefault();\r\n };\r\n}\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {};\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps)(ForgotPassword);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button } from \"@material-ui/core\";\r\nimport photo from \"./Components/assets/salesforce.png\";\r\nclass Thanks extends Component {\r\n state = {\r\n thanks: true,\r\n };\r\n componentWillMount() {\r\n this.props.thanksRecieved(this.state.thanks);\r\n }\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n

    Thanks for connecting with Salesforce

    \r\n

    Click on logout to exit

    \r\n \r\n (window.location =\r\n \"https://ap17.lightning.force.com/secur/logout.jsp\")\r\n }\r\n >\r\n {\" \"}\r\n LogOut\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n thanks: state.thanks,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n thanksRecieved: (data) =>\r\n dispatch({\r\n type: \"Thanks\",\r\n payload: data,\r\n }),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Thanks);\r\n","import React, { Component } from \"react\";\r\nimport photo from \"./Components/assets/hubspot.png\";\r\nimport { Button } from \"@material-ui/core\";\r\n\r\nclass ThanksHubspot extends Component {\r\n state = {};\r\n componentWillMount() {\r\n // setTimeout(() => {\r\n // window.close();\r\n // }, 3000);\r\n }\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n

    Thanks for connecting with Hubspot

    \r\n

    Click on logout to exit

    \r\n \r\n (window.location =\r\n \"https://app.hubspot.com/login-api/v1/logout/all\")\r\n }\r\n >\r\n {\" \"}\r\n LogOut\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ThanksHubspot;\r\n","import React, { Component } from \"react\";\r\nimport { API_URL } from \"../../config\";\r\n// import ReactDOM from \"react-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Route } from \"react-router-dom\";\r\nimport {\r\n Button,\r\n // TextField,\r\n FormControlLabel,\r\n Checkbox,\r\n Grid,\r\n Link,\r\n Container,\r\n Typography,\r\n InputAdornment,\r\n IconButton,\r\n FormControl,\r\n OutlinedInput,\r\n // InputLabel\r\n} from \"@material-ui/core\";\r\nimport \"./login.css\";\r\nimport TsiLogo from \"../assets/logo.png\";\r\n// import CCTV from \"../assets/loginbg.jpg\";\r\n// import ForgotPassword from \"./ForgotPassword\";\r\nimport { fetchMethod } from \"../../FetchMethod\";\r\nimport {\r\n // login,\r\n // getData,\r\n UserIdMatch,\r\n // UserIdRole,\r\n // ValidUser,\r\n // UserData\r\n} from \"./LoginQueries\";\r\nimport swal from \"sweetalert\";\r\nimport App from \"../../App\";\r\nimport {\r\n VisibilityOutlined,\r\n VisibilityOffOutlined,\r\n // ContactSupportOutlined,\r\n // Warning\r\n} from \"@material-ui/icons\";\r\nimport Sidebar from \"../SideBar/Sidebar\";\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const token = localStorage.getItem(\"token\");\r\n let loggedIn = true;\r\n if (token == null) {\r\n loggedIn = false;\r\n }\r\n\r\n this.state = {\r\n email: \"\",\r\n password: \"\",\r\n userData: undefined,\r\n showPassword: false,\r\n Id: null,\r\n role: undefined,\r\n forgot: false,\r\n Validate: undefined,\r\n customerId: undefined,\r\n loading: false,\r\n errors: { email: \"\" },\r\n user: null\r\n };\r\n }\r\n componentDidMount() {\r\n this.validateId();\r\n }\r\n\r\n validateId = () => {\r\n let email = localStorage.getItem(\"email\");\r\n\r\n this.idVerification();\r\n if (email === undefined || email === null || email === \"\") {\r\n if (\r\n this.state.Id === null ||\r\n this.state.Id === \"\" ||\r\n this.state.Id == undefined\r\n ) {\r\n if (localStorage.getItem(\"id\") !== this.state.Id) {\r\n localStorage.removeItem(\"token\");\r\n }\r\n }\r\n }\r\n };\r\n\r\n idVerification = () => {\r\n let email = localStorage.getItem(\"email\");\r\n \r\n fetchMethod(UserIdMatch(JSON.stringify(email)))\r\n .then(res => res.json())\r\n .then(res => {\r\n res.data.allUsersdata.Usersdata[0].id !== undefined\r\n ? this.setState({ Id: res.data.allUsersdata.Usersdata[0].id }, () => {\r\n this.props.UserExist(this.state.Id);\r\n })\r\n : this.setState({ loading: true });\r\n })\r\n .catch(e => e);\r\n\r\n if (this.state.Id === undefined) {\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"id\");\r\n localStorage.removeItem(\"email\");\r\n }\r\n };\r\n\r\n handleChange = e => {\r\n if (e.target.id === \"email\") {\r\n this.setState({ email: e.target.value.trim() }, () => {\r\n this.idVerification();\r\n });\r\n }\r\n\r\n if (e.target.id === \"password\") {\r\n this.setState({ password: e.target.value });\r\n }\r\n };\r\n validateForm = email => {\r\n const { errors } = this.state;\r\n const validEmailRegex = RegExp(\r\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,}))$/\r\n );\r\n errors.email = validEmailRegex.test(email.trim())\r\n ? \"\"\r\n : \"Email is not valid!\";\r\n this.setState({ errors });\r\n return this.state.errors.email === \"Email is not valid!\" ? false : true;\r\n };\r\n handleClickShowPassword = () => {\r\n this.setState({ showPassword: !this.state.showPassword });\r\n };\r\n\r\n onSubmit = e => {\r\n e.preventDefault();\r\n if (this.state.email === \"\" || this.state.password === \"\") {\r\n swal({\r\n icon: \"warning\",\r\n title: \"Please enter Email-ID and Password\"\r\n });\r\n return;\r\n } else {\r\n if (this.validateForm(this.state.email)) {\r\n fetch(`${API_URL}/api/Usersdata/login`, {\r\n method: \"POST\",\r\n mode: \"cors\",\r\n body: JSON.stringify(\r\n \r\n {\r\n email: this.state.email,\r\n password: this.state.password\r\n }\r\n ),\r\n headers: {\r\n \"Content-type\": \"application/json\"\r\n }\r\n })\r\n \r\n .then(res => res.json())\r\n .then(res => {\r\n if (\r\n res.userId === undefined &&\r\n res.error.name === \"Error\"\r\n\r\n ) {\r\n this.props.UserExist(this.state.user);\r\n swal({\r\n icon: \"warning\",\r\n title: \"Incorrect credentials\"\r\n });\r\n } else if (\r\n res === null &&\r\n res.userId !== null\r\n\r\n ) {\r\n this.props.UserExist(this.state.user);\r\n swal({\r\n icon: \"warning\",\r\n title: \"The Email-ID or Password you entered is incorrect\"\r\n });\r\n } else {\r\n \r\n fetch(\r\n `${API_URL}/api/Usersdata?filter={\"where\":{\"email\": \"${localStorage.getItem(\r\n \"email\"\r\n )}\",\"status\":1}}`,\r\n {\r\n headers: {\r\n \"Content-type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.length > 0) {\r\n localStorage.setItem(\r\n \"name\",\r\n response[0].firstName + \" \" + response[0].lastName\r\n );\r\n localStorage.setItem(\r\n \"profileImage\",\r\n response[0].profileImage\r\n );\r\n localStorage.setItem(\"role\", response[0].role);\r\n localStorage.setItem(\"customer\", response[0].customerid);\r\n\r\n this.setState(\r\n {\r\n userData: res\r\n },\r\n () => {\r\n localStorage.setItem(\"id\", this.state.userData.userId);\r\n localStorage.setItem(\"token\", this.state.userData.id);\r\n localStorage.setItem(\"abmId\", String(this.state.userData.userId)+ String(response[0].abm));\r\n this.fetchCustomer(this.state.userData.userId);\r\n }\r\n );\r\n } else if (\r\n \r\n (localStorage.removeItem(\"token\"),\r\n localStorage.removeItem(\"id\"),\r\n localStorage.removeItem(\"userId\"),\r\n localStorage.removeItem(\"role\"),\r\n localStorage.removeItem(\"customer\"),\r\n localStorage.removeItem(\"email\"),\r\n localStorage.removeItem(\"name\"),\r\n localStorage.removeItem(\"profileImage\"),\r\n localStorage.removeItem(\"abmId\"),\r\n response.length === 0)\r\n ) {\r\n swal(\r\n \"Your account is inactive please connect with the admin.\",\r\n {\r\n icon: \"error\"\r\n }\r\n );\r\n } else {\r\n this.setState({ loading: true });\r\n }\r\n });\r\n }\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n swal({ title: \"Unable to connect to server\", icon: \"warning\" });\r\n });\r\n }\r\n }\r\n this.forceUpdate();\r\n };\r\n fetchCustomer = id => {\r\n var cc = `${API_URL}/api/Usersdata/Usersdata/${id}/customerIbfk5rel`;\r\n\r\n // \"https://devupi.xseller8.org/api/Usersdata/Usersdata/225/customerIbfk5rel\"\r\n // fetch(`https://devupi.xseller8.org/api/Usersdata/225/customerIbfk5rel`, {\r\n fetch(`${API_URL}/api/Usersdata/${id}/customerIbfk5rel`, {\r\n headers: {\r\n \"Content-type\": \"application/json\"\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(res => {\r\n localStorage.setItem(\"companyName\", res.company);\r\n\r\n\r\n window.location = \"/\";\r\n })\r\n .catch(e => e);\r\n this.forceUpdate();\r\n };\r\n \r\n render() {\r\n const storageToken = localStorage.getItem(\"token\");\r\n if (storageToken !== null && storageToken !== \"undefined\") {\r\n return ;\r\n }\r\n\r\n localStorage.setItem(\"email\", this.state.email);\r\n return (\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n A common platform to manage all LinkedIn
    campaign\r\n solutions!\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {this.state.showPassword ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n />\r\n \r\n\r\n }\r\n label=\"Remember me!\"\r\n style={{\r\n font: \"normal normal normal 13px/20px Poppins\"\r\n }}\r\n className=\"rememberCheck\"\r\n />\r\n \r\n Sign In\r\n \r\n \r\n \r\n \r\n Forgot Password?\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n\r\n handleMouseDownPassword = e => {\r\n e.preventDefault();\r\n };\r\n}\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n UserExist: id => {\r\n dispatch({ type: \"Email_Verification\", payload: id });\r\n }\r\n };\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return { emailVerification: state.emailVerification };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\r\n","import React, { Component } from \"react\";\r\nclass NotFound extends Component {\r\n state = {};\r\n render() {\r\n return (\r\n
    \r\n

    404 Page Not Found

    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default NotFound;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport { Provider } from \"react-redux\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { Switch, Route, BrowserRouter, Link } from \"react-router-dom\";\r\nimport ForgotPassword from \"./Components/Login/ForgotPassword\";\r\nimport store from \"./Redux/Store\";\r\nimport \"./index.css\";\r\nimport Sidebar from \"../src/Components/SideBar/Sidebar\";\r\nimport Thanks from \"./Thanks\";\r\nimport ThanksHubspot from \"./ThanksHubspot\";\r\nimport Login from \"./Components/Login/Login\";\r\nimport NotFound from \"./NotFound\";\r\n\r\n// import ForgotPassword from \"./Components/Login/ForgotPassword\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n {localStorage.getItem(\"token\") !== null ? (\r\n window.location.pathname !== \"/Salesforcethanks\" &&\r\n window.location.pathname !== \"/Hubspotthanks\" ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n ,\r\n\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","module.exports = __webpack_public_path__ + \"static/media/marketing.9ad0745b.svg\";","module.exports = __webpack_public_path__ + \"static/media/market.9453d726.svg\";","module.exports = __webpack_public_path__ + \"static/media/target.c85fd505.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAqCAYAAAAajbNEAAADS0lEQVRoBe2Wa0gUYRSG/Vl2BekC2Z/sBlFJaBqWGRZ4LcmS+pFJEJiVBoZEGYQQFZaBBZEUpSRRVhQa+q8Uu1B2kSQIs5uVFZpa5K7XJ47roOvOzO664xI2A8ss8833vuc5Z+bd9WEMHD5jgAET4l+ZojkJcxIGdsB8nAxspkdS5iQ8ap+Bm81JGNhMj6T+g0n09oK1A9pbof0nWDqgr9ejrrm8Wbwtf2y+4i91aHjrT+LLByg4CvELYd1syM+GxnfQ0+NyLSO6UfTr6+DEPljrD9EBcC4Hmj6pyulDlJyHqDkQNG7wk5EAtY+hp1tV0OOL3d3wvBp2xw56in9MANy+rCqvDyFTCPOzFxPB1Gh4cg+6OlVFR3xR9CrvwvZVjp4r/aDwlKq0PsTTSkiNgpBJjqJJy6DiOnRaVYXdvmi1QlkxbAp09BL/PXHw4oGqrD6EbKmphF0xEDrZUTxhEZQUwO82VXGXL/5qhaI8iB726MrUQ6fA3nhNAPFwDiF3vamFrC2wYioEjbeHkRf+Ui60t2imhyaMJFBbsy08Iv3tdcVH/A5ug/pXmhKuQ8idklTH0iF8miOImMna5/cghblyyH2NDZCTOtCcIeEhAKunQ26mZiINtXBtEsqO5m+QlwURMyDY175zAnJkJzS8dh7BSoRmpzgCiG7ETDhzGFq+K866Z/cgRKrTAlfPQuw8CJ5gDyLPcPoGqH0EEpVqR3eXLULThkWo7BW9uPkg0e5GYLgPoYDcvAAbF8PyiY4gO9ZAdYVjBPdHaJl6hIpO4lK4U+gWgJQzMgilw/dLITlMO4LLr9kK6usDqwVKr9gKla4P/UiEpoRDdbmi7NbZMwixqqmCNI0IjpkLxfnw9aPth0ozQtfrRqgzIs8hxKE/greqR7D899kcCJGz7LuvROihZHhb56xO3XVjIMRCun08Qz2Chz46/d8HIvTkfmhq1C3QlUXjIMRNIvj0AfUIVkDsIvSHKzU6vcdYCLHTi2CJ0PgFcKPA7QTSIzEeQgG5dRESl0CI/OfytZ3l3SgtMhRA7EYHQmnbsyrITLL9gGVthZcPlRVDz6MLYWip2mImhHZvvLtiTsK7/dZ2Myeh3RvvrpiT8G6/td3+AliOkJKMnG6WAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAA0UlEQVQ4je2TMQrCQBBFX8RSiCewtRUEbVJZ5gCewJN4AA8gFjZpLHMFKzsPIAiewIBgpSuDP7IbERI7wQ+Tnfz5P5NkZ3HgR+rg7sB9iNTXtwnRBSJgB5y8Sg8Yq/6CmaceOdJ6BPae7ibzBOiIO0fu+QZfwTovvKc1wSVS2xUwaGC0T5qVP6wPDBuYr3ZpVcgcWCs/AEutiM8DtfZsq31NHMTKM9Uy3RufKDf9W+dG+Jt/xlw9z3OgUJ4AGx1Fg01YHKgrE1Y3ggkru9VFAfAAXlRhOBB00tAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAABjCAYAAABty2epAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAdpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjlFM0U1QzlBOEM4MURCMTE4NzM0REI1OEZEREU0QkE3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM2MkIyOTg2NjgwQjExRUE5MUMzRUU4MjBEQkM3NkIxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM2MkIyOTg1NjgwQjExRUE5MUMzRUU4MjBEQkM3NkIxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIElsbHVzdHJhdG9yIENDIDIzLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MGYxODFlMzgtMDFhMC04YzRhLTk4YzctODA2OTI3ZDY2YWNkIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpk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\"","module.exports = __webpack_public_path__ + \"static/media/delete.8a35f943.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABeUlEQVQ4jaWUSUsDQRCFv5iJCiIiwYMXD8YcoqCioIKHHMzVP+1NQXABFwi4YASVoHGJQdRIhddDmZgwJg8aXvdMfVNV3T20aQ0oti/2UFExsSKZSY0xIAPMJQSOAEPALPBoIwXkgPl/ZNVLJ5GyqQKHwCIwCuwmBKwDDeAIWALyBhwGXoA34EHzekLgHfChWGNkQw+tFxMCIp9EFfe+MeJNmdYYWAFomV0PCJsBpgLQenA7IDBrwCG3YOdvGyhoXgJW5Dc10FpJvqCYTIBEDvgFlHWETJfAu/yNe8929lm+6mI7gN/AqZuXnb9yvuL8vUYsX7LBt3RzQpkL8qsaaC2Un1NM5CFBTeBJJx+VFQ74q3uv7hJpKKb5F9D6sO/mx86fO3/RVr5vwa+S08CGzhPazbwrM5Sfd7vfIZ9hSvc47bL33n846sKLHxjsE9hxz/actz9R0FkXljFawJrusfXQjk4/stYZo2bUcWBZf4zWV/qQ7XINOPgB3b1IUJoN/SwAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/Active.35bcdd2a.png\";","module.exports = __webpack_public_path__ + \"static/media/Inactive.c40efef7.png\";","module.exports = \"data:image/jpeg;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAADZSURBVDhPY/wPBAxkAiYoTRYgSfPhZ5+hLAggWnPKvocMdhvvMCy5+Q4qQqRmkMa5QE2M7MwMtlI8UFEiNCNrvOCnwiDPywaVIaAZXaOeCBdUBgJwaiakEQSwaiZGIwhgaCZWIwigaAbFI0gjCBz0UMSrEQRQNOsJczEYiXCC2flHnjB8/PkXzMYFUDTzA526z08VbMD5tz8YHDfewmsAhp9JMQBDMwgQawBWzSBAjAE4NYMAIQPwagYBdAM2P/gIlQECUElCDPjw48//JTfegmkYoKAYYmAAANV9roq820ssAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAB1klEQVQ4jaXV24tOURjH8Y9DTREuZsrhVaYRIXJBkXLhQqmRQkoNF1JIiUHJH0Eko/eKImcpEjXNpVKUQ3JHUkOTJoVIjj31vNq99nvQ/Gr3rP2stb+t9RzWHletVrWhFdiIlajgK4YxhKt4U0RMbMHrxHGsrfNPRheWYh9O4xh+toIG8Da68Qu3cAcv0YHF2IplOIB52BPg8Q2A4T+bwHdYj35Mw24cRE/6juA7enG42U63YDk+Yxsm4QGm43dCIiQL0JfvEaa9uNIIuittxOoTbmICjuIavmARPuS6ywmPUPSVQSMBC3N8HfsxFdsz2zW9qPvuUkJXl0Fnpx3NshnMkhkqWVvU0xxXyqA134+0g/m00rec7yjL/nDazjx2u5qf60bKoFFCr3PH6/4D2pv2UaM6vZC2v83dLsGGHF9sBL2fdg7OZFs20lycy5K7h4dl0J5cVNOaTFQ0xJSCfxYO4S5mZsiiXf/pqADeyM4pKtr1ZHbOaH7XVZh/jJ34WA8tA45gB1ZluwZ8Rs5Fuz7H+eyoWgn+hXY3AG7GKzzBQB65kvNx3Pdlca5BB5oAi3qbT1NFoiJrcTe2AratgMZtHddWxOQZNo0FWDz+CZyq/Q7GJPwBDXVlNNr6ki8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAVCAYAAACzK0UYAAAABHNCSVQICAgIfAhkiAAAAchJREFUSEvFlY1RAjEQRi8VqBVIB0oFQgVCBWAHdCB0gBWIFXgdABWIFUgJWMH5vXP3JuTgblAcM7OTI8nu27+EUBTFJsuyG8lfjE0IoRsEKWR9LVmdmdKRvZEgwSEzfU7PCZHvPdlb/j9EnlxarQj7XR5Ru72hM+w9S4ba38WbrZHYgVcpAfKR6+MhNuaGtN7X+l5NGyHm3Zs1w0TKW62N9XtuOR46NYZoDScGDmuDYGwguU28BkRqup66BLLUXtVAbRDC3skQoLQGtDspW1jE1ATjfZtnOIe+ZGGR11tYyoR9zSWKCWb0wwxi6FFC6lJIz/SmTRAioOilxyhYp5EqPMb7iUE8gjiSdogZ3RKNhLZFULySjAXOBcVLIvkZRAbwfiR5kpAWBqA5nWZOEC0gZtKLE8y+xjl06jc+AlSpMsjJ06HugkxHeGfUbvfJlO+LzDUou4uQSdGFpWjveTDjHc2k8MV++3eZvobBU58DAYDS0RQllw6bZdumT8kxGBAKlnu7Hjr4a0hTrHY/7nSGlI4lXitqRwZwcJ2+wKnNcAxiabzXPgX8jACuAog6MshE9XCeAsHLLR4f+i/BkBwB5I9p7a1z2BebbCslSfnRrwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAZCAYAAADaILXQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAATfSURBVEhLnVVpU5tVFH7yvglJ2MNWIFBAwiLYFoQSKCmUtVZRh6nW6sj0g53R6eg4/egHZ/gPfnG0Wpmu1mVGHRktTFsKHS20bLLITliahJ2wJCGb517e0DJK0/FhMm/Ivfd5zz3nOc+ReQnwA7bB7XJDJgMEQaAnfXkG+CX3uN0YHp9E78Ag5IKINF0KMtN0UMjl0o694ZfcMr+Ahuvf4+ffm6AMUKKipBjv172DyEiNtGNvCNKTY9Nmh2luATZ6+jA6MYmHPb1YW9/A8uoK+v8ewtD4mLRKZzY3Mb+4CJfTJf3yGDt3W7Va0XSnFU0tbdCEh6G67CgS4uLQ0dmNqVkTzzO749TMDO7+0Q5tbCwGhkfR+mc7vXgNlYYS1BwvhygXJUYpLR63B7/dbsEXl65ifGKKb4gIC0VQoJpuY4OMch0aEgyvx4t1itRFxVWplDxqdiOPx4OE+Dh88vE5HCnIl6ilyAVBBkEmwO12QRRF/t1Kh4KDg2HQ6/HC8+lI0MaRbGQwWSwYpIjbu3pgXlvjLxboY7M7sOV0clIfttNCV05PTUFqcjLMlgV46P55B7NR+8oJ5OccRFhYCH8pg8ftRVlxIfR5ubh47QaGRij/FFxWhg4Zqal8jw87BWXXKszLQUhwEOU6FnWnTqK6vBSRERrIRTlk0p8oCggPD0e54QjOnH4TSfu1lCIVDmVnIS42RmLbBie3O7YwYZzG9KwZasrlicpjKNYfJqq9IaNoDfp8KmIVBRSIWZMZs2YLHA6HtAMQ3zj9dn1j821c/u5HdHR1cxW8/lI1tBS9P7BGclMxu3v70dnzF6lnBMsrVigUcsRERUHUpqbX//BLIx7RW50uF89dVelRhIaGSBRPB4t0aHQMIxNGmIhjYGgEThJGSZEewuLiCqxr61zDTMtyuQKKAIV01D8CaH9wUBAvuJtIVklBy6tWviYkJyciPm4fFU0gvbrhIEnZ7Da++CywOWxYWF4m7TvJHhScK4maj0G80nCxPisjg8hF3iA2hx3PJSXSJ4lveBq8HqB/aBjNLa0IJMW8XFmBd0/WoqK0mIShghCh0aC4IA/n3qvDq8crKEVruHe/E5sb/qNfpIjbyR7WNzZRVVaKD8+eQRFxaUiqDDs6D1Sped5Zp7W1d+BWW9t/mpEPLrLiZvKhu/fuc3KRfF6lVEqr29ghN87OkEl1kVcwl1vChUvXceHyNYwZp3gdmOTcRLhF6pgmI/uGbPirq99ihhRi39rCA3LOUfL9J7FtXJS8nxpv4vOGK7DMzfPKMzNTq1VI1MaTPNOoBvtpInk58eDwMMYnjdiwOXit2EgIIsV8ev4j6uoSiVryFtbWsTExSE5MwNLSMgKUAcjU6XjrTxiN5Jh3oBAVtMtL6fBgX3QUDEWFmLPM85s5SSlZ6TokJmo5qQ87k8hmt+NBdy91aQ+iaMoU5ORCownDrzdv0SS6wV2S9UE4WfGp12rwVm0NZh6Z0dU3ACvp+jD5UkHuoV3zddeYY0Wy00vUVFxmUAwPe/rw2Zdfo7O3j6cr90A2zn9wFgeyMvk6O+OknCupmGx4P4ld/7H8bXfb45/TU5NxzFCE/QkJ3JaL8l9ECuXfB3ZGrVb/i5jB74Bmy3PzS6QKE7U6M6RIREdH8oHiD37J/z+AfwC5iBbuypObPQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIcAAABSCAYAAAB+FMeWAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAb/ElEQVR4Xu1da8xmVXU+M1wcYLxw0RkuAmkFq0kVYjE2BU1aaiW2Aona1ja9+KMdbaBF+VFGTS8K9geFAOHSHwNtorZCUyH1UiuYgNY2ImppWhWtFRSYoQKKwMAAM13Psy577X32eb/3++b9ZgD7vO86Z++1nrX22nuv95zzvt+Ia075vW/vGoY1fI9AtdqEtHexppdgSbvkJy10gl78cgTlu1cdG70Sz2FBd8kZuch5jZzHPEHiaN7O4mqK2vo8uz2fgVqnrWm7noHcdhSettwH6Pgz72FYa5o+nO/nPQVZUCy8iy5wD5imvnShLVHSsRDZr3DxUm6x10w75pgeDTlp1+B2ILcFwlEajtqKwgA4N2u3vgHz43EpRLBJ1HEmolqYtWqXwwTPl3KPQhYQi+iCfl/AVRctIC0I2z4zdbgVy7nGC6LYWQi2UgJ116Of3F9hbC+ggMcMp2Kv4kAKj1Oq/LI9IgjcnpHtGS235RW7Xjl6sR20yQHnWbzVBubAT1qRuLqkCWKT640WdLhqzTyLaS8gOJXYUSjaY9OgbMTUc+GAxZfl4XaFR3AF+sKZaUcbolxAj84J5/Duw+MANXNt6QuhxOtC5kR6K1NYyu7InNjEJHKARQkJ2ILx1cWM8I2Xqsm3VhCb2M6rOEQdTyF2jJ+4tHHsdK485IU8AajD5GO5wmPmfnYIx4BHKDyVovdW6+tcscvbsy7PHPRT4whm042QltFcprCU3ZE5vtlZ5NAXAJuLTciCyYm9ihGj6EKQQ3FbFkA5/gLqeIBYfLwQwOzgaoPiPRa8gyocOv6jPoC2PAyzjaP22XN66LLAGASB6jT3xJE3WoAWR+s3CSNpjD0H33TMPrXxUujC8+WbB5Px6aMKcgEewWND7f5SnkX1eCDSJAeL59EYwlraNoDqDfL11XKcVaIpX+F9h9p0pJrLNImWDzi/RskYPG/rWW4r5hx+0kA7+gb2zaDvPQfbIG5Sanvf0yJkOl44eYmEzaPyrA0euaERkSNissdgKmSVmDUXKPY8Mq0Wj6+IrR4FOQ5QeDVcryONeXVUt+WcZvMNQinPHD6Oo+eT7bm9N4D8QuSQNhCpxUakzaCdxaAvwLaMLZUSSxkJEotcxgQ8HlsEo5BnHSDl5uNPgxFEkk8EKhhHcJ4LMGaNdePYDr1yMPkMcZjymY61R8BMPV3kQkG+jQAxN5XiJq/MI5znR/D86PHsUK2XFgxeAVDyOdsEdU/gZGMDxc/Z0JS2jgdJfjSn/pLweEBuK6w4rAeMOR0YaS7uYsEhcZg1NqfUfj59A80RRpm7siBua3iEx6ojkkOax3CU5wqec6gKnXhEfi7x2MU2htnC5NwSpdeahId77R/cuWvXTulB5JOED5N/MK7/5Ou18QzFGb9yo7UMnFcpGl0DW4kKLcfAxcFZhIVVUHjSMnu1mAkaAt84pAj86uXnGMCR+20b0D5jsZV9l4cqH4F9W5GBfCxBsj/zgalhI7mZOkleGzBJClUCtTsLapq4GEbiMjEgu2rRV+GpnQw/B9wjmgke15Vot/3skNu5MNyvhxl6cbXMFDIfFgdzwgFv+ueBn7lAQWBS3D6ZbFUQnK9sHsQWreKRJGJ2ZegxbBCcYK94VMoJEfWsOliVw9wsnJ2MB7jG+xn01iaBtsd3tH6z4gGq9+y9X34EY7Jp0Kk4zyCMrg6YHqdZNpHFQIKRyNFtTizlOJdUY9iaOUfHNIpAw5VYAGyRm/WL2RtqK37aV7gNKHrlZp7DdTGIILcF7Na+URy0YaKcrH7anhXgdHxeApkWC8I20SZO0cWF5I32dRC9bXJVEA2HhUAeu8KIaGxB1Kbx2ORRwL7zAL9dAM7KNm3baNGfRrY33MaELh9IVSMKtJ7aqQ15X/+p8QPpGW/8jLUMZWbVaU/j+n881VoFZ7zJHkhjhgnMMyc7SQqWLr70sD6Nf+HgALvzYDE/Q9awuBzRdm6xoQCmN7+KCMXyIC6eJr0tj7U4uTA2WPJW8xwIZ/OQE8Nob6FYdtzIzcAA/slGR4xYCAoZhFqVAWBTuDHkyMH8cz7BoRjIY4NHReGxMLDeDrYhOY7a1aeF+/ZsywDD5KuUojxzCMhZi6OIj7ssaHhf70UDIZcb1maj02EA3RS9HUApwHSjYPQTylc1EbGmomAoe+VAfEVRZHvhOA/FoLwM5wGtPffQzlwgj9GBmHsjAvU8FCwFB0xavBJiIv7TDUxXm134lOtpG8QRG4kGt9GLwck0YTl1BN1qfdURM8d5Do2vUqD2zBNEx/keqfYdo7VXUQuENmEpSB8G/SprEvCrRw/w7Y0QuiWHXyim0pkF1EMURacgyhVC14AblDlh1Regm2iSeGP0eAam5D7FWKJkh6l2HrPXbgc1mDqsQh/fVnBGI5LsYMoUkdNIWfYSMBUtBoXWAw+qMLsXBT+vYqsKxzl8qYo8awFuVR5gNo6jnMQqPDkHSCvcGuhn3VTb4XGA3G7gY8qbUSyfqjiACNEbi9Ag8wLjuLDfyLxo/Zbjq3s8TtoLAtG8GLQg1K4DycE5eAWnkPwFTXDYA4o/jkDmqcK5ApKcqSixgF7b+Nm0FMDt8LNqVBye1prqaWQZiEG1oYspLdN727pzw/lZVgLdJznIOzaIyRlgErsXTYzmSVOd7VCnOOAItFzwchiHBIhYGANNj2eIpgULhfdbWEzSpjgGmoUIrp0AXwKk4booDgsfsiSmSDaoQjsc0PUuewh5zQHdHznkiQqnFATMzWZDzI4XFKWoIAK3m9CS48DT/PUFmK/zHNEGS8ebDxp1GmInReIhJE4Wmmpz99GiOJYKG6BnEznDTJmni5T1ew69FAmsk2yWHNgtG8muAibbbBj4yhy65q1OHKDyVzcV40Qc5ZBu/YIgNWegtNVbuZ5PFylcDOP5EjDoqbpyONynj8SsJtFgVpA82J6ETZoiOegGQWA0iC0XDYx4kQOhv9shbk9BYPaGgPZKBGkMPVZWA3pudWSGt/V5yJHbNUSfwlU1QZjR9PrvObRN5FQ+dsMvWKvg9NM+LRxhkehnxdXvPWJ4yVH7W2+xuPf+J4dffd/d1huj+/N5++85psBp2AKPFswQHKBP8k/vVAjAP9URB420hpUzd0ZjzoOYA9tzeJEgByfGB0IgzTWnpL+tADnP6eIQeKAU8Jarjh2+esdjw1dEiByMGCnmwsZD9x1Oe81Bw2vfeadpxlhRceR0eitJOw5mzJzwTfZJZE6Przpubv6ojj/aDeYZuwNxwbYxPA4IQ1jDTyspDoCfAJL9rMVxzcd/QCFysEBXOakGTjhu3XDpORsWXxw9cDrNFaJaIbGnD0RcbZr8yxWicU4o4wDWyvQli8OBsZbi1hz2EB8qm08UjHbHX2WXhnnGQBjA2yuEh1wCoGVZKDwop2NzwrR8arJyfGgUwYaDE4trwGbjBZCTjYGSOe1cO4+D+JmBVunNhyl+nQuHBRI9dIbq28pcaRipioMZ9QCSyPp1a4dXvmTd8IbXrJdnkv2KwSHNjYfsO1zyRxvIbc0OV0+Ylw9Jm5uB9KeCwsbpaTFUBRH+JIDBF+0plhaMcsKQYpAhMdCsXeuewuNkZE7LN4wofZ5NhVjBlSOl56XGBesMJsQTXrpu2CIPqpe9e+Ow+bcPG65+zxHDJedsHNYfsA/jMBkRPFecePy64SUvlgda07VwdZZZyJyuj6R88+XHUD70J0eqTgieE7DlvMOHW8QOefXL1oU9NpNTxwEduhgHdg2iBeNGBexbzjuCQobYGcdATx3Ie4Ycp+h9rElks7TLUGbIdrPN+hNbF/yUcOJ1mr0ouBpc8PsvGrbJN423f+Ce4bWbvjNsvuq+4TgpgPM3vRBLUhY2Rbt68xHDya880HoFYLQyC5mzlM/RG/Yd3vhz60ngwomgGI7L375sikxZDrHA0HNZyhrEZsubq2WmXDCHPX8fihfdtR84Sovw5dJ3cAwfqEWjn0GLzMBBn4rQhm8Osfwrhy1ABIkVymEVp/3s+uHh7TuHzVfeN3zr7h3M5fP//igLBFeJE44/QFieYEkUt55qU1YJaS+JU191kLUUZ7zuedYyYIp5mvBPMbDh1ii2ZgxyjHb6H3+XcuvXHpdeFcgpI/8xlMC4U1zRc5sg5ET0Avd1k5yXXxy41uDK0RZJByiArXLVQIGQaGR83QWOs+cP3FJ6wFXnvN86zHo1MHqWHqb0Dq/rB3+0c9jx5DD8tDwXYVqcmgi+JUEPe8Ds577t0OGGv3hx3HJw++EVABSxQwf7xWdvGD5xofI+eeHRw2+8/vkk4OUcbOwtlx8tV9p96H/hWRuGK87dyDZw8R9uHD550dHDLVceO9x42THsOzad+QLqt8jV9kN/eiTbr345PnQdYF6xYegYXO8qnEWWXRxcOPujHI/c9BixAn64OugAGcIGUwd9vgBgf8vPP09uI4dLbxxj/YFrh8MnCofDJulhSt/DnVt3DPvLUO/6tUM5nU2nHyzPRWtY3I8/YZEs//OlaN908vrhR4/uHG743MPD52/fPhyzcf/hgk0bWCA+7sHPXTu88AX7Djfd9shw2zceYzwWhzDy8wXwkc88FEWI9r/8x3a28Sz0qp9aN3znnieGj/zzD4c77tzB/rXnH0W7A7fq/fdbM9z2dfuNyWApp0azKtB3VNCt6IGUFcIqwXl6Ez731UeZ9GnyLSUg5LPfcgivJriCoAAgltJew2e/9CjPuNoBJ9l9//O3q57AREXwyXx4+67h0uvuHy76u/uHzX9133DzVx5hcf36qbL5tiDYbHL+9v7hnEu3DVsfeIoF8mrZ3AxcRa66/gdRhF/+xvbhw5/+IQsJz0J3bXtyeOeF9w5XfexBnr/53R18ntt05sExFnRvfc/3hnMu2Tp88b+0sAAz6+p6p4e0/KRJf0XFoXUh3/c9IKLlT4K18XyBT9558i0Flz184j4qFX+CbMAFf/N9vd0EZmW++viwfCqxmdgMbAqeedD/8tfLQgObzjiYRfCde3cMX/zaYzpVkfdf833af+JI+7ZlyJyA2KuHV11A7TjE/DN2m4pfnA23fk1zesVPit3CPL6j8XeIGhS14oheGTtUOOe2YGVXDoDPHtZuYRNHUeAWct1nHxq2PfDk8NyD1rJg3n7+PTwDmPhXv/kYi+hb39sh5yfY/8od2/lpwNUnYEmvFm6zQvjdX34Bz//5P49zcwOYVp5zzmdqLZzT2LUgloOpAZYGR+IhxWjDWT+rV1wc2P81a8WdDRk7z1U6KAx8W/mgXCEuu/YBfmM5+y+3so1CcODWcvZFW6lD0Wy9/ynpbxP948Nl1z3AwgrkzJeJ7Ip2L9Sfy6cfD6C4MuB8/c0PeZ0rZI64tMN2/NHPYRDaRd73O/rg/G18K8trQU4OIoA9cfzrbcDsX7LnB97qSFHeSS/TB87b/7u+olTjOuDS00PnwyY7m6Zf+ZUDkEn7vH2cN0hBbHnvkfo1Vh7Y0L/kXRtrOWeWbBjJWW+WeyuAzHsTnQPZbVaYO+7C10p9QL3VbwkNbpV7Ogro2vcfxQdYfKt63YkH8Tnkxi89UhbDUH7LMXDdCsntO+yZ45fkGe3d8m0ID6B43sCtbos8tOObyRXnHs7nuLu2PSHPJiiONFgzbouZX3c7WHFxYBqcn00U/c2Xbx2eKw+XSP66mx7ipx5Xhiy4QvArrtxmcPvI7bE8TsG3gcv+/kGd2DImtxRyKA/9iS88zD4eUHWrEjhXuV1edR+/pTxHvh2cfsp6PqDeufWJ4Yp/eGD4xL+Kf3b0dh5MiqH6tiI2rOGn/u1hFtgvnnTQcKJ8jQblN//sbn4DOfzQ/Ya3ybPQsUfsz/6lcgXWB89RlpPwOQZybjmMtav/OWSL3l9lzzz9pjomOk8+xcme/dZDh7fI0/oH//p/OdGCkhIeRi+VqwduJSgW/CX37Iu1PRtpWtUMFQv7q2wDDiWHvJcZKBagazcbTjRnjij9dhLPHxN2BA/TVCI9gGqDIwKvVvDnmYyw+1C5vXu3FQCB7HcPfCW94BopDHz6MIgn0ANcPKHlYqnYCwSHaseSvFkUIrBVdrN50SAA7c5JNmxY3HIg0LsI3O6uCjO2qEmKoOq/FXFEC43s5zkYVlQcyV/bMltUJQrjn77wIxkjjWjN9Qes5d9L8CwCnPXmQ+R5Qn/pw+8gJ7/iQHKezpjccAFtZud+N3bY/DkjbG4PmwUA3E5bsiRKhSk9xzCjtTk+4OcWpt+t3fDY/J8x2Fdb6nBIA5/11kP4i94F73jRcMoJB/IW8sj2nUwZzxYnvnQdbfiJGL+F9NEEBTqq1UQsaouJeXNTTQB+aNwO3cg2tgNQuXpZoFPjaTHjDKANmp8BOa/omSMjnPHfFHtq58D/vhggA/kn5YJ3bBjulYdO3G7wW0YFSxL/9hQPpxD8YY5AKLMXjBTE9R9f7DMHRplaGGYgh26xiN4znLL7KcyZ586OJkb4TVZqQkvJg/baPEsD+yanhV3HWQj+w5gPYhPYfOW24bKP3j8uDAAUEdjw7SYKw2H2gtLhUD7eCjHlXg1pwFjgMqUOwT4LfXszEM0kiiCuCeF6s4XdVCMkpYcYEVtnjw3kdmksrjgYs5phk1/SjzBlynoEc7EGX6FbGeZx9zRY79Z2wMapiUQuThJdsyTFDnG7q5I+xOCmLhoekXSAdvGNhY3ZsBwW+gSIq0f5n1HKmatp6Y5WLqGjCiDc5IT0GXyuCe8G2vR8TJw5o3ZasJkdqKbuNjPGEkEE2S98TNyPdg/QwuLE2aDd/A+aBd5BKLQhHlbau10ciBVpsqPfXDT3sFiTBDTGqLJu0Np8InKIq8cqg5lb6hxeDtWwYoOdHNiS0Ox2NavebNk3fDo2gHZv9GC8gPeFzhgTbj0s5NtKBp89RNwWvwTiVM26QTupDNh69gg3EXM3kYflUJ1hIi2xceMyR4y+sW6jHQJHswGVb2uDJDvNHtjhviRrk0RvZ0JyqzkCmC30iosjx3NQh8Hs1hK5x6xnYA7KJHbDFym6AH4GEHYqtM+tZ/fFBaXadMBshNvcnvyAsEGgNDtAlxzYnfwMuJk6/30jEwQVR0/84U2+dS70mSMgM8Czh4+b5xDKFk3OjkqNTpfXD+r0rosBni7AVHotqjkZfCzYXCpYItRnm+hj093P7R7UQLu11SkZgTAmtLo2NsQG5pXe/lPnq1IczBl/zic4MgdDi0ACbcZN1zGhbhCRK8QtbZXho3dmRcQetgTRwUZTxxaBgWw3H5qd0/p34GMF6CMHKQaulYivGY4LLY5qYMmE31xS8jrsAoCYLrPA+eoD67wuK0FvXtwIG4zrnUmeBPMzuyH70ccFyDFNwgi92cLfYTaO5Z42sK4PDRXgsuLiaMdvwQTT1YNJIQntLgbNhMawMWMRTL0CzJuy82zYMSYCcb1E4EK/7Gs2gOoqrhiaahiNG/HkYG3uhwhDM4TsUZylIXu3W1eOOiWFja3QUa0jejcEIRoKd84yCwjtMhMSiLG0QOZyaTCVCmPJwafZ41XLAIKTXC8SBWE29xn5QUY2c7JTwO0wgJPs9gtREbylINbsI0UhgvZCbyuj3DigDqywJKcAXiuzgFAuXeQANraIX0aXCt9DmxqGtrAB2uXgm9faszP1jW3k53azwVzFdAecrElkZ7e53duyPygIFgb3Sgm7du1cnQfSChiUA/qgPGnObLtC4LqkmgIjelgNPYFi1NByxFsSYZHMiTyMxukDHNo5BlUE/eXAnCec3TbydT9BtrmeJidUgE4FNxC6gcdCMLEAMZwPIA+py/6r7DMJo/+I/2hXdGG0eAs6rJFuXjCyHPJmZ2BomvqpTdriJDbltKQGJKsjx3Q6VNZWq3R36v85wupfOZ6OwGLoinIR8IMPryRQCXyRHK5fLnzd233LtUhbtouNdtFVNuhcTA+7m6ugDuhM+MJZpMrH2qABXhjQP7uLY7ReUPiCqUahi5FXe+Q6J7KfhRqh2pwWSKGxR0zoO75h57xUWAhJRVcJ7LdS2Bywc1z++KVt4MfzytGCC4KFsSsI27qAeRGnkDm2rhVmxZgnPmPmwE1iI5PZoLdpVWCxJH8Qdc41+ce0OJrVckBtC5Q/ZVPgRoj0WG4DWnuzL3Mj+7WOPh7UvbTdTg5J2mGhQIGrhij9Bcx8IG2RiRikB3Ambbi3P/mUJsLELDuApwnPCfWykZOrZm2drPN8cPYcG0BbhRH0dHNjN5xbV2YsB+omYmphSEOeM7A3jAGFGLA3y7pycMAVwHPjfRB/kLNAcSljJw4F4K1kUITpCZDbARsoj0WeHJK06YDiOtdD1yL7zETj3MbOaOs15wJgjRmul5CA/rDxOaMUBvfIgi/8tuLJdQFj/O4hsMRrHyjN4E3rzg0EnCUVmkEaDurCF1CLeRwKFEgL5/Rs88Djun8uCOY1C8kRftmXTbH5h9OmZUQ0FMsujuTbBQZppfKRBPhLnAEJglMAm9m9Wei5uTLUgwnyIEnSieBkSoE4cjhzCR+6aHMucANjwIJQTwSbNZ77Ie0MzgO3+TDgqoGzR1vhlaO4Lx+6ADYs2sitypwKFd8IiMGbOQdv705eCh8sDZhBExZU7tE8l1sNZMp7Ki/6JSOXITlPxc0+QHIpBWacys+EqAbDPMISWPXbSu5HOvg9X24vkRoTRUNP6oOjebdBBe4LRBw7z4SH7UlPmbsGXVc54O25z0DL8HAeZgq0a1NhjlM+jOlOiePjOfyHLo1jhRFVVbDw4gB8mHqoAur91uIkyZRNSdiTDknNhSDHy1JhpKhBHzlgkfG0b/lnmUJ3uFkOOeCMtCqT+zRx8y+gemgIgPmtSnFMIXLFgX/4YY858jItzbATaERncfCwrVQYKYJXWZA0RW8z81xJupjlFmOwF+hkGDkS5hNuLApV6Gobtb1PGfZocWRwDlIgAeQ6Wtim35/D4sCktFngymQY8bjamr9IVejLxRJOPjRkNIZ3mIs2AaqRGh9A0VSj3k7YVKCd+nutODQRJAeBgllr2pq7oeosFgjdky46hrSQXHBdeTtrkSTKTIDny9DCbRCGNwEqejYIIqbAb30kyLsUhjMEyRfYe8Uh0B/F8tUDiTPzhCb5LLsLhJ6SeUE+llqdUCTchPTbyFIhYWun5D7Z1rOPIMr4vBlGhRGEzBI03b1SHDFRJIPnDiQrnerTF6g6CqWvLnyMGCcrQllAlZaIWm0eKJDq94QCj5Itxd/ctUm4DdLaHGtEmZfQH0AZE0oP3qKj36tXDkCvHpKZJaeT8qk50E8677a0RSHHr8boKgswByt0AAXBokjiVkiOUrxUP6+thdsYP8a1NvViYTCPaIBZKYG9VhxM3htxa5EOJyLNTrIB+LisBnL8SuTgMjK2kG1A4bONSeFUriLoZm+fLqTFLFsLxpMDi4FXDW2rXo5otKDRxCF+e6U4PIfIBYuIAqGCs6G6SjbDzKsGxF9KxooC5F0mpyfMqZUFIg+JAtSfxjGMjVMVRjSqZjUN0MV5sVn+P54lGIb/AyI3Go2bzRX4AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/rocket.c8d7fb5b.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABk0lEQVQ4jZ2VSUsDURCEPycTFxQ04r7gRYLbzaO/2/8geBEPKlGUoBI3xCUhxoBKST2ZhJeYpGDIvM509ZvuVzVDxJEA88AiUABGgS/gA3gFKsC9Yy2IES4AW8B4h2IBNeAEuOtEqPsNYN3rT+AaeHIyLjIDrALDjl0AZ8C3FrkM4WaG7Ao49GuJbM4JIn8EykDqdky7RU9ZQvVqx/fHwHlbf/aAMeDWa/33ADTca5G+A9XE7Nt+8NLVe0XZOZgjSbw7VW8CpT7IAkrutzgWE09VuDFpv2hmWvFLWPDicQCygJA7pUmNeFH/J0mHe6ktVvNBD7kjqSeW/EOmZyaB3Uh8PxtIPfrUTX3rQHgATETiYWdj/m2kJpECZn2QY3jrUgznCi+JhS4sA/muLx5H3rlCJRDWrc3iAIRF58qJKjlrtO4JFtzT1x7J1mwowpHkF7Rcta6nrU1VfI75nZHa4gKZHEeG0tW+tFOpJ2ZfK5nz22JfMYOVtmVlvRjsaWaof7uKIZiGLh1oqUTIfgJ0tbYE+AHyB2GXLT91xgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAVCAYAAACt4nWrAAABFklEQVRIiWP8////fwYaASZaGUyZ4Qe3MDD4aTIwmPMyMJRGMjB8/oCp5j85YOfq///1Wf7/12FA4JJwDGWkG45s8Pzu//9fPIawzXgoNBzZ4MX9ELH53RC+pzIFhmMzeHE/hK/P8v//3vVkGk7I4J2rsWojbDiZBhM2nAKD8RtOocG4DaeCwdgNp5LBmIY/vE01gzENXzkdYlBhMMUG/////z8LSkFz+gCE/vmDgaEolIFh9xoGBmYWBoau5QwMbiGkF24oVtlLoBZGyC5e1P//vz7z//96TLjx5Bo8LheXZmBg+M/AYOoAwRYuDAxyKhC5f38ZGP7+xe/Sf/9QuIz//5NQE/37B7EcF2BipsBwEgFNqzkAqB8+XxuO5DcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAE2CAYAAADfzOrZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAKwSURBVHhe7dO9ahRhFIDhMzOrgmjtXoCoxAgRBMHexsJCK9FCrCy8KrEQb8FOQQUJ/kG0EhLUQhAsRETy7ec5maQT7F/fF87u/Gzz7JkZIqJPN29HfP2Sh3k61CVIvc+zXEZ7cD/GutbGMVoetoTyZrbF4UO1yuhxej3i5/c8BG62On4sYuv9jB0fP4l493a+gcPmnFmL1Z1biR3HPr35ELG5mdC8kWvHdIA9uxHt+pXCDn16/jriVWGJj3HO2rloN67Vm5u4tpvTuLObvtrr3j9wsFHqjDkZ6AX9d2KpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaX2H2J7Z88qJ0vs/snffkSaobAFXUx5lG7iDDnl2/MOY5+2Pka8fJE3kz/kUOqr/EjP+vloVy/vP8aL/Jpqu7RZzJudcnLLQ26zT99+RTx7mu56sEmbrfe1RVy4GO3SRu04V3vqZMSP3/kv1INNwtbkx9EjEds7M3a4ey/i86cZisLWZvN7eSL6o4fxByL86c5LtUrqAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAACxCAYAAAB6DsUNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAF4SURBVHhe7dI9TsNAFEXhO44AdwZR87ME2EQEy6KBAhokKtYTWA6hCwXxMFbMJo7PkcbFc/XNm3J+c1uPxjGpNSkluGbXb9el5PikZn2X/Ox44H9P3ycfm3TzeBGVXFzW1fNr8r1NpudM22x7vhlOs395apudcKs2mIbk05zt2xrbDUy3QD6tA3YhiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYamKpiaUmlppYaovCllxd19Xbe7L9SsaxTcr8C1CtbZ1tn8NZ9o8PS9vsMNSyvk92u8NN0DY7efo+9XOTP7QTpHW3Wx1lAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAACNCAYAAAAJtgLbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAFeSURBVHhe7d0xSgQxFIDhl8zKIliMC3oDK0+gIIhYWIulhVcQEc/gCSz1NpZewV4RFrRanZisnuLP/0OmmFd9JP1L8yGV7c1ZTCVwNVKqJ9fP29cq0uHpWdm9uIvpc1mnU522MaRSuTnHsDXG68N15P/fXZQWJ1dl//4xVh/Mi01DxHwR8Xx51G62/vmpkwrFnuar8q6esVhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqYqmJpSaWmlhqnWFTjjz725qNPdXX9r2n8eC87N0+xffyPdZr/EGrz9cr/HOKjXEnXm6O+3rG7R6bv4MifgGngWXiNEChOwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAACJCAYAAACSJ0DNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAE3SURBVHhe7d29TQNBFEXhO14BzhZEzE8J0IQFZZFAAAkSEfUYysFkJsA7vBXQxPE50kzwsm9eAdNOr677wTQlvSetBdef63uxSMvhUc/qJvna8sD/nuUyeVsX9uy8D4/PyecmmTdMw9ZGMx5n9/SQ2m3hhhrMQ/IpZ93VVC8wvwL5VL/YPUksNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS00sNbHUxFITS22vsC0Xl314eU02H+APsk+yu78r7Dj2trpNtuyvz/v7Oj8YC6QlfUmqFAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAABvCAYAAABSOrhSAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAE2SURBVHhe7d2xSQRBFIDhN7Mnx4HBeqAdGFnBCYKIgbEYGtiCiFjDVWCo3RjagrkiHGh0uuPM2sW//w9vg3nRxxbw0rxLZW8xi6EErkZKdXL9vH9vIx2fX5SDq4cYvjZ1O9RtW0MqlZtzdLt9vD3eRlqe3ZSj9VNsP5nW1EXMlxEv1yeRx5/9WzcVip3mq/KKnU5iqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpaaWGpiqYmlJpbaxLApR579X1LATvW1sxipX12Ww/vn+Nl8xHjtBHQOY7x0klPs9Pvxenc60trTBIr4A5SKZaZMtZsSAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAABJCAYAAACDz155AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAEgSURBVHhe7dyxTcNQFIXh82xDEhAgooiGNl06JDoKigyQAaChZwEWoGMCkiXoKVmAHWgQEkIBgYz9uI8x/pzfus3rPl+3fml/WOfpZFdtn5WV4uGUY4pnu5KeXz6UFrOjfH9xorf1j/oc3MTh5vDUVdJkb6j53aPS1elxXl6fSetvhTZeBWi3gVVgdTDS+c2Dqq4cdJ3026On7DG+5s3JWGrGUjOWmrHUjKVmLDVjqRlLzVhqxlIzlpqx1IylZiw1Y6kZS81YasZSM5aasdSMpWYsNWOpGUvNWGrGUjOWmrHUjKVmLDVjqRlLbbOwW3WSmjom3OBpgpnm03G+Xcz0/tUy/+8P63hnoMvVk9KgTvlw1PxDaRVS2V250OD1s9UfeqWql2SIoRoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAB1CAYAAADwd5mvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAFYSURBVHhe7d29TQNBGAbh92yQDJaMjYj5bQBKQDSCRAskBAREBJAQEhGQIegD0QuGAAMB52NX7mI8o9u90230aAv4mq3Do2519pWkKU9ZtLqubvlbWy/C/kqX07Pke5bM5yxwhVbPcJi8PBfs7l7Xv39Iph8F2/KwvV4ynqS9uizY7Z2uf3OXfFYs8GYrdmOc9vY65av+LMh6gF3FV1pgm/KqN4pdC+ZiX5LEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUhNLTSw1sdTEUlsybJ16Uuf01PE12FV8xdlk/6DrPz4l0/ekhQ4nmmymvTgv2NGoy/FJ8vO7OKRhq2cwSN5e8w9eISEinR6I2AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAABbCAYAAADN0f3pAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAEwSURBVHhe7dwxSgNBGIbhb3ajQRAhYWsvIKS2EFERLLWxDDYWqfUM9oKFhV1uYuUNvIQsWhuS33/iLd79XvZflukeZradslcUB60UG0klB1TkVFKT06/z+/hmHoePS61/vv7FBSSO5DatRpNOnw+nKvvn9zF7ftNvz7SWPLXjqfRxe6YyvZjH0dNSq28wdpLYu5N6nPOpQPpk9d8dTMZSM5aasdSMpWYsNWOpGUvNWGrGUjOWmrHUjKVmLDVjqRlLzVhqxlIzlpqx1IylZiw1Y6kZS81YasZSM5aasdSMpWYsNWOpGUvNWGrGUjOWmrHUjKVmLDVjqRlLzVhqA8PGZnvXGX3qq1Gzo3ac6l3wpE/tSKW7WsTs5VWrPhdoF03WHa2383XS+/XlllaXBpD0BxZpqDChsUSFAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAA/CAYAAABetLClAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAEVSURBVGhD7duxTsJQFMbx79zeBGQQFyExPAOTiZoYNl/B3YGwEQYWdh+CyZ3JuPk8ji4OLpDWHs+FhIf4+v2b06bp9EvveqxfmY+HPfy1gMPi4sljLO7ZHF8/B9jL7Y2/LR+B3z3Qxmcj4np4UniGA8w2H0i5ipec6CenhHRo4vzu65iGeGrUwUxWjm0HpjziH3cnYVkTljVhWROWNWFZE5Y1YVkTljVhWROWNWFZE5Y1YVkTljVhWROWNWFZE5Y1YVkTljVhWROWNWFZE5Y1YVkTlrVuYb1sNXVgysMWDxPfrmbc62lXAzyt32HP05Hv5vf4Dmwb2ONSE0nl1FaBvb68wN3r53Gp0vPpG13xX89bow2Af1z9HFFdBjfuAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAAbCAYAAADCifeFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAACUSURBVFhH7dkxCsJAEIXhNxJMwICFIZBeYmuVu3gBb2flTbxDIqROESJknCBe4u37l21mq4/tdq06ZH4+FfisDofF4sljb579DngNE+zeNX5Z35hjygT9t4GPGfDoC9jtWntrI5bfGWVlYJ99jrjgdBKWNWFZE5Y1YVkTljVhWROWNWFZE5Y1YVlLCpvWu3E6PwITvigaJnIyMH1xAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAABbCAYAAADN0f3pAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAEsSURBVHhe7dwxSkNBFIXhM/MeRBFfErQUC2On67BwLVYuwCaFkCI2gpU7sHIL4nKiSRUwzBvvM7v4PT/cKWaqj9tPOrm6ru1mI6W0H1q1xtGrHB0raTSqWj5L6++461ngAZqzNJ5Ij/PAXsxq8/IqfQ3YwsROpirzh8CenddmsYzNrrmb7cYqTwtl5cA1bUzDnTZ8scRg/5+MpWYsNWOpGUvNWGrGUjOWmrHUjKVmLDVjqRlLzVhqxlIzlpqx1IylZiw1Y6kZS81YasZSM5aasdSMpWYsNWOpGUvNWGrGUjOWmrHUjKVmLDVjqRlLzVhqxlIzlpqx1Iyllv8+ddv9xOzAE76+V9LssjZv79JqJRXoV4TTU5X7u8B2XdXNrbTd7h9p2MFzeCB9fugXVF6u9gHs978AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAABHCAYAAAC5xT8JAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAEcSURBVHhe7ds9TsNAFEXhO7b5UYSEhEBsgQYaCiqUFgk6GuhYAw1boICWlg3QsgjEVqL0JPE83qBULOHkHvmNZE/1yXY5ZX9Q7PWdohYpL1KR00ip03ysKqf3j3Hy9qrVLJ/W9S6lpu2l7SPp++paZTJ9iLOXdy3muZfYAsJGYktidw6kr7tLdbv9qK1V6kfwpG/oa37O7Wpvkz65pHRzMpaasdSMpWYsNWOpGUvNWGrGUjOWmrHUjKVmLDVjqRlLzVhqxlIzlpqx1IylZiw1Y6kZS81YasZSM5aasdSMpWYsNWOpGUttw7BR/w7V0qct3f+H1MlV5fj2KS4+nvUzy9tRyGPgk0Pp8/ymHRfuogzDeptYe635ty4X+gXqXFEyfEoKdQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAA1CAYAAAD/L5PDAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAEZSURBVGhD7duhTgNBFIXhc2dNKaJNZUHwEiSEtKmhIHgHBKIKUkGCQGCwuCoEpqK+Cc/VNKmgFHaGewtPcfb8yTUz6tsZOWsJKN12hVwbihkMPBUfVyH5rLY17GF0Ul5fLoH1FsjZd4m4xbmVH2fvENc3c9jtab+83w+ATWB9kw2b3NM5wOjpA+kngLsa+PZTJZ5gJouTrHziCxBPMP1CNydhWROWNWFZE5Y1YVkTljVhWROWNWFZE5Y1YVkTljVhWROWNWFZE5Y1YVkTljVhWROWNWFZaxY2xzPVOv+9NSaeYNrk7Ki8TYfA5ssXY8X+vwNB+/fGfnk7LVw8LmF358dl9jwG1p+c2HhJ3m3jarLY/xLgK00I+AWVrCFTYC8zUAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAAeCAYAAACSRGY2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAACdSURBVFhH7dkhDsJAEIXhNxtgK5bUEEQtpLW4noUT0MPhOAs3gApkZQkMS4LgDG/ftxm16s/IsXUMvtskPN8Oh+XHw/N8e5YBuI4T7NQ33r1GzEyVfzwX1yvgfKtgx8PWW3tg/n0ySgvgco/ICy6HYlkplpViWSmWlWJZKZaVYlkplpViWSmWlWJZKZaVDX3jbSnnjxSD74s4bE34AF19KGh3RuA5AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAAeCAYAAACSRGY2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAC3SURBVFhH7dkxCsJAEIXht6NhF00UJBZaCd5AsPM03tbGTiQXCBYWYlASo44bS4/wnG/ZaqqfKcdlXnSZp2jfCoWLj4fG3/UkAhzKK9x2PddjUcL775zOvQU2M6BoAqRqnhCmdf4YJMD+DNyqGnHB/8NiWVksK4tlZbGsLJaVxbKyWFYWy8piWVksK4tlZbGsZOT7eHVHEVLd+WOVA8MswKVedDEdY9Jc0FOFkp1CJC6yTgJ2pwc+gGEouJn8H5gAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABO0lEQVQ4jZ2SsSuFURiHn0+6mQw3f4DBYKYsSsoiYrBJCfkfWNgMFotBzMpoUEyyKVKSQbkMUhKicN2S7mM5pz5fh/DWr/Od93fe3/d0OqjD6rVaDaoVVE3oSu0BQK34vzoAaATKwDpQ4ffVCbRHgie1/w/DqFNqJRLkjRLwATQUvVD1LMve842GwoEzYByYAGoJ7RVnG4F6rjkI3AXzKEHwVmxEzEgyCuyE/Vgi4BJYAs6BlXxArGagKQS0JAIew7oPvKYCFqMBXCQCbsK6AMyqM6j36gCAeqlOqNOJh7OqltR5tT08wOsiQTfwHL63C94DsAGMAH3AEFD6QvBdhT9v5miqale8g1tgUm1NzNaBNWAOiP4bMJhl2WFM71B31WP1JOg0aEtFXVbL6ova+xNtCr8thC+qHUX/E6utQkc1k3lVAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAASCAYAAADR/2dRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAHqSURBVEhLzZVtb9owFIVPEickZpRRSFOVaqyrhqru//+aqqUbRRttgdLxkjhxsmsvUsUU6If4w54oirAdfHLvuddWQcAgIk1x9/0Hlq+/kRc5PObiLIpwGoWwLKtcVY1dPo2Q5xLjyQTP8wW6nY8YnPfR5Bz34zHmi5dy1X6MitnGAk+zOU7DLi4HAx2Ri0/nsB2G2WKBgiJ1CKNipMwgMwnf57DsvylxXRee6yDNUoqcHtqLUTENrwFGmy9flxAiAYUCm+0WMUXMb/hw7MPbGTVwQdf0cYbb0Yii44MHPtabDWzbwdXlF/AmL1dWY7yaFJNfU7xQdDKRgfMAJ70e2ketcnY/RsWoUpYyJ2/kyLJMPxlj5BtGsxaYStOB8jYmRvWVx+cZEhHr3xZdCv3ntIVFqfpAaTqLTrSpqzAiZrVe4+Z2hDgRCIJGOfqGEpZKCZEkiKj5fe734VDE/qW2GJWKm7uRbmrXw697Tap6zM/pE+4fHvBtOETvuFPOvFG7tCV98WYbI+A+2u0juMojFbfneojCUOdttVqXb+9SXwwFVpkWxeFzR6EaoU13SudXFbXFOGTMTqetz6L3UNUUHnfRajXLkV1qe0a9LITQ3VWV8XvEZGJGH8B0ue9itM/UpXaaTPIfiQH+AEND0IhNpKIFAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAIUSURBVEhL7ZNbd5pAFIW3oFW8oNYYbmpuK////7RNYgzR1CSiiMCAaA8DrqaWNNJV3/o9oB6Hs+fM3lPYEjgiQvp5NP4LfEh+k2k1CxiWqxUYCyEUCpDrdUg1iX/fJ7fAfGHDnEzgkEC59AnrKIIgCFCVLgxFpY7pwpRcRxRFG4weTSydFXqahquLM1wMBhBFASNzjIVtpyt/crBAPOfMsmBZNs4HBnq6BrnRwEmnjeurSxRFEQ80WUQTveXwCUhh5bkoV8poNZppMaFarqDZlOF5DEG4TqsJh0/AzzZ+0Cj7tlG5kDx+40OBXQZ2aWEswOtizms7HNfF3F6gJlXI+FJaTfijgM8Yvj+/0Og+/12hBgUSMscTjKdTEmNYUKruRg90NCGU7ikEMvwt78aUBQG+3Q4xm1tot1oY6Aaenqd4mVmokg/hOiIxgQ5sC5FiqnRPYGgU0z0yBTyf4d408UrN5HqNLpVLURSxoYQMej102i3YzhIumVoqiZSmOurVGp9un0yBx8kTvt4N0e18Rl/X8eXmlpp5tEMNl2d93ijeeUzSMsPdlEyB+LbeDO8RbSJUJQmO4/LxDV0hsw9Pdkzm6qYs085V2rXPxU7pfHWVDMzZPCb7DRrK8wNunqoo6Bsa9+BvyBTY8BPe0hQazvs6SsVi+k9+smNKlXAdX/ktpeTXi5OXd+/BvyK/azk5sgDwA9M76IhS+o/lAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAWCAYAAADTlvzyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAJJSURBVEhLvVVpb9pAEH0+sDH4gAQakghIm5RK7f//J82HpqEJR0JFWkI4jc/Orp2UGFVeVRFPWoHH7L6ZN28WKSZgj5DTz71h74RCksZRhMfZHGt3TQ9pMAeFQgHVioOCqqaRBEKEy8USl9ddhIHPn7c3SLSyB0gUlEi81ukJThpHaTRBLiF7PRz9xO1ggA/tFkyjxGMMEp0cM7qtExiZT4r0ekOoBQWfOx95tc8Q6mEYhlBkBZZZhuPYqJBUFceBaZZQogT4c7ocildtG5qu8sSiTD1ChIosQ1UULtMLqJLxrwm+dbuYLRZp8C9SDbjk2xAirFDGTepHUdfTSAKNpHJdFz96faxWZCgBCBBKMAyDk4ZRCHezeVlGsYijeh3L5Qrdfh/z5W6lWeSahvVgNB7j7m7ETbKNxDSgKteIyCiHBwf48qnDx+jr1RWiMCbTXEDTtGQDIbdCRmGVy2i8q1M1tZ3lWCb9SKZ502Cb1k5SWQjNoe/78IOQJNRfHbim/t32h3iazdBuNdGo1Yhb4q6+/N8KWT4Pkym6NzdYrV8b4/fkEVMiOz1u4Jh6ycjyIORSz9uQIVZkmiiNJHBsC+dnbU647X/29V/UQoQsc6a77wckbYCN59HyodOYVOgiCEjCJObBI/ldehdGcUKaYRa62h4mNODfr2FbdnJN5bSd7ZnOZzisVtF5fwaZLo1nCJkmIMMM7u/5nEWUeR5YUbpeRJOkLpdLSTCFECEDmzPmPhGwA2Vys5r5a2IQJnwrCJnmLbFnQuAP9PgUwNJQO84AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/loginbg.25d687d3.jpg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2NDY3MTE5MS1mMzc1LWRmNGMtYjlmOC05ZWZlYzY2ZDQxM2YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RkUyOUQ5REMzNkIzMTFFQUE5NUZEODhERUU1N0IyRjAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkUyOUQ5REIzNkIzMTFFQUE5NUZEODhERUU1N0IyRjAiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ2NzExOTEtZjM3NS1kZjRjLWI5ZjgtOWVmZWM2NmQ0MTNmIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0NjcxMTkxLWYzNzUtZGY0Yy1iOWY4LTllZmVjNjZkNDEzZiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoaVKOcAAAEZSURBVHjaYvw/l4WBGoCJTH1hQPwGiM8BsRJIgBznRADxEiBmBmJhIN4PxA7kuEgYzSdyQLyeFBeFAnEgEMdCDZoIxIwwSWINCgHiZVD1IM0xUHoCED8C4gAWEg2BhRED1LCvQLwPiB8QMigYaggrlgB/DsRFxER/EA5DQOAxEE8lJh0FAPFyIGbDIvcEiB2B+C4hg/yAeCUphmAzCGTIahyGPAViJyC+QyiL+OAx5BnUkNuE8hqIbiRgyC1CmVYCiHWB2AOIr6LJP4cacpOY3G8LxLuBWBKq6RpU7gWxhsAMsgZiUSDeA8RiUM0HoPQNUsojSyhbFJrcRaBRfJ2UIgGURWSB+BAQH4TiB+SUdCCDpKhR1AIEGACswzQFNyJ0lAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2NDY3MTE5MS1mMzc1LWRmNGMtYjlmOC05ZWZlYzY2ZDQxM2YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RkUyOUQ5REMzNkIzMTFFQUE5NUZEODhERUU1N0IyRjAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkUyOUQ5REIzNkIzMTFFQUE5NUZEODhERUU1N0IyRjAiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ2NzExOTEtZjM3NS1kZjRjLWI5ZjgtOWVmZWM2NmQ0MTNmIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0NjcxMTkxLWYzNzUtZGY0Yy1iOWY4LTllZmVjNjZkNDEzZiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoaVKOcAAAEZSURBVHjaYvw/l4WBGoCJTH1hQPwGiM8BsRJIgBznRADxEiBmBmJhIN4PxA7kuEgYzSdyQLyeFBeFAnEgEMdCDZoIxIwwSWINCgHiZVD1IM0xUHoCED8C4gAWEg2BhRED1LCvQLwPiB8QMigYaggrlgB/DsRFxER/EA5DQOAxEE8lJh0FAPFyIGbDIvcEiB2B+C4hg/yAeCUphmAzCGTIahyGPAViJyC+QyiL+OAx5BnUkNuE8hqIbiRgyC1CmVYCiHWB2AOIr6LJP4cacpOY3G8LxLuBWBKq6RpU7gWxhsAMsgZiUSDeA8RiUM0HoPQNUsojSyhbFJrcRaBRfJ2UIgGURWSB+BAQH4TiB+SUdCCDpKhR1AIEGACswzQFNyJ0lAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAPCAYAAAA2yOUNAAAAzElEQVQokXXSMUpDQRSF4S8aBd2H4CLSiJVFioAQCwUhCwgpRDtNF1KksHtgE0gRC0FsxBRptHEHQvahoIgycItheDnVGfiHe+7hNqqq2sIBXvGlRhu4wgsW2F0HrcK38ISdOmiOy3gf4gHbJZQ0xk34o/jYLKGkYcBJHcywWUJi7G34Lu7QKKGkAT7Cn+O0DppgP/w0jS2hEfrh79HDXw5dZ1U84gy/efCLrILnCP2TV3CSrb7EMb7zDAnaC/+GNj7LTVKrKez72ivAP6ltJOug159wAAAAAElFTkSuQmCC\""],"sourceRoot":""}