{"version":3,"sources":["config/timezone.js","config/config.js","static/404error.jpg","static/Timey_White_Blue.png","commons/ErrorPage/ErrorPage.js","static/logo.jpg","helpers/setAuthToken.js","pages/Login/loginstate.js","store/partnerState.js","pages/AgentProfile/AgentProfilePage.js","static/onlineCall.png","commons/Filters/DateFilter.js","pages/Assistants/WccAnalytics/DownloadReport.js","commons/Header/Header.js","pages/Dashboard/TrainingSessionCard.js","config/dialCodes.js","pages/Dashboard/TrainingSessionCardWithHelpCenter.js","pages/Dashboard/DashboardPage.js","pages/BillingProfile/BillingTable.js","pages/BillingProfile/BillingStore.js","helpers/mediaQueryHelper.js","store/planFamilyState.js","store/wccPlanState.js","pages/Clients/Clientstore.js","pages/TemplateMsg/templateState.js","store/assistantState.js","store/businessState.js","store/projectState.js","store/tenantState.js","store/rootReducer.js","store/store.js","helpers/plansHelper.js","helpers/billingsHelper.js","pages/BillingProfile/BillingPage.js","pages/TemplateMsg/TemplateDetails.js","helpers/formatText.js","helpers/templateMsgHelper.js","commons/TemplateMessagePreview/interativeUrlAction.js","commons/TemplateMessagePreview/clickToAction.js","static/WhatsApp_icon.png","commons/MediaLibrary/mediaState.js","helpers/replaceParameters.js","commons/MessageTypes/Media.js","commons/TemplateMessagePreview/templateMessagePreview.js","pages/TemplateMsg/TemplateMsgTable.js","config/languages.js","pages/TemplateMsg/CreateTemplateMsgForm.js","pages/TemplateMsg/TemplateMsgPage.js","pages/TemplateMsg/TemplateRoute.js","pages/Assistants/ConfirmationDialog.js","store/webhookState.js","pages/Assistants/webhookMappingsTable.js","pages/PlanDetails/PlanChangeDialog.js","pages/PlanDetails/WccChangeDialog.js","pages/Dashboard/WabaForm/FormDetails.js","helpers/wabaFormHelper.js","pages/Dashboard/WabaForm/FormField.js","pages/Dashboard/WabaForm/FormCheckbox.js","pages/Dashboard/WabaForm/FormAutocomplete.js","pages/Dashboard/WabaForm/WabaForm.js","pages/Manage/AgentLimitDialog.js","commons/Graphs/ComposedGraph.js","pages/Assistants/WccAnalytics/WccAnalytics.js","commons/Troubleshoot/RegisterPin.js","commons/Troubleshoot/OtpVerification.js","commons/Troubleshoot/HealthCheck.js","commons/Troubleshoot/StepBasedSolutions.js","pages/MetaAds/adsHelper.js","pages/MetaAds/SetupMetaAds.js","pages/Assistants/AddonsManagement.js","pages/Manage/DefaultsDialog.js","pages/Manage/DefaultsPage.js","pages/Assistants/AssistantsDetail.js","pages/Assistants/AssistantsDetails.js","pages/Assistants/AssistantsTable.js","commons/countries/countries.js","commons/Dialog/CreateProjectDialog.js","pages/Assistants/AssistantsPage.js","pages/Assistants/AssistantsRoute.js","pages/BillingProfile/BillingDetails.js","pages/BillingProfile/BillingRoute.js","pages/Manage/PlanFamilyPage.js","commons/ProjectsLayout/Navbar/AdsNavBarDesktop.js","commons/ProjectsLayout/MetaAdsLayout.js","pages/MetaAds/table/AdsTable.js","pages/MetaAds/MetaAds.js","pages/SuperAffiliate/SuperDashboard.js","pages/SuperAffiliate/EditAgentDialog.js","pages/SuperAffiliate/AffiliateAgentsStore.js","pages/SuperAffiliate/SuperAffiliateAgentsTable.js","pages/SuperAffiliate/CreateAgentForm.js","pages/SuperAffiliate/CSVTemplateDownloader.js","pages/SuperAffiliate/UploadResultSummary.js","pages/SuperAffiliate/CSVUpload.js","pages/SuperAffiliate/CreateAffiliateAgents.js","pages/SuperAffiliate/SuperAffiliateAgents.js","pages/SuperAffiliate/SuperAffiliateRoute.js","commons/ProjectsLayout/Navbar/AgnetAdsNavBarDesktop.js","commons/ProjectsLayout/agentsMetaAdLayout.js","pages/SuperAffiliate/BusinessesTable.js","pages/SuperAffiliate/AllBusinessesPage.js","commons/ProjectsLayout/Routes/ProjectRoutes.js","commons/ProjectsLayout/Navbar/NavBarDesktop.js","commons/ProjectsLayout/Navbar/NavDrawerMobile.js","commons/ProjectsLayout/Navbar/NavBarMobile.js","commons/WarningBanner/WarningBanner.js","commons/ProjectsLayout/Navbar/NavBar.js","commons/ErrorBoundary/ErrorBoundary.js","commons/ProjectsLayout/ProjectsLayout.js","commons/Toast/Toast.js","static/partnerBG.png","pages/Login/Login.js","static/f0d373c302b5c689e4445a1c3a9691a3.svg","pages/Embed/EmbedSignup.js","static/9978094-new.png","static/AiSensy_Logo_Dark_PNG.png","pages/SignUp/AffiliateSignUp.js","pages/forgotPassword/forgotPassword.js","pages/Login/welcomeTextComponent.js","pages/Login/newLogin.js","pages/SignUp/agentLogin.js","App.js","serviceWorker.js","themes/default.js","themes/index.js","index.js"],"names":["module","exports","timeZones","URL","process","REACT_APP_PARTNER_REST_API_URL","partnerURL","REACT_APP_PARTNER_APIS_URL","projectURL","REACT_APP_PROJECT_APIS_URL","APIURL","REACT_APP_WHATSAPP_REST_API_URL","TENANT_ID","REACT_APP_TENANT_ID","connectErrorPage","connect","state","tenantDetails","tenant","props","classes","_jsxs","Grid","container","justifyContent","className","root","children","_jsx","Box","display","alignItems","src","Object","keys","length","brandLogo","LOGO","alt","name","logo","maxHeight","ErrorLOGO","image","item","xs","Typography","variant","color","Link","href","withStyles","theme","height","width","maxWidth","setAuthToken","token","axios","defaults","headers","common","initialState","isLoading","isAuthenticated","user","error","errmsg","START_LOGIN","LOGIN_SUCCESS","LOGIN_FAILURE","RESET_ERROR","SIGN_OUT_SUCCESS","loginSuccess","type","payload","loginWithToken","jwtToken","async","data","jwt_decode","localStorage","setItem","dispatch","window","location","reload","loginUser","userName","password","email","contact","isChildAffiliate","post","url","then","res","decoded","catch","err","console","loginFailure","isFetchingPartner","partner","LOAD_START","LOAD_SUCCESS","LOAD_FAILURE","fetchPartnerDetails","getState","_getState$partner","_getState$partner$par","_id","Promise","resolve","checkStore","setInterval","_getState$partner2","clearInterval","affiliateData","Error","loadFailure","AgentProfilePage","Component","constructor","arguments","displayName","currentPassword","newPassword","confirmPassword","changeName","changePassword","emailHelper","showPassword","status","faviconUrl","brandLogoUrl","webhookUrl","loadingGifUrl","tabValue","isEditing","selectedFile","selectedCancelledCheque","isCompany","formValues","panImage","legalName","cancelledCheque","bankAccountNumber","accountName","ifscCode","panNumber","confirmAccountNumber","companyAddress","companyCity","companyPostal","companyCountry","validationErrors","postalCodeError","availableStates","loadPartnerDetails","partnerDetail","selectedCountry","countriesTimezones","find","country","this","setState","companyLegalName","states","handlePasswordChange","event","value","target","onChange","files","validateField","updatedValue","toUpperCase","prevState","errorMessage","validateBankAccountNumber","validateConfirmAccountNumber","validateIFSCCode","validatePAN","log","test","onEdit","onCancel","onSave","onSaveBankDetails","onSavePasswordChange","requiredFields","some","field","undefined","alertType","alertMsg","updatePayload","AreYouCompany","response","message","_error$response","_error$response$data","passwordFields","_error$response2","validateFormValues","every","onSnackbarClose","handleTabChange","newValue","handleFileChange","file","formData","FormData","append","fileResponse","fileData","handleCancelledChequeChange","selectedChequeFile","handleCountryChange","e","timezone","componentDidMount","componentDidUpdate","prevProps","render","_agent$name","agent","Hidden","only","sm","md","sidebarContainer","p","List","component","ListItem","button","onClick","sidebarButton","ListItemText","primary","smUp","sidebarHorizontal","Tabs","indicatorColor","textColor","centered","scrollButtons","allowScrollButtonsMobile","Tab","label","formContainer","profileContainer","Paper","profilePaper","mb","Avatar","avatar","charAt","_Fragment","Button","editButton","logoutButton","startIcon","EditIcon","ExitToAppIcon","signOut","id","tabContent","spacing","TextField","margin","placeholder","disabled","fullWidth","textFieldRootAutocomplete","address","city","Autocomplete","disableClearable","options","getOptionLabel","option","renderInput","params","postalCode","Tooltip","title","placement","ErrorOutline","countryData","onFocus","changeCountryState","code","style","InputProps","endAdornment","InputAdornment","position","panNumberUpper","mt","CloudUploadIcon","uploadButton","hidden","ml","FormControlLabel","control","Checkbox","checked","IconButton","Visibility","VisibilityOff","Snackbar","open","anchorOrigin","vertical","horizontal","onClose","snackbar","autoHideDuration","Alert","severity","map","connectedAgentProfilePage","modifyUser","removeItem","background","boxSizing","backgroundColor","boxShadow","overflowY","padding","breakpoints","down","progress","top","right","disabledField","cursor","marginTop","border","scrollableContent","sidebar","marginBottom","overflowX","whiteSpace","profileGrid","paddingTop","fontSize","marginRight","editable","readOnly","minWidth","textAlign","paddingLeft","paddingRight","DateFilter","startDate","endDate","focusedInput","minDate","setFocus","setDate","DateRangePicker","startDatePlaceholderText","endDatePlaceholderText","startDateId","endDateId","onDatesChange","_ref","onFocusChange","navPosition","numberOfMonths","navPrev","NavigationWrapper","NavigateBefore","navNext","NavigateNext","hideKeyboardShortcutsPanel","customArrowIcon","screenReaderInputMessage","small","displayFormat","isOutsideRange","day","isAfter","moment","isBefore","navigationWrapper","size","DownloadReport","showReport","setShowReport","projectId","partnerId","currency","getConvoReport","reportLoading","convoReportDownload","dialogHeading","dialogBody","setStartDate","useState","setEndDate","setFocusedInput","loading","setLoading","Dialog","dialogContainer","DialogContent","paddingBottom","Clear","setDateRange","picker","document","getElementsByClassName","Date","DialogActions","_response$data","report","get","wccAnalytics","currencySign","roundNumber","toFixed","row","_row$mcTemplateCredit","_row$mcTemplateCredit2","_row$mcCentralBalance","_row$mcCentralBalance2","_row$ucTemplateCredit","_row$ucTemplateCredit2","_row$ucCentralBalance","_row$ucCentralBalance2","_row$acTemplateCredit","_row$acTemplateCredit2","_row$acCentralBalance","_row$acCentralBalance2","_row$scTemplateCredit","_row$scTemplateCredit2","_row$scCentralBalance","_row$scCentralBalance2","_row$bicTemplateCredi","_row$bicTemplateCredi2","_row$bicCentralBalanc","_row$bicCentralBalanc2","_row$uicTemplateCredi","_row$uicTemplateCredi2","_row$uicCentralBalanc","_row$uicCentralBalanc2","dayDate","toLocaleDateString","month","year","sentChatCount","deliveredChatCount","readChatCount","failedChatCount","mcTemplateCreditMetrics","count","creditUsage","mcCentralBalanceMetrics","ucTemplateCreditMetrics","ucCentralBalanceMetrics","acTemplateCreditMetrics","acCentralBalanceMetrics","scTemplateCreditMetrics","scCentralBalanceMetrics","bicTemplateCreditMetrics","bicCentralBalanceMetrics","uicTemplateCreditMetrics","uicCentralBalanceMetrics","csvRows","push","join","val","values","csv","downloadLink","createElement","blob","Blob","bloburl","createObjectURL","download","body","appendChild","click","removeChild","endIcon","CircularProgress","GetApp","pageTitleContainer","zIndex","fixedWidthButton","overflow","textOverflow","borderRadius","up","textField","palette","main","businessTitle","buttonPrefixIcon","buttonTitle","onButtonClick","handleSearch","handleEnter","searchDone","handleClear","showSearch","searchPlaceholder","filter","disableFilterBtn","toggleFilterDialog","onBackPress","filterColor","syncButtonTitle","onSyncButtonClick","syncButtonPrefixIcon","tooltipTitle","disableTemplateButton","businessArchived","clientReport","projectReport","onOnboardingCallClick","onPlatformDemoClick","showDashboardButtons","innerWidth","px","py","ArrowBackOutlined","flex","onKeyPress","key","Search","Badge","invisible","disable","FilterList","TrainingSessionCard","gridSize","link","themeBackground","subTitle","Description","iconLink","maxImageSize","bottomPadding","pl","pr","pt","pb","cardTop","cardHeading","letterSpacing","fontFamily","lineHeight","iconImageContainer","iconImage","affilateCard","cardCTA","ArrowForwardRounded","arrowForward","flexDirection","transition","transform","transformStyle","fontWeight","bottom","minHeight","isoToName","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AC","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CK","CR","HR","CU","CY","CZ","CD","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","CI","JM","JP","JE","JO","KZ","KE","KI","KP","KR","XK","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UY","UZ","VU","VE","VN","VG","VI","WF","YE","ZM","ZW","CW","OTHER","countryMap","isoMap","isoToDialCode","dialCodes","dialCode","isoCode","TrainingSessionCardWithHelpCenter","require","Dashboard","super","handleAnalyticsDiaglog","analyticsDialog","affiliateId","businessData","business","linkName","totalClicks","uniqueClicks","reduce","acc","totalClick","handleAnalyticsDialogClose","fetchSavedData","designation","websiteUrl","businessType","companySize","customerBase","ecosystem","metaAds","objective","industry","whatsAppAds","budget","averageBudget","whatsAppAdsBudget","totalCommisionPaidINR","totalCommisionPaidUSD","handleCopy","navigator","clipboard","writeText","snackbarOpen","fetchDashboardData","conversionRate","conversion","leadsGenerated","totalLeadsGenerated","totalConversions","handleCloseTerms","termsDialogOpen","handleCloseAdditonalDetails","additonalDetailsDialog","handleOpenTermsDialog","handleAcceptTerms","generateAffiliateLinks","linkTitle","domain","handleProfileCompletion","additionalDetails","currentStep","step","allStepsCompleted","handleInputChange","availableTimezones","nextStep","allFieldsFilled","saveFormData","prevStep","renderStep","freeSolo","onInputChange","TYPE","SIZE","CUSTOMERBASE","multiple","disableCloseOnSelect","limitTags","PARTNERECOSYSTEM","renderOption","selected","React","Fragment","renderTags","getTagProps","index","Chip","flexWrap","ListboxProps","ADS","OBJECTIVE","VERTICALS","_ref2","textFieldRootAutocompleteDropDown","WHATSAPPADS","BUDGET","AVERAGEADSBUDGET","WHATSAPPADSBUDGET","renderStep3","inputValue","handleSnackbarClose","dataInitialized","selectedLink","_this$props$partnerDe","_this$props$partnerDe2","AffiliateUrls","_partnerDetail$totalC","_partnerDetail$totalC2","_partnerDetail$totalC3","_partnerDetail$totalC4","_partnerDetail$totalC5","_partnerDetail$totalC6","isPartnerDetailLoading","isPartnerDetailEmpty","Header","my","justify","FileCopyIcon","encodeURIComponent","rel","TwitterIcon","WhatsAppIcon","LinkedInIcon","DialogTitle","Close","CRMTraining","helpLink","totalCommisionINR","totalCommisionUSD","revenueGeneratedINR","revenueGeneratedUSD","affiliatePlan","additionalDetailsFilled","scroll","disableBackdropClick","disableEscapeKeyDown","disableTypography","gutterBottom","connectDashboard","primaryBackground","analyticsContainer","viewOldButton","chip","tagList","fields","BillingTable","toggleDialog","openDialog","openBills","assistantId","assistantName","history","pathname","selectedTemplate","bills","lg","tableWrapper","mx","tableContainer","tableHeader","onScroll","listScrolled","tableItem","Cell","openCampaign","Skeleton","getFormattedDate","date","BillingTableconnect","billing","login","withRouter","partnerBillingLogs","Array","fill","skip","totalprojects","page","rowsPerPage","applied","createdAt","sort","LOAD_MORE_SUCCESS","ADD_CLIENT","CHANGE_PAGE","CHANGE_ROWS_PER_PAGE","CHANGE_QUERY","CHANGE_STATUS","EXIT_CLIENTS","LOAD_DATE","LOAD_APPLIED","LOAD_SORT","loadStart","withMediaQuery","_len","args","_key","mediaQuery","useMediaQuery","allPlanFamilies","EDIT_PLAN","ADD_PLAN","allWccPlans","totalBusinesses","allCount","archivedCount","CREATE_CLIENT","LOAD_BUSINESS_COUNTS","templates","after","ADD_TEMPLATE","EXIT_TEMPLETE","CREATE_TEMPLATE","loadSuccess","_ref4","assistants","arr","webhooks","total","nameQuery","liveCount","wabaCount","draftCount","trialPlanCount","monthlyPlanCount","yearlyPlanCount","deletedCount","stoppedCount","LOAD_PROJECT_COUNTS","EDIT_PROJECT","PROJECT_WEBHOOKS","editAssistants","changeRowsPerPage","fetchAssistantsCounts","isSuperAffiliate","all","live","draft","trialPlan","loadProjectCount","fetchAssistants","filters","newFilter","endpoint","_assistants$partnerBi","_assistants$projects","assistantsObj","forEach","projects","assistant","newSkip","loadNextAssistants","loadPrevAssistants","allBusiness","fetchBusiness","isReferral","partnerReferralId","businessObj","allProjects","combineReducers","client","fromDate","toDate","businessList","pop","display_name","createdOn","archived","template","templateList","monthlyPlan","yearlyPlan","deleted","stopped","newObj","whatsAppBusinessProfile","planFamilies","planId","plans","wccPlans","wccPlanId","business_initiated","bic","user_initiated","uic","tenantData","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","rootReducer","applyMiddleware","thunk","setPlanFamilies","_state$planFamilies","setWccPlans","_state$planFamilies2","mouldBillingMessages","isBillingLoading","JSON","parse","stringify","slice","BillingPage","clearDate","filterKey","checkDateInput","s","applyFilter","billingFilter","filterObj","_d","onTabChange","match","loadBills","loadnextpage","newPage","loadNext","handleChangeRowsPerPage","parseInt","insideAssistantpage","insideAssistant","focus","unfetchbills","billingsHelper","fixedBottomContainer","TablePagination","onPageChange","onRowsPerPageChange","fullScreen","filterName","A","filterTypeContainer","diff","Billingconnect","billingAssistant","partnerPlanFamily","isPlansLoading","loadmoresuccess","attachTooltipPopper","borderTop","left","textFieldRoot","phoneTextFieldRoot","marginLeft","codeTextFieldRoot","passwordIcon","textFieldPopper","sortFormControl","TemplateDetails","processed","callToAction","quickReplies","category","format","sampleMessage","actionType","sampleMediaUrl","sampleCTAUrl","parameters","header","footer","namespace","rejectedReason","templateLanguage","Loading","templateId","headerText","footerText","dialogTopbar","setTemplateId","contactName","paragraph","noWrap","language","Templateconnect","_state$template","wordWrap","wordBreak","replaceBold","substring","replaceItalic","formatText","text","formattedText","replace","extractParameters","compareFormatAndSample","sample","strictOrdering","braceFreeText","bracketFreeText","i","valid","msg","validateFormat","split","trim","includes","paramCount","allowedRelativeParamLimit","replacedText","validateUrl","generateTemplateComponents","components","templateType","templateHeader","templateFormat","templateFooter","templateCTAUrl","example","header_handle","body_text","buttons","buttonValue","phone_number","reply","actionIcon","theme1","theme2","actionText","arrowTop","lineBreak","content","borderRight","borderLeft","borderBottom","ctaURL","actionBox","customTooltip","customArrow","preview","isQuickReply","list","shift","caption","_action","action","validNumberPattern","parts","lastBlock","templateMsgHelper","tooltip","arrow","Phone","OpenInNew","arrowTopMessage","smallScreen","ActionButton","Divider","isClickTrackingEnabled","TouchAppIcon","bg_colors","IMAGE","VIDEO","FILE","LOCATION","icon_colors","replaceParameters","param","pattern","RegExp","clear","borderStyle","received","borderWidth","borderColor","sent","media","messageBox","agentMessageAction","icon","whatsappIcon","bigWhatsappIcon","disclaimer","fileIcon","_bg_colors$type","bigIcon","showDisclaimer","disclaimerMargin","overflowWrap","controls","loop","CardMedia","filename","bgcolor","Image","PlayCircleFilled","LocationOnIcon","CardContent","align","dangerouslySetInnerHTML","__html","ClickToAction","InteractiveAction","TemplateMessagePreview","replacePrameters","urlObject","string","replacement","g1","latitude","longitude","locationName","Media","TemplateMsgTable","openTemplate","foundIndex","findIndex","x","toString","togglePreviewDialog","templateIdx","openPreviewDialog","getFields","splice","topbar","clsx","column","dataColumn","dataRow","alterRow","idx","columnType","PreviewDialog","columnData","fieldName","stopPropagation","CloseOutlined","borderCollapse","borderSpacing","checkboxColumn","OPTIONS","TEMPLATE_CATEGORIES","MSG_TYPES","CreateTemplateMsgForm","inDialog","_template$headerText","_template$footerText","regx","curMatch","templateParams","exec","extension","ext","len","ctaUrlParam","templateLabel","templateCategory","templateName","templateSample","templateMediaURL","draftId","inputRef","current","setSelectionRange","handleInput","extractParams","prev","rev","reverse","revNum","selectionStart","setSampleURL","hasCurly","formattedURL","handleParamsInput","elem","handleAutoComplete","reason","handleRadioInput","catAutoComplete","catInput","quickReplyInput","addQuickReply","removeQuickReply","handleChange","addCAT","removeCAT","validateName","isAlphanumeric","toLowerCase","validateTemplate","t","validBracePattern","validTextPattern","buttonTextPattern","LANGUAGES","result","uniqueSet","Set","interativeURLAction","ctaDynamicParam","autoFillAndSubmit","onSubmit","createTemplateFromDirectAPI","generateTemplate","formattedString","formattedSampleMsg","replacementArray","onComplete","isSubmitting","success","a","b","callToActionBtns","sample_text","message_action_type","call_to_action","quick_replies","assistant_name","createnewTemplate","callSnackbar","close","_error$response2$data","_error$response3","_error$response3$data","_error$response4","_error$response4$data","_error$response5","_error$response5$data","_error$response6","_error$response6$data","createRef","_this$state$callToAct","showDialog","isSubmitted","textArea","optional","inputProps","maxLength","FormHelperTextProps","characterCounter","helperText","multiline","rows","rowsMax","RadioGroup","defaultValue","Radio","InteractiveActions","dialogWrapper","dialogTitle","DialogContentText","autoFocus","getOptions","k","Number","AddOutlined","CreateTemplateconnect","fetchProject","businessId","createTemplate","now","previewWrapper","previewContainer","inlineCharacterCounter","qualityStatus","TemplateMsgPage","toggleTemplateDialog","templateDialog","toggleTemplate","opensnack","getPageRows","handlesearch","_this$props$partner2","unfetchTemplateMessages","_this$props$partner","_this$props$template","fetchTemplateMessages","templateFilter","searchdone","loadSearch","_this$props$partner3","_this$props$template2","_this$props$partner4","_this$props$template3","_this$props$template4","_this$props$partner5","_this$props$template5","syncTemplate","planSubmitLoader","checkTime","getItem","resetCheck","disableDate","backupSearchTemplates","totalCount","timeStamp","search","_this$props$partner6","tooltipTtile","Add","SyncIcon","rowsPerPageOptions","textFieldSortAutocomplete","limit","mainURL","_ref5","TemplateRoute","isWhatsappVerified","ConfirmationDialog","closeDialog","mobileScreen","FIELDS","allTopics","WebhookMappingsTable","openAction","handleDeleteClick","webhookId","webhookName","webhookDeleteId","deleteWebhookName","deleteDialog","deleteConfirm","deleteLoading","delete","fetchWebhook","copySnack","cancelDeletion","handleUpdateClick","shared_secret","webhookUpdateId","updateWebhookName","updateDialog","webhookUpdateUrl","sharedSecret","updateConfirm","updateLoading","patch","webhook_url","topics","cancelUpdate","rowIndex","replaceAll","Edit","DeleteOutlined","deleteIndex","eventMappings","noEventsContainer","DeleteConfirm","webhook","plandialogContainer","filterSelectedOptions","d","connectWebhookMappingsTable","fetchAssistantsWebhooks","webhooksObj","project_id","smallWidth","mediumWidth","largeWidth","clickable","flexGrow","PlanChangeDialog","changePlan","defaultPlanFamily","defaultPlanName","newFamilyId","newPlanId","plan","setActivePlan","autoHighlight","_plans$option","WccChangeDialog","defaultPlan","setPlan","_wccPlans$option","stepOne","isMandatory","number","stepTwo","entityName","website","businessVertical","headquarters","addressLine1","addressLine2","zipCode","stepThree","facebookPage","businessManagerId","hyperlink","isManagerVerified","stepFour","whatsappNumber","validateFirstStep","validateSecondStep","validateThirdStep","validateFourthStep","textDecoration","mandatory","outline","subText","stepKey","setKey","head","stepTitle","stepSubTitle","prevButton","setStep","assistantDetails","setSnackbar","alert","setAlert","show","personalDetails","setPersonalDetails","businessDetails","setBusinessDetails","fbBusinessDetails","setFbBusinessDetails","whatsappAccountDetails","setWhatsappAccountDetails","validateStep","setStepFields","applicableStep","closeSnackbar","StepTitle","FormField","bind","FormAutocomplete","FormCheckbox","AgentLimitDialog","currentValue","changeValueFn","setValue","min","max","agentSize","global_strokes","LineGraph","PureComponent","rootRef","Subheading","Options","fixed_strokes","strokes","newData","record","dummyRecord","dateBefore","getDate","toDateString","ref","m","ComposedChart","clientWidth","x1","y1","x2","y2","offset","stopColor","stopOpacity","CartesianGrid","strokeDasharray","XAxis","dataKey","axisLine","scale","YAxis","allowDecimals","tickFormatter","Legend","Area","strokeWidth","stroke","isAnimationActive","fillOpacity","heading","INTERVAL_VALUES","Today","clone","startOf","Yesterday","subtract","endOf","INTERVALS","roundedBox","messageCountContainer","tabPageTitleContainer","dataContainer","agentMessage","dateFilterContainer","countryDropdown","float","totalContainer","changeQualityStatus","tabIndicator_OVERVIEW","tabIndicator_SENT","tabIndicator_DELIVERED","tabIndicator_READ","tabIndicator_REPLIED","tabIndicator_CLICKED","tabIndicator_FAILED","tabIcon","menuRoot","interval","graphData","setGraphData","stats","setStats","delivered","read","failed","analytics","setAnalytics","setSelectedCountry","didMount","useRef","useEffect","weekly","getAnalytics","mr","obj","ComposedGraph","setMetaError","wabaIsLive","setDialog","canRegister","setCanRegister","checkRegister","lastRegisterCall","timePassed","intervalId","registerWithPin","disableHoverListener","PaperProps","setCode","mode","setMode","setOpen","setSeverity","setMsg","verifyCode","triggerOtp","appId","numberId","results","allSettled","cells","celltext","accordianDetail","accordianSummary","accordian","steps","EmbeddedSignup","EmbeddedMigration","SyncProgress","customMsgObject","disabledList","setDisabled","from","troubleshoot_options","embedded_signup","migrate_partner_project","sync_progress","register_pin","RegisterPin","otp_verification","OtpVerification","health_check","HealthCheck","custom_msg","handleNext","newDisabledList","prevActiveStep","handleBack","Accordion","elevation","AccordionSummary","expandIcon","ExpandMore","AccordionDetails","Stepper","activeStep","orientation","StepComponent","Step","StepLabel","StepContent","actionsContainer","tag","pageId","tasks","accountId","pageName","freezed","lbl","tagDescription","Limited","Personal","Lock","useStyles","makeStyles","contentContainer","projectdialogContainer","lineWidth","autoComplete","pointerEvents","truncate","Actions","dialogHeader","selectContainer","otpTextField","otpTextFieldDisabled","lineItemGrid","ConnectedSetupMetaAds","updateAssistantStore","metaAdsDetails","minDailyBudgetLimit","totalAssignedBudget","otp","setOtp","snack","setSnack","fbloading","setFbloading","otpLoader","setOtpLoader","submitOtpLoader","setSubmitOtpLoader","fbaccount","setFbaccount","fbpages","setFbpages","accountValue","setAccountValue","pageValue","setPageValue","minDailyLimit","setMinDailyLimit","totalBudget","setTotalBudget","assignPageId","setAssignPageId","assignAccountId","setAssignAccountId","useParams","fbUserId","activePlan","fbConnected","fbConnectedBy","wabaProgressStep","providerType","freezedMetaPageId","freezedMetaAdAccountId","selectedMetaAdAccountId","selectedMetaPageId","clientId","pageWhatsappNumber","numberLinked","fbOwner","hasPlan","getFbAcc","getFbPages","setupClientAccount","authResponse","grantedScopes","baseUrl","assistantData","fbGrantedScopes","filteredPages","modifyList","_res$data","selectedPageValue","_res$data2","filteredAccounts","_res$data3","selectedAccountValue","_ref3","_res$data4","selectPage","saveAdProfile","isEmpty","metaBusinessId","isAssigned","freezeAssets","asset","adAccountId","updatedAccountList","updatedPageList","startCase","unFreezeAssets","assets","linkWhatsappNumber","verify","verificationCode","otpState","pages","updateWhatsappNumber","updateMetaAdDetails","assignNewAsset","urlMap","opacity","disconnectClientAccount","interactive","LinkButton","setupconnect","FB","scope","auth_type","return_scopes","groupUl","getOptionDisabled","selectAdAccount","groupBy","metaBusinessName","LockOpenOutlined","LockOutlined","systemUserId","CheckCircleOutline","gutterBot","AddonsManagement","_addons$FLOW_BUILDER","_partnerAddons$curren","_addons$currentAddon2","assistantAddons","ADDONS","addons","setAddons","setShowDialog","currentAddon","setCurrentAddon","partnerAddons","partnerPlans","setPartnerPlans","flowCount","setFlowCount","FLOW_BUILDER","setAction","aisensyPlansClone","aisensyPlans","AddOn","addon","exists","Switch","toggleSwitch","FlowCountUI","_addons$FLOW_BUILDER2","planBody","flows","PlanUI","_addons$currentAddon","partnerPlan","tier1","FormControl","FormHelperText","INR","startAdornment","USD","Math","round","tier2","updateAddons","addonKey","errMsg","disableAddon","modifyAddon","activateAddon","DefaultsDialog","CustomComponent","activeKey","DefaultsPage","_this$props$partner2$","_this$props$partner3$","alertSeverity","updateDefaultConfig","_this$props","_","countrySelection","whatsAppAboutSelection","whatsAppAbout","defaultConfigs","_isoToName$isoCode","lastCell","connectDefaultsPage","detailContainer","containerPlans","containerButton","verticals","AssistantsDetail","fecthAssistant","_this$state","_this$state$assistant","_this$state$assistant2","addonCheck","WEBHOOKS","getDirectApiPartnerProfile","updateAssistant","existing","onConfirm","deleteMessage","deleteStatus","projectDeleted","getPartnerPlans","family","selectedFamilyId","allPlans","closeHandleDialog","handleClickDialog","goToBusiness","reqBusinessId","editToggle","edit","syncWaba","wasImageChanged","newAboutText","newAddress","newDescription","newEmail","newWebsite","newBusinessVertical","newProfilePicture","description","websites","queryObj","filePath","whatsAppDisplayImage","loadProfilePicture","fileName","contentType","fileType","form","entries","uploadURL","entry","config","transformRequest","fileURL","fullUrl","updateState","openFileUploader","editProfilePicture","input","accept","addEventListener","uploadFile","_input$target","MB_1","alertOpen","reader","FileReader","onload","img","onerror","readAsDataURL","getElementById","removeEventListener","updateProfileViaDirectAPI","toggleKey","businessProfile","profile","about","profile_picture_url","planDialog","openPlanDialog","toggleWccPlanChangeDialog","openWccChangeDialog","wccDialog","openWccDialog","pwcDialog","openPwcDialog","webhookDialog","openWebhookDialog","privateAppDialog","openPrivateAppDialog","isWebhookLoading","chatApiWebhook","webhookResult","fetchPrivateApp","privateApps","CreatePrivateApp","updatePrivateApp","privateAppId","reqPassword","planSubmit","familyId","reqPlan","currentPlan","changeWccPlan","templateTier","stopPlan","planStoppedOn","_error$response7","_error$response7$data","webhookSubmit","webhookSubmitLoader","selectedTopic","selectedWebhookurl","_error$response8","_error$response8$data","createWebhook","_error$response9","_error$response9$data","wccSubmit","wccSubmitLoader","wccAmount","amount","wccAction","templateCredit","credit","_error$response10","_error$response10$dat","pwcSubmit","pwcSubmitLoader","pwcAmount","pwcAction","partnerWhatsappCredit","partner_credit","_error$response11","_error$response11$dat","generateWabaLink","linkGenerated","generateWabaMigrationLink","migrationLinkGenerated","generateManageCatalogLink","manageCatalogLinkGenerated","selectedValue","toggleWABADialog","wabaDialog","openWabaDialog","apiFormDetails","toggleAgentDialog","showAgentDialog","updateAgentLimit","maxAgents","urlWrapper","urlLink","copyLink","metaError","embeddedHelper","_metaError$response","_metaError$response$d","_metaError$response$d2","procurementError","customObject","_error","_error$response12","_error$response12$dat","_error$response12$dat2","_error2","_error2$response","_error2$response$data","_error2$response$data2","subCode","error_subcode","troubleshootSteps","updateWebhookUrl","_error$response13","_error$response13$dat","reactivatePlan","reactivationLoader","_error$response14","_error$response14$dat","responseType","logs","flatMap","csvContent","cellContent","start","isValid","end","_error$response15","_error$response15$dat","tab","editAboutText","editAddress","editDescription","editEmail","editWebsite","editBusinessVertical","loadAboutText","loadAddress","loadDescription","loadEmail","loadWebsite","loadBusinessVertical","company","SharedSecret","deleteProject","plansHelper","_family$name","_family$plans$activeP","_family$plans$activeP2","_wccPlans$templateTie","_wccPlans$templateTie2","centralBalance","minAllowedBalance","whatsAppDisplayName","displayNameVerified","dailyTemplateLimit","qualityRating","chargebeePlan","fbManagerVerified","wabaNumberId","wabaAppId","familyName","wccPlanName","lowBalance","direction","FiberManualRecord","TabIndicatorProps","tabIndicator","onboardingMethod","planTier","StepBasedSolutions","textTransform","WccAnalytics","Person","descriptionTextField","minRows","maxRows","Select","labelId","MenuItem","DeleteForeverIcon","planRenewalOn","gap","textFieldDisabled","onCopy","SetupMetaAds","appPassword","_e$target$value","_e$target$value2","WabaForm","connectAssistantsDetail","tabContainer","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","roundedBox2","roundedBox3","PLANS","PROJECT_STATUS","Assistant","handleNumberInput","updateTemplateCredit","templateIndex","totalTemplateCredit","setTemplateInDb","setTemplate","updateApiKey","apiKey360","updateVerificationStatus","updateWhatsAppNumber","updateAppName","appName","updateProjectStatus","projectStatus","updateCredit","remainingCredit","oldPlan","planActivatedOn","currentDate","setMonth","getMonth","daysInMonth","getYear","handleMark","mark","temp","getAssistantDetailsFromCache","cachedAssistant","syncTemplateMsg","migrateTemplateMsg","leads","wabaLive","conversions","AssistantsTable","offsetPosition","rootEle","offsetTop","currentPos","currentTarget","scrollTop","sticky","partnerArchived","tableItemNoHover","AssistantsDetails","tableItem1","skeleton","maskPhoneNumber","phone","connectAssistantsTable","countries","suggested","_props$partner","selectBusiness","setProjectName","createBusiness","disableSubmit","reqId4Business","defaultWccPlan","billingAddress","setBillingAddress","street","zip","shippingAddress","setShippingAddress","gstNumber","setGstNumber","setChecked","setIsLoading","defualtBusiness","wccPlan","setWccPlan","setName","isZohoEnabled","String","fromCodePoint","char","charCodeAt","copyBillingAddress","countryToFlag","planFamilyId","planName","wccId","AssistantsPage","handleChangePage","assistantFilter","handleBusinessInput","fromPlanActivatedDate","toPlanActivatedDate","projectDialog","openProjectDialog","toggleclientDialog","clientDialog","buttondisbale","buttonDisable","createclient","statusMessage","countryCode","_errorResponse$data","errorResponse","assistantValue","backupTemplates","newProjectName","projectSubmitLoader","partnerWccFamily","totalAssistants","tabs","onChangePage","onChangeRowsPerPage","back","CreateProjectDialog","projectSubmit","connectAssistants","isAssistantsLoading","assistantError","partnerSecretHash","passwordHash","inputRoot","popper","AssistantsRoute","Route","exact","path","ErrorPage","BillingDetails","getBillingLog","billingId","_response$data$","modifiedBill","mouldBill","mouldDirectBill","commision","amountPaid","planPurchased","commisionPercent","_this$props$location","_this$props$location2","goBack","billingconnect","BillingRoute","PlanFamilyPage","_this$state$planFamil","firstPlan","planFamily","renderFirstPlan","updatePlanFamily","changePlanFamily","updateDefualtPlan","wccPlanSubmit","updateDefaultWcc","changeWccPlanFamily","wccPlanFamily","updateWccFamily","SelectWccDialog","selectPlanDialog","openSelectPlanDialog","slectedPlans","_this$props2","_this$props2$partner","_this$props3","_this$props3$partner","_this$props4","_this$props5","_this$props5$partner","_this$props6","_this$props6$partner","_this$props7","_this$props7$planFami","_this$props7$planFami2","_this$state2","_planFamily$Object$ke","_planFamily$defaultPl","_planFamily$defaultPl2","_planFamily$defaultPl3","_planFamily$defaultPl4","_planFamily$defaultPl5","_wccPlanFamily$defaul","_wccPlanFamily$defaul2","renderPlanName","_planFamily$value","_wccPlanFamily$option","connectPlanFamilyPage","connectedAdsNavBarDesktop","useLocation","useHistory","renderMetaAdsRoute","route","to","ButtonBase","linkButton","link_inactive","link_active","icon_active","icon_inactive","name_active","name_inactive","active","inactive","MetaAdsLayout","baseroute","AdsNavBarDesktop","routeWrapper","routeContainer","routeProps","Redirect","connectedMetaAdsLayout","adfields","adAccountFields","AdsTable","ads","adAccounts","allAds","allAdAccounts","nol","connectMetaAds","childAffiliateId","setTab","alertObj","setAlertObj","setReportLoading","setAds","counts","setCounts","paginationCount","setPaginationCount","setPage","currentPage","setCurrentPage","setRowsPerPage","setOpenDialog","setApplied","adStartDate","adStopDate","setAssistantFilter","fetchProjectAdsInsightData","fetchCounts","fetchMetaAdAccountLists","fetchMetaAdLists","makeCsvDataReport","fromAdStartDate","fromAdStopDate","toAdStartDate","toAdStopDate","purpose","endPoint","_response$data3","_response$data2","metaAdsCount","newTab","_response$data4","_response$data6","_response$data5","appliedData","hasReadAccess","hasWriteAccess","DownloadReportHandler","labelDisplayedRows","SuperDashboard","totalFosCount","affiliateCount","totalBusiness","projectCount","totalSpentAmount","totalAdCreditRecharged","connectSuperDashboard","EditAgentDialog","setContact","setStatus","setIsSubmitting","InputLabel","handleSubmit","loadClient","fetchChildAffiliateCount","loadBusinessCount","SuperAffiliateAgentsTable","_this$rootEle","_this$rootEle$current","openClient","handleEditClick","editDialogOpen","selectedAgent","handleCloseEditDialog","handleSaveAgent","updatedAgent","showSnackbar","onEditClick","_item$field","startsWith","getStatusColor","SuperAffiliateAgentsTableConnect","AdDetailStep","required","langcode","flag","innerHTML","innerText","getflag","team","Adsconnect","bottomMargin","TextFieldRoot","CSVTemplateDownloader","setAttribute","summaryContainer","shape","statItem","statValue","statLabel","secondary","successValue","errorValue","divider","errorList","errorItem","errorSummary","errorDetails","actionButton","UploadResultsSummary","errors","expandedError","setExpandedError","sortOrder","setSortOrder","sortedErrors","downloadErrorsCSV","errorString","errorIndex","ExpandLess","Collapse","in","timeout","unmountOnExit","dense","errIndex","primaryTypographyProps","uploadBox","processButton","progressBar","resultsPaper","errorSubList","toggleCreateAffiliateAgents","setFile","uploadStats","setUploadStats","setErrors","showResults","setShowResults","setProgress","progressMessage","setProgressMessage","validateRow","createAffiliateLink","htmlFor","CloudUpload","Papa","skipEmptyLines","complete","missingHeaders","superAffiliateId","percent","floor","rowErrors","setTimeout","companyName","loginPassword","isAdsCommissionEnabled","affiliate","LinearProgress","CreateAffiliateAgent","snackMessage","businessSnackDialog","createChildAffiliate","_data$affiliate","returnObj","getStepContent","tags","CreateAgentForm","nextBtnDisableStatus","getValidationError","validateEmail","snackStatus","stepContainer","buttonContainer","CSVUpload","CreateAffiliateAgentConnect","formContainer1","myTextfield","myStateClass","tooltipError","contrastText","csvUploadContainer","grey","fileInput","progressContainer","progressText","SuperAffiliateAgents","mess","clientFilter","handleClickShowConfirmPassword","showConfirmPassword","handleClickShowPassword","agentDialog","unfetchclients","createnewClient","clients","section","ClientsTable","CreateAffiliateAgents","SuperAffiliateAgentsConnect","createClient","clientSearch","SuperAffiliateRoute","_createElement","connectedAgentsAdsNavBarDesktop","agentId","AccountTreeOutlinedIcon","BarChartOutlinedIcon","isActive","AgentsMetaAdsLayout","_props$match","_props$match$params","_props$location","_props$location$pathn","view","AgentsAdsNavBarDesktop","MetaAds","connectedAgentsMetaAdsLayout","BusinessesTable","AllBusinesses","topRoutes","DashboardPage","DashboardIcon","BlurOnIcon","Facebook","ContactlessIcon","AllBusinessesPage","BusinessIcon","renderSuperAffiliateRoute","ViewQuiltIcon","GroupIcon","bottomRoutes","Build","TuneOutlined","PersonOutlined","connectedNavBarDesktop","filteredRoutes","routes","connectedNavDrawerMobile","drawerOpen","onDrawerClose","openRoute","Drawer","anchor","paper","drawerPaper","profileWrapper","profileIcon","NavBarMobile","onDrawerOpen","mdUp","Menu","NavDrawerMobile","connectedNavBarMobile","hideNavBar","WarningBanner","useTheme","isMobile","Clock","ignoredId","NavBarDesktop","ErrorBoundary","hasError","static","componentDidCatch","errorInfo","ProjectsLayout","loadingContainer","NavBar","_route$excludedTypes","excludedTypes","connectedProjectslayout","fullHeight","preloader","Toast","Login","tokenLogin","URLSearchParams","partnerBG","backgroundSize","Container","flexBasis","ThemeProvider","disableUnderline","onKeyUp","createTheme","gray","darker","black","Preview","launchWhatsAppSignup","_window$FB","_timeZones$find","fbLoading","accessToken","_data$data","_err$response","finally","extras","feature","setup","streetAddress1","zipPostal","fetchPartnerLogos","fetchLoading","partnerLogos","hasRead","otpSent","WhatsAppLogo","otpFieldOverlay","otpInputField","Send","AddAffiliatePage","passwordValidation","lowercase","specialChar","handleOtpChange","isStepComplete","generateOtp","updatedFormValues","snackbarMessage","snackbarError","fullName","generatedOtp","isOtpVerified","otpResendTime","canResendOtp","startOtpTimer","blocked","generateResendOtp","otpTimer","verifyOtp","stepFields","areFieldsFilled","areFieldsValid","showPasswordTooltip","passwordTooltipContent","Fade","ErrorOutlineIcon","passwordFieldContainer","passwordField","onMouseEnter","onMouseLeave","otpContainer","otpInput","timerContainer","planType","partnershipFee","facebookAds","websiteURL","loginContainer","leftContainer","logoLink","welcomeText","leftImageContainer","leftImage","rightContainer","rightLogoLink","signUpLink","centeredWrapper","noValidate","otpButtonContainer","nextButtonContainer","nextButton","mapDispatchToProps","googleSignInButton","signInButton","orDivider","forgotPassword","resendOtpButton","errorText","passwordTooltip","passwordIconEmail","passwordIconName","passwordIconCompanyName","passwordIconContact","errorSnackbar","ResetPassword","searchAccount","handleVerifyOtp","successDialogOpen","forgottenDetail","handleCloseSuccessDialog","handleBackToLogin","resetPasswordButton","backToLoginContainer","welcomeTextRightContainer","newLogin","preventDefault","username","handleForgotPassword","isFormValid","welcomeTextContainer","WelcomeTextComponent","AgentLoginPage","PrivateRoute","rest","PublicRoute","BrowserRouter","Embad","AffiliateSignUp","Boolean","hostname","pending","resolved","warning","info","hint","default","light","backdrop","xl","typography","h2","wordSpacing","h3","h4","h5","h6","body1","body2","overrides","MuiTextField","MuiOutlinedInput","MuiAutocomplete","MuiTooltip","MuiButton","contained","containedPrimary","MuiGrid","MuiInput","currentTime","exp","partnerData","jwtError","themes","renderApp","ReactDOM","StrictMode","MuiThemeProvider","Provider","App","serviceWorker","ready","registration","unregister"],"mappings":"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IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,OACL,IAAK,SACL,IAAK,8BACL,IAAK,eACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,eACL,IAAK,QACL,IAAK,UACL,IAAK,OACL,IAAK,2BACL,IAAK,WACL,IAAK,aACL,IAAK,wBACL,IAAK,oBACL,IAAK,QACL,IAAK,QACL,IAAK,mCACL,IAAK,SACL,IAAK,gBACL,IAAK,iCACL,IAAK,mBACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,wCACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,SACL,IAAK,aACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,+CACL,IAAK,UACL,IAAK,QACL,IAAK,gBACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,aACL,IAAK,gCACL,IAAK,UACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,yBACL,IAAK,kBACL,IAAK,iBACL,IAAK,WACL,IAAK,gBACL,IAAK,+CACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,4BACL,IAAK,QACL,IAAK,eACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,uBACL,IAAK,cACL,IAAK,iBACL,IAAK,oBACL,IAAK,QACL,IAAK,mBACL,IAAK,QACL,IAAK,kBACL,IAAK,UACL,IAAK,OACL,IAAK,QACL,IAAK,oBACL,IAAK,eACL,IAAK,OACL,IAAK,QACL,IAAK,WACL,IAAK,gBACL,IAAK,SACL,IAAK,mBACL,IAAK,UACL,IAAK,aACL,IAAK,mBACL,IAAK,kBACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,OACL,IAAK,WACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,uBACL,IAAK,OACL,IAAK,SACL,IAAK,eACL,IAAK,QACL,IAAK,OACL,IAAK,YACL,IAAK,uBACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,KAAM,UACN,KAAM,WACN,KAAM,WACN,KAAM,sBACN,KAAM,0BACN,KAAM,uBACN,KAAM,iBACN,KAAM,UACN,KAAM,UACN,KAAM,2BACN,KAAM,aACN,KAAM,2BACN,KAAM,OACN,KAAM,gBACN,KAAM,eACN,KAAM,cACN,KAAM,WACN,KAAM,mCACN,KAAM,qBACN,KAAM,sBACN,KAAM,wBACN,KAAM,UACN,KAAM,eAGKC,GAAS,CACpB,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,QAAS,KACT,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,MAAO,KACP,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,KAAM,KACN,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,MAAO,KACP,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,QAAS,KACT,QAAS,KACT,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,MAAO,KACP,MAAO,KACP,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,QAAS,KACT,MAAO,KACP,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,QAAS,KACT,MAAO,KACP,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,MAAO,KACP,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,MAAO,KACP,KAAM,KACN,OAAQ,KACR,OAAQ,KACR,QAAS,KACT,QAAS,KACT,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,MAAO,KACP,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,MAAO,KACP,QAAS,KACT,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,MAGGC,GAAgB,CAC3BzP,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,QACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,KACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,KACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,KACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,QACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QAGSM,OA/3EG,CAChB,CACEhxB,KAAM,cACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,gBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,gBACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,sBACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,mBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,yBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,iCACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,oBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,eACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,KACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,iBACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,2BACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,mBACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,0BACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,eACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,iBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,mCACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,qBACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,oBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,8BACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,gBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,gBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,mBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,gBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,gCACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,8BACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,+CACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,iCACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,gBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,mBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,6CACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,uBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,gBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,iBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,kBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,2BACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,mBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,KACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,mBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,+CACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,wBACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,eACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,4BACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,mCACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,wBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,eACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,eACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,eACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,kBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,eACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,+CACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,YACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,yBACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,uBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,aACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,wCACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,WACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,cACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,OACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,QACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,sBACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,eACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,2BACNixB,SAAU,QACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,SACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,UACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,uBACNixB,SAAU,OACVC,QAAS,MAEX,CACElxB,KAAM,iBACNixB,SAAU,MACVC,QAAS,MAEX,CACElxB,KAAM,gBACNixB,SAAU,KACVC,QAAS,MAEX,CACElxB,KAAM,UAC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","file":"static/js/main.f1ba6068.chunk.js","sourcesContent":["const timeZones = [\n \"Etc/GMT+12 GMT-12:00\",\n \"Pacific/Midway GMT-11:00\",\n \"Pacific/Honolulu GMT-10:00\",\n \"US/Alaska GMT-09:00\",\n \"America/Los_Angeles GMT-08:00\",\n \"America/Tijuana GMT-08:00\",\n \"US/Arizona GMT-07:00\",\n \"America/Chihuahua GMT-07:00\",\n \"US/Mountain GMT-07:00\",\n \"America/Managua GMT-06:00\",\n \"US/Central GMT-06:00\",\n \"America/Mexico_City GMT-06:00\",\n \"Canada/Saskatchewan GMT-06:00\",\n \"America/Bogota GMT-05:00\",\n \"US/Eastern GMT-05:00\",\n \"US/East-Indiana GMT-05:00\",\n \"Canada/Atlantic GMT-04:00\",\n \"America/Caracas GMT-04:00\",\n \"America/Manaus GMT-04:00\",\n \"America/Santiago GMT-04:00\",\n \"Canada/Newfoundland GMT-03:30\",\n \"America/Sao_Paulo GMT-03:00\",\n \"America/Argentina/Buenos_Aires GMT-03:00\",\n \"America/Godthab GMT-03:00\",\n \"America/Montevideo GMT-03:00\",\n \"America/Noronha GMT-02:00\",\n \"Atlantic/Cape_Verde GMT-01:00\",\n \"Atlantic/Azores GMT-01:00\",\n \"Africa/Casablanca GMT+00:00\",\n \"Etc/Greenwich GMT+00:00\",\n \"Europe/Amsterdam GMT+01:00\",\n \"Europe/Belgrade GMT+01:00\",\n \"Europe/Brussels GMT+01:00\",\n \"Europe/Sarajevo GMT+01:00\",\n \"Africa/Lagos GMT+01:00\",\n \"Asia/Amman GMT+02:00\",\n \"Europe/Athens GMT+02:00\",\n \"Asia/Beirut GMT+02:00\",\n \"Africa/Cairo GMT+02:00\",\n \"Africa/Harare GMT+02:00\",\n \"Europe/Helsinki GMT+02:00\",\n \"Asia/Jerusalem GMT+02:00\",\n \"Europe/Minsk GMT+02:00\",\n \"Africa/Windhoek GMT+02:00\",\n \"Asia/Kuwait GMT+03:00\",\n \"Europe/Moscow GMT+03:00\",\n \"Africa/Nairobi GMT+03:00\",\n \"Asia/Tbilisi GMT+03:00\",\n \"Asia/Tehran GMT+03:30\",\n \"Asia/Muscat GMT+04:00\",\n \"Asia/Baku GMT+04:00\",\n \"Asia/Yerevan GMT+04:00\",\n \"Asia/Kabul GMT+04:30\",\n \"Asia/Yekaterinburg GMT+05:00\",\n \"Asia/Karachi GMT+05:00\",\n \"Asia/Calcutta GMT+05:30\",\n \"Asia/Katmandu GMT+05:45\",\n \"Asia/Almaty GMT+06:00\",\n \"Asia/Dhaka GMT+06:00\",\n \"Asia/Rangoon GMT+06:30\",\n \"Asia/Bangkok GMT+07:00\",\n \"Asia/Krasnoyarsk GMT+07:00\",\n \"Asia/Hong_Kong GMT+08:00\",\n \"Asia/Kuala_Lumpur GMT+08:00\",\n \"Asia/Irkutsk GMT+08:00\",\n \"Australia/Perth GMT+08:00\",\n \"Asia/Taipei GMT+08:00\",\n \"Asia/Tokyo GMT+09:00\",\n \"Asia/Seoul GMT+09:00\",\n \"Asia/Yakutsk GMT+09:00\",\n \"Australia/Adelaide GMT+09:30\",\n \"Australia/Darwin GMT+09:30\",\n \"Australia/Brisbane GMT+10:00\",\n \"Australia/Canberra GMT+10:00\",\n \"Australia/Hobart GMT+10:00\",\n \"Pacific/Guam GMT+10:00\",\n \"Asia/Vladivostok GMT+10:00\",\n \"Asia/Magadan GMT+11:00\",\n \"Pacific/Auckland GMT+12:00\",\n \"Pacific/Fiji GMT+12:00\",\n \"Pacific/Tongatapu GMT+13:00\",\n\n];\n\n\n// [\n// { label: \"International Date Line West (Etc/GMT+12)\", value: \"-12:00\" },\n// { label: \"Midway Island, Samoa (Pacific/Midway)\", value: \"-11:00\" },\n// { label: \"Hawaii (Pacific/Honolulu)\", value: \"-10:00\" },\n// { label: \"Alaska (US/Alaska)\", value: \"-09:00\" },\n// {\n// label: \"Pacific Time (US & Canada) (America/Los_Angeles)\",\n// value: \"-08:00\",\n// },\n// { label: \"Tijuana, Baja California (America/Tijuana)\", value: \"-08:00\" },\n// { label: \"Arizona (US/Arizona)\", value: \"-07:00\" },\n// { label: \"Chihuahua, La Paz, Mazatlan (America/Chihuahua)\", value: \"-07:00\" },\n// { label: \"Mountain Time (US & Canada) (US/Mountain)\", value: \"-07:00\" },\n// { label: \"Central America (America/Managua)\", value: \"-06:00\" },\n// { label: \"Central Time (US & Canada) (US/Central)\", value: \"-06:00\" },\n// {\n// label: \"Guadalajara, Mexico City, Monterrey (America/Mexico_City)\",\n// value: \"-06:00\",\n// },\n// { label: \"Saskatchewan (Canada/Saskatchewan)\", value: \"-06:00\" },\n// {\n// label: \"Bogota, Lima, Quito, Rio Branco (America/Bogota)\",\n// value: \"-05:00\",\n// },\n// { label: \"Eastern Time (US & Canada) (US/Eastern)\", value: \"-05:00\" },\n// { label: \"Indiana (East) (US/East-Indiana)\", value: \"-05:00\" },\n// { label: \"Atlantic Time (Canada) (Canada/Atlantic)\", value: \"-04:00\" },\n// { label: \"Caracas, La Paz (America/Caracas)\", value: \"-04:00\" },\n// { label: \"Manaus (America/Manaus)\", value: \"-04:00\" },\n// { label: \"Santiago (America/Santiago)\", value: \"-04:00\" },\n// { label: \"Newfoundland (Canada/Newfoundland)\", value: \"-03:30\" },\n// { label: \"Brasilia (America/Sao_Paulo)\", value: \"-03:00\" },\n// {\n// label: \"Buenos Aires, Georgetown (America/Argentina/Buenos_Aires)\",\n// value: \"-03:00\",\n// },\n// { label: \"Greenland (America/Godthab)\", value: \"-03:00\" },\n// { label: \"Montevideo (America/Montevideo)\", value: \"-03:00\" },\n// { label: \"Mid-Atlantic (America/Noronha)\", value: \"-02:00\" },\n// { label: \"Cape Verde Is. (Atlantic/Cape_Verde)\", value: \"-01:00\" },\n// { label: \"Azores (Atlantic/Azores)\", value: \"-01:00\" },\n// {\n// label: \"Casablanca, Monrovia, Reykjavik (Africa/Casablanca)\",\n// value: \"+00:00\",\n// },\n// {\n// label:\n// \"Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London (Etc/Greenwich)\",\n// value: \"+00:00\",\n// },\n// {\n// label:\n// \"Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna (Europe/Amsterdam)\",\n// value: \"+01:00\",\n// },\n// {\n// label:\n// \"Belgrade, Bratislava, Budapest, Ljubljana, Prague (Europe/Belgrade)\",\n// value: \"+01:00\",\n// },\n// {\n// label: \"Brussels, Copenhagen, Madrid, Paris (Europe/Brussels)\",\n// value: \"+01:00\",\n// },\n// {\n// label: \"Sarajevo, Skopje, Warsaw, Zagreb (Europe/Sarajevo)\",\n// value: \"+01:00\",\n// },\n// { label: \"West Central Africa (Africa/Lagos)\", value: \"+01:00\" },\n// { label: \"Amman (Asia/Amman)\", value: \"+02:00\" },\n// { label: \"Athens, Bucharest, Istanbul (Europe/Athens)\", value: \"+02:00\" },\n// { label: \"Beirut (Asia/Beirut)\", value: \"+02:00\" },\n// { label: \"Cairo (Africa/Cairo)\", value: \"+02:00\" },\n// { label: \"Harare, Pretoria (Africa/Harare)\", value: \"+02:00\" },\n// {\n// label: \"Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius (Europe/Helsinki)\",\n// value: \"+02:00\",\n// },\n// { label: \"Jerusalem (Asia/Jerusalem)\", value: \"+02:00\" },\n// { label: \"Minsk (Europe/Minsk)\", value: \"+02:00\" },\n// { label: \"Windhoek (Africa/Windhoek)\", value: \"+02:00\" },\n// { label: \"Kuwait, Riyadh, Baghdad (Asia/Kuwait)\", value: \"+03:00\" },\n// {\n// label: \"Moscow, St. Petersburg, Volgograd (Europe/Moscow)\",\n// value: \"+03:00\",\n// },\n// { label: \"Nairobi (Africa/Nairobi)\", value: \"+03:00\" },\n// { label: \"Tbilisi (Asia/Tbilisi)\", value: \"+03:00\" },\n// { label: \"Tehran (Asia/Tehran)\", value: \"+03:30\" },\n// { label: \"Abu Dhabi, Muscat (Asia/Muscat)\", value: \"+04:00\" },\n// { label: \"Baku (Asia/Baku)\", value: \"+04:00\" },\n// { label: \"Yerevan (Asia/Yerevan)\", value: \"+04:00\" },\n// { label: \"Kabul (Asia/Kabul)\", value: \"+04:30\" },\n// { label: \"Yekaterinburg (Asia/Yekaterinburg)\", value: \"+05:00\" },\n// { label: \"Islamabad, Karachi, Tashkent (Asia/Karachi)\", value: \"+05:00\" },\n// {\n// label: \"Chennai, Kolkata, Mumbai, New Delhi (Asia/Calcutta)\",\n// value: \"+05:30\",\n// },\n// { label: \"Kathmandu (Asia/Katmandu)\", value: \"+05:45\" },\n// { label: \"Almaty, Novosibirsk (Asia/Almaty)\", value: \"+06:00\" },\n// { label: \"Astana, Dhaka (Asia/Dhaka)\", value: \"+06:00\" },\n// { label: \"Yangon (Rangoon) (Asia/Rangoon)\", value: \"+06:30\" },\n// { label: \"Bangkok, Hanoi, Jakarta (Asia/Bangkok)\", value: \"+07:00\" },\n// { label: \"Krasnoyarsk (Asia/Krasnoyarsk)\", value: \"+07:00\" },\n// {\n// label: \"Beijing, Chongqing, Hong Kong, Urumqi (Asia/Hong_Kong)\",\n// value: \"+08:00\",\n// },\n// { label: \"Kuala Lumpur, Singapore (Asia/Kuala_Lumpur)\", value: \"+08:00\" },\n// { label: \"Irkutsk, Ulaan Bataar (Asia/Irkutsk)\", value: \"+08:00\" },\n// { label: \"Perth (Australia/Perth)\", value: \"+08:00\" },\n// { label: \"Taipei (Asia/Taipei)\", value: \"+08:00\" },\n// { label: \"Osaka, Sapporo, Tokyo (Asia/Tokyo)\", value: \"+09:00\" },\n// { label: \"Seoul (Asia/Seoul)\", value: \"+09:00\" },\n// { label: \"Yakutsk (Asia/Yakutsk)\", value: \"+09:00\" },\n// { label: \"Adelaide (Australia/Adelaide)\", value: \"+09:30\" },\n// { label: \"Darwin (Australia/Darwin)\", value: \"+09:30\" },\n// { label: \"Brisbane (Australia/Brisbane)\", value: \"+10:00\" },\n// {\n// label: \"Canberra, Melbourne, Sydney (Australia/Canberra)\",\n// value: \"+10:00\",\n// },\n// { label: \"Hobart (Australia/Hobart)\", value: \"+10:00\" },\n// { label: \"Guam, Port Moresby (Pacific/Guam)\", value: \"+10:00\" },\n// { label: \"Vladivostok (Asia/Vladivostok)\", value: \"+10:00\" },\n// {\n// label: \"Magadan, Solomon Is., New Caledonia (Asia/Magadan)\",\n// value: \"+11:00\",\n// },\n// { label: \"Auckland, Wellington (Pacific/Auckland)\", value: \"+12:00\" },\n// { label: \"Fiji, Kamchatka, Marshall Is. (Pacific/Fiji)\", value: \"+12:00\" },\n// { label: \"Nuku'alofa (Pacific/Tongatapu)\", value: \"+13:00\" },\n// ];\n\nmodule.exports = { timeZones };\n","export const URL =\n process.env.REACT_APP_PARTNER_REST_API_URL ||\n (process.env.REACT_APP_MODE === \"production\"\n ? \"https://backend.aisensy.com/partner/t1\"\n : process.env.REACT_APP_MODE === \"staging\"\n ? \"https://backend.aisensy.com/stg/partner/t1\"\n : process.env.REACT_APP_MODE === \"prestaging\"\n ? \"https://backend.aisensy.org/partner/t1\"\n : \"http://localhost:5099/partner/t1\");\n\nexport const partnerURL =\n process.env.REACT_APP_PARTNER_APIS_URL ||\n (process.env.REACT_APP_MODE === \"production\"\n ? \"https://apis.aisensy.com/partner-apis/v1\"\n : process.env.REACT_APP_MODE === \"staging\"\n ? \"https://backend.aisensy.com/stg/client/t1/partner-apis/v1\"\n : process.env.REACT_APP_MODE === \"prestaging\"\n ? \"https://backend.aisensy.org/partner-apis/v1\"\n : \"http://localhost:5001/client/t1/partner-apis/v1\");\n\nexport const projectURL =\n process.env.REACT_APP_PROJECT_APIS_URL ||\n (process.env.REACT_APP_MODE === \"production\"\n ? \"https://apis.aisensy.com/project-apis/v1\"\n : process.env.REACT_APP_MODE === \"staging\"\n ? \"https://backend.aisensy.com/stg/client/t1/project-apis/v1\"\n : process.env.REACT_APP_MODE === \"prestaging\"\n ? \"https://backend.aisensy.org/project-apis/v1\"\n : \"http://localhost:5001/client/t1/project-apis/v1\");\n\nexport const APIURL =\n process.env.REACT_APP_WHATSAPP_REST_API_URL ||\n (process.env.REACT_APP_MODE === \"production\"\n ? \"https://backend.aisensy.com/client/t1\"\n : process.env.REACT_APP_MODE === \"staging\"\n ? \"https://backend.aisensy.com/stg/client/t1\"\n : process.env.REACT_APP_MODE === \"prestaging\"\n ? \"https://backend.aisensy.org/client/t1\"\n : \"http://localhost:5001/client/t1\");\n\nexport const TENANT_ID = process.env.REACT_APP_TENANT_ID;\n","export default __webpack_public_path__ + \"static/media/404error.63c7b6a1.jpg\";","export default __webpack_public_path__ + \"static/media/Timey_White_Blue.d3d9941d.png\";","import React from \"react\";\nimport { Typography, withStyles, Grid, Box, Link } from \"@material-ui/core\";\nimport ErrorLOGO from \"../../static/404error.jpg\";\nimport LOGO from \"../../static/Timey_White_Blue.png\";\nimport { connect } from \"react-redux\";\n\nfunction ErrorPage(props) {\n const { classes, tenantDetails } = props;\n return (\n \n \n \n \n \n \"404\"\n \n \n \n {\" \"}\n YOU SEEM LOST!\n \n \n \n Home\n \n \n \n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n height: \"100vh\",\n width: \"100vw\",\n },\n image: {\n maxHeight: \"90%\",\n maxWidth: \"100%\",\n // marginRight: ,\n },\n logo: {\n maxHeight: \"100px\",\n maxWidth: \"250px\",\n },\n});\n\nconst connectErrorPage = connect((state) => ({\n tenantDetails: state.tenant.tenant,\n}))(ErrorPage);\n\nexport default withStyles(styles)(connectErrorPage);\n","export default __webpack_public_path__ + \"static/media/logo.704a7a4b.jpg\";","import axios from 'axios';\n\nconst setAuthToken = token => {\n if(token) {\n axios.defaults.headers.common['Authorization'] = token;\n }\n else {\n delete axios.defaults.headers.common['Authorization'];\n }\n}\n\nexport default setAuthToken;","import axios from \"axios\";\nimport jwt_decode from \"jwt-decode\";\nimport setAuthToken from \"../../helpers/setAuthToken\";\nimport { APIURL as url } from \"../../config/config\";\n\nexport const initialState = {\n isLoading: false,\n isAuthenticated: false,\n user: {},\n error: null,\n errmsg: \"\",\n};\n\nexport const START_LOGIN = \"Login/START_LOGIN\";\nexport const LOGIN_SUCCESS = \"Login/LOGIN_SUCCESS\";\nexport const LOGIN_FAILURE = \"Login/LOGIN_FAILURE\";\nexport const RESET_ERROR = \"Login/RESET_ERROR\";\nexport const LOGIN_USER = \"Login/LOGIN_USER\";\nexport const SIGN_OUT_SUCCESS = \"Login/SIGN_OUT_SUCCESS\";\n\nexport const startLogin = () => ({\n type: START_LOGIN,\n});\n\nexport const loginSuccess = (user) => ({\n type: LOGIN_SUCCESS,\n payload: user,\n});\n\nexport const signOutSuccess = () => ({\n type: SIGN_OUT_SUCCESS,\n});\n\nexport const loginFailure = (payload) => ({\n type: LOGIN_FAILURE,\n payload: payload,\n});\n\nexport const resetError = (payload) => ({\n type: RESET_ERROR,\n payload: payload,\n});\n\nexport const loginWithToken = (jwtToken) => async (dispatch) => {\n const data = await jwt_decode(jwtToken);\n localStorage.setItem(\"jwtToken\", jwtToken);\n setAuthToken(jwtToken);\n dispatch(loginSuccess(data));\n window.location.reload();\n};\n\nexport const loginUser =\n (userName, password, email, contact, isChildAffiliate) => (dispatch) => {\n dispatch(startLogin());\n dispatch(resetError());\n\n const user = {\n userName,\n password,\n email,\n contact,\n isChildAffiliate,\n };\n axios\n .post(url + \"/auth/affiliate-login\", user)\n .then(async (res) => {\n const { token } = res.data;\n localStorage.setItem(\"jwtToken\", token);\n const decoded = await jwt_decode(token);\n setAuthToken(token);\n dispatch(loginSuccess(decoded));\n })\n .catch((err) => {\n console.error(err);\n dispatch(loginFailure({ errmsg: \"Unable to setup connection\" }));\n });\n };\n\nexport const signOut = (_id) => (dispatch) => {\n localStorage.removeItem(\"jwtToken\");\n dispatch(signOutSuccess());\n window.location.reload();\n};\n\nexport const modifyUser = (token) => (dispatch) => {\n const decoded = jwt_decode(token);\n dispatch(loginSuccess(decoded));\n};\n\nexport default function LoginReducer(state = initialState, { type, payload }) {\n switch (type) {\n case START_LOGIN:\n return {\n ...state,\n isLoading: true,\n };\n case LOGIN_SUCCESS:\n return {\n ...state,\n isLoading: false,\n isAuthenticated: true,\n error: null,\n user: { ...payload },\n };\n case LOGIN_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: true,\n errmsg: payload.errmsg,\n };\n case RESET_ERROR:\n return {\n ...state,\n error: false,\n };\n case SIGN_OUT_SUCCESS:\n return {\n ...state,\n isAuthenticated: false,\n };\n default:\n return state;\n }\n}\n","import axios from \"axios\";\nimport { APIURL } from \"../config/config\";\n\nlet isFetchingPartner = false;\n\nconst initialState = {\n partner: {},\n isLoading: false,\n error: null,\n};\n\nconst LOAD_START = \"PARTNER/LOAD_START\";\nconst LOAD_SUCCESS = \"PARTNER/LOAD_SUCCESS\";\nconst LOAD_FAILURE = \"PARTNER/LOAD_FAILURE\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = (partner) => ({\n type: LOAD_SUCCESS,\n payload: partner,\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const fetchPartnerDetails = () => async (dispatch, getState) => {\n if (getState().partner?.partner?._id) {\n return Promise.resolve(getState().partner.partner);\n }\n\n // Prevent multiple simultaneous fetches\n if (isFetchingPartner) {\n return new Promise((resolve) => {\n const checkStore = setInterval(() => {\n const partner = getState().partner?.partner;\n if (partner?._id) {\n clearInterval(checkStore);\n resolve(partner);\n }\n }, 100);\n });\n }\n\n isFetchingPartner = true;\n dispatch(loadStart());\n\n try {\n const response = await axios.post(\n `${APIURL}/affiliates/get-affiliate-profile`\n );\n const affiliateData = response.data.data;\n\n if (affiliateData) {\n dispatch(loadSuccess({ affiliateData }));\n isFetchingPartner = false;\n return affiliateData;\n }\n\n throw new Error(\"No affiliate data received\");\n } catch (error) {\n console.error(\"Failed to fetch partner details:\", error);\n dispatch(loadFailure(error));\n isFetchingPartner = false;\n throw error;\n }\n};\n\nexport default function partnerReducer(\n state = initialState,\n { type, payload }\n) {\n switch (type) {\n case LOAD_START:\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n isLoading: false,\n partner: payload.affiliateData,\n error: null,\n };\n\n case LOAD_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: payload,\n };\n\n default:\n return state;\n }\n}\n","import React, { Component } from \"react\";\nimport axios from \"axios\";\nimport {\n Grid,\n Typography,\n withStyles,\n Box,\n CircularProgress,\n TextField,\n Button,\n InputAdornment,\n IconButton,\n Snackbar,\n Paper,\n Avatar,\n Tooltip,\n Hidden,\n List,\n Tab,\n Tabs,\n ListItemText,\n ListItem,\n Checkbox,\n FormControlLabel,\n} from \"@material-ui/core\";\nimport {\n Visibility,\n VisibilityOff,\n CloudUpload as CloudUploadIcon,\n ErrorOutline,\n Edit as EditIcon,\n ExitToApp as ExitToAppIcon,\n} from \"@material-ui/icons\";\nimport { connect } from \"react-redux\";\nimport { modifyUser, signOut } from \"../Login/loginstate\";\nimport { fetchPartnerDetails } from \"../../store/partnerState\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\nimport countriesTimezones from \"../../config/countriesTimezones.json\";\nimport { APIURL } from \"../../config/config\";\n\nclass AgentProfilePage extends Component {\n state = {\n displayName: \"\",\n password: \"\",\n currentPassword: \"\",\n newPassword: \"\",\n confirmPassword: \"\",\n changeName: false,\n changePassword: false,\n emailHelper: \"\",\n showPassword: false,\n status: \"\",\n isLoading: false,\n faviconUrl: \"\",\n brandLogoUrl: \"\",\n webhookUrl: \"\",\n loadingGifUrl: \"\",\n tabValue: 0,\n isEditing: false, // Added to handle edit mode\n selectedFile: null,\n selectedCancelledCheque: null,\n isCompany: false,\n formValues: {\n panImage: null,\n legalName: \"\",\n cancelledCheque: null,\n bankAccountNumber: \"\",\n accountName: \"\",\n ifscCode: \"\",\n panNumber: \"\",\n confirmAccountNumber: \"\",\n companyAddress: \"\",\n companyCity: \"\",\n companyPostal: \"\",\n companyCountry: \"\",\n state: \"\",\n },\n validationErrors: {\n bankAccountNumber: \"\",\n ifscCode: \"\",\n panNumber: \"\",\n },\n postalCodeError: false,\n availableStates: [],\n };\n\n componentDidMount() {\n this.loadPartnerDetails(this.props.partnerDetail);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.partnerDetail !== this.props.partnerDetail) {\n this.loadPartnerDetails(this.props.partnerDetail);\n }\n }\n\n loadPartnerDetails = (partnerDetail) => {\n if (partnerDetail) {\n const selectedCountry = countriesTimezones.find(\n (country) => country.country === partnerDetail.companyCountry\n );\n\n this.setState({\n formValues: {\n legalName: partnerDetail.companyLegalName || \"\",\n bankAccountNumber: partnerDetail.bankAccountNumber || \"\",\n accountName: partnerDetail.accountName || \"\",\n ifscCode: partnerDetail.ifscCode || \"\",\n panNumber: partnerDetail.panNumber || \"\",\n panImage: partnerDetail.panImage || \"\",\n confirmAccountNumber: partnerDetail.confirmAccountNumber || \"\",\n companyAddress: partnerDetail.companyAddress || \"\",\n companyCity: partnerDetail.companyCity || \"\",\n companyPostal: partnerDetail.companyPostal || \"\",\n companyCountry: selectedCountry ? selectedCountry.country : \"\",\n state: partnerDetail.state || \"\",\n },\n availableStates: selectedCountry?.states || [],\n });\n }\n };\n\n handlePasswordChange = (event) => {\n const { name, value } = event.target;\n this.setState({ [name]: value });\n };\n\n onChange = (event) => {\n const { name, value, files } = event.target;\n\n if (files) {\n // Handle file uploads\n this.setState({ [name]: files[0] }, () =>\n this.validateField(name, files[0])\n );\n } else {\n // Handle text input changes\n const updatedValue =\n name === \"panNumber\" || name === \"ifscCode\"\n ? value.toUpperCase()\n : value;\n\n this.setState(\n (prevState) => ({\n formValues: {\n ...prevState.formValues,\n [name]: updatedValue,\n },\n }),\n () => {\n // Validate after state update with latest state values\n this.validateField(name);\n }\n );\n }\n };\n\n validateField = (name) => {\n const { bankAccountNumber, confirmAccountNumber } = this.state.formValues;\n let errorMessage = \"\";\n\n switch (name) {\n case \"bankAccountNumber\":\n // Validate bank account number\n errorMessage = this.validateBankAccountNumber(bankAccountNumber);\n break;\n case \"confirmAccountNumber\":\n // Validate confirm account number with the latest bankAccountNumber\n errorMessage = this.validateConfirmAccountNumber(\n confirmAccountNumber,\n bankAccountNumber\n );\n break;\n case \"ifscCode\":\n errorMessage = this.validateIFSCCode(this.state.formValues.ifscCode);\n break;\n case \"panNumber\":\n errorMessage = this.validatePAN(this.state.formValues.panNumber);\n break;\n default:\n break;\n }\n\n console.log(`Validation for ${name}:`, errorMessage); // Debugging line\n\n this.setState((prevState) => ({\n validationErrors: {\n ...prevState.validationErrors,\n [name]: errorMessage,\n },\n }));\n };\n\n validateBankAccountNumber = (value) => {\n const minLength = 9;\n const maxLength = 18;\n\n if (!value || value.length < minLength || value.length > maxLength) {\n return `Bank account number must be between ${minLength} and ${maxLength} digits.`;\n }\n\n return \"\";\n };\n\n validateConfirmAccountNumber = (value, bankAccountNumber) => {\n const minLength = 9;\n const maxLength = 18;\n\n if (!value || value.length < minLength || value.length > maxLength) {\n return `Confirm account number must be between ${minLength} and ${maxLength} digits.`;\n }\n\n if (bankAccountNumber && value.length !== bankAccountNumber.length) {\n return \"Bank account number and confirm account number must have the same length.\";\n }\n\n if (bankAccountNumber && value !== bankAccountNumber) {\n return \"Bank account number and confirm account number must match.\";\n }\n\n return \"\";\n };\n\n validateIFSCCode = (value) => {\n const ifscCodeRegex = /^[A-Za-z]{4}0[A-Z0-9a-z]{6}$/;\n return ifscCodeRegex.test(value) ? \"\" : \"Invalid IFSC code.\";\n };\n\n validatePAN = (value) => {\n const panRegex = /^[A-Z]{5}[0-9]{4}[A-Z]{1}$/;\n return panRegex.test(value) ? \"\" : \"Invalid PAN number.\";\n };\n\n // Handle the Edit button click\n onEdit = () => {\n this.setState({ changeName: true, changePassword: true, isEditing: true });\n };\n\n // Handle the Cancel button click\n onCancel = () => {\n this.setState({\n changeName: false,\n changePassword: false,\n isEditing: false, // Revert to non-edit mode\n });\n };\n\n // Handle the Save button click\n onSave = () => {\n const { tabValue } = this.state;\n\n if (tabValue === 1) {\n // Call the function to save bank details\n this.onSaveBankDetails();\n } else if (tabValue === 2) {\n // Call the function to change the password\n this.onSavePasswordChange();\n }\n };\n\n onSaveBankDetails = async () => {\n const { formValues } = this.state;\n const { partnerDetail } = this.props;\n const { _id } = partnerDetail;\n\n this.setState({ isLoading: true });\n\n // Determine required fields based on isCompany state\n let requiredFields = [];\n\n if (this.state.isCompany) {\n // Required fields for companies\n requiredFields = [\n \"legalName\",\n \"companyAddress\",\n \"companyCity\",\n \"companyCountry\",\n \"companyPostal\",\n \"bankAccountNumber\",\n \"confirmAccountNumber\",\n \"accountName\",\n \"ifscCode\",\n \"panNumber\",\n ];\n } else {\n // Required fields for non-companies (individuals, etc.)\n requiredFields = [\n \"bankAccountNumber\",\n \"confirmAccountNumber\",\n \"accountName\",\n \"ifscCode\",\n \"panNumber\",\n ];\n }\n\n // Validate required fields\n const hasErrors = requiredFields.some((field) => {\n const value = formValues[field];\n return value === undefined || value === null || value === \"\";\n });\n\n if (hasErrors) {\n this.setState({\n alertType: \"error\",\n alertMsg: \"Please fill in all required fields and fix any errors.\",\n isLoading: false,\n });\n return;\n }\n\n // Create an object with the form values\n const updatePayload = {\n _id,\n AreYouCompany: this.state.isCompany,\n ...formValues,\n };\n\n try {\n // Send form data to server as JSON\n const response = await axios.post(\n `${APIURL}/affiliates/update-affiliate-profile`,\n updatePayload,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n const { message } = response.data;\n await this.props.fetchPartnerDetails();\n\n this.setState({\n alertType: \"success\",\n alertMsg: message || \"Profile updated successfully\",\n isLoading: false,\n changeName: false,\n isEditing: false,\n });\n\n // Handle file uploads separately if they exist\n // if (this.state.selectedFile) {\n // await this.uploadFileToS3(this.state.selectedFile, \"panImage\");\n // }\n\n // if (this.state.selectedCancelledCheque) {\n // await this.uploadFileToS3(\n // this.state.selectedCancelledCheque,\n // \"cancelledCheque\"\n // );\n // }\n } catch (error) {\n console.error(error);\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"Something went wrong, try again\",\n isLoading: false,\n });\n }\n };\n\n onSavePasswordChange = async () => {\n const { currentPassword, newPassword } = this.state;\n const { partnerDetail } = this.props;\n const { _id } = partnerDetail;\n\n this.setState({ isLoading: true });\n\n // Validate required fields\n if (!currentPassword || !newPassword) {\n this.setState({\n alertType: \"error\",\n alertMsg: \"Please enter both the current and new password.\",\n isLoading: false,\n });\n return;\n }\n const passwordFields = {\n currentPassword,\n newPassword,\n _id,\n };\n try {\n const response = await axios.post(\n `${APIURL}/affiliates/reset-profile-password`,\n passwordFields\n );\n\n const { message } = response.data;\n await this.props.fetchPartnerDetails();\n\n this.setState({\n alertType: \"success\",\n alertMsg: message || \"Password updated successfully\",\n isLoading: false,\n changePassword: false,\n isEditing: false,\n });\n } catch (error) {\n console.error(error);\n this.setState({\n alertType: \"error\",\n alertMsg: error?.response?.data || \"Something went wrong, try again\",\n isLoading: false,\n });\n }\n };\n\n validateFormValues = () => {\n const { formValues } = this.state;\n const requiredFields = [\n \"legalName\",\n \"bankAccountNumber\",\n \"accountName\",\n \"ifscCode\",\n \"panNumber\",\n \"confirmAccountNumber\",\n ];\n\n return requiredFields.every((field) => formValues[field] !== \"\");\n };\n\n onSnackbarClose = () => {\n this.setState({\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n\n handleTabChange = (event, newValue) => {\n this.setState({ tabValue: newValue });\n };\n\n handleFileChange = async (event) => {\n const { partnerDetail } = this.props;\n const { _id } = partnerDetail;\n const file = event.target.files[0];\n const formData = new FormData();\n formData.append(\"_id\", _id);\n formData.append(\"file\", file);\n try {\n const fileResponse = await axios.post(\n `${APIURL}/affiliates/upload-file-to-s3`,\n formData,\n {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n }\n );\n this.setState((prevState) => ({\n selectedFile: file,\n formValues: {\n ...prevState.formValues,\n panImage: fileResponse.data.fileData,\n },\n }));\n } catch (error) {\n console.error(\"Error uploading file:\", error);\n }\n };\n\n handleCancelledChequeChange = async (event) => {\n const { partnerDetail } = this.props;\n const { _id } = partnerDetail;\n const selectedChequeFile = event.target.files[0];\n const formData = new FormData();\n formData.append(\"_id\", _id);\n formData.append(\"file\", selectedChequeFile);\n\n try {\n const fileResponse = await axios.post(\n `${APIURL}/affiliates/upload-file-to-s3`,\n formData,\n {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n }\n );\n this.setState((prevState) => ({\n selectedCancelledCheque: selectedChequeFile,\n formValues: {\n ...prevState.formValues,\n cancelledCheque: fileResponse.data.fileData,\n },\n }));\n } catch (error) {\n console.error(\"Error uploading file:\", error);\n }\n };\n\n handleCountryChange = (e, value) => {\n const selectedCountry = countriesTimezones.find(\n (country) => country.country === value?.country\n );\n\n this.setState({\n formValues: {\n ...this.state.formValues,\n companyCountry: value?.country || \"\",\n state: \"\",\n timezone: selectedCountry?.timezone || \"\",\n },\n availableStates: selectedCountry?.states || [],\n });\n };\n\n render() {\n const { classes, agent } = this.props;\n const { isEditing, isLoading, changeName } = this.state;\n\n return (\n \n {/* Sidebar visible on screens 768px and above */}\n \n \n \n Your Account\n \n this.setState({ tabValue: 0 })}\n className={classes.sidebarButton}\n >\n \n \n this.setState({ tabValue: 1 })}\n className={classes.sidebarButton}\n >\n \n \n this.setState({ tabValue: 2 })}\n className={classes.sidebarButton}\n >\n \n \n \n \n \n \n\n {/* Horizontal Tabs for screens less than 768px */}\n \n \n \n \n \n \n \n \n \n\n {/* Form Container */}\n \n \n \n \n \n {agent?.name?.charAt(0)}\n \n \n \n {isEditing && this.state.tabValue !== 0 ? (\n <>\n \n Save\n \n \n Cancel\n \n \n ) : this.state.tabValue !== 0 ? (\n <>\n }\n onClick={this.onEdit}\n className={classes.editButton}\n >\n Edit\n \n }\n className={classes.logoutButton}\n onClick={() => this.props.signOut(agent.id)}\n >\n Logout\n \n \n ) : (\n }\n className={classes.logoutButton}\n onClick={() => this.props.signOut(agent.id)}\n >\n Logout\n \n )}\n \n\n \n {/* Form Fields based on tabValue */}\n {this.state.tabValue === 0 && (\n \n Personal Information\n \n \n Name\n \n \n \n Address\n \n \n \n City\n \n \n \n State\n option}\n onChange={(e, value) =>\n this.setState({\n formValues: {\n ...this.state.formValues,\n state: value,\n },\n })\n }\n value={this.state.formValues.state}\n disabled\n renderInput={(params) => (\n \n )}\n />\n \n \n Postal Code\n \n {this.state.postalCodeError && (\n \n \n \n )}\n \n \n Country\n option.country}\n onChange={this.handleCountryChange}\n value={\n countryData.find(\n (option) => option.code === agent.country\n ) || null\n }\n renderInput={(params) => (\n \n )}\n />\n \n \n \n )}\n\n {this.state.tabValue === 1 && (\n \n Company Information\n \n \n \n Bank Account Number\n *\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n Confirm Bank Account Number\n *\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n Account Name*\n \n \n \n \n \n IFSC Code*\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n PAN Number*\n \n {\n const panNumberUpper = e.target.value.toUpperCase(); // Convert to uppercase\n this.setState((prevState) => ({\n formValues: {\n ...prevState.formValues,\n panNumber: panNumberUpper,\n },\n }));\n }}\n disabled={!changeName}\n className={classes.textFieldRootAutocomplete}\n InputProps={{\n endAdornment: this.state.validationErrors\n .panNumber && (\n \n \n \n \n \n ),\n }}\n />\n \n\n \n \n }\n disabled={!changeName}\n className={classes.uploadButton}\n >\n Upload PAN Card\n \n \n\n {this.state.selectedFile && (\n \n \n {this.state.selectedFile.name}\n \n \n )}\n \n \n \n \n \n Note*: Please\n upload a file less than 1 MB\n \n \n \n \n \n }\n disabled={!changeName}\n className={classes.uploadButton}\n >\n Upload Cancelled Cheque\n \n \n\n {this.state.selectedCancelledCheque && (\n \n \n {this.state.selectedCancelledCheque.name}\n \n \n )}\n \n \n \n \n \n Note*: Please\n upload a file less than 1 MB\n \n \n \n\n {/* Checkbox for \"Are you a company?\" */}\n \n \n this.setState({ isCompany: e.target.checked })\n }\n name=\"isCompany\"\n color=\"primary\"\n />\n }\n label=\"Are you a company?\"\n />\n \n\n {/* Conditionally render the company form */}\n {this.state.isCompany && (\n \n \n \n Legal Company Name\n *\n \n \n \n \n \n Company Address\n *\n \n \n \n \n \n Country*\n \n option.country}\n onChange={this.handleCountryChange}\n value={\n countriesTimezones.find(\n (option) =>\n option.country ===\n this.state.formValues.companyCountry\n ) || null\n }\n disabled={!changeName}\n renderInput={(params) => (\n \n )}\n />\n \n {this.state.availableStates.length > 0 && (\n \n \n State*\n \n option}\n onChange={(e, value) =>\n this.setState({\n formValues: {\n ...this.state.formValues,\n state: value,\n },\n })\n }\n value={this.state.formValues.state}\n disabled={!changeName}\n renderInput={(params) => (\n \n )}\n />\n \n )}\n \n \n Company City\n *\n \n \n \n \n \n Company Postal Code\n *\n \n \n \n \n \n \n ),\n }}\n />\n \n \n )}\n \n \n )}\n\n {/* {this.state.tabValue === 1 &&\n agent.businessType !== \"Business\" && (\n \n Bank Details\n \n \n \n Bank Account Number\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n Confirm Bank Account Number\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n Account Name\n \n \n \n \n IFSC Code\n \n \n \n \n \n ),\n }}\n />\n \n \n \n PAN Number\n \n \n \n \n \n \n ),\n }}\n />\n \n \n\n \n }\n disabled={!changeName}\n className={classes.uploadButton}\n >\n Upload PAN Card\n \n \n {this.state.selectedFile && (\n \n \n {this.state.selectedFile.name}\n \n \n )}\n \n \n )} */}\n\n {this.state.tabValue === 2 && (\n \n Account Settings\n \n \n \n Current Password\n \n \n this.setState({\n showPassword: !this.state.showPassword,\n })\n }\n >\n {this.state.showPassword ? (\n \n ) : (\n \n )}\n \n ),\n }}\n />\n \n \n \n New Password\n \n \n this.setState({\n showPassword: !this.state.showPassword,\n })\n }\n >\n {this.state.showPassword ? (\n \n ) : (\n \n )}\n \n ),\n }}\n />\n \n \n \n )}\n \n \n \n \n\n \n \n {this.state.alertMsg}\n \n \n \n );\n }\n}\n\nconst countryData = countriesTimezones.map((option) => option);\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n background: \"whitesmoke\",\n boxSizing: \"border-box\",\n },\n sidebarContainer: {\n backgroundColor: \"#ffffff\",\n boxShadow: \"0 1px 4px rgba(0,0,0,0.1)\",\n overflowY: \"auto\",\n height: \"100vh\",\n },\n formContainer: {\n overflowY: \"auto\",\n height: \"100vh\",\n padding: theme.spacing(3),\n [theme.breakpoints.down(\"sm\")]: {\n padding: theme.spacing(1),\n height: \"100vh\",\n },\n },\n progress: {\n position: \"fixed\",\n top: \"8em\",\n right: \"44.5vw\",\n },\n snackbar: {\n top: theme.spacing(9),\n },\n disabledField: {\n cursor: \"not-allowed\",\n },\n textFieldRootAutocomplete: {\n display: \"flex\",\n width: \"100%\",\n maxWidth: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"2%\",\n background: \"white\",\n border: \"2px solid grey\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n scrollableContent: {\n height: \"100vh\",\n maxHeight: \"100vh\",\n overflowY: \"auto\",\n },\n sidebar: {\n backgroundColor: \"#ffffff\",\n boxShadow: \"0 1px 4px rgba(0,0,0,0.1)\",\n },\n sidebarHorizontal: {\n display: \"flex\",\n backgroundColor: \"#ffffff\",\n justifyContent: \"center\",\n boxShadow: \"0 1px 4px rgba(0,0,0,0.1)\",\n marginBottom: theme.spacing(2),\n [theme.breakpoints.down(\"xs\")]: {\n overflowX: \"auto\",\n whiteSpace: \"nowrap\",\n },\n },\n profileGrid: {\n justifyContent: \"center\",\n marginBottom: \"3%\",\n },\n profileContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"3%\",\n },\n profilePaper: {\n paddingTop: \"3%\",\n width: \"100%\",\n overflowY: \"auto\",\n },\n avatar: {\n width: theme.spacing(12),\n height: theme.spacing(12),\n fontSize: \"40px\",\n },\n editButton: {\n marginRight: theme.spacing(2),\n },\n logoutButton: {\n backgroundColor: \"#ffffff\",\n },\n editable: {\n backgroundColor: \"#ffffff\",\n },\n readOnly: {\n backgroundColor: \"#f0f0f0\",\n },\n uploadButton: {\n backgroundColor: \"#012d62\",\n color: \"white\",\n },\n tabContent: {\n display: \"content\",\n marginTop: theme.spacing(4),\n width: \"100%\",\n marginBottom: \"3%\",\n [theme.breakpoints.down(\"xs\")]: {\n marginBottom: \"30%\",\n },\n },\n sidebarButton: {\n width: \"100%\",\n maxWidth: \"200px\",\n minWidth: \"150px\",\n textAlign: \"left\",\n paddingLeft: \"0\",\n paddingRight: \"0\",\n },\n});\n\nconst connectedAgentProfilePage = connect(\n (state) => ({\n agent: state.partner.partner,\n partnerDetail: state.partner.partner,\n }),\n { modifyUser, signOut, fetchPartnerDetails }\n)(AgentProfilePage);\n\nexport default withStyles(styles)(connectedAgentProfilePage);\n","export default __webpack_public_path__ + \"static/media/onlineCall.bfbdb1e6.png\";","import React from \"react\";\nimport { IconButton } from \"@material-ui/core\";\nimport { DateRangePicker } from \"react-dates\";\nimport { NavigateBefore, NavigateNext } from \"@material-ui/icons\";\nimport moment from \"moment\";\n\nexport default function DateFilter(props) {\n const { startDate, endDate, focusedInput, classes, minDate } = props;\n const { setFocus, setDate } = props;\n return (\n setDate(startDate, endDate)}\n focusedInput={focusedInput}\n onFocusChange={(focusedInput) => setFocus(focusedInput)}\n navPosition=\"navPositionTop\"\n numberOfMonths={1}\n navPrev={\n \n \n \n }\n navNext={\n \n \n \n }\n hideKeyboardShortcutsPanel\n customArrowIcon={null}\n screenReaderInputMessage={\" \"}\n small\n readOnly\n displayFormat=\"DD/MM/YYYY\"\n minDate={minDate}\n isOutsideRange={(day) =>\n minDate\n ? day.isAfter(moment()) || day.isBefore(minDate)\n : day.isAfter(moment())\n }\n />\n );\n}\n\n// Navigattion icons used in date fliters\nfunction NavigationWrapper(props) {\n const { classes } = props;\n return (\n
\n {props.children}\n
\n );\n}\n","import React, { useState } from \"react\";\nimport DateFilter from \"../../../commons/Filters/DateFilter\";\nimport axios from \"axios\";\nimport {\n Typography,\n Grid,\n CircularProgress,\n Button,\n Dialog,\n DialogContent,\n DialogActions,\n IconButton,\n} from \"@material-ui/core\";\nimport { GetApp, Clear } from \"@material-ui/icons\";\nimport { partnerURL } from \"../../../config/config\";\n\nexport default function DownloadReport(props) {\n const {\n classes,\n showReport,\n setShowReport,\n projectId,\n partnerId,\n currency,\n getConvoReport,\n reportLoading,\n convoReportDownload,\n dialogHeading,\n dialogBody,\n } = props;\n const [startDate, setStartDate] = useState();\n const [endDate, setEndDate] = useState();\n const [focusedInput, setFocusedInput] = useState();\n const [loading, setLoading] = useState(false);\n\n const resetDates = () => {\n setStartDate(null);\n setEndDate(null);\n };\n\n const setDateRange = (startDate, endDate) => {\n if (startDate) setStartDate(startDate);\n if (endDate) setEndDate(endDate);\n };\n\n const setFocus = (focusedInput) => {\n const picker = document.getElementsByClassName(\"DateInput\");\n if (picker[0])\n picker[0].style.border =\n focusedInput === \"startDate\" ? \"1px solid grey\" : \"1px solid lightgrey\";\n if (picker[1])\n picker[1].style.border =\n focusedInput === \"endDate\" ? \"1px solid grey\" : \"1px solid lightgrey\";\n setFocusedInput(focusedInput);\n };\n\n const generateReport = async () => {\n setLoading(true);\n try {\n let url =\n partnerURL +\n `/partner/${partnerId}/wcc-analytics?projectId=${projectId}`;\n if (startDate) url += `&startDate=${startDate}`;\n if (endDate) url += `&endDate=${endDate}`;\n const response = await axios.get(url);\n\n const report = response.data?.wccAnalytics || [];\n\n const currencySign = currency === \"USD\" ? \"$\" : \"₹\";\n const roundNumber = (value) =>\n currencySign + (value ? (value / 100000).toFixed(2) : \"0\");\n //update\n const data = report.map((row) => ({\n Date: row.dayDate\n ? new Date(row.dayDate).toLocaleDateString([], {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n })\n : null,\n \"Sent Chat Count\": row.sentChatCount || 0,\n \"Delivered Chat Count\": row.deliveredChatCount || 0,\n \"Read Chat Count\": row.readChatCount || 0,\n \"Failed Chat Count\": row.failedChatCount || 0,\n\n \"Template Credit MC Count\": row.mcTemplateCreditMetrics?.count || 0,\n \"Template Credit MC Usage\": roundNumber(\n row.mcTemplateCreditMetrics?.creditUsage\n ),\n\n \"Central Balance MC Count\": row.mcCentralBalanceMetrics?.count || 0,\n \"Central Balance MC Usage\": roundNumber(\n row.mcCentralBalanceMetrics?.creditUsage\n ),\n\n \"Template Credit UC Count\": row.ucTemplateCreditMetrics?.count || 0,\n \"Template Credit UC Usage\": roundNumber(\n row.ucTemplateCreditMetrics?.creditUsage\n ),\n\n \"Central Balance UC Count\": row.ucCentralBalanceMetrics?.count || 0,\n \"Central Balance UC Usage\": roundNumber(\n row.ucCentralBalanceMetrics?.creditUsage\n ),\n\n \"Template Credit AC Count\": row.acTemplateCreditMetrics?.count || 0,\n \"Template Credit AC Usage\": roundNumber(\n row.acTemplateCreditMetrics?.creditUsage\n ),\n\n \"Central Balance AC Count\": row.acCentralBalanceMetrics?.count || 0,\n \"Central Balance AC Usage\": roundNumber(\n row.acCentralBalanceMetrics?.creditUsage\n ),\n\n \"Template Credit SC Count\": row.scTemplateCreditMetrics?.count || 0,\n \"Template Credit SC Usage\": roundNumber(\n row.scTemplateCreditMetrics?.creditUsage\n ),\n \"Central Balance SC Count\": row.scCentralBalanceMetrics?.count || 0,\n \"Central Balance SC Usage\": roundNumber(\n row.scCentralBalanceMetrics?.creditUsage\n ),\n\n \"Template Credit BIC Count\": row.bicTemplateCreditMetrics?.count || 0,\n \"Template Credit BIC Usage\": roundNumber(\n row.bicTemplateCreditMetrics?.creditUsage\n ),\n\n \"Central Balance BIC Count\": row.bicCentralBalanceMetrics?.count || 0,\n \"Central Balance BIC Usage\": roundNumber(\n row.bicCentralBalanceMetrics?.creditUsage\n ),\n\n \"Template Credit UIC Count\": row.uicTemplateCreditMetrics?.count || 0,\n \"Template Credit UIC Usage\": roundNumber(\n row.uicTemplateCreditMetrics?.creditUsage\n ),\n\n \"Central Balance UIC Count\": row.uicCentralBalanceMetrics?.count || 0,\n \"Central Balance UIC Usage\": roundNumber(\n row.uicCentralBalanceMetrics?.creditUsage\n ),\n }));\n\n const headers = Object.keys(\n data?.length > 0\n ? data[0]\n : {\n Date: new Date(),\n \"Sent Chat Count\": 0,\n \"Delivered Chat Count\": 0,\n \"Read Chat Count\": 0,\n \"Failed Chat Count\": 0,\n\n \"Template Credit MC Count\": 0,\n \"Template Credit MC Usage\": 0,\n \"Central Balance MC Count\": 0,\n \"Central Balance MC Usage\": 0,\n\n \"Template Credit UC Count\": 0,\n \"Template Credit UC Usage\": 0,\n \"Central Balance UC Count\": 0,\n \"Central Balance UC Usage\": 0,\n\n \"Template Credit AC Count\": 0,\n \"Template Credit AC Usage\": 0,\n \"Central Balance AC Count\": 0,\n \"Central Balance AC Usage\": 0,\n\n \"Template Credit SC Count\": 0,\n \"Template Credit SC Usage\": 0,\n \"Central Balance SC Count\": 0,\n \"Central Balance SC Usage\": 0,\n\n \"Template Credit BIC Count\": 0,\n \"Template Credit BIC Usage\": 0,\n \"Central Balance BIC Count\": 0,\n \"Central Balance BIC Usage\": 0,\n\n \"Template Credit UIC Count\": 0,\n \"Template Credit UIC Usage\": 0,\n \"Central Balance UIC Count\": 0,\n \"Central Balance UIC Usage\": 0,\n }\n );\n const csvRows = [];\n csvRows.push(headers.join(\",\"));\n\n for (const val of data) {\n const values = Object.values(val).join(\",\");\n csvRows.push(values);\n }\n const csv = csvRows.join(\"\\n\");\n\n const downloadLink = document.createElement(\"a\");\n const blob = new Blob([\"\\ufeff\", csv]);\n const bloburl = window.URL.createObjectURL(blob);\n downloadLink.href = bloburl;\n downloadLink.download = \"analytics.csv\";\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n\n setShowReport(false);\n } catch (error) {\n console.log(\"Downloading CSV failed ->\", error);\n }\n setLoading(false);\n };\n\n return (\n \n \n \n \n \n \n {dialogHeading}\n \n \n \n setShowReport(false)}>\n \n \n \n \n\n \n \n {dialogBody}\n \n \n\n \n \n \n \n \n \n \n resetDates()}\n style={{ margin: 16, marginRight: 0 }}\n >\n Clear Filter\n \n getConvoReport(startDate, endDate)\n : generateReport\n }\n style={{ margin: 16 }}\n disabled={\n !convoReportDownload ? !startDate || !endDate : reportLoading\n }\n endIcon={\n loading || reportLoading ? (\n \n ) : (\n \n )\n }\n >\n Download\n \n \n \n \n );\n}\n","// Header.js\nimport React, { useState } from \"react\";\nimport {\n withStyles,\n Typography,\n Grid,\n TextField,\n Button,\n InputAdornment,\n Box,\n IconButton,\n Badge,\n Tooltip,\n} from \"@material-ui/core\";\nimport {\n FilterList,\n Clear,\n ArrowBackOutlined,\n Search,\n GetApp,\n} from \"@material-ui/icons\";\nimport DownloadReport from \"../../pages/Assistants/WccAnalytics/DownloadReport\";\n\nfunction Header(props) {\n const {\n classes,\n businessTitle,\n buttonPrefixIcon,\n buttonTitle,\n onButtonClick,\n handleSearch,\n handleEnter,\n searchDone,\n handleClear,\n showSearch,\n searchPlaceholder,\n filter,\n disableFilterBtn,\n toggleFilterDialog,\n onBackPress,\n backgroundColor,\n filterColor,\n syncButtonTitle,\n onSyncButtonClick,\n syncButtonPrefixIcon,\n tooltipTitle,\n disableTemplateButton,\n businessArchived,\n convoReportDownload,\n getConvoReport,\n reportLoading,\n partnerId,\n clientReport,\n projectReport,\n onOnboardingCallClick,\n onPlatformDemoClick,\n showDashboardButtons, // New prop to control button visibility\n } = props;\n\n const [showReport, setShowReport] = useState(false);\n\n return (\n \n \n \n {onBackPress && (\n \n \n \n )}\n {/* business title */}\n \n {businessTitle}\n \n\n {window.innerWidth >= 768 && (\n <>\n {showDashboardButtons && (\n <>\n {/* Onboarding Call Button */}\n \n Onboarding Call\n \n {/* Platform Demo Button */}\n \n Platform Demo\n \n \n )}\n {/* Show button */}\n {buttonTitle && (\n \n {buttonTitle}\n \n )}\n {/* Show search textfield */}\n {showSearch && (\n \n \n searchDone\n ? handleClear()\n : handleEnter({\n key: \"Enter\",\n target: { value: filter },\n })\n }\n >\n {searchDone ? : }\n \n \n ),\n }}\n />\n )}\n \n )}\n\n {/* Show Download Report */}\n {convoReportDownload && (\n \n setShowReport(true)}\n variant=\"outlined\"\n startIcon={}\n >\n {window.innerWidth < 400 ? \"Report\" : \"Download Report\"}\n \n\n \n \n )}\n\n {projectReport && (\n \n setShowReport(true)}\n variant=\"outlined\"\n startIcon={}\n >\n {window.innerWidth < 400 ? \"Report\" : \"Download Report\"}\n \n\n \n \n )}\n\n {/* Show Filter icon */}\n {toggleFilterDialog && (\n \n \n \n \n \n )}\n \n \n {window.innerWidth < 768 && (\n \n {/* Show button */}\n {syncButtonTitle && (\n \n \n \n {syncButtonTitle}\n \n \n \n )}\n\n {buttonTitle && !businessArchived && (\n \n {buttonTitle}\n \n )}\n\n {/* Show search textfield */}\n {showSearch && (\n \n \n \n \n \n ),\n }\n }\n />\n )}\n \n )}\n \n );\n}\n\nconst styles = (theme) => ({\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 80,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n fixedWidthButton: {\n width: \"9%\",\n marginRight: 8,\n height: 42,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\", // Fixed width for the buttons\n },\n dialogContainer: {\n \"& .MuiDialogContent-root\": { overflow: \"hidden\" },\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"450px\",\n minWidth: \"100px\",\n height: \"500px\",\n margin: \"0\",\n borderRadius: \"6px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"450px\",\n height: \"550px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n\n textField: {\n width: 210,\n // marginRight: 8,\n height: 42,\n \"& .MuiIconButton-root\": {\n padding: 6,\n background: \"rgb(70 20 134 / 15%)\",\n color: theme.palette.primary.main,\n },\n \"& .MuiSvgIcon-root\": {\n fontSize: 15,\n },\n },\n});\n\nexport default withStyles(styles)(Header);\n","import { Box, Grid, Link, Typography, withStyles } from \"@material-ui/core\";\nimport { ArrowForwardRounded } from \"@material-ui/icons\";\nimport React, { Component } from \"react\";\n\nclass TrainingSessionCard extends Component {\n render() {\n const {\n gridSize,\n link,\n themeBackground,\n title,\n subTitle,\n Description,\n buttonTitle,\n iconLink,\n classes,\n maxImageSize,\n height,\n bottomPadding,\n } = this.props;\n\n return (\n \n \n \n \n \n {title}\n \n \n {subTitle}\n \n \n \n \n \n \n \n \n\n {/* Wrap only the button with Link */}\n \n \n \n {buttonTitle}\n \n \n \n \n \n );\n }\n}\n\nconst styles = (theme) => ({\n iconImageContainer: {\n justifyContent: \"center\",\n flexDirection: \"column\",\n display: \"flex\",\n alignItems: \"center\",\n },\n iconImage: {\n width: \"100%\",\n transition: \"all 0.25s ease-out\",\n },\n arrowForward: {\n fontSize: 16,\n padding: \"2px\",\n transition: \"all 0.25s\",\n border: \"1px solid #09A12A\",\n color: \"#09A12A\",\n borderRadius: \"20px\",\n },\n affilateCard: {\n \"&:hover $arrowForward\": {\n fontSize: 20,\n },\n \"&:hover $iconImage\": {\n transform: \"rotate(-3deg)\",\n },\n \"&:hover\": {\n marginBottom: 0,\n },\n display: \"flex\",\n flexDirection: \"column\",\n transformStyle: \"preserve-3d\",\n marginBottom: 4,\n transition: \"margin 0.25s\",\n },\n cardHeading: {\n color: \"black\",\n marginBottom: \"16px\",\n fontWeight: \"bold\",\n fontFamily: \"Roboto\",\n letterSpacing: \"0.5px\",\n },\n cardCTA: {\n boxShadow: \"0 0 11px rgb(230,230,230)\",\n borderRadius: \"0 0 16px 16px\",\n zIndex: 1,\n display: \"flex\",\n padding: \"16px 32px 12px\",\n position: \"relative\",\n bottom: \"8px\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n background: \"white\",\n },\n\n cardTop: {\n minHeight: \"175px\",\n\n [theme.breakpoints.down(\"1400\")]: {\n minHeight: \"215px\",\n },\n },\n});\n\nexport default withStyles(styles)(TrainingSessionCard);\n","const dialCodes = [\n {\n name: \"Afghanistan\",\n dialCode: \"+93\",\n isoCode: \"AF\",\n },\n {\n name: \"Aland Islands\",\n dialCode: \"+358\",\n isoCode: \"AX\",\n },\n {\n name: \"Albania\",\n dialCode: \"+355\",\n isoCode: \"AL\",\n },\n {\n name: \"Algeria\",\n dialCode: \"+213\",\n isoCode: \"DZ\",\n },\n {\n name: \"AmericanSamoa\",\n dialCode: \"+1684\",\n isoCode: \"AS\",\n },\n {\n name: \"Andorra\",\n dialCode: \"+376\",\n isoCode: \"AD\",\n },\n {\n name: \"Angola\",\n dialCode: \"+244\",\n isoCode: \"AO\",\n },\n {\n name: \"Anguilla\",\n dialCode: \"+1264\",\n isoCode: \"AI\",\n },\n {\n name: \"Antarctica\",\n dialCode: \"+672\",\n isoCode: \"AQ\",\n },\n {\n name: \"Antigua and Barbuda\",\n dialCode: \"+1268\",\n isoCode: \"AG\",\n },\n {\n name: \"Argentina\",\n dialCode: \"+54\",\n isoCode: \"AR\",\n },\n {\n name: \"Armenia\",\n dialCode: \"+374\",\n isoCode: \"AM\",\n },\n {\n name: \"Aruba\",\n dialCode: \"+297\",\n isoCode: \"AW\",\n },\n {\n name: \"Ascension Island\",\n dialCode: \"+247\",\n isoCode: \"AC\",\n },\n {\n name: \"Australia\",\n dialCode: \"+61\",\n isoCode: \"AU\",\n },\n {\n name: \"Austria\",\n dialCode: \"+43\",\n isoCode: \"AT\",\n },\n {\n name: \"Azerbaijan\",\n dialCode: \"+994\",\n isoCode: \"AZ\",\n },\n {\n name: \"Bahamas\",\n dialCode: \"+1242\",\n isoCode: \"BS\",\n },\n {\n name: \"Bahrain\",\n dialCode: \"+973\",\n isoCode: \"BH\",\n },\n {\n name: \"Bangladesh\",\n dialCode: \"+880\",\n isoCode: \"BD\",\n },\n {\n name: \"Barbados\",\n dialCode: \"+1246\",\n isoCode: \"BB\",\n },\n {\n name: \"Belarus\",\n dialCode: \"+375\",\n isoCode: \"BY\",\n },\n {\n name: \"Belgium\",\n dialCode: \"+32\",\n isoCode: \"BE\",\n },\n {\n name: \"Belize\",\n dialCode: \"+501\",\n isoCode: \"BZ\",\n },\n {\n name: \"Benin\",\n dialCode: \"+229\",\n isoCode: \"BJ\",\n },\n {\n name: \"Bermuda\",\n dialCode: \"+1441\",\n isoCode: \"BM\",\n },\n {\n name: \"Bhutan\",\n dialCode: \"+975\",\n isoCode: \"BT\",\n },\n {\n name: \"Bolivia\",\n dialCode: \"+591\",\n isoCode: \"BO\",\n },\n {\n name: \"Bosnia and Herzegovina\",\n dialCode: \"+387\",\n isoCode: \"BA\",\n },\n {\n name: \"Botswana\",\n dialCode: \"+267\",\n isoCode: \"BW\",\n },\n {\n name: \"Brazil\",\n dialCode: \"+55\",\n isoCode: \"BR\",\n },\n {\n name: \"British Indian Ocean Territory\",\n dialCode: \"+246\",\n isoCode: \"IO\",\n },\n {\n name: \"Brunei Darussalam\",\n dialCode: \"+673\",\n isoCode: \"BN\",\n },\n {\n name: \"Bulgaria\",\n dialCode: \"+359\",\n isoCode: \"BG\",\n },\n {\n name: \"Burkina Faso\",\n dialCode: \"+226\",\n isoCode: \"BF\",\n },\n {\n name: \"Burundi\",\n dialCode: \"+257\",\n isoCode: \"BI\",\n },\n {\n name: \"Cambodia\",\n dialCode: \"+855\",\n isoCode: \"KH\",\n },\n {\n name: \"Cameroon\",\n dialCode: \"+237\",\n isoCode: \"CM\",\n },\n {\n name: \"Canada\",\n dialCode: \"+1\",\n isoCode: \"CA\",\n },\n {\n name: \"Cape Verde\",\n dialCode: \"+238\",\n isoCode: \"CV\",\n },\n {\n name: \"Cayman Islands\",\n dialCode: \"+1345\",\n isoCode: \"KY\",\n },\n {\n name: \"Central African Republic\",\n dialCode: \"+236\",\n isoCode: \"CF\",\n },\n {\n name: \"Chad\",\n dialCode: \"+235\",\n isoCode: \"TD\",\n },\n {\n name: \"Chile\",\n dialCode: \"+56\",\n isoCode: \"CL\",\n },\n {\n name: \"China\",\n dialCode: \"+86\",\n isoCode: \"CN\",\n },\n {\n name: \"Christmas Island\",\n dialCode: \"+61\",\n isoCode: \"CX\",\n },\n {\n name: \"Cocos (Keeling) Islands\",\n dialCode: \"+61\",\n isoCode: \"CC\",\n },\n {\n name: \"Colombia\",\n dialCode: \"+57\",\n isoCode: \"CO\",\n },\n {\n name: \"Comoros\",\n dialCode: \"+269\",\n isoCode: \"KM\",\n },\n {\n name: \"Congo\",\n dialCode: \"+242\",\n isoCode: \"CG\",\n },\n {\n name: \"Cook Islands\",\n dialCode: \"+682\",\n isoCode: \"CK\",\n },\n {\n name: \"Costa Rica\",\n dialCode: \"+506\",\n isoCode: \"CR\",\n },\n {\n name: \"Croatia\",\n dialCode: \"+385\",\n isoCode: \"HR\",\n },\n {\n name: \"Cuba\",\n dialCode: \"+53\",\n isoCode: \"CU\",\n },\n {\n name: \"Cyprus\",\n dialCode: \"+357\",\n isoCode: \"CY\",\n },\n {\n name: \"Czech Republic\",\n dialCode: \"+420\",\n isoCode: \"CZ\",\n },\n {\n name: \"Democratic Republic of the Congo\",\n dialCode: \"+243\",\n isoCode: \"CD\",\n },\n {\n name: \"Denmark\",\n dialCode: \"+45\",\n isoCode: \"DK\",\n },\n {\n name: \"Djibouti\",\n dialCode: \"+253\",\n isoCode: \"DJ\",\n },\n {\n name: \"Dominica\",\n dialCode: \"+1767\",\n isoCode: \"DM\",\n },\n {\n name: \"Dominican Republic\",\n dialCode: \"+1849\",\n isoCode: \"DO\",\n },\n {\n name: \"Ecuador\",\n dialCode: \"+593\",\n isoCode: \"EC\",\n },\n {\n name: \"Egypt\",\n dialCode: \"+20\",\n isoCode: \"EG\",\n },\n {\n name: \"El Salvador\",\n dialCode: \"+503\",\n isoCode: \"SV\",\n },\n {\n name: \"Equatorial Guinea\",\n dialCode: \"+240\",\n isoCode: \"GQ\",\n },\n {\n name: \"Eritrea\",\n dialCode: \"+291\",\n isoCode: \"ER\",\n },\n {\n name: \"Estonia\",\n dialCode: \"+372\",\n isoCode: \"EE\",\n },\n {\n name: \"Eswatini\",\n dialCode: \"+268\",\n isoCode: \"SZ\",\n },\n {\n name: \"Ethiopia\",\n dialCode: \"+251\",\n isoCode: \"ET\",\n },\n {\n name: \"Falkland Islands (Malvinas)\",\n dialCode: \"+500\",\n isoCode: \"FK\",\n },\n {\n name: \"Faroe Islands\",\n dialCode: \"+298\",\n isoCode: \"FO\",\n },\n {\n name: \"Fiji\",\n dialCode: \"+679\",\n isoCode: \"FJ\",\n },\n {\n name: \"Finland\",\n dialCode: \"+358\",\n isoCode: \"FI\",\n },\n {\n name: \"France\",\n dialCode: \"+33\",\n isoCode: \"FR\",\n },\n {\n name: \"French Guiana\",\n dialCode: \"+594\",\n isoCode: \"GF\",\n },\n {\n name: \"French Polynesia\",\n dialCode: \"+689\",\n isoCode: \"PF\",\n },\n {\n name: \"Gabon\",\n dialCode: \"+241\",\n isoCode: \"GA\",\n },\n {\n name: \"Gambia\",\n dialCode: \"+220\",\n isoCode: \"GM\",\n },\n {\n name: \"Georgia\",\n dialCode: \"+995\",\n isoCode: \"GE\",\n },\n {\n name: \"Germany\",\n dialCode: \"+49\",\n isoCode: \"DE\",\n },\n {\n name: \"Ghana\",\n dialCode: \"+233\",\n isoCode: \"GH\",\n },\n {\n name: \"Gibraltar\",\n dialCode: \"+350\",\n isoCode: \"GI\",\n },\n {\n name: \"Greece\",\n dialCode: \"+30\",\n isoCode: \"GR\",\n },\n {\n name: \"Greenland\",\n dialCode: \"+299\",\n isoCode: \"GL\",\n },\n {\n name: \"Grenada\",\n dialCode: \"+1473\",\n isoCode: \"GD\",\n },\n {\n name: \"Guadeloupe\",\n dialCode: \"+590\",\n isoCode: \"GP\",\n },\n {\n name: \"Guam\",\n dialCode: \"+1671\",\n isoCode: \"GU\",\n },\n {\n name: \"Guatemala\",\n dialCode: \"+502\",\n isoCode: \"GT\",\n },\n {\n name: \"Guernsey\",\n dialCode: \"+44\",\n isoCode: \"GG\",\n },\n {\n name: \"Guinea\",\n dialCode: \"+224\",\n isoCode: \"GN\",\n },\n {\n name: \"Guinea-Bissau\",\n dialCode: \"+245\",\n isoCode: \"GW\",\n },\n {\n name: \"Guyana\",\n dialCode: \"+592\",\n isoCode: \"GY\",\n },\n {\n name: \"Haiti\",\n dialCode: \"+509\",\n isoCode: \"HT\",\n },\n {\n name: \"Holy See (Vatican City State)\",\n dialCode: \"+379\",\n isoCode: \"VA\",\n },\n {\n name: \"Honduras\",\n dialCode: \"+504\",\n isoCode: \"HN\",\n },\n {\n name: \"Hong Kong\",\n dialCode: \"+852\",\n isoCode: \"HK\",\n },\n {\n name: \"Hungary\",\n dialCode: \"+36\",\n isoCode: \"HU\",\n },\n {\n name: \"Iceland\",\n dialCode: \"+354\",\n isoCode: \"IS\",\n },\n {\n name: \"India\",\n dialCode: \"+91\",\n isoCode: \"IN\",\n },\n {\n name: \"Indonesia\",\n dialCode: \"+62\",\n isoCode: \"ID\",\n },\n {\n name: \"Iran\",\n dialCode: \"+98\",\n isoCode: \"IR\",\n },\n {\n name: \"Iraq\",\n dialCode: \"+964\",\n isoCode: \"IQ\",\n },\n {\n name: \"Ireland\",\n dialCode: \"+353\",\n isoCode: \"IE\",\n },\n {\n name: \"Isle of Man\",\n dialCode: \"+44\",\n isoCode: \"IM\",\n },\n {\n name: \"Israel\",\n dialCode: \"+972\",\n isoCode: \"IL\",\n },\n {\n name: \"Italy\",\n dialCode: \"+39\",\n isoCode: \"IT\",\n },\n {\n name: \"Ivory Coast / Cote d'Ivoire\",\n dialCode: \"+225\",\n isoCode: \"CI\",\n },\n {\n name: \"Jamaica\",\n dialCode: \"+1876\",\n isoCode: \"JM\",\n },\n {\n name: \"Japan\",\n dialCode: \"+81\",\n isoCode: \"JP\",\n },\n {\n name: \"Jersey\",\n dialCode: \"+44\",\n isoCode: \"JE\",\n },\n {\n name: \"Jordan\",\n dialCode: \"+962\",\n isoCode: \"JO\",\n },\n {\n name: \"Kazakhstan\",\n dialCode: \"+77\",\n isoCode: \"KZ\",\n },\n {\n name: \"Kenya\",\n dialCode: \"+254\",\n isoCode: \"KE\",\n },\n {\n name: \"Kiribati\",\n dialCode: \"+686\",\n isoCode: \"KI\",\n },\n {\n name: \"Korea, Democratic People's Republic of Korea\",\n dialCode: \"+850\",\n isoCode: \"KP\",\n },\n {\n name: \"Korea, Republic of South Korea\",\n dialCode: \"+82\",\n isoCode: \"KR\",\n },\n {\n name: \"Kosovo\",\n dialCode: \"+383\",\n isoCode: \"XK\",\n },\n {\n name: \"Kuwait\",\n dialCode: \"+965\",\n isoCode: \"KW\",\n },\n {\n name: \"Kyrgyzstan\",\n dialCode: \"+996\",\n isoCode: \"KG\",\n },\n {\n name: \"Laos\",\n dialCode: \"+856\",\n isoCode: \"LA\",\n },\n {\n name: \"Latvia\",\n dialCode: \"+371\",\n isoCode: \"LV\",\n },\n {\n name: \"Lebanon\",\n dialCode: \"+961\",\n isoCode: \"LB\",\n },\n {\n name: \"Lesotho\",\n dialCode: \"+266\",\n isoCode: \"LS\",\n },\n {\n name: \"Liberia\",\n dialCode: \"+231\",\n isoCode: \"LR\",\n },\n {\n name: \"Libya\",\n dialCode: \"+218\",\n isoCode: \"LY\",\n },\n {\n name: \"Liechtenstein\",\n dialCode: \"+423\",\n isoCode: \"LI\",\n },\n {\n name: \"Lithuania\",\n dialCode: \"+370\",\n isoCode: \"LT\",\n },\n {\n name: \"Luxembourg\",\n dialCode: \"+352\",\n isoCode: \"LU\",\n },\n {\n name: \"Macau\",\n dialCode: \"+853\",\n isoCode: \"MO\",\n },\n {\n name: \"Madagascar\",\n dialCode: \"+261\",\n isoCode: \"MG\",\n },\n {\n name: \"Malawi\",\n dialCode: \"+265\",\n isoCode: \"MW\",\n },\n {\n name: \"Malaysia\",\n dialCode: \"+60\",\n isoCode: \"MY\",\n },\n {\n name: \"Maldives\",\n dialCode: \"+960\",\n isoCode: \"MV\",\n },\n {\n name: \"Mali\",\n dialCode: \"+223\",\n isoCode: \"ML\",\n },\n {\n name: \"Malta\",\n dialCode: \"+356\",\n isoCode: \"MT\",\n },\n {\n name: \"Marshall Islands\",\n dialCode: \"+692\",\n isoCode: \"MH\",\n },\n {\n name: \"Martinique\",\n dialCode: \"+596\",\n isoCode: \"MQ\",\n },\n {\n name: \"Mauritania\",\n dialCode: \"+222\",\n isoCode: \"MR\",\n },\n {\n name: \"Mauritius\",\n dialCode: \"+230\",\n isoCode: \"MU\",\n },\n {\n name: \"Mayotte\",\n dialCode: \"+262\",\n isoCode: \"YT\",\n },\n {\n name: \"Mexico\",\n dialCode: \"+52\",\n isoCode: \"MX\",\n },\n {\n name: \"Micronesia, Federated States of Micronesia\",\n dialCode: \"+691\",\n isoCode: \"FM\",\n },\n {\n name: \"Moldova\",\n dialCode: \"+373\",\n isoCode: \"MD\",\n },\n {\n name: \"Monaco\",\n dialCode: \"+377\",\n isoCode: \"MC\",\n },\n {\n name: \"Mongolia\",\n dialCode: \"+976\",\n isoCode: \"MN\",\n },\n {\n name: \"Montenegro\",\n dialCode: \"+382\",\n isoCode: \"ME\",\n },\n {\n name: \"Montserrat\",\n dialCode: \"+1664\",\n isoCode: \"MS\",\n },\n {\n name: \"Morocco\",\n dialCode: \"+212\",\n isoCode: \"MA\",\n },\n {\n name: \"Mozambique\",\n dialCode: \"+258\",\n isoCode: \"MZ\",\n },\n {\n name: \"Myanmar\",\n dialCode: \"+95\",\n isoCode: \"MM\",\n },\n {\n name: \"Namibia\",\n dialCode: \"+264\",\n isoCode: \"NA\",\n },\n {\n name: \"Nauru\",\n dialCode: \"+674\",\n isoCode: \"NR\",\n },\n {\n name: \"Nepal\",\n dialCode: \"+977\",\n isoCode: \"NP\",\n },\n {\n name: \"Netherlands\",\n dialCode: \"+31\",\n isoCode: \"NL\",\n },\n {\n name: \"Netherlands Antilles\",\n dialCode: \"+599\",\n isoCode: \"AN\",\n },\n {\n name: \"New Caledonia\",\n dialCode: \"+687\",\n isoCode: \"NC\",\n },\n {\n name: \"New Zealand\",\n dialCode: \"+64\",\n isoCode: \"NZ\",\n },\n {\n name: \"Nicaragua\",\n dialCode: \"+505\",\n isoCode: \"NI\",\n },\n {\n name: \"Niger\",\n dialCode: \"+227\",\n isoCode: \"NE\",\n },\n {\n name: \"Nigeria\",\n dialCode: \"+234\",\n isoCode: \"NG\",\n },\n {\n name: \"Niue\",\n dialCode: \"+683\",\n isoCode: \"NU\",\n },\n {\n name: \"Norfolk Island\",\n dialCode: \"+672\",\n isoCode: \"NF\",\n },\n {\n name: \"North Macedonia\",\n dialCode: \"+389\",\n isoCode: \"MK\",\n },\n {\n name: \"Northern Mariana Islands\",\n dialCode: \"+1670\",\n isoCode: \"MP\",\n },\n {\n name: \"Norway\",\n dialCode: \"+47\",\n isoCode: \"NO\",\n },\n {\n name: \"Oman\",\n dialCode: \"+968\",\n isoCode: \"OM\",\n },\n {\n name: \"Pakistan\",\n dialCode: \"+92\",\n isoCode: \"PK\",\n },\n {\n name: \"Palau\",\n dialCode: \"+680\",\n isoCode: \"PW\",\n },\n {\n name: \"Palestine\",\n dialCode: \"+970\",\n isoCode: \"PS\",\n },\n {\n name: \"Panama\",\n dialCode: \"+507\",\n isoCode: \"PA\",\n },\n {\n name: \"Papua New Guinea\",\n dialCode: \"+675\",\n isoCode: \"PG\",\n },\n {\n name: \"Paraguay\",\n dialCode: \"+595\",\n isoCode: \"PY\",\n },\n {\n name: \"Peru\",\n dialCode: \"+51\",\n isoCode: \"PE\",\n },\n {\n name: \"Philippines\",\n dialCode: \"+63\",\n isoCode: \"PH\",\n },\n {\n name: \"Pitcairn\",\n dialCode: \"+872\",\n isoCode: \"PN\",\n },\n {\n name: \"Poland\",\n dialCode: \"+48\",\n isoCode: \"PL\",\n },\n {\n name: \"Portugal\",\n dialCode: \"+351\",\n isoCode: \"PT\",\n },\n {\n name: \"Puerto Rico\",\n dialCode: \"+1939\",\n isoCode: \"PR\",\n },\n {\n name: \"Qatar\",\n dialCode: \"+974\",\n isoCode: \"QA\",\n },\n {\n name: \"Reunion\",\n dialCode: \"+262\",\n isoCode: \"RE\",\n },\n {\n name: \"Romania\",\n dialCode: \"+40\",\n isoCode: \"RO\",\n },\n {\n name: \"Russia\",\n dialCode: \"+7\",\n isoCode: \"RU\",\n },\n {\n name: \"Rwanda\",\n dialCode: \"+250\",\n isoCode: \"RW\",\n },\n {\n name: \"Saint Barthelemy\",\n dialCode: \"+590\",\n isoCode: \"BL\",\n },\n {\n name: \"Saint Helena, Ascension and Tristan Da Cunha\",\n dialCode: \"+290\",\n isoCode: \"SH\",\n },\n {\n name: \"Saint Kitts and Nevis\",\n dialCode: \"+1869\",\n isoCode: \"KN\",\n },\n {\n name: \"Saint Lucia\",\n dialCode: \"+1758\",\n isoCode: \"LC\",\n },\n {\n name: \"Saint Martin\",\n dialCode: \"+590\",\n isoCode: \"MF\",\n },\n {\n name: \"Saint Pierre and Miquelon\",\n dialCode: \"+508\",\n isoCode: \"PM\",\n },\n {\n name: \"Saint Vincent and the Grenadines\",\n dialCode: \"+1784\",\n isoCode: \"VC\",\n },\n {\n name: \"Samoa\",\n dialCode: \"+685\",\n isoCode: \"WS\",\n },\n {\n name: \"San Marino\",\n dialCode: \"+378\",\n isoCode: \"SM\",\n },\n {\n name: \"Sao Tome and Principe\",\n dialCode: \"+239\",\n isoCode: \"ST\",\n },\n {\n name: \"Saudi Arabia\",\n dialCode: \"+966\",\n isoCode: \"SA\",\n },\n {\n name: \"Senegal\",\n dialCode: \"+221\",\n isoCode: \"SN\",\n },\n {\n name: \"Serbia\",\n dialCode: \"+381\",\n isoCode: \"RS\",\n },\n {\n name: \"Seychelles\",\n dialCode: \"+248\",\n isoCode: \"SC\",\n },\n {\n name: \"Sierra Leone\",\n dialCode: \"+232\",\n isoCode: \"SL\",\n },\n {\n name: \"Singapore\",\n dialCode: \"+65\",\n isoCode: \"SG\",\n },\n {\n name: \"Sint Maarten\",\n dialCode: \"+1721\",\n isoCode: \"SX\",\n },\n {\n name: \"Slovakia\",\n dialCode: \"+421\",\n isoCode: \"SK\",\n },\n {\n name: \"Slovenia\",\n dialCode: \"+386\",\n isoCode: \"SI\",\n },\n {\n name: \"Solomon Islands\",\n dialCode: \"+677\",\n isoCode: \"SB\",\n },\n {\n name: \"Somalia\",\n dialCode: \"+252\",\n isoCode: \"SO\",\n },\n {\n name: \"South Africa\",\n dialCode: \"+27\",\n isoCode: \"ZA\",\n },\n {\n name: \"South Georgia and the South Sandwich Islands\",\n dialCode: \"+500\",\n isoCode: \"GS\",\n },\n {\n name: \"South Sudan\",\n dialCode: \"+211\",\n isoCode: \"SS\",\n },\n {\n name: \"Spain\",\n dialCode: \"+34\",\n isoCode: \"ES\",\n },\n {\n name: \"Sri Lanka\",\n dialCode: \"+94\",\n isoCode: \"LK\",\n },\n {\n name: \"Sudan\",\n dialCode: \"+249\",\n isoCode: \"SD\",\n },\n {\n name: \"Suriname\",\n dialCode: \"+597\",\n isoCode: \"SR\",\n },\n {\n name: \"Svalbard and Jan Mayen\",\n dialCode: \"+47\",\n isoCode: \"SJ\",\n },\n {\n name: \"Sweden\",\n dialCode: \"+46\",\n isoCode: \"SE\",\n },\n {\n name: \"Switzerland\",\n dialCode: \"+41\",\n isoCode: \"CH\",\n },\n {\n name: \"Syrian Arab Republic\",\n dialCode: \"+963\",\n isoCode: \"SY\",\n },\n {\n name: \"Taiwan\",\n dialCode: \"+886\",\n isoCode: \"TW\",\n },\n {\n name: \"Tajikistan\",\n dialCode: \"+992\",\n isoCode: \"TJ\",\n },\n {\n name: \"Tanzania, United Republic of Tanzania\",\n dialCode: \"+255\",\n isoCode: \"TZ\",\n },\n {\n name: \"Thailand\",\n dialCode: \"+66\",\n isoCode: \"TH\",\n },\n {\n name: \"Timor-Leste\",\n dialCode: \"+670\",\n isoCode: \"TL\",\n },\n {\n name: \"Togo\",\n dialCode: \"+228\",\n isoCode: \"TG\",\n },\n {\n name: \"Tokelau\",\n dialCode: \"+690\",\n isoCode: \"TK\",\n },\n {\n name: \"Tonga\",\n dialCode: \"+676\",\n isoCode: \"TO\",\n },\n {\n name: \"Trinidad and Tobago\",\n dialCode: \"+1868\",\n isoCode: \"TT\",\n },\n {\n name: \"Tunisia\",\n dialCode: \"+216\",\n isoCode: \"TN\",\n },\n {\n name: \"Turkey\",\n dialCode: \"+90\",\n isoCode: \"TR\",\n },\n {\n name: \"Turkmenistan\",\n dialCode: \"+993\",\n isoCode: \"TM\",\n },\n {\n name: \"Turks and Caicos Islands\",\n dialCode: \"+1649\",\n isoCode: \"TC\",\n },\n {\n name: \"Tuvalu\",\n dialCode: \"+688\",\n isoCode: \"TV\",\n },\n {\n name: \"Uganda\",\n dialCode: \"+256\",\n isoCode: \"UG\",\n },\n {\n name: \"Ukraine\",\n dialCode: \"+380\",\n isoCode: \"UA\",\n },\n {\n name: \"United Arab Emirates\",\n dialCode: \"+971\",\n isoCode: \"AE\",\n },\n {\n name: \"United Kingdom\",\n dialCode: \"+44\",\n isoCode: \"GB\",\n },\n {\n name: \"United States\",\n dialCode: \"+1\",\n isoCode: \"US\",\n },\n {\n name: \"Uruguay\",\n dialCode: \"+598\",\n isoCode: \"UY\",\n },\n {\n name: \"Uzbekistan\",\n dialCode: \"+998\",\n isoCode: \"UZ\",\n },\n {\n name: \"Vanuatu\",\n dialCode: \"+678\",\n isoCode: \"VU\",\n },\n {\n name: \"Venezuela, Bolivarian Republic of Venezuela\",\n dialCode: \"+58\",\n isoCode: \"VE\",\n },\n {\n name: \"Vietnam\",\n dialCode: \"+84\",\n isoCode: \"VN\",\n },\n {\n name: \"Virgin Islands, British\",\n dialCode: \"+1284\",\n isoCode: \"VG\",\n },\n {\n name: \"Virgin Islands, U.S.\",\n dialCode: \"+1340\",\n isoCode: \"VI\",\n },\n {\n name: \"Wallis and Futuna\",\n dialCode: \"+681\",\n isoCode: \"WF\",\n },\n {\n name: \"Yemen\",\n dialCode: \"+967\",\n isoCode: \"YE\",\n },\n {\n name: \"Zambia\",\n dialCode: \"+260\",\n isoCode: \"ZM\",\n },\n {\n name: \"Zimbabwe\",\n dialCode: \"+263\",\n isoCode: \"ZW\",\n },\n];\n\nexport const isoToName = {\n AF: \"Afghanistan\",\n AX: \"Aland Islands\",\n AL: \"Albania\",\n DZ: \"Algeria\",\n AS: \"AmericanSamoa\",\n AD: \"Andorra\",\n AO: \"Angola\",\n AI: \"Anguilla\",\n AQ: \"Antarctica\",\n AG: \"Antigua and Barbuda\",\n AR: \"Argentina\",\n AM: \"Armenia\",\n AW: \"Aruba\",\n AC: \"Ascension Island\",\n AU: \"Australia\",\n AT: \"Austria\",\n AZ: \"Azerbaijan\",\n BS: \"Bahamas\",\n BH: \"Bahrain\",\n BD: \"Bangladesh\",\n BB: \"Barbados\",\n BY: \"Belarus\",\n BE: \"Belgium\",\n BZ: \"Belize\",\n BJ: \"Benin\",\n BM: \"Bermuda\",\n BT: \"Bhutan\",\n BO: \"Bolivia\",\n BA: \"Bosnia and Herzegovina\",\n BW: \"Botswana\",\n BR: \"Brazil\",\n IO: \"British Indian Ocean Territory\",\n BN: \"Brunei Darussalam\",\n BG: \"Bulgaria\",\n BF: \"Burkina Faso\",\n BI: \"Burundi\",\n KH: \"Cambodia\",\n CM: \"Cameroon\",\n CA: \"Canada\",\n CV: \"Cape Verde\",\n KY: \"Cayman Islands\",\n CF: \"Central African Republic\",\n TD: \"Chad\",\n CL: \"Chile\",\n CN: \"China\",\n CX: \"Christmas Island\",\n CC: \"Cocos (Keeling) Islands\",\n CO: \"Colombia\",\n KM: \"Comoros\",\n CG: \"Congo\",\n CK: \"Cook Islands\",\n CR: \"Costa Rica\",\n HR: \"Croatia\",\n CU: \"Cuba\",\n CY: \"Cyprus\",\n CZ: \"Czech Republic\",\n CD: \"Democratic Republic of the Congo\",\n DK: \"Denmark\",\n DJ: \"Djibouti\",\n DM: \"Dominica\",\n DO: \"Dominican Republic\",\n EC: \"Ecuador\",\n EG: \"Egypt\",\n SV: \"El Salvador\",\n GQ: \"Equatorial Guinea\",\n ER: \"Eritrea\",\n EE: \"Estonia\",\n SZ: \"Eswatini\",\n ET: \"Ethiopia\",\n FK: \"Falkland Islands (Malvinas)\",\n FO: \"Faroe Islands\",\n FJ: \"Fiji\",\n FI: \"Finland\",\n FR: \"France\",\n GF: \"French Guiana\",\n PF: \"French Polynesia\",\n GA: \"Gabon\",\n GM: \"Gambia\",\n GE: \"Georgia\",\n DE: \"Germany\",\n GH: \"Ghana\",\n GI: \"Gibraltar\",\n GR: \"Greece\",\n GL: \"Greenland\",\n GD: \"Grenada\",\n GP: \"Guadeloupe\",\n GU: \"Guam\",\n GT: \"Guatemala\",\n GG: \"Guernsey\",\n GN: \"Guinea\",\n GW: \"Guinea-Bissau\",\n GY: \"Guyana\",\n HT: \"Haiti\",\n VA: \"Holy See (Vatican City State)\",\n HN: \"Honduras\",\n HK: \"Hong Kong\",\n HU: \"Hungary\",\n IS: \"Iceland\",\n IN: \"India\",\n ID: \"Indonesia\",\n IR: \"Iran\",\n IQ: \"Iraq\",\n IE: \"Ireland\",\n IM: \"Isle of Man\",\n IL: \"Israel\",\n IT: \"Italy\",\n CI: \"Ivory Coast / Cote d'Ivoire\",\n JM: \"Jamaica\",\n JP: \"Japan\",\n JE: \"Jersey\",\n JO: \"Jordan\",\n KZ: \"Kazakhstan\",\n KE: \"Kenya\",\n KI: \"Kiribati\",\n KP: \"Korea, Democratic People's Republic of Korea\",\n KR: \"Korea, Republic of South Korea\",\n XK: \"Kosovo\",\n KW: \"Kuwait\",\n KG: \"Kyrgyzstan\",\n LA: \"Laos\",\n LV: \"Latvia\",\n LB: \"Lebanon\",\n LS: \"Lesotho\",\n LR: \"Liberia\",\n LY: \"Libya\",\n LI: \"Liechtenstein\",\n LT: \"Lithuania\",\n LU: \"Luxembourg\",\n MO: \"Macau\",\n MG: \"Madagascar\",\n MW: \"Malawi\",\n MY: \"Malaysia\",\n MV: \"Maldives\",\n ML: \"Mali\",\n MT: \"Malta\",\n MH: \"Marshall Islands\",\n MQ: \"Martinique\",\n MR: \"Mauritania\",\n MU: \"Mauritius\",\n YT: \"Mayotte\",\n MX: \"Mexico\",\n FM: \"Micronesia, Federated States of Micronesia\",\n MD: \"Moldova\",\n MC: \"Monaco\",\n MN: \"Mongolia\",\n ME: \"Montenegro\",\n MS: \"Montserrat\",\n MA: \"Morocco\",\n MZ: \"Mozambique\",\n MM: \"Myanmar\",\n NA: \"Namibia\",\n NR: \"Nauru\",\n NP: \"Nepal\",\n NL: \"Netherlands\",\n AN: \"Netherlands Antilles\",\n NC: \"New Caledonia\",\n NZ: \"New Zealand\",\n NI: \"Nicaragua\",\n NE: \"Niger\",\n NG: \"Nigeria\",\n NU: \"Niue\",\n NF: \"Norfolk Island\",\n MK: \"North Macedonia\",\n MP: \"Northern Mariana Islands\",\n NO: \"Norway\",\n OM: \"Oman\",\n PK: \"Pakistan\",\n PW: \"Palau\",\n PS: \"Palestine\",\n PA: \"Panama\",\n PG: \"Papua New Guinea\",\n PY: \"Paraguay\",\n PE: \"Peru\",\n PH: \"Philippines\",\n PN: \"Pitcairn\",\n PL: \"Poland\",\n PT: \"Portugal\",\n PR: \"Puerto Rico\",\n QA: \"Qatar\",\n RE: \"Reunion\",\n RO: \"Romania\",\n RU: \"Russia\",\n RW: \"Rwanda\",\n BL: \"Saint Barthelemy\",\n SH: \"Saint Helena, Ascension and Tristan Da Cunha\",\n KN: \"Saint Kitts and Nevis\",\n LC: \"Saint Lucia\",\n MF: \"Saint Martin\",\n PM: \"Saint Pierre and Miquelon\",\n VC: \"Saint Vincent and the Grenadines\",\n WS: \"Samoa\",\n SM: \"San Marino\",\n ST: \"Sao Tome and Principe\",\n SA: \"Saudi Arabia\",\n SN: \"Senegal\",\n RS: \"Serbia\",\n SC: \"Seychelles\",\n SL: \"Sierra Leone\",\n SG: \"Singapore\",\n SX: \"Sint Maarten\",\n SK: \"Slovakia\",\n SI: \"Slovenia\",\n SB: \"Solomon Islands\",\n SO: \"Somalia\",\n ZA: \"South Africa\",\n GS: \"South Georgia and the South Sandwich Islands\",\n SS: \"South Sudan\",\n ES: \"Spain\",\n LK: \"Sri Lanka\",\n SD: \"Sudan\",\n SR: \"Suriname\",\n SJ: \"Svalbard and Jan Mayen\",\n SE: \"Sweden\",\n CH: \"Switzerland\",\n SY: \"Syrian Arab Republic\",\n TW: \"Taiwan\",\n TJ: \"Tajikistan\",\n TZ: \"Tanzania, United Republic of Tanzania\",\n TH: \"Thailand\",\n TL: \"Timor-Leste\",\n TG: \"Togo\",\n TK: \"Tokelau\",\n TO: \"Tonga\",\n TT: \"Trinidad and Tobago\",\n TN: \"Tunisia\",\n TR: \"Turkey\",\n TM: \"Turkmenistan\",\n TC: \"Turks and Caicos Islands\",\n TV: \"Tuvalu\",\n UG: \"Uganda\",\n UA: \"Ukraine\",\n AE: \"United Arab Emirates\",\n GB: \"United Kingdom\",\n US: \"United States\",\n UY: \"Uruguay\",\n UZ: \"Uzbekistan\",\n VU: \"Vanuatu\",\n VE: \"Venezuela, Bolivarian Republic of Venezuela\",\n VN: \"Vietnam\",\n VG: \"Virgin Islands, British\",\n VI: \"Virgin Islands, U.S.\",\n WF: \"Wallis and Futuna\",\n YE: \"Yemen\",\n ZM: \"Zambia\",\n ZW: \"Zimbabwe\",\n CW: \"599\",\n OTHER: \"Others\",\n};\n\n// export const isoMap = {\n// \"+93\": \"AF\",\n// \"+358\": \"FI\",\n// \"+355\": \"AL\",\n// \"+213\": \"DZ\",\n// \"+1684\": \"AS\",\n// \"+376\": \"AD\",\n// \"+244\": \"AO\",\n// \"+1264\": \"AI\",\n// \"+672\": \"NF\",\n// \"+1268\": \"AG\",\n// \"+54\": \"AR\",\n// \"+374\": \"AM\",\n// \"+297\": \"AW\",\n// \"+247\": \"AC\",\n// \"+61\": \"CC\",\n// \"+43\": \"AT\",\n// \"+994\": \"AZ\",\n// \"+1242\": \"BS\",\n// \"+973\": \"BH\",\n// \"+880\": \"BD\",\n// \"+1246\": \"BB\",\n// \"+375\": \"BY\",\n// \"+32\": \"BE\",\n// \"+501\": \"BZ\",\n// \"+229\": \"BJ\",\n// \"+1441\": \"BM\",\n// \"+975\": \"BT\",\n// \"+591\": \"BO\",\n// \"+387\": \"BA\",\n// \"+267\": \"BW\",\n// \"+55\": \"BR\",\n// \"+246\": \"IO\",\n// \"+673\": \"BN\",\n// \"+359\": \"BG\",\n// \"+226\": \"BF\",\n// \"+257\": \"BI\",\n// \"+855\": \"KH\",\n// \"+237\": \"CM\",\n// \"+1\": \"US\",\n// \"+238\": \"CV\",\n// \"+1345\": \"KY\",\n// \"+236\": \"CF\",\n// \"+235\": \"TD\",\n// \"+56\": \"CL\",\n// \"+86\": \"CN\",\n// \"+57\": \"CO\",\n// \"+269\": \"KM\",\n// \"+242\": \"CG\",\n// \"+682\": \"CK\",\n// \"+506\": \"CR\",\n// \"+385\": \"HR\",\n// \"+53\": \"CU\",\n// \"+357\": \"CY\",\n// \"+420\": \"CZ\",\n// \"+243\": \"CD\",\n// \"+45\": \"DK\",\n// \"+253\": \"DJ\",\n// \"+1767\": \"DM\",\n// \"+1849\": \"DO\",\n// \"+593\": \"EC\",\n// \"+20\": \"EG\",\n// \"+503\": \"SV\",\n// \"+240\": \"GQ\",\n// \"+291\": \"ER\",\n// \"+372\": \"EE\",\n// \"+268\": \"SZ\",\n// \"+251\": \"ET\",\n// \"+500\": \"GS\",\n// \"+298\": \"FO\",\n// \"+679\": \"FJ\",\n// \"+33\": \"FR\",\n// \"+594\": \"GF\",\n// \"+689\": \"PF\",\n// \"+241\": \"GA\",\n// \"+220\": \"GM\",\n// \"+995\": \"GE\",\n// \"+49\": \"DE\",\n// \"+233\": \"GH\",\n// \"+350\": \"GI\",\n// \"+30\": \"GR\",\n// \"+299\": \"GL\",\n// \"+1473\": \"GD\",\n// \"+590\": \"MF\",\n// \"+1671\": \"GU\",\n// \"+502\": \"GT\",\n// \"+44\": \"GB\",\n// \"+224\": \"GN\",\n// \"+245\": \"GW\",\n// \"+592\": \"GY\",\n// \"+509\": \"HT\",\n// \"+379\": \"VA\",\n// \"+504\": \"HN\",\n// \"+852\": \"HK\",\n// \"+36\": \"HU\",\n// \"+354\": \"IS\",\n// \"+91\": \"IN\",\n// \"+62\": \"ID\",\n// \"+98\": \"IR\",\n// \"+964\": \"IQ\",\n// \"+353\": \"IE\",\n// \"+972\": \"IL\",\n// \"+39\": \"IT\",\n// \"+225\": \"CI\",\n// \"+1876\": \"JM\",\n// \"+81\": \"JP\",\n// \"+962\": \"JO\",\n// \"+77\": \"KZ\",\n// \"+254\": \"KE\",\n// \"+686\": \"KI\",\n// \"+850\": \"KP\",\n// \"+82\": \"KR\",\n// \"+383\": \"XK\",\n// \"+965\": \"KW\",\n// \"+996\": \"KG\",\n// \"+856\": \"LA\",\n// \"+371\": \"LV\",\n// \"+961\": \"LB\",\n// \"+266\": \"LS\",\n// \"+231\": \"LR\",\n// \"+218\": \"LY\",\n// \"+423\": \"LI\",\n// \"+370\": \"LT\",\n// \"+352\": \"LU\",\n// \"+853\": \"MO\",\n// \"+261\": \"MG\",\n// \"+265\": \"MW\",\n// \"+60\": \"MY\",\n// \"+960\": \"MV\",\n// \"+223\": \"ML\",\n// \"+356\": \"MT\",\n// \"+692\": \"MH\",\n// \"+596\": \"MQ\",\n// \"+222\": \"MR\",\n// \"+230\": \"MU\",\n// \"+262\": \"RE\",\n// \"+52\": \"MX\",\n// \"+691\": \"FM\",\n// \"+373\": \"MD\",\n// \"+377\": \"MC\",\n// \"+976\": \"MN\",\n// \"+382\": \"ME\",\n// \"+1664\": \"MS\",\n// \"+212\": \"MA\",\n// \"+258\": \"MZ\",\n// \"+95\": \"MM\",\n// \"+264\": \"NA\",\n// \"+674\": \"NR\",\n// \"+977\": \"NP\",\n// \"+31\": \"NL\",\n// \"+599\": \"AN\",\n// \"+687\": \"NC\",\n// \"+64\": \"NZ\",\n// \"+505\": \"NI\",\n// \"+227\": \"NE\",\n// \"+234\": \"NG\",\n// \"+683\": \"NU\",\n// \"+389\": \"MK\",\n// \"+1670\": \"MP\",\n// \"+47\": \"SJ\",\n// \"+968\": \"OM\",\n// \"+92\": \"PK\",\n// \"+680\": \"PW\",\n// \"+970\": \"PS\",\n// \"+507\": \"PA\",\n// \"+675\": \"PG\",\n// \"+595\": \"PY\",\n// \"+51\": \"PE\",\n// \"+63\": \"PH\",\n// \"+872\": \"PN\",\n// \"+48\": \"PL\",\n// \"+351\": \"PT\",\n// \"+1939\": \"PR\",\n// \"+974\": \"QA\",\n// \"+40\": \"RO\",\n// \"+7\": \"RU\",\n// \"+250\": \"RW\",\n// \"+290\": \"SH\",\n// \"+1869\": \"KN\",\n// \"+1758\": \"LC\",\n// \"+508\": \"PM\",\n// \"+1784\": \"VC\",\n// \"+685\": \"WS\",\n// \"+378\": \"SM\",\n// \"+239\": \"ST\",\n// \"+966\": \"SA\",\n// \"+221\": \"SN\",\n// \"+381\": \"RS\",\n// \"+248\": \"SC\",\n// \"+232\": \"SL\",\n// \"+65\": \"SG\",\n// \"+1721\": \"SX\",\n// \"+421\": \"SK\",\n// \"+386\": \"SI\",\n// \"+677\": \"SB\",\n// \"+252\": \"SO\",\n// \"+27\": \"ZA\",\n// \"+211\": \"SS\",\n// \"+34\": \"ES\",\n// \"+94\": \"LK\",\n// \"+249\": \"SD\",\n// \"+597\": \"SR\",\n// \"+46\": \"SE\",\n// \"+41\": \"CH\",\n// \"+963\": \"SY\",\n// \"+886\": \"TW\",\n// \"+992\": \"TJ\",\n// \"+255\": \"TZ\",\n// \"+66\": \"TH\",\n// \"+670\": \"TL\",\n// \"+228\": \"TG\",\n// \"+690\": \"TK\",\n// \"+676\": \"TO\",\n// \"+1868\": \"TT\",\n// \"+216\": \"TN\",\n// \"+90\": \"TR\",\n// \"+993\": \"TM\",\n// \"+1649\": \"TC\",\n// \"+688\": \"TV\",\n// \"+256\": \"UG\",\n// \"+380\": \"UA\",\n// \"+971\": \"AE\",\n// \"+598\": \"UY\",\n// \"+998\": \"UZ\",\n// \"+678\": \"VU\",\n// \"+58\": \"VE\",\n// \"+84\": \"VN\",\n// \"+1284\": \"VG\",\n// \"+1340\": \"VI\",\n// \"+681\": \"WF\",\n// \"+967\": \"YE\",\n// \"+260\": \"ZM\",\n// \"+263\": \"ZW\",\n// };\n\nexport const countryMap = {\n 1: \"United States\",\n 7: \"Russia\",\n 20: \"Egypt\",\n 27: \"South Africa\",\n 30: \"Greece\",\n 31: \"Netherlands\",\n 32: \"Belgium\",\n 33: \"France\",\n 34: \"Spain\",\n 36: \"Hungary\",\n 39: \"Italy\",\n 40: \"Romania\",\n 41: \"Switzerland\",\n 43: \"Austria\",\n 44: \"United Kingdom\",\n 45: \"Denmark\",\n 46: \"Sweden\",\n 47: \"Svalbard and Jan Mayen\",\n 48: \"Poland\",\n 49: \"Germany\",\n 51: \"Peru\",\n 52: \"Mexico\",\n 53: \"Cuba\",\n 54: \"Argentina\",\n 55: \"Brazil\",\n 56: \"Chile\",\n 57: \"Colombia\",\n 58: \"Venezuela, Bolivarian Republic of Venezuela\",\n 60: \"Malaysia\",\n 61: \"Cocos (Keeling) Islands\",\n 62: \"Indonesia\",\n 63: \"Philippines\",\n 64: \"New Zealand\",\n 65: \"Singapore\",\n 66: \"Thailand\",\n 77: \"Kazakhstan\",\n 81: \"Japan\",\n 82: \"Korea, Republic of South Korea\",\n 84: \"Vietnam\",\n 86: \"China\",\n 90: \"Turkey\",\n 91: \"India\",\n 92: \"Pakistan\",\n 93: \"Afghanistan\",\n 94: \"Sri Lanka\",\n 95: \"Myanmar\",\n 98: \"Iran\",\n 211: \"South Sudan\",\n 212: \"Morocco\",\n 213: \"Algeria\",\n 216: \"Tunisia\",\n 218: \"Libya\",\n 220: \"Gambia\",\n 221: \"Senegal\",\n 222: \"Mauritania\",\n 223: \"Mali\",\n 224: \"Guinea\",\n 225: \"Ivory Coast / Cote d'Ivoire\",\n 226: \"Burkina Faso\",\n 227: \"Niger\",\n 228: \"Togo\",\n 229: \"Benin\",\n 230: \"Mauritius\",\n 231: \"Liberia\",\n 232: \"Sierra Leone\",\n 233: \"Ghana\",\n 234: \"Nigeria\",\n 235: \"Chad\",\n 236: \"Central African Republic\",\n 237: \"Cameroon\",\n 238: \"Cape Verde\",\n 239: \"Sao Tome and Principe\",\n 240: \"Equatorial Guinea\",\n 241: \"Gabon\",\n 242: \"Congo\",\n 243: \"Democratic Republic of the Congo\",\n 244: \"Angola\",\n 245: \"Guinea-Bissau\",\n 246: \"British Indian Ocean Territory\",\n 247: \"Ascension Island\",\n 248: \"Seychelles\",\n 249: \"Sudan\",\n 250: \"Rwanda\",\n 251: \"Ethiopia\",\n 252: \"Somalia\",\n 253: \"Djibouti\",\n 254: \"Kenya\",\n 255: \"Tanzania, United Republic of Tanzania\",\n 256: \"Uganda\",\n 257: \"Burundi\",\n 258: \"Mozambique\",\n 260: \"Zambia\",\n 261: \"Madagascar\",\n 262: \"Reunion\",\n 263: \"Zimbabwe\",\n 264: \"Namibia\",\n 265: \"Malawi\",\n 266: \"Lesotho\",\n 267: \"Botswana\",\n 268: \"Eswatini\",\n 269: \"Comoros\",\n 290: \"Saint Helena, Ascension and Tristan Da Cunha\",\n 291: \"Eritrea\",\n 297: \"Aruba\",\n 298: \"Faroe Islands\",\n 299: \"Greenland\",\n 350: \"Gibraltar\",\n 351: \"Portugal\",\n 352: \"Luxembourg\",\n 353: \"Ireland\",\n 354: \"Iceland\",\n 355: \"Albania\",\n 356: \"Malta\",\n 357: \"Cyprus\",\n 358: \"Finland\",\n 359: \"Bulgaria\",\n 370: \"Lithuania\",\n 371: \"Latvia\",\n 372: \"Estonia\",\n 373: \"Moldova\",\n 374: \"Armenia\",\n 375: \"Belarus\",\n 376: \"Andorra\",\n 377: \"Monaco\",\n 378: \"San Marino\",\n 379: \"Holy See (Vatican City State)\",\n 380: \"Ukraine\",\n 381: \"Serbia\",\n 382: \"Montenegro\",\n 383: \"Kosovo\",\n 385: \"Croatia\",\n 386: \"Slovenia\",\n 387: \"Bosnia and Herzegovina\",\n 389: \"North Macedonia\",\n 420: \"Czech Republic\",\n 421: \"Slovakia\",\n 423: \"Liechtenstein\",\n 500: \"South Georgia and the South Sandwich Islands\",\n 501: \"Belize\",\n 502: \"Guatemala\",\n 503: \"El Salvador\",\n 504: \"Honduras\",\n 505: \"Nicaragua\",\n 506: \"Costa Rica\",\n 507: \"Panama\",\n 508: \"Saint Pierre and Miquelon\",\n 509: \"Haiti\",\n 590: \"Saint Martin\",\n 591: \"Bolivia\",\n 592: \"Guyana\",\n 593: \"Ecuador\",\n 594: \"French Guiana\",\n 595: \"Paraguay\",\n 596: \"Martinique\",\n 597: \"Suriname\",\n 598: \"Uruguay\",\n 599: \"Netherlands Antilles\",\n 670: \"Timor-Leste\",\n 672: \"Norfolk Island\",\n 673: \"Brunei Darussalam\",\n 674: \"Nauru\",\n 675: \"Papua New Guinea\",\n 676: \"Tonga\",\n 677: \"Solomon Islands\",\n 678: \"Vanuatu\",\n 679: \"Fiji\",\n 680: \"Palau\",\n 681: \"Wallis and Futuna\",\n 682: \"Cook Islands\",\n 683: \"Niue\",\n 685: \"Samoa\",\n 686: \"Kiribati\",\n 687: \"New Caledonia\",\n 688: \"Tuvalu\",\n 689: \"French Polynesia\",\n 690: \"Tokelau\",\n 691: \"Micronesia\",\n 692: \"Marshall Islands\",\n 850: \"public of Korea\",\n 852: \"Hong Kong\",\n 853: \"Macau\",\n 855: \"Cambodia\",\n 856: \"Laos\",\n 872: \"Pitcairn\",\n 880: \"Bangladesh\",\n 886: \"Taiwan\",\n 960: \"Maldives\",\n 961: \"Lebanon\",\n 962: \"Jordan\",\n 963: \"Syrian Arab Republic\",\n 964: \"Iraq\",\n 965: \"Kuwait\",\n 966: \"Saudi Arabia\",\n 967: \"Yemen\",\n 968: \"Oman\",\n 970: \"Palestine\",\n 971: \"United Arab Emirates\",\n 972: \"Israel\",\n 973: \"Bahrain\",\n 974: \"Qatar\",\n 975: \"Bhutan\",\n 976: \"Mongolia\",\n 977: \"Nepal\",\n 992: \"Tajikistan\",\n 993: \"Turkmenistan\",\n 994: \"Azerbaijan\",\n 995: \"Georgia\",\n 996: \"Kyrgyzstan\",\n 998: \"Uzbekistan\",\n 1242: \"Bahamas\",\n 1246: \"Barbados\",\n 1264: \"Anguilla\",\n 1268: \"Antigua and Barbuda\",\n 1284: \"Virgin Islands, British\",\n 1340: \"Virgin Islands, U.S.\",\n 1345: \"Cayman Islands\",\n 1441: \"Bermuda\",\n 1473: \"Grenada\",\n 1649: \"Turks and Caicos Islands\",\n 1664: \"Montserrat\",\n 1670: \"Northern Mariana Islands\",\n 1671: \"Guam\",\n 1684: \"AmericanSamoa\",\n 1721: \"Sint Maarten\",\n 1758: \"Saint Lucia\",\n 1767: \"Dominica\",\n 1784: \"Saint Vincent and the Grenadines\",\n 1849: \"Dominican Republic\",\n 1868: \"Trinidad and Tobago\",\n 1869: \"Saint Kitts and Nevis\",\n 1876: \"Jamaica\",\n 1939: \"Puerto Rico\",\n};\n\nexport const isoMap = {\n \"+93\": \"AF\",\n \"+358\": \"FI\",\n \"+355\": \"AL\",\n \"+213\": \"DZ\",\n \"+1684\": \"AS\",\n \"+376\": \"AD\",\n \"+244\": \"AO\",\n \"+1264\": \"AI\",\n \"+672\": \"NF\",\n \"+1268\": \"AG\",\n \"+54\": \"AR\",\n \"+374\": \"AM\",\n \"+297\": \"AW\",\n \"+247\": \"AC\",\n \"+61\": \"CC\",\n \"+43\": \"AT\",\n \"+994\": \"AZ\",\n \"+1242\": \"BS\",\n \"+973\": \"BH\",\n \"+880\": \"BD\",\n \"+1246\": \"BB\",\n \"+375\": \"BY\",\n \"+32\": \"BE\",\n \"+501\": \"BZ\",\n \"+229\": \"BJ\",\n \"+1441\": \"BM\",\n \"+975\": \"BT\",\n \"+591\": \"BO\",\n \"+387\": \"BA\",\n \"+267\": \"BW\",\n \"+55\": \"BR\",\n \"+246\": \"IO\",\n \"+673\": \"BN\",\n \"+359\": \"BG\",\n \"+226\": \"BF\",\n \"+257\": \"BI\",\n \"+855\": \"KH\",\n \"+237\": \"CM\",\n \"+1\": \"US\",\n \"+238\": \"CV\",\n \"+1345\": \"KY\",\n \"+236\": \"CF\",\n \"+235\": \"TD\",\n \"+56\": \"CL\",\n \"+86\": \"CN\",\n \"+57\": \"CO\",\n \"+269\": \"KM\",\n \"+242\": \"CG\",\n \"+682\": \"CK\",\n \"+506\": \"CR\",\n \"+385\": \"HR\",\n \"+53\": \"CU\",\n \"+357\": \"CY\",\n \"+420\": \"CZ\",\n \"+243\": \"CD\",\n \"+45\": \"DK\",\n \"+253\": \"DJ\",\n \"+1767\": \"DM\",\n \"+1849\": \"DO\",\n \"+593\": \"EC\",\n \"+20\": \"EG\",\n \"+503\": \"SV\",\n \"+240\": \"GQ\",\n \"+291\": \"ER\",\n \"+372\": \"EE\",\n \"+268\": \"SZ\",\n \"+251\": \"ET\",\n \"+500\": \"GS\",\n \"+298\": \"FO\",\n \"+679\": \"FJ\",\n \"+33\": \"FR\",\n \"+594\": \"GF\",\n \"+689\": \"PF\",\n \"+241\": \"GA\",\n \"+220\": \"GM\",\n \"+995\": \"GE\",\n \"+49\": \"DE\",\n \"+233\": \"GH\",\n \"+350\": \"GI\",\n \"+30\": \"GR\",\n \"+299\": \"GL\",\n \"+1473\": \"GD\",\n \"+590\": \"MF\",\n \"+1671\": \"GU\",\n \"+502\": \"GT\",\n \"+44\": \"GB\",\n \"+224\": \"GN\",\n \"+245\": \"GW\",\n \"+592\": \"GY\",\n \"+509\": \"HT\",\n \"+379\": \"VA\",\n \"+504\": \"HN\",\n \"+852\": \"HK\",\n \"+36\": \"HU\",\n \"+354\": \"IS\",\n \"+91\": \"IN\",\n \"+62\": \"ID\",\n \"+98\": \"IR\",\n \"+964\": \"IQ\",\n \"+353\": \"IE\",\n \"+972\": \"IL\",\n \"+39\": \"IT\",\n \"+225\": \"CI\",\n \"+1876\": \"JM\",\n \"+81\": \"JP\",\n \"+962\": \"JO\",\n \"+77\": \"KZ\",\n \"+254\": \"KE\",\n \"+686\": \"KI\",\n \"+850\": \"KP\",\n \"+82\": \"KR\",\n \"+383\": \"XK\",\n \"+965\": \"KW\",\n \"+996\": \"KG\",\n \"+856\": \"LA\",\n \"+371\": \"LV\",\n \"+961\": \"LB\",\n \"+266\": \"LS\",\n \"+231\": \"LR\",\n \"+218\": \"LY\",\n \"+423\": \"LI\",\n \"+370\": \"LT\",\n \"+352\": \"LU\",\n \"+853\": \"MO\",\n \"+261\": \"MG\",\n \"+265\": \"MW\",\n \"+60\": \"MY\",\n \"+960\": \"MV\",\n \"+223\": \"ML\",\n \"+356\": \"MT\",\n \"+692\": \"MH\",\n \"+596\": \"MQ\",\n \"+222\": \"MR\",\n \"+230\": \"MU\",\n \"+262\": \"RE\",\n \"+52\": \"MX\",\n \"+691\": \"FM\",\n \"+373\": \"MD\",\n \"+377\": \"MC\",\n \"+976\": \"MN\",\n \"+382\": \"ME\",\n \"+1664\": \"MS\",\n \"+212\": \"MA\",\n \"+258\": \"MZ\",\n \"+95\": \"MM\",\n \"+264\": \"NA\",\n \"+674\": \"NR\",\n \"+977\": \"NP\",\n \"+31\": \"NL\",\n \"+599\": \"AN\",\n \"+687\": \"NC\",\n \"+64\": \"NZ\",\n \"+505\": \"NI\",\n \"+227\": \"NE\",\n \"+234\": \"NG\",\n \"+683\": \"NU\",\n \"+389\": \"MK\",\n \"+1670\": \"MP\",\n \"+47\": \"SJ\",\n \"+968\": \"OM\",\n \"+92\": \"PK\",\n \"+680\": \"PW\",\n \"+970\": \"PS\",\n \"+507\": \"PA\",\n \"+675\": \"PG\",\n \"+595\": \"PY\",\n \"+51\": \"PE\",\n \"+63\": \"PH\",\n \"+872\": \"PN\",\n \"+48\": \"PL\",\n \"+351\": \"PT\",\n \"+1939\": \"PR\",\n \"+974\": \"QA\",\n \"+40\": \"RO\",\n \"+7\": \"RU\",\n \"+250\": \"RW\",\n \"+290\": \"SH\",\n \"+1869\": \"KN\",\n \"+1758\": \"LC\",\n \"+508\": \"PM\",\n \"+1784\": \"VC\",\n \"+685\": \"WS\",\n \"+378\": \"SM\",\n \"+239\": \"ST\",\n \"+966\": \"SA\",\n \"+221\": \"SN\",\n \"+381\": \"RS\",\n \"+248\": \"SC\",\n \"+232\": \"SL\",\n \"+65\": \"SG\",\n \"+1721\": \"SX\",\n \"+421\": \"SK\",\n \"+386\": \"SI\",\n \"+677\": \"SB\",\n \"+252\": \"SO\",\n \"+27\": \"ZA\",\n \"+211\": \"SS\",\n \"+34\": \"ES\",\n \"+94\": \"LK\",\n \"+249\": \"SD\",\n \"+597\": \"SR\",\n \"+46\": \"SE\",\n \"+41\": \"CH\",\n \"+963\": \"SY\",\n \"+886\": \"TW\",\n \"+992\": \"TJ\",\n \"+255\": \"TZ\",\n \"+66\": \"TH\",\n \"+670\": \"TL\",\n \"+228\": \"TG\",\n \"+690\": \"TK\",\n \"+676\": \"TO\",\n \"+1868\": \"TT\",\n \"+216\": \"TN\",\n \"+90\": \"TR\",\n \"+993\": \"TM\",\n \"+1649\": \"TC\",\n \"+688\": \"TV\",\n \"+256\": \"UG\",\n \"+380\": \"UA\",\n \"+971\": \"AE\",\n \"+598\": \"UY\",\n \"+998\": \"UZ\",\n \"+678\": \"VU\",\n \"+58\": \"VE\",\n \"+84\": \"VN\",\n \"+1284\": \"VG\",\n \"+1340\": \"VI\",\n \"+681\": \"WF\",\n \"+967\": \"YE\",\n \"+260\": \"ZM\",\n \"+263\": \"ZW\",\n};\n\nexport const isoToDialCode = {\n AF: \"+93\",\n AX: \"+358\",\n AL: \"+355\",\n DZ: \"+213\",\n AS: \"+1684\",\n AD: \"+376\",\n AO: \"+244\",\n AI: \"+1264\",\n AQ: \"+672\",\n AG: \"+1268\",\n AR: \"+54\",\n AM: \"+374\",\n AW: \"+297\",\n AC: \"+247\",\n AU: \"+61\",\n AT: \"+43\",\n AZ: \"+994\",\n BS: \"+1242\",\n BH: \"+973\",\n BD: \"+880\",\n BB: \"+1246\",\n BY: \"+375\",\n BE: \"+32\",\n BZ: \"+501\",\n BJ: \"+229\",\n BM: \"+1441\",\n BT: \"+975\",\n BO: \"+591\",\n BA: \"+387\",\n BW: \"+267\",\n BR: \"+55\",\n IO: \"+246\",\n BN: \"+673\",\n BG: \"+359\",\n BF: \"+226\",\n BI: \"+257\",\n KH: \"+855\",\n CM: \"+237\",\n CA: \"+1\",\n CV: \"+238\",\n KY: \"+1345\",\n CF: \"+236\",\n TD: \"+235\",\n CL: \"+56\",\n CN: \"+86\",\n CX: \"+61\",\n CC: \"+61\",\n CO: \"+57\",\n KM: \"+269\",\n CG: \"+242\",\n CK: \"+682\",\n CR: \"+506\",\n HR: \"+385\",\n CU: \"+53\",\n CY: \"+357\",\n CZ: \"+420\",\n CD: \"+243\",\n DK: \"+45\",\n DJ: \"+253\",\n DM: \"+1767\",\n DO: \"+1849\",\n EC: \"+593\",\n EG: \"+20\",\n SV: \"+503\",\n GQ: \"+240\",\n ER: \"+291\",\n EE: \"+372\",\n SZ: \"+268\",\n ET: \"+251\",\n FK: \"+500\",\n FO: \"+298\",\n FJ: \"+679\",\n FI: \"+358\",\n FR: \"+33\",\n GF: \"+594\",\n PF: \"+689\",\n GA: \"+241\",\n GM: \"+220\",\n GE: \"+995\",\n DE: \"+49\",\n GH: \"+233\",\n GI: \"+350\",\n GR: \"+30\",\n GL: \"+299\",\n GD: \"+1473\",\n GP: \"+590\",\n GU: \"+1671\",\n GT: \"+502\",\n GG: \"+44\",\n GN: \"+224\",\n GW: \"+245\",\n GY: \"+592\",\n HT: \"+509\",\n VA: \"+379\",\n HN: \"+504\",\n HK: \"+852\",\n HU: \"+36\",\n IS: \"+354\",\n IN: \"+91\",\n ID: \"+62\",\n IR: \"+98\",\n IQ: \"+964\",\n IE: \"+353\",\n IM: \"+44\",\n IL: \"+972\",\n IT: \"+39\",\n CI: \"+225\",\n JM: \"+1876\",\n JP: \"+81\",\n JE: \"+44\",\n JO: \"+962\",\n KZ: \"+77\",\n KE: \"+254\",\n KI: \"+686\",\n KP: \"+850\",\n KR: \"+82\",\n XK: \"+383\",\n KW: \"+965\",\n KG: \"+996\",\n LA: \"+856\",\n LV: \"+371\",\n LB: \"+961\",\n LS: \"+266\",\n LR: \"+231\",\n LY: \"+218\",\n LI: \"+423\",\n LT: \"+370\",\n LU: \"+352\",\n MO: \"+853\",\n MG: \"+261\",\n MW: \"+265\",\n MY: \"+60\",\n MV: \"+960\",\n ML: \"+223\",\n MT: \"+356\",\n MH: \"+692\",\n MQ: \"+596\",\n MR: \"+222\",\n MU: \"+230\",\n YT: \"+262\",\n MX: \"+52\",\n FM: \"+691\",\n MD: \"+373\",\n MC: \"+377\",\n MN: \"+976\",\n ME: \"+382\",\n MS: \"+1664\",\n MA: \"+212\",\n MZ: \"+258\",\n MM: \"+95\",\n NA: \"+264\",\n NR: \"+674\",\n NP: \"+977\",\n NL: \"+31\",\n AN: \"+599\",\n NC: \"+687\",\n NZ: \"+64\",\n NI: \"+505\",\n NE: \"+227\",\n NG: \"+234\",\n NU: \"+683\",\n NF: \"+672\",\n MK: \"+389\",\n MP: \"+1670\",\n NO: \"+47\",\n OM: \"+968\",\n PK: \"+92\",\n PW: \"+680\",\n PS: \"+970\",\n PA: \"+507\",\n PG: \"+675\",\n PY: \"+595\",\n PE: \"+51\",\n PH: \"+63\",\n PN: \"+872\",\n PL: \"+48\",\n PT: \"+351\",\n PR: \"+1939\",\n QA: \"+974\",\n RE: \"+262\",\n RO: \"+40\",\n RU: \"+7\",\n RW: \"+250\",\n BL: \"+590\",\n SH: \"+290\",\n KN: \"+1869\",\n LC: \"+1758\",\n MF: \"+590\",\n PM: \"+508\",\n VC: \"+1784\",\n WS: \"+685\",\n SM: \"+378\",\n ST: \"+239\",\n SA: \"+966\",\n SN: \"+221\",\n RS: \"+381\",\n SC: \"+248\",\n SL: \"+232\",\n SG: \"+65\",\n SX: \"+1721\",\n SK: \"+421\",\n SI: \"+386\",\n SB: \"+677\",\n SO: \"+252\",\n ZA: \"+27\",\n GS: \"+500\",\n SS: \"+211\",\n ES: \"+34\",\n LK: \"+94\",\n SD: \"+249\",\n SR: \"+597\",\n SJ: \"+47\",\n SE: \"+46\",\n CH: \"+41\",\n SY: \"+963\",\n TW: \"+886\",\n TJ: \"+992\",\n TZ: \"+255\",\n TH: \"+66\",\n TL: \"+670\",\n TG: \"+228\",\n TK: \"+690\",\n TO: \"+676\",\n TT: \"+1868\",\n TN: \"+216\",\n TR: \"+90\",\n TM: \"+993\",\n TC: \"+1649\",\n TV: \"+688\",\n UG: \"+256\",\n UA: \"+380\",\n AE: \"+971\",\n GB: \"+44\",\n US: \"+1\",\n UY: \"+598\",\n UZ: \"+998\",\n VU: \"+678\",\n VE: \"+58\",\n VN: \"+84\",\n VG: \"+1284\",\n VI: \"+1340\",\n WF: \"+681\",\n YE: \"+967\",\n ZM: \"+260\",\n ZW: \"+263\",\n};\n\nexport default dialCodes;\n","import { Box, Grid, Link, Typography, withStyles } from \"@material-ui/core\";\nimport { ArrowForwardRounded } from \"@material-ui/icons\";\nimport React, { Component } from \"react\";\n\nclass TrainingSessionCardWithHelpCenter extends Component {\n render() {\n const {\n gridSize,\n link,\n themeBackground,\n title,\n subTitle,\n Description,\n buttonTitle,\n iconLink,\n classes,\n maxImageSize,\n height,\n bottomPadding,\n } = this.props;\n\n return (\n \n \n \n \n \n {title}\n \n \n {subTitle}\n \n \n \n \n \n \n \n \n\n {/* Wrap only the button with Link */}\n \n \n \n {buttonTitle}\n \n \n \n \n \n );\n }\n}\n\nconst styles = (theme) => ({\n iconImageContainer: {\n justifyContent: \"center\",\n flexDirection: \"column\",\n display: \"flex\",\n alignItems: \"center\",\n },\n iconImage: {\n width: \"100%\",\n transition: \"all 0.25s ease-out\",\n },\n arrowForward: {\n fontSize: 16,\n padding: \"2px\",\n transition: \"all 0.25s\",\n border: \"1px solid #09A12A\",\n color: \"#09A12A\",\n borderRadius: \"20px\",\n },\n affilateCard: {\n \"&:hover $arrowForward\": {\n fontSize: 20,\n },\n \"&:hover $iconImage\": {\n transform: \"rotate(-3deg)\",\n },\n \"&:hover\": {\n marginBottom: 0,\n },\n display: \"flex\",\n flexDirection: \"column\",\n transformStyle: \"preserve-3d\",\n marginBottom: 4,\n transition: \"margin 0.25s\",\n },\n cardHeading: {\n color: \"black\",\n marginBottom: \"16px\",\n fontWeight: \"bold\",\n fontFamily: \"Roboto\",\n letterSpacing: \"0.5px\",\n },\n cardCTA: {\n boxShadow: \"0 0 11px rgb(230,230,230)\",\n borderRadius: \"0 0 16px 16px\",\n zIndex: 1,\n display: \"flex\",\n padding: \"16px 32px 12px\",\n position: \"relative\",\n bottom: \"8px\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n background: \"white\",\n },\n\n cardTop: {\n minHeight: \"175px\",\n\n [theme.breakpoints.down(\"1400\")]: {\n minHeight: \"215px\",\n },\n },\n});\n\nexport default withStyles(styles)(TrainingSessionCardWithHelpCenter);\n","// Dashboard.js\nimport React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Checkbox,\n Chip,\n Tooltip,\n Snackbar,\n IconButton,\n InputAdornment,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Card,\n CardContent,\n} from \"@material-ui/core\";\n\nimport { connect } from \"react-redux\";\nimport CRMTraining from \"../../static/onlineCall.png\";\nimport countriesTimezones from \"../../config/countriesTimezones.json\";\nimport { fetchPartnerDetails } from \"../../store/partnerState\";\nimport Header from \"../../commons/Header/Header\";\nimport { Clear, Close, ErrorOutline } from \"@material-ui/icons\";\n// import AffiliateAnalytics from \"../Assistants/WccAnalytics/WccAnalytics\";\nimport axios from \"axios\";\nimport FileCopyIcon from \"@material-ui/icons/FileCopy\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport TwitterIcon from \"@material-ui/icons/Twitter\";\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\nimport WhatsAppIcon from \"@material-ui/icons/WhatsApp\";\nimport TrainingSessionCard from \"./TrainingSessionCard\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\nimport { timeZones } from \"../../config/timezone\";\nimport { isoToName } from \"../../config/dialCodes\";\nimport { PieChart, Pie, Cell, Legend } from \"recharts\";\nimport TrainingSessionCardWithHelpCenter from \"./TrainingSessionCardWithHelpCenter\";\nconst { APIURL } = require(\"../../config/config\");\n\nclass Dashboard extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: false,\n dataInitialized: false,\n totalClick: 0,\n totalLeadsGenerated: 0,\n totalConversions: 0,\n conversionRate: 0,\n termsDialogOpen: true,\n additonalDetailsDialog: true,\n selectedLink: \"\",\n snackbarOpen: false,\n uniqueClicks: 0,\n analyticsDialog: false,\n data: [\n { name: \"Total Clicks\", value: 400 },\n { name: \"Unique Clicks\", value: 300 },\n ],\n step: 1,\n formValues: {\n address: \"\",\n country: \"\",\n industry: [],\n currency: \"\",\n companySize: \"\",\n timezone: \"\",\n state: \"\",\n city: \"\",\n metaAds: \"\",\n budget: \"\",\n postalCode: \"\",\n whatsAppAds: \"\",\n whatsAppAdsBudget: \"\",\n objective: \"\",\n averageBudget: \"\",\n designation: \"\",\n ecosystem: [],\n websiteUrl: \"\",\n type: \"\",\n customerBase: \"\",\n },\n postalCodeError: false,\n availableStates: [],\n availableTimezones: [],\n };\n }\n\n componentDidMount() {\n this.props.fetchPartnerDetails();\n this.fetchDashboardData();\n }\n\n componentDidUpdate(prevProps) {\n if (!this.state.dataInitialized && this.props.partnerDetail) {\n this.fetchSavedData();\n this.setState({ dataInitialized: true, isLoading: false });\n\n // Check if affiliateUrl is empty and call generateAffiliateLinks if true\n if (this.props.partnerDetail?.AffiliateUrls?.length < 1) {\n this.generateAffiliateLinks();\n }\n }\n }\n\n handleAnalyticsDiaglog = () => {\n this.setState({ analyticsDialog: true });\n axios\n .post(APIURL + `/affiliates/get-affiliate-links?sort=desc`, {\n affiliateId: this.props.partnerDetail.id,\n })\n .then((response) => {\n const businessData = response.data.business;\n const data = businessData.map((item) => ({\n name: item.linkName,\n value: item.totalClicks + item.uniqueClicks,\n }));\n const totalClicks = businessData.reduce(\n (acc, item) => acc + item.totalClicks,\n 0\n );\n const uniqueClicks = businessData.reduce(\n (acc, item) => acc + item.uniqueClicks,\n 0\n );\n this.setState({ data, totalClick: totalClicks, uniqueClicks }); // Set uniqueClicks\n });\n };\n\n handleAnalyticsDialogClose = () => {\n this.setState({ analyticsDialog: false });\n };\n\n fetchSavedData = () => {\n const { partnerDetail } = this.props;\n if (partnerDetail) {\n const selectedCountry = countryData.find(\n (country) => country.code === partnerDetail.country\n );\n const availableStates = selectedCountry?.states || [];\n const availableTimezones = selectedCountry\n ? [selectedCountry.timezone]\n : [];\n this.setState({\n formValues: {\n designation: partnerDetail.designation || \"\",\n websiteUrl: partnerDetail.websiteUrl || \"\",\n type: partnerDetail.businessType || \"\",\n companySize: partnerDetail.companySize || \"\",\n customerBase: partnerDetail.customerBase || \"\",\n ecosystem: partnerDetail.ecosystem || [],\n metaAds: partnerDetail.metaAds || \"\",\n objective: partnerDetail.objective || \"\",\n industry: partnerDetail.industry || [],\n whatsAppAds: partnerDetail.whatsAppAds || \"\",\n budget: partnerDetail.budget || \"\",\n averageBudget: partnerDetail.averageBudget || \"\",\n whatsAppAdsBudget: partnerDetail.whatsAppAdsBudget || \"\",\n address: partnerDetail.address || \"\",\n country: partnerDetail.country || \"\",\n state: partnerDetail.state || \"\",\n city: partnerDetail.city || \"\",\n postalCode: partnerDetail.postalCode || \"\",\n timezone: partnerDetail.timezone || \"\",\n totalCommisionPaidINR: partnerDetail?.totalCommisionPaidINR || \" \",\n totalCommisionPaidUSD: partnerDetail?.totalCommisionPaidUSD || \"\",\n },\n availableStates,\n });\n }\n };\n handleCopy = (value) => {\n navigator.clipboard.writeText(value).then(() => {\n this.setState({\n snackbarOpen: true,\n alertMsg: \"Link Copied Successfully\",\n });\n });\n };\n\n fetchDashboardData = () => {\n axios\n .get(APIURL + \"/affiliates/dashboard-analytics\")\n .then((response) => {\n const { data } = response;\n const conversionRate = (\n (data?.conversion / data?.leadsGenerated) * 100 || 0\n ).toFixed(2);\n this.setState({\n totalClick: data.totalClicks,\n totalLeadsGenerated: data.leadsGenerated,\n totalConversions: data.conversion,\n conversionRate: conversionRate,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n onOnboardingCallClick = () => {\n window.open(\"https://calendly.com/d/33t-6fj-rsq\", \"_blank\");\n };\n\n onPlatformDemoClick = () => {\n window.open(\"https://calendly.com/d/3k8-k9q-9r3\", \"_blank\");\n };\n\n onButtonClick = () => {\n window.open(\"https://help.aisensy.com/en/\", \"_blank\");\n };\n\n handleCloseTerms = () => {\n this.setState({ termsDialogOpen: false });\n };\n\n handleCloseAdditonalDetails = () => {\n this.setState({ additonalDetailsDialog: false });\n };\n\n handleOpenTermsDialog = () => {\n this.setState({ termsDialogOpen: true });\n };\n\n handleAcceptTerms = () => {\n axios\n .post(APIURL + \"/affiliates/update-affiliate\", {})\n .then((response) => {\n this.setState({ termsDialogOpen: false });\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n // Function to generate affiliate links\n generateAffiliateLinks = async () => {\n try {\n // Post request for the first link\n const response1 = await axios.post(\n APIURL + \"/affiliates/create-new-affiliate-link\",\n {\n linkTitle: \"link1\",\n domain: \"app.aisensy.com\",\n }\n );\n\n // Post request for the second link\n const response2 = await axios.post(\n APIURL + \"/affiliates/create-new-affiliate-link\",\n {\n linkTitle: \"link2\",\n domain: \"m.aisensy.com\",\n }\n );\n\n // Force refresh the page after both links are created\n window.location.reload();\n } catch (error) {\n console.error(\"Error creating affiliate links:\", error);\n }\n };\n\n handleProfileCompletion = () => {\n axios\n .post(APIURL + \"/affiliates/update-affiliate\", {\n additionalDetails: this.state.formValues,\n currentStep: this.state.step,\n allStepsCompleted: true,\n })\n .then((response) => {\n this.setState({ additonalDetailsDialog: false });\n\n // Call the function to generate affiliate links\n // this.generateAffiliateLinks();\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n handleInputChange = (field, value) => {\n this.setState((prevState) => ({\n formValues: {\n ...prevState.formValues,\n [field]: value,\n },\n postalCodeError: field === \"postalCode\" && value.length > 7,\n }));\n };\n\n handleCountryChange = (e, value) => {\n const selectedCountry = countryData.find(\n (country) => country.code === value?.code\n );\n\n this.setState({\n formValues: {\n ...this.state.formValues,\n country: value?.code || \"\",\n state: \"\",\n timezone: selectedCountry?.timezone || \"\",\n },\n availableStates: selectedCountry?.states || [],\n availableTimezones: selectedCountry ? [selectedCountry.timezone] : [],\n });\n };\n\n nextStep = () => {\n if (this.allFieldsFilled()) {\n this.setState(\n (prevState) => ({\n step: prevState.step + 1,\n }),\n () => {\n // Save the current form state and step\n this.saveFormData();\n }\n );\n }\n };\n\n prevStep = () => {\n this.setState(\n (prevState) => ({\n step: prevState.step - 1,\n }),\n () => {\n // Save the current form state and step\n this.saveFormData();\n }\n );\n };\n\n saveFormData = () => {\n const { formValues, step } = this.state;\n axios\n .post(APIURL + \"/affiliates/update-affiliate\", {\n additionalDetails: formValues,\n currentStep: step,\n })\n .then((response) => {})\n .catch((error) => {\n console.error(\"Error saving form data:\", error);\n });\n };\n\n allFieldsFilled = () => {\n const { formValues, step } = this.state;\n\n if (step === 1) {\n return (\n formValues.designation &&\n formValues.customerBase &&\n formValues.ecosystem.length > 0 &&\n (formValues.type !== \"Business\" || formValues.companySize)\n );\n } else if (step === 2) {\n return (\n formValues.metaAds &&\n (formValues.metaAds === \"No\" ||\n (formValues.objective &&\n formValues.industry.length > 0 &&\n formValues.budget &&\n formValues.averageBudget &&\n formValues.whatsAppAds &&\n (formValues.whatsAppAds === \"No\" || formValues.whatsAppAdsBudget)))\n );\n } else if (step === 3) {\n return (\n formValues.address &&\n formValues.country &&\n (!formValues.state || formValues.city) &&\n formValues.timezone &&\n formValues.postalCode &&\n !this.state.postalCodeError\n );\n }\n return false;\n };\n\n renderStep = () => {\n const { formValues, availableStates, availableTimezones, postalCodeError } =\n this.state;\n const { classes } = this.props;\n\n switch (this.state.step) {\n case 1:\n return (\n
\n \n this.handleInputChange(\"designation\", value)\n }\n onInputChange={(e, value) =>\n this.handleInputChange(\"designation\", value)\n }\n value={formValues.designation}\n renderInput={(params) => (\n \n )}\n />\n \n this.handleInputChange(\"websiteUrl\", value)\n }\n onInputChange={(e, value) =>\n this.handleInputChange(\"websiteUrl\", value)\n }\n value={formValues.websiteUrl}\n renderInput={(params) => (\n \n )}\n />\n this.handleInputChange(\"type\", value)}\n value={formValues.type}\n renderInput={(params) => (\n \n )}\n />\n {formValues.type === \"Business\" && (\n \n this.handleInputChange(\"companySize\", value)\n }\n value={formValues.companySize}\n renderInput={(params) => (\n \n )}\n />\n )}\n \n this.handleInputChange(\"customerBase\", value)\n }\n value={formValues.customerBase}\n renderInput={(params) => (\n \n )}\n />\n \n this.handleInputChange(\"ecosystem\", value)\n }\n value={formValues.ecosystem}\n renderOption={(option, { selected }) => (\n \n \n {option}\n \n )}\n renderTags={(selected, getTagProps) =>\n selected.map((value, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n ListboxProps={{\n style: {\n maxHeight: \"200px\",\n overflowY: \"auto\",\n },\n }}\n style={{\n width: \"340px\",\n display: \"flex\",\n position: \"relative\",\n bottom: \"11px\",\n overflowX: \"auto\",\n }}\n />\n
\n );\n case 2:\n return (\n
\n this.handleInputChange(\"metaAds\", value)}\n value={formValues.metaAds}\n renderInput={(params) => (\n \n )}\n />\n\n {formValues.metaAds === \"Yes\" && (\n <>\n \n this.handleInputChange(\"objective\", value)\n }\n onInputChange={(e, value) =>\n this.handleInputChange(\"objective\", value)\n }\n value={formValues.objective}\n renderInput={(params) => (\n \n )}\n />\n \n this.handleInputChange(\"industry\", value)\n }\n value={formValues.industry}\n renderOption={(option, { selected }) => (\n \n \n {option}\n \n )}\n renderTags={(selected, getTagProps) =>\n selected.map((value, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n ListboxProps={{\n style: {\n maxHeight: \"200px\",\n overflowY: \"auto\",\n },\n }}\n style={{ width: \"360px\", display: \"flex\", overflowX: \"auto\" }}\n />\n\n \n this.handleInputChange(\"whatsAppAds\", value)\n }\n value={formValues.whatsAppAds}\n renderInput={(params) => (\n \n )}\n />\n \n this.handleInputChange(\"budget\", value)\n }\n onInputChange={(e, value) =>\n this.handleInputChange(\"budget\", value)\n }\n value={formValues.budget}\n renderInput={(params) => (\n \n )}\n />\n \n this.handleInputChange(\"averageBudget\", value)\n }\n onInputChange={(e, value) =>\n this.handleInputChange(\"averageBudget\", value)\n }\n value={formValues.averageBudget}\n renderInput={(params) => (\n \n )}\n />\n {formValues?.whatsAppAds !== \"No\" && (\n \n this.handleInputChange(\"whatsAppAdsBudget\", value)\n }\n value={formValues.whatsAppAdsBudget}\n renderInput={(params) => (\n \n )}\n />\n )}\n \n )}\n
\n );\n case 3:\n return this.renderStep3();\n default:\n return null;\n }\n };\n\n renderStep3 = () => {\n const { formValues, availableStates, availableTimezones, postalCodeError } =\n this.state;\n const { classes } = this.props;\n\n return (\n
\n this.handleInputChange(\"address\", value)}\n onInputChange={(e, value) => this.handleInputChange(\"address\", value)}\n value={formValues.address}\n renderInput={(params) => (\n \n )}\n />\n option.country}\n onChange={this.handleCountryChange}\n value={\n countryData.find((option) => option.code === formValues.country) ||\n null\n }\n renderInput={(params) => (\n \n )}\n />\n {availableStates.length > 0 && (\n this.handleInputChange(\"state\", value)}\n value={formValues.state}\n renderInput={(params) => (\n \n )}\n />\n )}\n this.handleInputChange(\"city\", value)}\n onInputChange={(e, value) => this.handleInputChange(\"city\", value)}\n value={formValues.city}\n renderInput={(params) => (\n \n )}\n />\n this.handleInputChange(\"postalCode\", value)}\n onInputChange={(e, value) =>\n this.handleInputChange(\"postalCode\", value)\n }\n value={formValues.postalCode}\n renderInput={(params) => (\n \n \n \n ),\n }}\n />\n )}\n />\n (\n \n )}\n />\n
\n );\n };\n\n handleSnackbarClose = () => {\n this.setState({ snackbarOpen: false });\n };\n\n render() {\n const { classes, isPartnerDetailLoading, partnerDetail } = this.props;\n const {\n snackbarOpen,\n step,\n additonalDetailsDialog,\n formValues,\n data,\n analyticsDialog,\n } = this.state;\n const COLORS = [\"#0088FE\", \"#00C49F\", \"#FFBB28\", \"#FF8042\"];\n\n const isPartnerDetailEmpty =\n !partnerDetail || Object.keys(partnerDetail).length === 0;\n\n if (isPartnerDetailLoading || isPartnerDetailEmpty) {\n return (\n \n \n \n );\n }\n\n return (\n
\n {isPartnerDetailLoading ? (\n \n \n \n ) : (\n
\n \n \n \n \n \n \n \n \n \n \n \n Share your link to refer new customers to AiSensy!\n \n \n \n {partnerDetail.AffiliateUrls &&\n partnerDetail.AffiliateUrls.length >= 1 ? (\n \n \n this.handleCopy(\n partnerDetail.AffiliateUrls[0]\n )\n }\n >\n \n \n \n ),\n }}\n />\n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n View Link Analytics\n \n \n \n Affiliate Link Analytics\n \n \n \n \n \n \n \n \n \n Click Distribution\n \n \n \n \n \n Total Clicks\n \n \n {this.state.totalClick}\n \n \n \n \n \n \n Unique Click\n \n \n {this.state.uniqueClicks}\n \n \n \n \n \n \n \n \n \n \n \n \n {!partnerDetail?.isChildAffiliate && (\n \n {/* First Card */}\n \n (\n \n * Understand how to use the affiliate\n dashboard\n
\n * Learn how to track your commissions and\n performance\n
\n * Get tips on optimizing your affiliate\n strategies\n
* Explore advanced reporting and\n analytics features\n \n )}\n buttonTitle=\"Schedule Call Now!\"\n iconLink={CRMTraining}\n maxImageSize=\"100px\"\n height=\"175px\"\n />\n
\n\n {/* Second Card */}\n \n (\n \n * Understand how to use the affiliate\n dashboard effectively\n
\n * Explore key features and tools available\n on the platform\n
\n * Learn how to track and analyze your\n affiliate performance\n
\n * Get insights into commission structures\n and payouts\n
\n \n For more details please refer to{\" \"}\n \n help doc.\n \n \n \n )}\n buttonTitle=\"Schedule Call Now!\"\n iconLink={CRMTraining}\n maxImageSize=\"100px\"\n height=\"175px\"\n />\n
\n
\n )}\n \n \n\n {/* \n \n \n Share your link to refer new customers to AiSensy!\n \n \n \n \n \n this.handleCopy(\n partnerDetail.AffiliateUrls[1]\n )\n }\n >\n \n \n \n ),\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n View Link Analytics\n \n \n \n Affiliate Link Analytics\n \n \n \n \n \n \n \n \n \n Click Distribution\n \n \n \n \n \n Total Clicks\n \n \n {this.state.totalClick}\n \n \n \n \n \n \n Unique Click\n \n \n {this.state.uniqueClicks}\n \n \n \n \n \n \n \n \n \n \n \n */}\n\n \n \n \n Overview\n \n \n \n \n \n \n \n {partnerDetail?.isChildAffiliate\n ? \"Total Business Onboarded\"\n : \"Total Commission\"}\n \n \n \n \n {partnerDetail.totalCommisionINR > 0 &&\n `₹ ${(\n partnerDetail.totalCommisionINR / 100000\n ).toFixed(2)}`}\n {\n partnerDetail.totalCommisionINR > 0 &&\n partnerDetail.totalCommisionUSD > 0 &&\n \" | \" // Display a bar only if both INR and USD have values\n }\n {partnerDetail.totalCommisionUSD > 0 &&\n ` $ ${(\n partnerDetail.totalCommisionUSD / 100000\n ).toFixed(2)}`}\n {partnerDetail.totalCommisionINR === 0 &&\n partnerDetail.totalCommisionUSD === 0 && (\n <>₹ 0.00\n )}\n \n \n \n \n\n \n \n \n Revenue Generated\n \n \n \n {partnerDetail.revenueGeneratedINR > 0 &&\n `₹ ${(\n partnerDetail.revenueGeneratedINR / 100000\n ).toFixed(2)}`}\n {\n partnerDetail.revenueGeneratedINR > 0 &&\n partnerDetail.revenueGeneratedUSD > 0 &&\n \" | \" // Display a bar only if both INR and USD have values\n }\n {partnerDetail.revenueGeneratedUSD > 0 &&\n `$ ${(\n partnerDetail.revenueGeneratedUSD / 100000\n ).toFixed(2)}`}\n {partnerDetail.revenueGeneratedINR === 0 &&\n partnerDetail.revenueGeneratedUSD === 0 && (\n <>₹ 0.00\n )}\n \n \n \n \n\n \n \n \n \n {partnerDetail?.isChildAffiliate\n ? \"Total Ads Spent\"\n : \"Total Commission Paid\"}\n \n \n \n \n {(partnerDetail.totalCommisionPaidINR ?? 0) >\n 0 &&\n `₹ ${(\n partnerDetail.totalCommisionPaidINR / 100000\n ).toFixed(2)}`}\n {\n (partnerDetail.totalCommisionPaidINR ?? 0) >\n 0 &&\n (partnerDetail.totalCommisionPaidUSD ?? 0) >\n 0 &&\n \" | \" // Display a bar only if both INR and USD have values\n }\n {(partnerDetail.totalCommisionPaidUSD ?? 0) >\n 0 &&\n `$ ${(\n partnerDetail.totalCommisionPaidUSD / 100000\n ).toFixed(2)}`}\n {(partnerDetail.totalCommisionPaidINR ?? 0) ===\n 0 &&\n (partnerDetail.totalCommisionPaidUSD ?? 0) ===\n 0 && <>₹ 0.00}\n \n \n \n \n \n \n \n \n \n Total Leads Generated\n \n \n {this.state.totalLeadsGenerated || 0}\n \n \n \n \n \n \n Total Conversions & Conversion Rate\n \n \n \n {this.state.totalConversions} |{\" \"}\n {this.state.conversionRate}%\n \n \n \n \n \n \n \n \n \n \n \n {partnerDetail.affiliatePlan === \"tier0\" &&\n !partnerDetail.additionalDetailsFilled && (\n \n \n \n \n Welcome to AiSensy Affiliate Program 🎉 \n \n \n Tell us a bit about yourself to get started \n \n {this.renderStep()}\n \n \n {step > 1 && (\n \n Back\n \n )}\n {step < 3 ? (\n \n Next\n \n ) : (\n \n Proceed\n \n )}\n \n \n )}\n \n \n {this.state.alertMsg}\n \n \n
\n )}\n
\n );\n }\n}\n\nconst countryData = countriesTimezones.map((option) => option);\n\nconst SIZE = [\n \"1 - 10 Employees\",\n \"10 - 20 Employees\",\n \"20 - 50 Employees\",\n \"50 - 200 Employees\",\n \"200 + Employees\",\n];\n\nconst VERTICALS = [\n \"Ecommerce\",\n \"Education\",\n \"Automotive\",\n \"IT Services\",\n \"Real Estate\",\n \"SAAS/Apps\",\n \"Gaming\",\n \"Entertainment\",\n \"Finance and Banking\",\n \"Medical and Health\",\n \"Hotel and Lodging\",\n \"Beauty, Spa and Salon\",\n \"Clothing and Apparel\",\n \"Event Planning and Service\",\n \"Food and Grocery\",\n \"Professional Services\",\n \"Public Service\",\n \"Non-profit\",\n \"Shopping and Retail\",\n \"Travel and Transportation\",\n \"Restaurant\",\n \"Other\",\n];\n\nconst BUDGET = [\n \"₹0 - ₹25,000\",\n \"₹25,000 - ₹1,00,000\",\n \"₹1,00,000 - ₹5,00,000\",\n \"₹5,00,000 - ₹20,00,000\",\n \"₹20,00,000 - ₹50,00,000\",\n \"₹50 lakhs - ₹1 crore\",\n \"₹1 crore+\",\n];\n\nconst AVERAGEADSBUDGET = [\n \"₹0 - ₹50\",\n \"₹50 - ₹100\",\n \"₹100 - ₹150\",\n \"₹150 - ₹200\",\n \"₹200 - ₹500\",\n \"₹500 and above\",\n];\n\nconst WHATSAPPADS = [\"Yes\", \"No\", \"No, but willing to try out\"];\n\nconst CUSTOMERBASE = [\n \"0 - 10\",\n \"11 - 50\",\n \"51 - 100\",\n \"101 - 200\",\n \"201 - 500\",\n \"501 - 1000\",\n \"1001 - 2000\",\n \"2000+\",\n];\n\nconst TYPE = [\"Business\", \"Individual\"];\n\nconst PARTNERECOSYSTEM = [\n \"IVR Service Provider\",\n \"CRM\",\n \"WhatsApp Marketing Services\",\n \"SMS Service Provider\",\n \"Digital Marketing Agency\",\n \"Solution Provider\",\n \"Website and Application Development\",\n \"Other\",\n];\n\nconst WHATSAPPADSBUDGET = [\n \"₹0 - ₹5000/month\",\n \"₹5000 - 20,000/month\",\n \"₹20,000 - 50,000/month\",\n \"₹50,000/month\",\n \"₹1,00,000/month\",\n \"₹5,00,000/month\",\n \"₹10,00,000/month\",\n \"₹50 Lakh+\",\n];\n\nconst OBJECTIVE = [\n \"Lead Generation\",\n \"Sales / Conversions\",\n \"Branding / Awareness\",\n \"Running Ads for clients\",\n];\nconst ADS = [\"Yes\", \"No\"];\n\nconst CURRENCY = [\"INR\", \"USD\"];\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n background: \"rgb(247,247,247)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n primaryBackground: {\n background: \"rgb(70 20 134 / 15%)\",\n },\n container: {\n // marginTop: 16,\n background: \"white\",\n borderRadius: 8,\n padding: \"24px 36px\",\n marginTop: 10,\n marginBottom: 10,\n },\n analyticsContainer: {\n background: \"white\",\n padding: 0,\n margin: 0,\n },\n snackbar: {\n top: theme.spacing(9),\n },\n viewOldButton: {\n \"&:hover\": {\n color: \"grey\",\n cursor: \"pointer\",\n },\n },\n textFieldRootAutocomplete: {\n display: \"flex\",\n width: \"100%\",\n maxWidth: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"10px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n\n helpLink: {\n cursor:\n \"pointer !important\" /* Optional: to make it more distinguishable */,\n },\n\n textFieldRootAutocompleteDropDown: {\n display: \"flex\",\n width: \"100%\",\n maxWidth: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"7px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n chip: {\n margin: \"2px\",\n fontSize: \"0.5rem\",\n display: \"flex\",\n flexDirection: \"row\",\n },\n tagList: {\n display: \"flex\",\n flexWrap: \"wrap\",\n },\n});\n\nconst connectDashboard = connect(\n (state) => ({\n isPartnerDetailLoading: state.partner.isLoading,\n partnerDetail: state.partner.partner,\n }),\n {\n fetchPartnerDetails,\n }\n)(Dashboard);\n\nexport default withStyles(styles)(connectDashboard);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { withStyles, Grid, Box, Typography, Tooltip } from \"@material-ui/core\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport axios from \"axios\";\nimport { APIURL, URL } from \"../../config/config\";\nimport { Assistant } from \"@material-ui/icons\";\nconst fields = [\n {\n name: \"Commision Paid\",\n key: \"amountPaid\",\n size: 2,\n },\n {\n name: \"Currency\",\n key: \"currency\",\n size: 2,\n },\n {\n name: \"Period\",\n key: \"dateRange\",\n size: 3,\n },\n {\n name: \"Paid On\",\n key: \"createdAt\",\n size: 2,\n },\n {\n name: \"Remarks\",\n key: \"remarks\",\n size: 3,\n },\n];\n\nclass BillingTable extends Component {\n constructor(props) {\n super(props);\n this.state = {\n openDialog: false,\n selectedTemplate: null,\n };\n }\n\n toggleDialog = () => {\n this.setState({ openDialog: !this.state.openDialog });\n };\n openBills = (log) => {\n if (log.assistantId) {\n axios\n .get(`${APIURL}/affiliates/open-billing-log/${log.assistantId}`)\n .then((response) => {\n const assistantName = response.data.assistantName;\n this.props.history.push({\n pathname: \"/billings/\" + log._id,\n state: { ...log, assistantName },\n });\n });\n }\n };\n render() {\n const currency = this.props.user.currency;\n const { classes, bills, isLoading } = this.props;\n return (\n
\n \n \n \n \n \n \n {fields.map((e) => (\n \n \n \n {e.name}\n \n \n \n ))}\n \n {bills.map((log) => (\n \n {fields.map((field) => (\n \n \n \n ))}\n \n ))}\n \n \n \n \n \n
\n );\n }\n}\n\nfunction Cell({ classes, item, field, openCampaign, currency, ...props }) {\n switch (field) {\n case \"amountPaid\":\n return (\n \n \n {`${\n item.currency === \"INR\" ? \"₹\" : item.currency === \"USD\" ? \"$\" : \"\"\n } ${(item[field] / 100000).toFixed(2)}`}\n \n \n );\n\n break;\n case \"commision\":\n return (\n \n \n {`${\n item.currency === \"INR\" ? \"₹\" : item.currency === \"USD\" ? \"$\" : \"\"\n } ${(item[field] / 100000).toFixed(2)}`}\n \n \n );\n break;\n case \"Loading\":\n return (\n \n \n \n \n \n );\n\n case \"createdAt\":\n return (\n \n \n {getFormattedDate(item[field])}\n \n \n );\n break;\n case \"dateRange\":\n return (\n \n \n {getFormattedDate(item.startDate)} -{\" \"}\n {getFormattedDate(item.endDate)}\n \n \n );\n break;\n default:\n return (\n \n {item[field]}\n \n );\n }\n}\nfunction getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n}\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"scroll\",\n position: \"relative\",\n // marginBottom: \"5em\",\n // paddingBottom: \"80px\"\n },\n tableWrapper: {\n // overflowX: \"auto\",\n width: \"100%\",\n },\n\n tableContainer: {\n marginTop: \"1.5em\",\n minWidth: 1000,\n },\n\n tableItem: {\n background: \"white\",\n marginBottom: \"1em\",\n padding: 4,\n // flexWrap: \"nowrap\",\n borderRadius: 8,\n // cursor: \"pointer\",\n // \"&:hover\": {\n // background: \"#efefef\",\n // },\n },\n\n tableHeader: {\n background: \"white\",\n padding: 4,\n borderRadius: 8,\n marginBottom: \"1em\",\n // flexWrap: \"nowrap\",\n },\n});\nconst BillingTableconnect = connect(\n (state) => ({\n isLoading: state.billing.isLoading,\n user: state.login.user,\n }),\n {}\n)(BillingTable);\nexport default withStyles(styles)(withRouter(BillingTableconnect));\n","import axios from \"axios\";\n\nimport { APIURL } from \"../../config/config.js\";\n\nconst initialState = {\n partnerBillingLogs: Array(10)\n .fill(0)\n .map((item) => ({ name: \"Loading\" })),\n skip: 0,\n totalprojects: 0,\n isLoading: true,\n error: null,\n page: 0,\n rowsPerPage: 10,\n applied: {\n createdAt: {\n startDate: null,\n endDate: null,\n focusedInput: null,\n },\n },\n sort: null,\n};\n\nconst LOAD_START = \"Billing/LOAD_START\";\nconst LOAD_SUCCESS = \"Billing/LOAD_SUCCESS\";\nconst LOAD_MORE_SUCCESS = \"Billing/LOAD_MORE_SUCCESS\";\nconst LOAD_FAILURE = \"Billing/LOAD_FAILURE\";\nconst ADD_CLIENT = \"Billing/ADD_CLIENT\";\nconst CHANGE_PAGE = \"Billing/CHANGE_PAGE\";\nconst CHANGE_ROWS_PER_PAGE = \"Billing/CHANGE_ROWS_PER_PAGE\";\nconst CHANGE_QUERY = \"Bilings/CHANGE_QUERY\";\nconst CHANGE_STATUS = \"Bilings/CHANGE_STATUS\";\nconst EXIT_CLIENTS = \"TEMPLATE/EXIT_CLIENTS\";\nconst LOAD_DATE = \"LOAD_DATE/Bilings\";\nconst LOAD_APPLIED = \"LOAD_APPLIED/billing\";\nconst LOAD_SORT = \"LOAD_SORT/billing\";\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = ({\n partnerBillingLogs,\n skip,\n totalprojects,\n assistantId,\n}) => ({\n type: LOAD_SUCCESS,\n payload: { partnerBillingLogs, skip, totalprojects, assistantId },\n});\n\nconst loadSort = (sort) => ({\n type: LOAD_SORT,\n payload: { sort },\n});\n\nconst loadDate = ({ fromDate, toDate }) => ({\n type: LOAD_DATE,\n payload: { fromDate, toDate },\n});\n\nconst loadapplied = ({ applied }) => ({\n type: LOAD_APPLIED,\n payload: applied,\n});\n\nconst loadmoresuccess = ({ partnerBillingLogs, skip, assistantId }) => ({\n type: LOAD_MORE_SUCCESS,\n payload: { partnerBillingLogs, skip, assistantId },\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const loadSorts = (value) => (dispatch, getState) => {\n dispatch(loadSort(value));\n};\n\nexport const loadBills = (assistantId, filters) => (dispatch, getState) => {\n const { rowsPerPage } = getState().billing;\n const sort = filters.sort;\n const newFilter = { ...filters };\n\n delete newFilter.sort;\n dispatch(loadStart);\n axios\n .post(`${APIURL}/affiliates/affiliate-paid-dues-log?sort=${sort}`, {\n skip: 0,\n rowsPerPage,\n assistantId,\n ...newFilter,\n })\n .then((response) => {\n const { partnerBillingLogs, newSkip, totalprojects } = response.data;\n dispatch(\n loadSuccess({\n partnerBillingLogs: partnerBillingLogs,\n skip: newSkip,\n totalprojects: totalprojects,\n assistantId,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport const loadNext =\n (event, newPage, assistantId, filters) => (dispatch, getState) => {\n const { rowsPerPage, skip, partnerBillingLogs } = getState().billing;\n const sort = filters.sort;\n const newFilter = { ...filters };\n delete newFilter.sort;\n if (partnerBillingLogs.length > newPage * rowsPerPage) {\n dispatch({ type: CHANGE_PAGE, payload: newPage });\n } else {\n dispatch({ type: CHANGE_PAGE, payload: newPage });\n axios\n .post(URL + `/api/partner-billing-activity-lists?sort=${sort}`, {\n skip,\n rowsPerPage,\n assistantId,\n ...newFilter,\n })\n .then((response) => {\n const { partnerBillingLogs, newSkip } = response.data;\n dispatch(\n loadmoresuccess({\n partnerBillingLogs: partnerBillingLogs,\n skip: newSkip,\n assistantId,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n }\n };\n\nexport const addBills = (billing) => (dispatch) => {\n dispatch({ type: ADD_CLIENT, payload: billing });\n};\n\nexport const changeQuery = (nameQuery) => (dispatch) => {\n dispatch({ type: CHANGE_QUERY, payload: nameQuery });\n};\n\nexport const changeRowsPerPage = (rowsPerPage) => (dispatch) => {\n dispatch({ type: CHANGE_ROWS_PER_PAGE, payload: rowsPerPage });\n};\n\nexport const unfetchbills = () => (dispatch) => {\n dispatch({ type: EXIT_CLIENTS, payload: null });\n};\n\nexport default function ClientReducer(state = initialState, { type, payload }) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n partnerBillingLogs: [...payload.partnerBillingLogs],\n skip: payload.skip,\n totalprojects: payload.totalprojects,\n page: 0,\n assistantId: payload.assistantId,\n isLoading: false,\n error: null,\n };\n case LOAD_DATE:\n return {\n ...state,\n applied: {\n ...state.applied,\n createdAt: {\n ...state.applied.createdAt,\n startDate: payload.fromDate,\n endDate: payload.toDate,\n },\n },\n };\n case LOAD_MORE_SUCCESS:\n return {\n ...state,\n partnerBillingLogs: [\n ...state.partnerBillingLogs,\n ...payload.partnerBillingLogs,\n ],\n skip: payload.skip,\n isLoading: false,\n };\n\n case CHANGE_ROWS_PER_PAGE:\n return { ...state, rowsPerPage: payload, page: 0 };\n\n case CHANGE_PAGE:\n return { ...state, page: payload };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: true, error: payload };\n\n case ADD_CLIENT:\n return {\n ...state,\n partnerBillingLogs: {\n [payload.name]: payload,\n ...state.partnerBillingLogs,\n },\n };\n\n case LOAD_APPLIED:\n return {\n ...state,\n applied: { ...state.applied, ...payload.applied },\n };\n\n case CHANGE_QUERY:\n return {\n ...state,\n nameQuery: payload,\n };\n\n case LOAD_SORT:\n return {\n ...state,\n sort: payload.sort,\n };\n\n case EXIT_CLIENTS:\n return {\n ...initialState,\n };\n\n case CHANGE_STATUS:\n return {\n ...state,\n partnerBillingLogs: {\n ...state.partnerBillingLogs,\n [payload.displayName]: {\n ...state.partnerBillingLogs[payload.displayName],\n status: payload.status,\n },\n },\n };\n\n default:\n return state;\n }\n}\n","import React from \"react\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\n\nconst withMediaQuery =\n (...args) =>\n (Component) =>\n (props) => {\n const mediaQuery = useMediaQuery(...args);\n return ;\n };\n\nexport default withMediaQuery;\n","import axios from \"axios\";\nimport { URL } from \"../config/config\";\n\nconst initialState = {\n allPlanFamilies: {},\n isLoading: false,\n error: null,\n};\n\nconst LOAD_START = \"PlanFamilies/LOAD_START\";\nconst LOAD_SUCCESS = \"PlanFamilies/LOAD_SUCCESS\";\nconst EDIT_PLAN = \"PlanFamilies/EDIT_PLAN\";\nconst ADD_PLAN = \"PlanFamilies/ADD_PLAN\";\nconst LOAD_FAILURE = \"PlanFamilies/LOAD_FAILURE\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = (payload) => ({\n type: LOAD_SUCCESS,\n payload,\n});\n\nconst editPlan = (payload) => ({\n type: EDIT_PLAN,\n payload,\n});\n\nconst addPlan = (payload) => ({\n type: ADD_PLAN,\n payload,\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const fetchPlanFamilies = () => (dispatch, getState) => {\n const { user } = getState().login;\n if (user.isReferral) {\n return;\n }\n dispatch(loadStart());\n axios\n .get(URL + \"/api/get-partner-plan-families\")\n .then((response) => {\n const { planFamily } = response.data;\n const plansObj = {};\n for (const value of planFamily) plansObj[value._id] = value;\n dispatch(loadSuccess(plansObj));\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport const modifyPlan = (payload) => (dispatch) => {\n dispatch(editPlan(payload));\n};\n\nexport const addNewPlan = (payload) => (dispatch) => {\n dispatch(addPlan(payload));\n};\n\nexport default function PlanFamilyReducer(\n state = initialState,\n { type, payload }\n) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n allPlanFamilies: { ...payload },\n isLoading: false,\n error: null,\n };\n\n case EDIT_PLAN:\n return {\n ...state,\n allPlanFamilies: {\n ...state.allPlanFamilies,\n [payload.planId]: {\n ...state.allPlanFamilies[payload.planId],\n plans: payload.plans,\n },\n },\n isLoading: false,\n error: null,\n };\n\n case ADD_PLAN:\n return {\n ...state,\n allPlanFamilies: {\n ...state.allPlanFamilies,\n [payload._id]: { ...payload },\n },\n isLoading: false,\n error: null,\n };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: false, error: payload };\n\n default:\n return state;\n }\n}\n","import axios from \"axios\";\nimport { URL } from \"../config/config\";\n\nconst initialState = {\n allWccPlans: {},\n isLoading: false,\n error: null,\n};\n\nconst LOAD_START = \"WccPlan/LOAD_START\";\nconst LOAD_SUCCESS = \"WccPlan/LOAD_SUCCESS\";\nconst EDIT_PLAN = \"WccPlan/EDIT_PLAN\";\nconst ADD_PLAN = \"WccPlan/ADD_PLAN\";\nconst LOAD_FAILURE = \"WccPlan/LOAD_FAILURE\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = (payload) => ({\n type: LOAD_SUCCESS,\n payload,\n});\n\nconst editPlan = (payload) => ({\n type: EDIT_PLAN,\n payload,\n});\n\nconst addPlan = (payload) => ({\n type: ADD_PLAN,\n payload,\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const fetchWccPlans = () => (dispatch, getState) => {\n const { user } = getState().login;\n if (user.isReferral) {\n return;\n }\n dispatch(loadStart());\n axios\n .get(URL + \"/api/get-partner-wcc-plans\")\n .then((response) => {\n const { wccPlan } = response.data;\n const plansObj = {};\n for (const value of wccPlan) plansObj[value._id] = value;\n dispatch(loadSuccess(plansObj));\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport const modifyWccPlan = (payload) => (dispatch) => {\n dispatch(editPlan(payload));\n};\n\nexport const addWccPlan = (payload) => (dispatch) => {\n dispatch(addPlan(payload));\n};\n\nexport default function WccPlanReducer(\n state = initialState,\n { type, payload }\n) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n allWccPlans: { ...payload },\n isLoading: false,\n error: null,\n };\n\n case EDIT_PLAN:\n return {\n ...state,\n allWccPlans: {\n ...state.allWccPlans,\n [payload.wccPlanId]: {\n ...state.allWccPlans[payload.wccPlanId],\n business_initiated: payload.bic,\n user_initiated: payload.uic,\n },\n },\n isLoading: false,\n error: null,\n };\n case ADD_PLAN:\n return {\n ...state,\n allWccPlans: {\n ...state.allWccPlans,\n [payload._id]: { ...payload },\n },\n isLoading: false,\n error: null,\n };\n case LOAD_FAILURE:\n return { ...state, isLoading: false, error: payload };\n\n default:\n return state;\n }\n}\n","import axios from \"axios\";\nimport { APIURL } from \"../../config/config\";\nimport { StaticRouter } from \"react-router\";\n\nconst initialState = {\n // \"business\": [],\n business: Array(10)\n .fill(0)\n .map((item) => ({ name: \"Loading\" })),\n skip: 0,\n totalBusinesses: 0,\n isLoading: true,\n error: null,\n page: 0,\n rowsPerPage: 10,\n allCount: 0,\n archivedCount: 0,\n};\n\nconst CREATE_CLIENT = \"Client/CREATE_CLIENT\";\nconst LOAD_START = \"Client/LOAD_START\";\nconst LOAD_SUCCESS = \"Client/LOAD_SUCCESS\";\nconst LOAD_MORE_SUCCESS = \"Client/LOAD_MORE_SUCCESS\";\nconst LOAD_FAILURE = \"Client/LOAD_FAILURE\";\nconst ADD_CLIENT = \"Client/ADD_CLIENT\";\nconst CHANGE_PAGE = \"Client/CHANGE_PAGE\";\nconst CHANGE_ROWS_PER_PAGE = \"Clients/CHANGE_ROWS_PER_PAGE\";\nconst CHANGE_QUERY = \"Clients/CHANGE_QUERY\";\nconst CHANGE_STATUS = \"Clients/CHANGE_STATUS\";\nconst EXIT_CLIENTS = \"TEMPLATE/EXIT_CLIENTS\";\nconst LOAD_DATE = \"LOAD_DATE/CLIENTS\";\nconst LOAD_APPLIED = \"LOAD_APPLIED/CLIENT\";\nconst LOAD_BUSINESS_COUNTS = \"LOAD_BUSINESS_COUNTS/CLIENT\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = ({ business, skip, totalBusinesses }) => ({\n type: LOAD_SUCCESS,\n payload: { business, skip, totalBusinesses },\n});\n\nconst createClient = ({ business, totalBusinesses, createdAt }) => ({\n type: CREATE_CLIENT,\n payload: { business, totalBusinesses, createdAt },\n});\n\nconst loadmoresuccess = ({ business, newSkip }) => ({\n type: LOAD_MORE_SUCCESS,\n payload: { business, newSkip },\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nconst loadBusinessCount = ({ all, archived }) => ({\n type: LOAD_BUSINESS_COUNTS,\n payload: {\n all,\n archived,\n },\n});\n\nexport const loadClient = (filters) => (dispatch, getState) => {\n const { rowsPerPage } = getState().client;\n const { user } = getState().login;\n const sort = filters.sort;\n const newFilter = { ...filters };\n delete newFilter.sort;\n console.log({ user });\n\n dispatch(loadStart);\n axios\n .post(APIURL + `${`/affiliates/get-affiliate-links`}?sort=${sort}`, {\n skip: 0,\n rowsPerPage,\n ...(user.isReferral ? { partnerReferralId: user.id } : {}),\n ...newFilter,\n })\n .then((response) => {\n const { business, newSkip, totalBusinesses } = response.data;\n\n dispatch(\n loadSuccess({\n business: business,\n skip: newSkip,\n totalBusinesses: totalBusinesses,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport const loadSearch = (filter) => (dispatch, getState) => {\n const skip = 0;\n const rowsPerPage = 0;\n const clientSearch = true;\n const { user } = getState().login;\n dispatch(loadStart);\n axios\n .post(APIURL + `${`/affiliates/get-affiliate-links`}`, {\n ...(user.isReferral ? { partnerReferralId: user.id } : {}),\n skip,\n rowsPerPage,\n filter,\n clientSearch,\n })\n .then((response) => {\n const { business, newSkip, totalBusinesses } = response.data;\n dispatch(\n loadSuccess({\n business: business,\n skip: newSkip,\n totalBusinesses: totalBusinesses,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport const loadNext = (event, newPage, filters) => (dispatch, getState) => {\n const { rowsPerPage, skip, business } = getState().client;\n const { user } = getState().login;\n const sort = filters.sort;\n const newFilter = { ...filters };\n delete newFilter.sort;\n\n if (business.length > newPage * rowsPerPage) {\n dispatch({ type: CHANGE_PAGE, payload: newPage });\n } else {\n dispatch({ type: CHANGE_PAGE, payload: newPage });\n axios\n .post(APIURL + `${`/affiliates/get-affiliate-links`}?sort=${sort}`, {\n skip,\n rowsPerPage,\n ...(user.isReferral ? { partnerReferralId: user.id } : {}),\n ...newFilter,\n })\n .then((response) => {\n const { business, newSkip } = response.data;\n dispatch(loadmoresuccess({ business: business, newSkip: newSkip }));\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n }\n};\n\nexport const createnewClient = (business) => (dispatch, getState) => {\n const totalBusinesses = getState().client.totalBusinesses;\n dispatch(\n createClient({\n business: { ...business, _id: business.id },\n totalBusinesses: totalBusinesses,\n createdAt: Date.now(),\n })\n );\n};\n\nexport const addClient = (client) => (dispatch) => {\n dispatch({ type: ADD_CLIENT, payload: client });\n};\n\nexport const changeQuery = (nameQuery) => (dispatch) => {\n dispatch({ type: CHANGE_QUERY, payload: nameQuery });\n};\n\nexport const changeRowsPerPage = (rowsPerPage) => (dispatch) => {\n dispatch({ type: CHANGE_ROWS_PER_PAGE, payload: rowsPerPage });\n};\n\nexport const unfetchclients = () => (dispatch) => {\n dispatch({ type: EXIT_CLIENTS, payload: null });\n};\n\nexport const fetchBusinessCounts = () => (dispatch, getState) => {\n axios\n .post(APIURL + \"/affiliates/link-count\", {})\n .then((response) => {\n const allCount = response?.data?.counts;\n dispatch(\n loadBusinessCount({\n all: allCount || 0,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport default function ClientReducer(state = initialState, { type, payload }) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n business: [...payload.business],\n skip: payload.skip,\n totalBusinesses: payload.totalBusinesses,\n page: 0,\n isLoading: false,\n error: null,\n };\n case LOAD_DATE:\n return {\n ...state,\n applied: {\n ...state.applied,\n createdAt: {\n ...state.applied.createdAt,\n startDate: payload.fromDate,\n endDate: payload.toDate,\n },\n },\n };\n case CREATE_CLIENT:\n const businessList = [...state.business];\n if (businessList.length > 9) {\n businessList.pop();\n }\n return {\n ...state,\n business: [\n {\n ...payload.business,\n displayName: payload.business.display_name,\n createdOn: payload.createdAt,\n },\n ...businessList,\n ],\n totalBusinesses: payload.totalBusinesses + 1,\n };\n\n case LOAD_MORE_SUCCESS:\n return {\n ...state,\n business: [...state.business, ...payload.business],\n skip: payload.newSkip,\n isLoading: false,\n };\n\n case CHANGE_ROWS_PER_PAGE:\n return { ...state, rowsPerPage: payload, page: 0 };\n\n case CHANGE_PAGE:\n return { ...state, page: payload };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: true, error: payload };\n\n case ADD_CLIENT:\n return {\n ...state,\n business: { [payload.name]: payload, ...state.business },\n };\n\n case LOAD_APPLIED:\n return {\n ...state,\n applied: { ...state.applied, ...payload.applied },\n };\n\n case LOAD_BUSINESS_COUNTS:\n return {\n ...state,\n allCount: payload.all,\n archivedCount: payload.archived,\n };\n\n case CHANGE_QUERY:\n return {\n ...state,\n nameQuery: payload,\n };\n\n case EXIT_CLIENTS:\n return {\n ...initialState,\n };\n\n case CHANGE_STATUS:\n return {\n ...state,\n business: {\n ...state.business,\n [payload.displayName]: {\n ...state.business[payload.displayName],\n status: payload.status,\n },\n },\n };\n\n default:\n return state;\n }\n}\n","import axios from \"axios\";\nimport { URL } from \"../../config/config\";\n\nconst initialState = {\n templates: [],\n skip: 0,\n totalprojects: 0,\n isLoading: false,\n error: null,\n page: 0,\n rowsPerPage: 10,\n after: null,\n};\n\nconst LOAD_START = \"TEMPLATE/LOAD_START\";\nconst LOAD_SUCCESS = \"TEMPLATE/LOAD_SUCCESS\";\nconst LOAD_FAILURE = \"TEMPLATE/LOAD_FAILURE\";\nconst ADD_TEMPLATE = \"TEMPLATE/ADD_TEMPLATE\";\nconst CHANGE_PAGE = \"TEMPLATE/CHANGE_PAGE\";\nconst EXIT_TEMPLETE = \"TEMPLATE/EXIT_TEMPLETE\";\nconst LOAD_MORE_SUCCESS = \"TEMPLATE/LOAD_MORE_SUCCESS\";\nconst LOAD_DATE = \"LOAD_DATE/TEMPLATES\";\nconst LOAD_APPLIED = \"LOAD_APPLIED/TEMPLATES\";\nconst CREATE_TEMPLATE = \"TEMPLATES/CREATE_TEMPLATES\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst createTemplate = ({ templates, totalprojects, createdAt }) => ({\n type: CREATE_TEMPLATE,\n payload: { templates, totalprojects, createdAt },\n});\n\nconst loadDate = ({ fromDate, toDate }) => ({\n type: LOAD_DATE,\n payload: { fromDate, toDate },\n});\nconst loadapplied = ({ applied }) => ({\n type: LOAD_APPLIED,\n payload: applied,\n});\n\nconst loadSuccess = ({ templates, skip, totalprojects, after }) => ({\n type: LOAD_SUCCESS,\n payload: { templates, skip, totalprojects, after },\n});\n\nconst loadmoresuccess = ({ templates, newSkip, after }) => ({\n type: LOAD_MORE_SUCCESS,\n payload: { templates, newSkip, after },\n});\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const fetchTemplateMessages =\n (assistantId, filters, type, limit, after) => (dispatch, getState) => {\n const { rowsPerPage } = getState().template;\n const sort = filters.sort;\n const newFilter = { ...filters };\n\n delete newFilter.sort;\n dispatch(loadStart());\n const mainURL =\n type === \"DIRECT\"\n ? URL + `/api/direct-api-partner/templates/project/${assistantId}`\n : URL + `/api/template-lists?sort=${sort}`;\n\n axios\n .post(\n mainURL,\n type === \"DIRECT\"\n ? { projectId: assistantId, limit, after }\n : {\n skip: 0,\n rowsPerPage,\n assistantId,\n ...newFilter,\n }\n )\n .then((response) => {\n const { templates, newSkip, totalprojects, after } = response.data;\n dispatch(\n loadSuccess({\n templates: templates,\n skip: newSkip,\n totalprojects: totalprojects,\n after,\n })\n );\n })\n\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n };\n\nexport const createnewTemplate = (templates) => (dispatch, getState) => {\n const totalprojects = getState().template.totalprojects;\n dispatch(\n createTemplate({\n templates: templates,\n totalprojects: totalprojects,\n createdAt: Date.now(),\n })\n );\n};\n\nexport const loadSearch =\n (filter, type, assistantId) => (dispatch, getState) => {\n const skip = 0;\n const rowsPerPage = 0;\n dispatch(loadStart);\n axios\n .post(\n URL +\n (type !== \"DIRECT\"\n ? \"/api/template-lists\"\n : \"/api/direct-api-partner/templates/search\"),\n {\n skip,\n rowsPerPage,\n filter,\n assistantId,\n }\n )\n .then((response) => {\n const { templates, newSkip, totalprojects } = response.data;\n dispatch(\n loadSuccess({\n templates: templates,\n newSkip: newSkip,\n totalprojects: totalprojects,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n };\n\nexport const loadNext =\n (event, newPage, assistantId, filters, type, limit, after, totalprojects) =>\n (dispatch, getState) => {\n const { rowsPerPage, skip, templates } = getState().template;\n const sort = filters.sort;\n const newFilter = { ...filters };\n delete newFilter.sort;\n if (templates.length > newPage * rowsPerPage) {\n dispatch({ type: CHANGE_PAGE, payload: newPage });\n } else {\n dispatch({ type: CHANGE_PAGE, payload: newPage });\n const mainURL =\n type === \"DIRECT\"\n ? URL + `/api/direct-api-partner/templates/project/${assistantId}`\n : URL + `/api/template-lists?sort=${sort}`;\n axios\n .post(\n mainURL,\n type === \"DIRECT\"\n ? { projectId: assistantId, limit, after, totalprojects }\n : {\n skip,\n rowsPerPage,\n assistantId,\n ...newFilter,\n }\n )\n .then((response) => {\n const { templates, newSkip, after } = response.data;\n dispatch(\n loadmoresuccess({ templates: templates, newSkip: newSkip, after })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n }\n };\n\nexport const addTemplateMessage = (template) => (dispatch) => {\n dispatch({ type: ADD_TEMPLATE, payload: template });\n};\n\nexport const unfetchTemplateMessages = () => (dispatch) => {\n dispatch({ type: EXIT_TEMPLETE, payload: null });\n};\n\nexport default function TemplateMessageReducer(\n state = initialState,\n { type, payload }\n) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n templates: [...payload.templates],\n totalprojects: payload.totalprojects,\n skip: payload.skip,\n assistantId: payload.assistantId,\n isLoading: false,\n error: null,\n after: payload.after,\n };\n case LOAD_DATE:\n return {\n ...state,\n applied: {\n ...state.applied,\n createdAt: {\n ...state.applied.createdAt,\n startDate: payload.fromDate,\n endDate: payload.toDate,\n },\n },\n };\n\n case LOAD_APPLIED:\n return {\n ...state,\n applied: { ...state.applied, ...payload.applied },\n };\n\n case CREATE_TEMPLATE:\n const templateList = [...state.templates];\n if (templateList.length > 9) {\n templateList.pop();\n }\n return {\n ...state,\n templates: [\n { ...payload.templates, createdAt: payload.createdAt },\n ...templateList,\n ],\n totalprojects: payload.totalprojects + 1,\n };\n\n case CHANGE_PAGE:\n return { ...state, page: payload };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: false, error: payload };\n\n case LOAD_MORE_SUCCESS:\n return {\n ...state,\n templates: [...state.templates, ...payload.templates],\n skip: payload.newSkip,\n isLoading: false,\n assistantId: payload.assistantId,\n after: payload.after,\n };\n\n case ADD_TEMPLATE:\n return {\n ...state,\n templates: { ...state.templates, [payload.name]: payload },\n };\n\n case EXIT_TEMPLETE:\n return {\n ...initialState,\n };\n\n default:\n return state;\n }\n}\n","import axios from \"axios\";\nimport { APIURL, projectURL } from \"../config/config\";\nconst arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n .fill(0)\n .map((item) => ({ name: \"Loading\" }));\nconst initialState = {\n assistants: { arr },\n webhooks: {},\n isLoading: false,\n error: null,\n skip: 0,\n page: 0,\n rowsPerPage: 10,\n total: 0,\n nameQuery: \"\",\n allCount: 0,\n liveCount: 0,\n wabaCount: 0,\n draftCount: 0,\n trialPlanCount: 0,\n monthlyPlanCount: 0,\n yearlyPlanCount: 0,\n deletedCount: 0,\n stoppedCount: 0,\n};\n\nconst LOAD_START = \"ASSISTANT/LOAD_START\";\nconst LOAD_SUCCESS = \"ASSISTANT/LOAD_SUCCESS\";\nconst LOAD_FAILURE = \"ASSISTANT/LOAD_FAILURE\";\nconst CHANGE_PAGE = \"ASSISTANT/CHANGE_PAGE\";\nconst LOAD_MORE_SUCCESS = \"ASSISTANT/LOAD_MORE_SUCCESS\";\nconst CHANGE_ROWS_PER_PAGE = \"ASSISTANT/CHANGE_ROWS_PER_PAGE\";\nconst LOAD_PROJECT_COUNTS = \"ASSISTANT/LOAD_PROJECT_COUNTS\";\nconst EDIT_PROJECT = \"ASSISTANT/EDIT_PROJECT\";\nconst PROJECT_WEBHOOKS = \"ASSISTANT/PROJECT_WEBHOOKS\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = ({ assistants, skip, total }) => ({\n type: LOAD_SUCCESS,\n payload: { assistants, skip, total },\n});\n\nconst loadProjectCount = ({ all, live, draft, wabaCount, trialPlan }) => ({\n type: LOAD_PROJECT_COUNTS,\n payload: {\n all,\n live,\n draft,\n wabaCount,\n trialPlan,\n },\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const editAssistants = (id, field, value) => (dispatch) => {\n dispatch({ type: EDIT_PROJECT, payload: { id, field, value } });\n};\n\nexport const changeRowsPerPage = (rowsPerPage) => (dispatch) => {\n dispatch({ type: CHANGE_ROWS_PER_PAGE, payload: rowsPerPage });\n};\n\nexport const fetchAssistantsCounts =\n (isSuperAffiliate) => (dispatch, getState) => {\n const { user } = getState().login;\n\n axios\n .post(APIURL + \"/affiliates/fetch-affiliate-projects-count\", {\n isSuperAffiliate,\n })\n .then((response) => {\n const { liveCount, draftCount, wabaCount } = response.data;\n dispatch(\n loadProjectCount({\n live: liveCount || 0,\n draft: draftCount || 0,\n wabaCount: wabaCount || 0,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n };\n\nexport const fetchAssistants =\n (filters, isSuperAffiliate) => (dispatch, getState) => {\n const { rowsPerPage } = getState().assistants;\n const { user } = getState().login;\n const sort = filters.sort;\n const newFilter = { ...filters };\n const ft = { ...newFilter };\n delete newFilter.sort;\n dispatch(loadStart());\n const endpoint =\n newFilter?.filter === \"Conversions\" // special handling for conversions\n ? \"/affiliates/affiliate-billing-activity-logs\"\n : \"/affiliates/fetch-affiliate-projects\";\n\n axios\n .post(APIURL + `${endpoint}?sort=` + sort, {\n skip: 0,\n rowsPerPage: rowsPerPage || 10,\n ...newFilter,\n isSuperAffiliate,\n })\n .then((response) => {\n let assistants = response.data;\n let assistantsObj = {};\n newFilter?.filter === \"Conversions\"\n ? assistants?.partnerBillingLogs?.forEach((log) => {\n assistantsObj[log._id] = log;\n })\n : assistants?.projects?.forEach((assistant) => {\n assistantsObj[assistant._id] = assistant;\n });\n dispatch(\n loadSuccess({\n assistants: assistantsObj,\n skip: assistants.newSkip,\n total: assistants.totalprojects,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n };\n\nexport const loadNextAssistants =\n (filter, isSuperAffiliate) => (dispatch, getState) => {\n const { rowsPerPage, skip, assistants, page } = getState().assistants;\n const { user } = getState().login;\n const sort = filter.sort;\n const newFilter = { ...filter };\n delete newFilter.sort;\n if (Object.values(assistants).length > (page + 1) * rowsPerPage) {\n dispatch({ type: CHANGE_PAGE, payload: page + 1 });\n } else {\n dispatch(loadStart());\n dispatch({ type: CHANGE_PAGE, payload: page + 1 });\n\n const endpoint =\n newFilter?.filter === \"Conversions\"\n ? \"/affiliates/affiliate-billing-activity-logs\"\n : \"/affiliates/fetch-affiliate-projects\";\n\n axios\n .post(APIURL + `${endpoint}?sort=` + sort, {\n skip,\n rowsPerPage,\n ...newFilter,\n isSuperAffiliate,\n })\n .then((response) => {\n const { projects, newSkip } = response.data;\n const assistantsObj = {};\n newFilter?.filter === \"Conversions\"\n ? projects?.forEach((log) => {\n assistantsObj[log._id] = log;\n })\n : projects?.forEach((assistant) => {\n assistantsObj[assistant._id] = assistant;\n });\n dispatch({\n type: LOAD_MORE_SUCCESS,\n payload: { assistants: assistantsObj, skip: newSkip },\n });\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n }\n };\n\nexport const loadPrevAssistants = () => (dispatch, getState) => {\n const { page } = getState().assistants;\n dispatch({ type: CHANGE_PAGE, payload: page - 1 });\n};\n\nexport const fetchAssistantsWebhooks = (projectId) => (dispatch, getState) => {\n dispatch(loadStart());\n axios\n .get(projectURL + `/project/${projectId}/webhooks`)\n .then((response) => {\n let webhooks = response.data;\n let webhooksObj = {};\n webhooks.forEach((assistant) => {\n webhooksObj[assistant.project_id] = assistant;\n });\n dispatch({\n type: PROJECT_WEBHOOKS,\n payload: { webhooks: webhooksObj },\n });\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport default function AssistantsMessageReducer(\n state = initialState,\n { type, payload }\n) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n assistants: { ...payload.assistants },\n isLoading: false,\n error: null,\n skip: payload.skip,\n total: payload.total,\n page: 0,\n };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: true, error: payload };\n\n case LOAD_MORE_SUCCESS:\n return {\n ...state,\n assistants: { ...state.assistants, ...payload.assistants },\n skip: payload.skip,\n isLoading: false,\n };\n\n case CHANGE_PAGE:\n return { ...state, page: payload };\n\n case CHANGE_ROWS_PER_PAGE:\n return { ...state, rowsPerPage: payload, page: 0 };\n\n case LOAD_PROJECT_COUNTS:\n return {\n ...state,\n allCount: payload.all,\n liveCount: payload.live,\n draftCount: payload.draft,\n wabaCount: payload.wabaCount,\n trialPlanCount: payload.trialPlan,\n monthlyPlanCount: payload.monthlyPlan,\n yearlyPlanCount: payload.yearlyPlan,\n deletedCount: payload.deleted,\n stoppedCount: payload.stopped,\n };\n\n case EDIT_PROJECT:\n const newObj = {};\n\n if (\n payload.field === \"address\" ||\n payload.field === \"description\" ||\n payload.field === \"email\" ||\n payload.field === \"websites\" ||\n payload.field === \"vertical\"\n ) {\n newObj.whatsAppBusinessProfile = {\n ...state.assistants[payload.id].whatsAppBusinessProfile,\n [payload.field]: payload.value,\n };\n } else {\n newObj[payload.field] = payload.value;\n }\n return {\n ...state,\n assistants: {\n ...state.assistants,\n [payload.id]: {\n ...state.assistants[payload.id],\n ...newObj,\n },\n },\n };\n\n case PROJECT_WEBHOOKS:\n return { ...state, webhooks: payload.webhooks };\n\n default:\n return state;\n }\n}\n","import axios from \"axios\";\nimport { URL } from \"../config/config\";\n\nconst initialState = {\n allBusiness: {},\n isLoading: false,\n error: null,\n};\n\nconst LOAD_START = \"BUSINESS/LOAD_START\";\nconst LOAD_SUCCESS = \"BUSINESS/LOAD_SUCCESS\";\nconst LOAD_FAILURE = \"BUSINESS/LOAD_FAILURE\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = (payload) => ({\n type: LOAD_SUCCESS,\n payload,\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const fetchBusiness = () => (dispatch, getState) => {\n const { user } = getState().login;\n dispatch(loadStart());\n axios\n .get(\n URL +\n `${\n user.isReferral\n ? `/api/partner-referral-allbusiness-lists?partnerReferralId=${user.id}`\n : `/api/allbusiness-lists`\n }`,\n {\n skip: 0,\n rowsPerPage: 0,\n partnerReferralId: user.id,\n }\n )\n .then((response) => {\n const { business } = response.data;\n let businessObj = {};\n business.forEach((item) => {\n businessObj[item._id] = item;\n });\n dispatch(loadSuccess(businessObj));\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport default function BusinessReducer(\n state = initialState,\n { type, payload }\n) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n allBusiness: { ...payload },\n isLoading: false,\n error: null,\n };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: false, error: payload };\n\n default:\n return state;\n }\n}\n","import axios from \"axios\";\nimport { URL } from \"../config/config\";\n\nconst initialState = {\n allProjects: {},\n isLoading: false,\n error: null,\n};\n\nconst LOAD_START = \"Projects/LOAD_START\";\nconst LOAD_SUCCESS = \"Projects/LOAD_SUCCESS\";\nconst LOAD_FAILURE = \"Projects/LOAD_FAILURE\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = (payload) => ({\n type: LOAD_SUCCESS,\n payload,\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const fetchProject = (businessId) => (dispatch, getState) => {\n const { user } = getState();\n dispatch(loadStart());\n const skip = 0;\n const rowsPerPage = 0;\n axios\n .post(\n URL +\n `${\n user.isReferral\n ? `/api/partner-referral-project-lists`\n : `/api/project-lists`\n }?sort=dec`,\n {\n skip,\n rowsPerPage,\n ...(user.isReferral ? { partnerReferralId: user.id } : {}),\n businessId,\n }\n )\n .then((response) => {\n const { projects } = response.data;\n dispatch(loadSuccess(projects));\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport default function ProjectReducer(\n state = initialState,\n { type, payload }\n) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n allProjects: { ...payload },\n isLoading: false,\n error: null,\n };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: false, error: payload };\n\n default:\n return state;\n }\n}\n","import axios from \"axios\";\n\nimport { TENANT_ID, URL } from \"../config/config\";\n\nconst initialState = {\n tenant: {},\n isLoading: false,\n error: null,\n};\n\nconst LOAD_START = \"TENANT/LOAD_START\";\nconst LOAD_SUCCESS = \"TENANT/LOAD_SUCCESS\";\nconst LOAD_FAILURE = \"TENANT/LOAD_FAILURE\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = (tenant) => ({\n type: LOAD_SUCCESS,\n payload: tenant,\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const fetchTenantDetails = () => (dispatch, getState) => {\n dispatch(loadStart());\n axios\n .post(URL + \"/api/get-tenant-profile\", {\n tenantId: TENANT_ID,\n })\n .then((response) => {\n const tenantData = response.data.data;\n dispatch(loadSuccess({ tenantData }));\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport default function tenantReducer(state = initialState, { type, payload }) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n tenant: { ...payload.tenantData },\n isLoading: false,\n error: null,\n };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: false, error: payload };\n\n default:\n return state;\n }\n}\n","import { combineReducers } from \"redux\";\n\nimport login from \"../pages/Login/loginstate\";\nimport client from \"../pages/Clients/Clientstore\";\nimport template from \"../pages/TemplateMsg/templateState\";\nimport partner from \"./partnerState\";\nimport assistants from \"./assistantState\";\nimport billing from \"../pages/BillingProfile/BillingStore\";\nimport business from \"./businessState\";\nimport projects from \"./projectState\";\nimport planFamilies from \"./planFamilyState\";\nimport wccPlans from \"./wccPlanState\";\nimport tenant from \"./tenantState\";\n\nexport default combineReducers({\n login,\n client,\n template,\n partner,\n assistants,\n billing,\n business,\n projects,\n planFamilies,\n wccPlans,\n tenant,\n});\n","import { createStore, applyMiddleware, compose } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport rootReducer from \"./rootReducer\";\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\nconst store = createStore(rootReducer, composeEnhancers(applyMiddleware(thunk)));\n\nexport default store;\n","import { fetchPlanFamilies } from \"../store/planFamilyState\";\nimport { fetchWccPlans } from \"../store/wccPlanState\";\nimport store from \"../store/store\";\nconst state = store.getState();\nconst dispatch = store.dispatch;\n\nconst setPlanFamilies = () => {\n const plans = state?.planFamilies?.allPlanFamilies;\n if (!plans || !Object.keys(plans).length) {\n const dispatch = store.dispatch;\n }\n};\n\nconst setWccPlans = () => {\n const plans = state?.planFamilies?.allWccPlans;\n if (!plans || !Object.keys(plans).length) {\n }\n};\n\nexport default { setPlanFamilies, setWccPlans };\n","const mouldBillingMessages = (props, type) => {\n const { partnerBillingLogs, page, rowsPerPage, isBillingLoading } = props;\n\n const bills = JSON.parse(\n JSON.stringify(\n partnerBillingLogs.slice(\n page * rowsPerPage,\n page * rowsPerPage + rowsPerPage\n )\n )\n );\n\n if (isBillingLoading) {\n return Array(10)\n .fill(0)\n .map((item) => ({ name: \"Loading\" }));\n }\n\n return bills;\n};\n\nexport default {\n mouldBillingMessages,\n};\n","import React, { Component } from \"react\";\nimport BillingTable from \"./BillingTable\";\nimport axios from \"axios\";\nimport { connect } from \"react-redux\";\nimport {\n loadNext,\n loadBills,\n unfetchbills,\n changeRowsPerPage,\n} from \"./BillingStore\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { TablePagination } from \"@material-ui/core\";\nimport \"react-dates/initialize\";\nimport \"react-dates/lib/css/_datepicker.css\";\nimport \"../../react-dates-custom.css\";\nimport { DateRangePicker } from \"react-dates\";\nimport moment from \"moment\";\nimport {\n withStyles,\n Button,\n Box,\n Typography,\n Grid,\n IconButton,\n TextField,\n Dialog,\n DialogContent,\n DialogActions,\n Snackbar,\n} from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport withMediaQuery from \"../../helpers/mediaQueryHelper\";\nimport { Clear } from \"@material-ui/icons\";\nimport { withRouter } from \"react-router-dom\";\nimport Header from \"../../commons/Header/Header\";\nimport plansHelper from \"../../helpers/plansHelper\";\nimport billingsHelper from \"../../helpers/billingsHelper\";\nimport { partnerURL } from \"../../config/config\";\n\nclass BillingPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n alertType: \"\",\n alertMsg: \"\",\n openDialog: false,\n insideAssistantpage: false,\n insideAssistant: false,\n applied: {\n createdAt: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n },\n billingFilter: {\n sort: \"dec\",\n },\n };\n }\n\n componentDidMount() {\n const assistantId = this.props.match.params.projectId;\n this.props.unfetchbills();\n this.props.loadBills(assistantId, this.state.billingFilter);\n }\n\n onSnackbarClose = () => {\n this.setState({\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n\n clearDate = (filterKey) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = null;\n applied[filterKey].endDate = null;\n this.setState({ applied });\n };\n checkDateInput = (filterKey) => {\n const applied = { ...this.state.applied };\n const s = applied[filterKey];\n if (s.startDate && s.endDate) {\n return;\n } else {\n this.clearDate(filterKey);\n }\n };\n setFocus = (filterKey, focusedInput) => {\n const applied = { ...this.state.applied };\n applied[filterKey].focusedInput = focusedInput;\n this.setState({ applied });\n };\n setDate = (filterKey, startDate, endDate) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = startDate;\n applied[filterKey].endDate = endDate;\n this.setState({ applied });\n };\n applyFilter = () => {\n const { applied, billingFilter } = this.state;\n const filterObj = { ...billingFilter };\n if (applied.createdAt.startDate && applied.createdAt.endDate) {\n filterObj.fromDate = applied.createdAt.startDate._d;\n filterObj.toDate = applied.createdAt.endDate._d;\n } else {\n delete filterObj.fromDate;\n delete filterObj.toDate;\n }\n this.setState(\n {\n billingFilter: filterObj,\n openDialog: false,\n },\n () => {\n this.onTabChange();\n }\n );\n };\n onTabChange = () => {\n const assistantId = this.props.match.params.projectId;\n this.props.loadBills(assistantId, this.state.billingFilter);\n };\n loadnextpage = (event, newPage) => {\n const assistantId = this.props.match.params.projectId;\n this.props.loadNext(event, newPage, assistantId, this.state.billingFilter);\n };\n handleChangeRowsPerPage = (event) => {\n const rowsPerPage = parseInt(event.target.value, 10);\n this.props.changeRowsPerPage(rowsPerPage);\n this.onTabChange();\n };\n toggleDialog = () => {\n this.setState({ openDialog: !this.state.openDialog });\n };\n\n render() {\n const { classes, mediaQuery, partner } = this.props;\n const { type } = partner || {};\n const bills = billingsHelper.mouldBillingMessages(this.props, type);\n const { billingFilter, applied } = this.state;\n\n return (\n
\n {!this.props.assistants && !this.state.insideAssistantpage && (\n \n )}\n \n {/* Layout */}\n \n \n {/* First section */}\n {/* Scrollable (x & y) table container */}\n \n \n \n \n {/* First section */}\n {/* Scrollable (x & y) table container */}\n
\n {!this.props.assistants && this.state.insideAssistantpage ? (\n \n \n Waba is not live yet!\n \n
\n ) : (\n
\n \n
\n )}\n
\n \n \n
\n {!this.props.assistants && this.state.insideAssistantpage ? (\n <>\n ) : (\n <>\n \n \n )}\n
\n \n \n \n \n Filter\n \n \n \n \n \n \n \n\n {/* \n Sort\n \n\n {\n const filterObj = {\n ...this.state.billingFilter,\n sort: value === \"Descending\" ? \"dec\" : \"asc\",\n };\n this.setState({ billingFilter: filterObj });\n }}\n name=\"sort\"\n options={[\"Descending\", \"Ascending\"]}\n renderInput={(params) => (\n \n )}\n /> */}\n \n \n \n \n this.clearDate(\"createdAt\")}\n style={{ marginRight: 8 }}\n >\n Clear Filter\n \n \n Apply\n \n \n \n \n \n \n {this.state.alertMsg}\n \n \n \n );\n }\n}\n\nfunction DateFilter({\n filterKey,\n applied,\n setFocus,\n setDate,\n checkDateInput,\n clearDate,\n ...props\n}) {\n const { classes, filterName } = props;\n const A = applied[filterKey];\n return (\n \n \n \n \n {filterName}\n \n \n \n checkDateInput(filterKey)}\n startDateId=\"startDate\"\n endDateId=\"endDate\"\n startDate={A.startDate}\n endDate={A.endDate}\n onDatesChange={({ startDate, endDate }) =>\n setDate(filterKey, startDate, endDate)\n }\n focusedInput={A.focusedInput}\n onFocusChange={(focusedInput) => setFocus(filterKey, focusedInput)}\n navPosition=\"navPositionTop\"\n numberOfMonths={1}\n hideKeyboardShortcutsPanel\n customArrowIcon={null}\n screenReaderInputMessage={\" \"}\n small\n readOnly\n isOutsideRange={(day) => moment().diff(day) < 0}\n />\n \n \n {A.startDate && A.endDate ? (\n \n clearDate(filterKey)}\n >\n \n \n \n ) : (\n \"\"\n )}\n \n \n \n );\n\n // function setToday()\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // paddingBottom: \"80px\"\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 65,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n container: {\n background: \"white\",\n borderRadius: \"8px\",\n },\n attachTooltipPopper: {\n \"& .MuiTooltip-tooltip\": {\n padding: 0,\n background: \"rgb(70 20 134 / 15%)\",\n borderRadius: 8,\n boxShadow: \"0 0 6px #c6c6c6\",\n },\n \"& .MuiTooltip-arrow\": {\n color: \"rgb(70 20 134 / 15%)\",\n filter: \"drop-shadow(0px -2px 1px #ddd)\",\n },\n },\n fixedBottomContainer: {\n position: \"fixed\",\n height: \"60px\",\n borderTop: \"1px solid lightgrey\",\n background: \"white\",\n bottom: \"0\",\n left: \"71px\",\n right: \"0\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n [theme.breakpoints.down(\"sm\")]: {\n left: \"0px\",\n height: \"50px\",\n },\n },\n tableContainer: {\n top: \"60px\",\n height: \"calc(100vh - 180px)\",\n width: \"100%\",\n overflow: \"hidden\",\n // background: \"red\",\n boxSizing: \"border-box\",\n position: \"sticky\",\n [theme.breakpoints.down(\"sm\")]: {\n // position top + bottombar height + bottom padding + navbar\n height: \"calc(100vh - 70px - 50px - 10px - 50px)\",\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n textFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px 10px\",\n height: 32,\n marginBottom: \"20px\",\n background: \"white\",\n border: \"1px solid #d3d3d3\",\n \"& input\": {\n padding: \"0px 12px!important\",\n },\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n phoneTextFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n \"& input\": { width: \"calc(100% - 80px)\", marginLeft: \"80px\" },\n background: \"white\",\n border: \"2px solid grey\",\n },\n\n codeTextFieldRoot: {\n width: \"90px\",\n padding: \"0 0 0 14px\",\n position: \"absolute\",\n zIndex: 1,\n margin: \"10px 0 0 2px\",\n background: \"white\",\n \"& input\": {\n padding: \"10px 0 !important\",\n },\n \"& button\": {\n width: \"12px\",\n position: \"relative\",\n left: \"7px\",\n background: \"white\",\n borderRadius: 0,\n \"&:hover\": {\n background: \"white\",\n },\n },\n \"& div\": {\n paddingRight: \"0px !important\",\n },\n },\n passwordIcon: {\n cursor: \"pointer\",\n fontSize: 20,\n },\n\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 8px\",\n paddingTop: \"0px\",\n // marginTop: \"4px\",\n height: 32,\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n textFieldPopper: {\n [theme.breakpoints.down(\"md\")]: {\n left: \"12px !important\",\n minWidth: \"calc(100% - 35px)\",\n },\n [theme.breakpoints.up(\"md\")]: {\n left: \"calc(12.5vw - 16px) !important\",\n minWidth: \"calc(25vw + 54px)\",\n },\n },\n textField: {\n width: 300,\n marginRight: 8,\n height: 42,\n },\n dialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"600px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n\n sortFormControl: {\n width: 120,\n marginRight: 8,\n height: 32,\n borderRadius: \"4px\",\n border: \"1px solid lightgrey\",\n },\n});\n// export default withStyles(styles)(withMediaQuery('(min-width:600px)')(Main));\nconst Billingconnect = connect(\n (state) => ({\n partnerBillingLogs: state.billing.partnerBillingLogs,\n isBillingLoading: state.billing.isLoading,\n skip: state.billing.skip,\n totalprojects: state.billing.totalprojects,\n billingAssistant: state.billing.assistantId,\n isLoading: state.billing.isLoading,\n error: state.billing.error,\n page: state.billing.page,\n rowsPerPage: state.billing.rowsPerPage,\n nameQuery: state.billing.nameQuery,\n partnerPlanFamily: state.planFamilies.allPlanFamilies,\n isPlansLoading: state.planFamilies.isLoading,\n partner: state.partner.partner,\n }),\n { loadNext, loadBills, unfetchbills, changeRowsPerPage }\n)(BillingPage);\n\nexport default withStyles(styles)(\n withMediaQuery(\"(max-width:600px)\")(withRouter(Billingconnect))\n);\n","import React, { Component } from \"react\";\nimport axios from \"axios\";\nimport { Redirect } from \"react-router-dom\";\nimport {\n withStyles,\n Grid,\n Button,\n Box,\n Typography,\n IconButton,\n TextField,\n Snackbar,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { ArrowBackOutlined } from \"@material-ui/icons\";\nimport { Autocomplete, Alert } from \"@material-ui/lab\";\nimport { connect } from \"react-redux\";\nimport { URL } from \"../../config/config\";\nconst STATUS = [\"PENDING\", \"APPROVED\", \"REJECTED\"];\n\nfunction getStatusColor() {\n const templateStatus = \"PENDING\";\n switch (templateStatus) {\n case \"PENDING\":\n return \"grey\";\n case \"APPROVED\":\n return \"#08CF65\";\n case \"REJECTED\":\n return \"#ff0000\";\n default:\n return \"pink\";\n }\n}\n\nclass TemplateDetails extends Component {\n constructor(props) {\n super(props);\n this.state = {\n status: \"\",\n processed: \"\",\n callToAction: [],\n quickReplies: [],\n label: \"\",\n category: \"\",\n type: \"\",\n name: \"\",\n format: \"\",\n sampleMessage: \"\",\n actionType: \"\",\n sampleMediaUrl: \"\",\n sampleCTAUrl: \"\",\n parameters: 0,\n header: null,\n footer: null,\n namespace: \"\",\n rejectedReason: \"\",\n templateLanguage: \"\",\n assistantName: \"\",\n Loading: true,\n };\n }\n componentDidMount() {\n const { templateId: _id, user, partner, templates } = this.props;\n const { type } = partner || {};\n const partnerId = user?.id;\n if (type !== \"DIRECT\")\n (() => {\n axios\n .get(URL + `/api/${partnerId}/template-detials/${_id}`)\n .then((response) => {\n const {\n status,\n processed,\n callToAction,\n quickReplies,\n label,\n category,\n type,\n name,\n format,\n headerText,\n footerText,\n sampleMessage,\n actionType,\n sampleMediaUrl,\n sampleCTAUrl,\n parameters,\n namespace,\n rejectedReason,\n templateLanguage,\n assistantName,\n } = response.data[0];\n\n this.setState({\n status: status,\n processed: processed,\n callToAction: callToAction,\n quickReplies: quickReplies,\n label: label,\n category: category,\n type: type,\n name: name,\n format: format,\n sampleMessage: sampleMessage,\n actionType: actionType,\n sampleMediaUrl: sampleMediaUrl,\n sampleCTAUrl: sampleCTAUrl,\n parameters: parameters,\n namespace: namespace,\n rejectedReason: rejectedReason,\n templateLanguage: templateLanguage,\n assistantName: assistantName,\n header: headerText,\n footer: footerText,\n Loading: false,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n })();\n else {\n try {\n const template = templates.find((e) => e._id === _id);\n const {\n status,\n processed,\n callToAction,\n quickReplies,\n label,\n category,\n type,\n name,\n format,\n headerText,\n footerText,\n sampleMessage,\n actionType,\n sampleMediaUrl,\n sampleCTAUrl,\n parameters,\n namespace,\n rejectedReason,\n templateLanguage,\n assistantName,\n } = template;\n this.setState({\n status: status,\n processed: processed,\n callToAction: callToAction,\n quickReplies: quickReplies,\n label: label,\n category: category,\n type: type,\n name: name,\n format: format,\n sampleMessage: sampleMessage,\n actionType: actionType,\n sampleMediaUrl: sampleMediaUrl,\n sampleCTAUrl: sampleCTAUrl,\n parameters: parameters,\n namespace: namespace,\n rejectedReason: rejectedReason,\n templateLanguage: templateLanguage,\n assistantName: assistantName,\n header: headerText,\n footer: footerText,\n Loading: false,\n });\n } catch (e) {\n console.log(e);\n }\n }\n }\n\n render() {\n const { classes, match, templates, user, partner } = this.props;\n const { type } = partner || {};\n const toggleDialog = () => {\n // this.props.history.goBack();\n this.props.setTemplateId(null);\n };\n\n return (\n \n \n \n \n \n \n \n \n {this.state.assistantName} : {this.state.name}\n \n \n <>\n {\" \"}\n {this.state.Loading ? (\n \n \n \n ) : (\n
\n \n \n \n \n \n {\n this.setState({ contactName: e.target.value });\n }}\n className={classes.textField}\n disabled=\"true\"\n margin=\"dense\"\n value={this.state.status}\n />\n \n \n \n {this.state.rejectedReason ? (\n \n \n Failure Reason\n \n \n {this.state.rejectedReason}\n \n \n ) : (\n \"\"\n )}\n\n \n \n Template Name\n \n \n {this.state.name}\n \n \n\n \n \n Template Category\n \n \n {this.state.category}\n \n \n \n \n Template Language\n \n \n {this.state.language || this.state.templateLanguage}\n \n \n \n \n Template Type\n \n \n {this.state.type}\n \n \n {this.state.header && (\n \n \n Template Header\n \n
\n                        \n                          {this.state.header}\n                        \n                      
\n
\n )}\n \n \n Template Format\n \n {/*
 */}\n                    \n                      {this.state.format}\n                    \n                    {/* 
*/}\n
\n\n {this.state.footer && (\n \n \n Template Footer\n \n
\n                        \n                          {this.state.footer}\n                        \n                      
\n
\n )}\n \n \n Template Sample\n \n
\n                      \n                        {this.state.sampleMessage}\n                      \n                    
\n
\n {this.state.sampleCTAUrl ? (\n \n \n Sample CTA URL\n \n
\n                        \n                          {this.state.sampleCTAUrl}\n                        \n                      
\n
\n ) : (\n \"\"\n )}\n {this.state.sampleMediaUrl ? (\n \n \n Sample Media URL\n \n
\n                        \n                          {this.state.sampleMediaUrl}\n                        \n                      
\n
\n ) : (\n \"\"\n )}\n \n
\n \n
\n )}\n \n
\n );\n }\n}\n\nfunction getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n}\nconst styles = (theme) => ({\n root: {\n // width: \"100%\",\n paddingTop: 20,\n overflowX: \"hidden\",\n \"& pre\": {\n whiteSpace: \"pre-wrap\",\n // whiteSpace: \"-moz-pre-wrap\",\n // whiteSpace: \"-pre-wrap\",\n // whiteSpace: \"-o-pre-wrap\",\n wordWrap: \"break-word\",\n wordBreak: \"keep-all\",\n },\n },\n dialogContainer: {\n overflowX: \"hidden\",\n height: \"100%\",\n position: \"relative\",\n color: \"black\",\n },\n dialogTopbar: {\n position: \"sticky\",\n top: 0,\n left: 0,\n zIndex: 100,\n },\n container: {\n background: \"rgb(237, 226, 252)\",\n borderRadius: \"15px\",\n },\n textField: {\n width: 200,\n },\n});\nconst Templateconnect = connect(\n (state) => ({\n templates: state.template?.templates,\n user: state.login.user,\n partner: state.partner.partner,\n }),\n {}\n)(TemplateDetails);\nexport default withStyles(styles)(Templateconnect);\n","function replaceBold(match) {\n return \"\" + match.substring(1, match.length-1) + \"\"\n}\nfunction replaceItalic(match) {\n return \"\" + match.substring(1, match.length-1) + \"\"\n}\nfunction formatText(text) {\n const boldPattern = /\\*(\\**[^*\\n]+\\**)\\*/g\n const italicPattern = /_(_*[^_\\n]+_*)_/g\n let formattedText = \"\"\n formattedText = text.replace(boldPattern, replaceBold)\n formattedText = formattedText.replace(italicPattern, replaceItalic)\n return formattedText\n}\n\nexport default formatText","// const format = \"This is {{1}} and the name of company is {{2}}.\"\n// const sample = \"This is [Ajay] and the name of company is [Triny].\"\n\nfunction ifFloating(format) {\n const validBracePattern = /\\{\\{[0-9]+\\}\\}/g; // only numbers wrapped by {{}} e.g {{1}}\n const validFloatingPattern = /^(?!\\s*$)/g; // string with atleast one non-space character\n let ifFloating = false;\n // Check if each line as non-floating paramters\n format.split(\"\\n\").forEach((line) => {\n // Check if line has any content to run checks\n if (!!line.trim()) {\n const replacedText = line.replace(validBracePattern, (match) => \"\");\n const valid = validFloatingPattern.test(replacedText);\n if (!valid) {\n ifFloating = true;\n }\n // console.log({\n // replacedText,\n // valid,\n // });\n }\n });\n // console.log({ ifFloating });\n return ifFloating;\n}\n\n//Check numbers of params allowed with respect to the message length\nfunction allowedRelativeParamLimit(format) {\n const paramCount = extractParameters(format).length;\n const formattedText = format.replace(/\\s+/g, \" \");\n const words = formattedText.split(\" \").length - paramCount;\n const minWords = 2 * paramCount + 1;\n if (words >= minWords) return true;\n return false;\n}\n\nfunction validateFormat(format) {\n const validBracePattern = /\\{\\{[0-9]+\\}\\}/g;\n const invalidBracePattern = /(\\{|\\})/g;\n const invalidBracketPattern = /(\\[|\\])/g;\n // no more than 1,024 characters\n if (format.length > 1024) {\n return {\n valid: false,\n msg: \"Template format length over 1024 characters.\",\n };\n }\n // check consecutive empty lines\n if (\n format\n .split(\"\\n\")\n .map((i) => i.trim())\n .join(\"\\n\")\n .includes(\"\\n\\n\\n\")\n ) {\n return {\n valid: false,\n msg: \"Consecutive empty lines not allowed in template format\",\n };\n }\n // check for floating parameters\n // if (ifFloating(format)) {\n // return {\n // valid: false,\n // msg: \"Floating paramters aren't allowed in template format\",\n // };\n // }\n // check if the numbers of parameters are within the specified limit with respect to message length or words\n if (!allowedRelativeParamLimit(format)) {\n return {\n valid: false,\n msg: \"This template contains too many variable parameters relative to the message length. You need to decrease the number of parameters or increase your message word count.\",\n };\n }\n // replace valid {{}} with param value only\n const replacedText = format.replace(validBracePattern, (match) =>\n match.substring(2, match.length - 2)\n );\n // if { or } exists anywhere return false else true\n const ifCurlyValid = !invalidBracePattern.test(replacedText);\n if (!ifCurlyValid) {\n return { valid: false, msg: \"Extra curly braces found in template format\" };\n }\n // if [ or ] exists anywhere \treturn false\n const ifBracketValid = !invalidBracketPattern.test(replacedText);\n if (!ifBracketValid) {\n return {\n valid: false,\n msg: \"'[' or ']' aren't allowed in template format.\",\n };\n }\n\n return { valid: true, msg: \"Format seems legit.\" };\n}\n\nfunction extractParameters(format) {\n const validBracePattern = /\\{\\{[0-9]+\\}\\}/g;\n const parameters = [];\n\n function getParameter(match) {\n parameters.push(match.substring(2, match.length - 2));\n }\n\n const replacedText = format.replace(validBracePattern, getParameter);\n // console.log({parameters});\n return parameters;\n}\n\nfunction compareFormatAndSample(format, sample, strictOrdering) {\n let ifSame = false;\n const validBracePattern = /\\{\\{[0-9]+\\}\\}/g;\n const validBracketPattern = /\\[([^\\]]+)\\]/g;\n const braceFreeText = format.replace(validBracePattern, (match) => \"\");\n const bracketFreeText = sample.replace(validBracketPattern, (match) => \"\");\n\n if (\n strictOrdering &&\n (format.match(/\\{\\{[0-9]+\\}\\}/g) || []).some(\n (i, index) => i !== `{{${index + 1}}}`\n )\n ) {\n return {\n valid: false,\n msg: \"Invalid parameter ordering\",\n };\n }\n\n // console.log(\n // format,\n // bracketFreeText,\n // braceFreeText,\n // braceFreeText == bracketFreeText\n // );\n\n if (braceFreeText === bracketFreeText) {\n return { valid: true, msg: \"Format seems legit.\" };\n } else {\n return {\n valid: false,\n msg: \"Sample message doesn't match with template format\",\n };\n }\n}\n\nfunction validateUrl(value) {\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(\n value\n );\n}\n\nfunction generateTemplateComponents(payload) {\n const components = [];\n const {\n templateType,\n templateHeader,\n templateFormat,\n parameters,\n templateFooter,\n actionType,\n callToAction,\n quickReplies,\n templateCTAUrl,\n } = payload;\n\n //Create HEADER for the template\n if (templateType) {\n if (templateType === \"VIDEO\") {\n components.push({\n type: \"HEADER\",\n format: \"VIDEO\",\n example: {\n header_handle: [\n \"https://aisensy-demo-media.s3.ap-south-1.amazonaws.com/demo-video.mp4\",\n ],\n },\n });\n } else if (templateType === \"IMAGE\") {\n components.push({\n type: \"HEADER\",\n format: \"IMAGE\",\n example: {\n header_handle: [\n \"https://aisensy-demo-media.s3.ap-south-1.amazonaws.com/demo-image.png\",\n ],\n },\n });\n } else if (templateType === \"FILE\") {\n components.push({\n type: \"HEADER\",\n format: \"DOCUMENT\",\n example: {\n header_handle: [\n \"https://aisensy-demo-media.s3.ap-south-1.amazonaws.com/demo-doc.pdf\",\n ],\n },\n });\n } else if (templateHeader) {\n components.push({\n type: \"HEADER\",\n format: \"TEXT\",\n text: templateHeader,\n });\n }\n }\n\n //Set the main BODY for the template\n if (templateFormat) {\n const body = {\n type: \"BODY\",\n text: templateFormat,\n };\n\n if (parameters.length > 0)\n body.example = {\n body_text: [[...parameters]],\n };\n\n components.push(body);\n }\n\n //Set Footer Text for the template\n if (templateFooter) {\n components.push({\n type: \"FOOTER\",\n text: templateFooter,\n });\n }\n\n //Set buttons for the template\n if (actionType !== \"None\") {\n const buttons = [];\n //If button is of type CTA\n if (callToAction && callToAction.length > 0) {\n for (const button of callToAction) {\n const { type, buttonValue, buttonTitle } = button;\n buttons.push(\n type !== \"URL\"\n ? {\n type: \"PHONE_NUMBER\",\n text: buttonTitle,\n phone_number: buttonValue,\n }\n : templateCTAUrl\n ? {\n type: \"URL\",\n text: buttonTitle,\n url: buttonValue,\n example: [templateCTAUrl],\n }\n : {\n type: \"URL\",\n text: buttonTitle,\n url: buttonValue,\n }\n );\n }\n // IF Button is Quick Reply\n } else if (quickReplies && quickReplies.length > 0) {\n for (const reply of quickReplies) {\n buttons.push({\n type: \"QUICK_REPLY\",\n text: reply,\n });\n }\n }\n\n if (buttons.length > 0) {\n components.push({\n type: \"BUTTONS\",\n buttons,\n });\n }\n }\n\n return components;\n}\n\nexport default {\n compareFormatAndSample,\n extractParameters,\n validateFormat,\n validateUrl,\n generateTemplateComponents,\n};\n","import React from \"react\";\nimport { Box, withStyles, Tooltip, Typography } from \"@material-ui/core\";\nimport { OpenInNew, Phone } from \"@material-ui/icons\";\nimport templateMsgHelper from \"../../helpers/templateMsgHelper\";\n\nfunction InteractiveAction(props) {\n const { type, payload, classes, theme, preview } = props;\n let isQuickReply = false;\n let list = [];\n\n if (type === \"TEXT\") {\n list = (payload.text || \"\")\n .split(\" | [\")\n .map((i) => i.trim().substring(0, i.length - 1));\n list.shift();\n }\n if (type === \"QUICK_REPLY_CARD\") {\n isQuickReply = true;\n list = (payload.options || \"\").map(\n (i, index) => i.title || `Button_${index}`\n );\n }\n if ([\"IMAGE\", \"VIDEO\", \"FILE\"].includes(type)) {\n list = (payload.caption || \"\")\n .split(\" | [\")\n .map((i) => i.trim().substring(0, i.length - 1));\n list.shift();\n }\n\n return (\n \n {list.map((item, index) => {\n let type = \"text\";\n let action = \"\";\n const validNumberPattern = /^\\+*\\d+$/;\n let text = item.trim();\n const parts = text.split(\",\");\n\n if (!isQuickReply && parts.length > 1) {\n const lastBlock = parts.pop();\n text = parts.join(\",\");\n if (templateMsgHelper.validateUrl(lastBlock.trim())) {\n type = \"url\";\n action = lastBlock.replace(/\\[([^\\]]+)\\]/g, (match) =>\n match.substring(1, match.length - 1)\n );\n } else if (validNumberPattern.test(lastBlock.trim())) {\n type = \"phone\";\n action = lastBlock;\n } else {\n text = [...parts, lastBlock].join(\",\");\n }\n }\n\n return !text ? (\n <>\n ) : type === \"text\" ? (\n \n {text}\n \n ) : type === \"phone\" ? (\n \n \n \n \n
{text}
\n \n
\n \n ) : (\n <>\n \n \n \n
{text}
\n {payload.templateCTAUrl && (\n
\n \n {payload.templateCTAUrl}\n \n
\n )}\n \n \n \n );\n })}\n \n );\n}\n\nconst styles = (theme) => ({\n actionIcon: {\n fontSize: \"24px\",\n margin: \"2px 4px -2px\",\n color: \"#4c9edc\",\n },\n theme1: {\n background: \"white\",\n },\n theme2: {\n background: \"white\",\n },\n fullWidth: {\n width: \"100%\",\n borderRadius: \"15px\",\n margin: \"0.5em 0.5em 0.5em 0\",\n boxSizing: \"border-box\",\n padding: \"4px 8px 6px\",\n textAlign: \"center\",\n color: \"#0a474c\",\n cursor: \"pointer\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n color: \"#4c9edc\",\n lineHeight: \"24px\",\n fontSize: \"14px\",\n fontWeight: \"500\",\n },\n actionText: {\n maxWidth: \"210px\",\n overflow: \"hidden\",\n whiteSpace: \"prewrap\",\n textOverflow: \"ellipsis\",\n color: \"#4c9edc\",\n lineHeight: \"24px\",\n fontSize: \"14px\",\n fontWeight: \"500\",\n },\n arrowTop: {\n marginTop: \"20px\",\n padding: \"8px 12px\",\n boxSizing: \"border-box\",\n lineBreak: \"anywhere\",\n background: \"#edeaea\",\n color: \"#0000009c\",\n borderRadius: \"6px\",\n textAlign: \"center\",\n position: \"relative\",\n fontSize: \"14px\",\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n right: \"calc(50% - 15px)\",\n top: \"-12px\",\n borderTop: \"none\",\n borderRight: \"15px solid transparent\",\n borderLeft: \"15px solid transparent\",\n borderBottom: \"15px solid #edeaea\",\n },\n },\n ctaURL: {\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n textOverflow: \"ellipsis\",\n maxHeight: \"60px\",\n overflow: \"hidden\",\n },\n actionIcon: {\n fontSize: \"16px\",\n margin: \"0px 4px\",\n color: \"#4c9edc\",\n },\n actionBox: {\n padding: \"10px 4px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n customTooltip: {\n backgroundColor: \"rgb(105,105,105)\",\n color: \"white\",\n boxShadow: \"none\",\n fontSize: \"14px\",\n zIndex: 100,\n },\n customArrow: {\n color: \"rgb(105,105,105)\",\n },\n});\n\nexport default withStyles(styles)(InteractiveAction);\n","import React from \"react\";\nimport {\n Box,\n withStyles,\n Divider,\n Tooltip,\n Typography,\n} from \"@material-ui/core\";\nimport { OpenInNew, Phone } from \"@material-ui/icons\";\nimport templateMsgHelper from \"../../helpers/templateMsgHelper\";\nimport TouchAppIcon from \"@material-ui/icons/TouchApp\";\n\nfunction ClickToAction(props) {\n const { type, payload, classes, theme, preview, selectedTemplate } = props;\n let isQuickReply = false;\n let list = [];\n\n const ActionButton = ({ type, action, text, selectedTemplate }) => {\n return (\n <>\n \n {type === \"phone\" ? (\n \n \n \n \n
{text}
\n
\n
\n \n ) : (\n <>\n \n \n \n
{text}
\n
\n \n \n {payload.templateCTAUrl && (\n
\n \n {payload.templateCTAUrl}\n \n {selectedTemplate.isClickTrackingEnabled && (\n \n \n \n\n \n Click tracking is enabled for this template\n \n
\n
\n )}\n \n )}\n \n \n )}\n \n );\n };\n\n if (!payload.callToAction || !payload.callToAction.length) {\n if (type === \"TEXT\") {\n list = (payload.text || \"\")\n .split(\" | [\")\n .map((i) => i.trim().substring(0, i.length - 1));\n list.shift();\n }\n if (type === \"QUICK_REPLY_CARD\") {\n isQuickReply = true;\n list = (payload.options || \"\").map(\n (i, index) => i.title || `Button_${index}`\n );\n }\n if ([\"IMAGE\", \"VIDEO\", \"FILE\"].includes(type)) {\n list = (payload.caption || \"\")\n .split(\" | [\")\n .map((i) => i.trim().substring(0, i.length - 1));\n list.shift();\n }\n }\n\n return payload.callToAction && payload.callToAction.length ? (\n <>\n \n {payload.callToAction.map((item, index) => {\n const type = item.type === \"Phone Number\" ? \"phone\" : \"url\";\n return !item.buttonTitle ? (\n \n ) : (\n <>\n \n \n \n \n );\n })}\n \n \n ) : (\n \n {list.map((item, index) => {\n let type = \"text\";\n let action = \"\";\n const validNumberPattern = /^\\+*\\d+$/;\n let text = item.trim();\n const parts = text.split(\",\");\n\n if (!isQuickReply && parts.length > 1) {\n const lastBlock = parts.pop();\n text = parts.join(\",\");\n if (templateMsgHelper.validateUrl(lastBlock.trim())) {\n type = \"url\";\n action = lastBlock.replace(/\\[([^\\]]+)\\]/g, (match) =>\n match.substring(1, match.length - 1)\n );\n } else if (validNumberPattern.test(lastBlock.trim())) {\n type = \"phone\";\n action = lastBlock;\n } else {\n text = [...parts, lastBlock].join(\",\");\n }\n }\n\n if (text && text[text.length - 1] === \",\")\n text = text.substring(0, text.length - 1);\n\n return !text ? (\n \n ) : (\n \n \n \n );\n })}\n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n position: \"relative\",\n },\n actionIcon: {\n fontSize: \"16px\",\n margin: \"0px 4px\",\n color: \"#4c9edc\",\n },\n actionBox: {\n padding: \"10px 4px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n actionText: {\n maxWidth: \"210px\",\n overflow: \"hidden\",\n whiteSpace: \"prewrap\",\n textOverflow: \"ellipsis\",\n color: \"#4c9edc\",\n lineHeight: \"24px\",\n fontSize: \"14px\",\n fontWeight: \"500\",\n },\n arrowTop: {\n position: \"absolute\",\n bottom: \"calc(70px-100%)\",\n width: \"100%\",\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n right: \"calc(50% - 15px)\",\n top: \"8px\",\n borderTop: \"none\",\n borderRight: \"15px solid transparent\",\n borderLeft: \"15px solid transparent\",\n borderBottom: \"15px solid #f8f8f8\",\n },\n },\n arrowTopMessage: {\n wordWrap: \"break-word\",\n marginTop: \"20px\",\n padding: \"8px 12px\",\n boxSizing: \"border-box\",\n lineBreak: \"anywhere\",\n background: \"#f8f8f8\",\n color: \"#0000009c\",\n borderRadius: \"6px\",\n textAlign: \"center\",\n width: \"100%\",\n fontSize: \"14px\",\n },\n smallScreen: {\n [theme.breakpoints.down(\"xs\")]: {\n marginTop: \"5px !important\",\n },\n },\n ctaURL: {\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n textOverflow: \"ellipsis\",\n maxHeight: \"60px\",\n overflow: \"hidden\",\n },\n customTooltip: {\n backgroundColor: \"rgb(105,105,105)\",\n color: \"white\",\n boxShadow: \"none\",\n fontSize: \"14px\",\n zIndex: 100,\n },\n customArrow: {\n color: \"rgb(105,105,105)\",\n },\n});\n\nexport default withStyles(styles)(ClickToAction);\n","export default \"data:image/png;base64,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\"","import axios from \"axios\";\nimport { URL } from \"../../config/config\";\n\nconst initialState = {\n media: {\n AUDIO: [],\n VIDEO: [],\n IMAGE: [],\n FILE: [],\n },\n loading: {\n AUDIO: false,\n VIDEO: false,\n IMAGE: false,\n FILE: false,\n },\n loadingMore: {\n AUDIO: false,\n VIDEO: false,\n IMAGE: false,\n FILE: false,\n },\n hasMore: {\n AUDIO: false,\n VIDEO: false,\n IMAGE: false,\n FILE: false,\n },\n recent: {\n AUDIO: [],\n VIDEO: [],\n IMAGE: [],\n FILE: [],\n },\n total: {\n AUDIO: 0,\n VIDEO: 0,\n IMAGE: 0,\n FILE: 0,\n },\n uploading: {\n AUDIO: {},\n VIDEO: {},\n IMAGE: {},\n FILE: {},\n },\n};\n\nexport const bg_colors = {\n IMAGE: \"rgb(250, 173, 32, 0.15)\",\n VIDEO: \"rgb(95, 102, 205, 0.15)\",\n FILE: \"rgb(236, 64, 122, 0.15)\",\n LOCATION: \"rgb(255 5 5 / 17%)\",\n};\n\nexport const icon_colors = {\n IMAGE: \"rgb(250, 173, 32)\",\n VIDEO: \"rgb(95, 102, 205)\",\n FILE: \"rgb(236, 64, 122)\",\n LOCATION: \"rgb(239 0 0)\",\n};\n\nconst LOAD_MEDIA_IMAGE = \"MEDIA/IMAGE\";\nconst LOAD_MEDIA_AUDIO = \"MEDIA/AUDIO\";\nconst LOAD_MEDIA_VIDEO = \"MEDIA/VIDEO\";\nconst LOAD_MEDIA_FILE = \"MEDIA/FILE\";\nconst LOAD_RECENT_MEDIA_IMAGE = \"MEDIA/RECENT_IMAGE\";\nconst LOAD_RECENT_MEDIA_AUDIO = \"MEDIA/RECENT_AUDIO\";\nconst LOAD_RECENT_MEDIA_VIDEO = \"MEDIA/RECENT_VIDEO\";\nconst LOAD_RECENT_MEDIA_FILE = \"MEDIA/RECENT_FILE\";\nconst LOAD_MORE_MEDIA_IMAGE = \"MEDIA/MORE_IMAGE\";\nconst LOAD_MORE_MEDIA_AUDIO = \"MEDIA/MORE_AUDIO\";\nconst LOAD_MORE_MEDIA_VIDEO = \"MEDIA/MORE_VIDEO\";\nconst LOAD_MORE_MEDIA_FILE = \"MEDIA/MORE_FILE\";\nconst LOAD_MEDIA_IMAGE_STATUS = \"MEDIA/IMAGE_STATUS\";\nconst LOAD_MEDIA_AUDIO_STATUS = \"MEDIA/AUDIO_STATUS\";\nconst LOAD_MEDIA_VIDEO_STATUS = \"MEDIA/VIDEO_STATUS\";\nconst LOAD_MEDIA_FILE_STATUS = \"MEDIA/FILE_STATUS\";\nconst LOAD_MORE_MEDIA_IMAGE_STATUS = \"MEDIA/MORE_IMAGE_STATUS\";\nconst LOAD_MORE_MEDIA_AUDIO_STATUS = \"MEDIA/MORE_AUDIO_STATUS\";\nconst LOAD_MORE_MEDIA_VIDEO_STATUS = \"MEDIA/MORE_VIDEO_STATUS\";\nconst LOAD_MORE_MEDIA_FILE_STATUS = \"MEDIA/MORE_FILE_STATUS\";\nconst ADD_UPLOADING_MEDIA = \"MEDIA/ADD_UPLOADING_MEDIA\";\nconst UPDATE_UPLOADING_MEDIA = \"MEDIA/UPDATE_UPLOADING_MEDIA\";\nconst REMOVE_UPLOADING_MEDIA = \"MEDIA/REMOVE_UPLOADING_MEDIA\";\nconst MEDIA_UPLOAD_COMPLETED = \"MEDIA/MEDIA_UPLOAD_COMPLETED\";\n\nexport const loadMedia =\n (assistantId, nameQuery, list) => (dispatch, getState) => {\n (list || [\"IMAGE\", \"VIDEO\", \"FILE\", \"AUDIO\"]).map((fileType) => {\n dispatch({\n type: `MEDIA/${fileType}_STATUS`,\n payload: {\n loading: true,\n },\n });\n return axios\n .post(URL + \"/api/media-library\", {\n assistantId,\n skip: 0,\n fileType,\n rowsPerPage: 20,\n nameQuery,\n })\n .then((response) => {\n const { media, totalMediaCount } = response.data;\n dispatch({\n type: `MEDIA/${fileType}`,\n payload: {\n media,\n totalMediaCount,\n },\n });\n })\n .catch((err) => {\n console.error(err);\n })\n .finally(() => {\n dispatch({\n type: `MEDIA/${fileType}_STATUS`,\n payload: {\n loading: false,\n },\n });\n });\n });\n };\n\nexport const uploadMedia =\n ({ fileSection, selectedFile, previewImageUrl, projectId, agent }) =>\n async (dispatch, getState) => {\n const { name, type, size } = selectedFile;\n const id = Date.now();\n const uploadingPayload = {\n fileType: fileSection,\n id,\n };\n try {\n // Generate cancel token\n const CancelToken = axios.CancelToken;\n const uploadSource = CancelToken.source();\n\n //upload file skeleton/Loader\n dispatch({\n type: \"MEDIA/ADD_UPLOADING_MEDIA\",\n payload: {\n fileType: fileSection,\n publicUrl: fileSection === \"IMAGE\" ? previewImageUrl : \"\",\n uploading: uploadSource,\n fileName: name,\n fileSize: size,\n progress: 0,\n id,\n },\n });\n\n // Get Upload-URL\n const response = await axios.post(URL + \"/api/get-upload-url\", {\n assistantId: projectId,\n fileName: name,\n contentType: type,\n fileType: fileSection,\n cancelToken: uploadSource.token,\n });\n\n let form = new FormData();\n Object.entries(response.data.uploadURL.fields).forEach((entry) => {\n form.append(entry[0], entry[1]);\n });\n form.append(\"file\", selectedFile);\n\n const config = {\n transformRequest: (data, headers) => {\n delete headers.common[\"Authorization\"];\n return data;\n },\n cancelToken: uploadSource.token,\n onUploadProgress: (progressEvent) => {\n //update file upload progress\n dispatch({\n type: \"MEDIA/UPDATE_UPLOADING_MEDIA\",\n payload: {\n id,\n fileType: fileSection,\n progress: Math.round(\n (progressEvent.loaded * 100) / progressEvent.total\n ),\n },\n });\n },\n };\n\n await axios.post(response.data.uploadURL.url, form, config);\n\n await axios.post(URL + \"/api/save-media-details\", {\n assistantId: projectId,\n fileName: name,\n contentType: type,\n fileType: fileSection,\n clientId: agent?.clientId,\n date: new Date(),\n fileSize: size,\n s3Path: response.data.filePath,\n publicUrl: response.data.fullUrl,\n uploadedBy: agent?.displayName,\n });\n\n dispatch({\n type: \"MEDIA/MEDIA_UPLOAD_COMPLETED\",\n payload: {\n id,\n assistantId: projectId,\n fileName: name,\n contentType: type,\n fileType: fileSection,\n clientId: agent?.clientId,\n date: new Date(),\n fileSize: size,\n s3Path: response.data.filePath,\n publicUrl: response.data.fullUrl,\n uploadedBy: agent?.displayName,\n success: true,\n },\n });\n dispatch({\n type: \"MEDIA/REMOVE_UPLOADING_MEDIA\",\n payload: {\n ...uploadingPayload,\n },\n });\n } catch (error) {\n if (error.message === \"request_terminated\") {\n dispatch({\n type: \"MEDIA/REMOVE_UPLOADING_MEDIA\",\n payload: {\n ...uploadingPayload,\n },\n });\n } else {\n dispatch({\n type: \"MEDIA/UPDATE_UPLOADING_MEDIA\",\n payload: {\n ...uploadingPayload,\n success: false,\n reason: error.message,\n },\n });\n }\n }\n };\n\nexport const removeFailedUpload = (payload) => (dispatch) => {\n dispatch({\n type: \"MEDIA/REMOVE_UPLOADING_MEDIA\",\n payload,\n });\n};\n\nexport const loadRecentMedia = (assistantId, list) => (dispatch, getState) => {\n (list || [\"IMAGE\", \"VIDEO\", \"FILE\", \"AUDIO\"]).map((fileType) => {\n return axios\n .post(URL + \"/api/recent-media-library\", {\n assistantId,\n fileType,\n })\n .then((response) => {\n const { media } = response.data;\n dispatch({\n type: `MEDIA/RECENT_${fileType}`,\n payload: {\n media,\n },\n });\n })\n .catch((err) => {\n console.error(err);\n });\n });\n};\n\nexport const loadMoreMedia =\n (assistantId, fileType, skip, nameQuery) => (dispatch, getState) => {\n dispatch({\n type: `MEDIA/MORE_${fileType}_STATUS`,\n payload: {\n loading: true,\n },\n });\n return axios\n .post(URL + \"/api/media-library\", {\n assistantId,\n fileType,\n skip,\n rowsPerPage: 20,\n nameQuery,\n })\n .then((response) => {\n const { media } = response.data;\n dispatch({\n type: `MEDIA/MORE_${fileType}`,\n payload: {\n media,\n },\n });\n })\n .catch((err) => {\n console.error(err);\n })\n .finally(() => {\n dispatch({\n type: `MEDIA/MORE_${fileType}_STATUS`,\n payload: {\n loading: false,\n },\n });\n });\n };\n\nexport const incrementCount = (fileType, id) => (dispatch, getState) => {\n dispatch({\n type: `MEDIA/INCREMENT_${fileType}`,\n payload: {\n id,\n },\n });\n};\n\nexport default function MediaReducer(state = initialState, { type, payload }) {\n switch (type) {\n case LOAD_MEDIA_IMAGE:\n return {\n ...state,\n media: {\n ...state.media,\n IMAGE: [...payload.media],\n },\n hasMore: {\n ...state.hasMore,\n IMAGE: payload.media.length === 20,\n },\n total: {\n ...state.total,\n IMAGE: payload.totalMediaCount\n ? payload.totalMediaCount\n : state.total.IMAGE,\n },\n };\n case LOAD_MEDIA_VIDEO:\n return {\n ...state,\n media: {\n ...state.media,\n VIDEO: [...payload.media],\n },\n hasMore: {\n ...state.hasMore,\n VIDEO: payload.media.length === 20,\n },\n total: {\n ...state.total,\n VIDEO: payload.totalMediaCount\n ? payload.totalMediaCount\n : state.total.VIDEO,\n },\n };\n case LOAD_MEDIA_AUDIO:\n return {\n ...state,\n media: {\n ...state.media,\n AUDIO: [...payload.media],\n },\n hasMore: {\n ...state.hasMore,\n AUDIO: payload.media.length === 20,\n },\n total: {\n ...state.total,\n AUDIO: payload.totalMediaCount\n ? payload.totalMediaCount\n : state.total.AUDIO,\n },\n };\n case LOAD_MEDIA_FILE:\n return {\n ...state,\n media: {\n ...state.media,\n FILE: [...payload.media],\n },\n hasMore: {\n ...state.hasMore,\n FILE: payload.media.length === 20,\n },\n total: {\n ...state.total,\n FILE: payload.totalMediaCount\n ? payload.totalMediaCount\n : state.total.FILE,\n },\n };\n case LOAD_RECENT_MEDIA_IMAGE:\n return {\n ...state,\n recent: {\n ...state.recent,\n IMAGE: [...payload.media],\n },\n };\n case LOAD_RECENT_MEDIA_VIDEO:\n return {\n ...state,\n recent: {\n ...state.recent,\n VIDEO: [...payload.media],\n },\n };\n case LOAD_RECENT_MEDIA_AUDIO:\n return {\n ...state,\n recent: {\n ...state.recent,\n AUDIO: [...payload.media],\n },\n };\n case LOAD_RECENT_MEDIA_FILE:\n return {\n ...state,\n recent: {\n ...state.recent,\n FILE: [...payload.media],\n },\n };\n case LOAD_MEDIA_IMAGE_STATUS:\n return {\n ...state,\n loading: {\n ...state.loading,\n IMAGE: payload.loading,\n },\n };\n case LOAD_MEDIA_VIDEO_STATUS:\n return {\n ...state,\n loading: {\n ...state.loading,\n VIDEO: payload.loading,\n },\n };\n case LOAD_MEDIA_AUDIO_STATUS:\n return {\n ...state,\n loading: {\n ...state.loading,\n AUDIO: payload.loading,\n },\n };\n case LOAD_MEDIA_FILE_STATUS:\n return {\n ...state,\n loading: {\n ...state.loading,\n FILE: payload.loading,\n },\n };\n case LOAD_MORE_MEDIA_IMAGE:\n return {\n ...state,\n media: {\n ...state.media,\n IMAGE: [...state.media.IMAGE, ...payload.media],\n },\n hasMore: {\n ...state.hasMore,\n IMAGE: payload.media.length === 20,\n },\n };\n case LOAD_MORE_MEDIA_VIDEO:\n return {\n ...state,\n media: {\n ...state.media,\n VIDEO: [...state.media.VIDEO, ...payload.media],\n },\n hasMore: {\n ...state.hasMore,\n VIDEO: payload.media.length === 20,\n },\n };\n case LOAD_MORE_MEDIA_AUDIO:\n return {\n ...state,\n media: {\n ...state.media,\n AUDIO: [...state.media.AUDIO, ...payload.media],\n },\n hasMore: {\n ...state.hasMore,\n AUDIO: payload.media.length === 20,\n },\n };\n case LOAD_MORE_MEDIA_FILE:\n return {\n ...state,\n media: {\n ...state.media,\n FILE: [...state.media.FILE, ...payload.media],\n },\n hasMore: {\n ...state.hasMore,\n FILE: payload.media.length === 20,\n },\n };\n case LOAD_MORE_MEDIA_IMAGE_STATUS:\n return {\n ...state,\n loadingMore: {\n ...state.loadingMore,\n IMAGE: payload.loading,\n },\n };\n case LOAD_MORE_MEDIA_VIDEO_STATUS:\n return {\n ...state,\n loadingMore: {\n ...state.loadingMore,\n VIDEO: payload.loading,\n },\n };\n case LOAD_MORE_MEDIA_AUDIO_STATUS:\n return {\n ...state,\n loadingMore: {\n ...state.loadingMore,\n AUDIO: payload.loading,\n },\n };\n case LOAD_MORE_MEDIA_FILE_STATUS:\n return {\n ...state,\n loadingMore: {\n ...state.loadingMore,\n FILE: payload.loading,\n },\n };\n case ADD_UPLOADING_MEDIA:\n return {\n ...state,\n uploading: {\n ...state.uploading,\n [payload.fileType]: {\n ...state.uploading[payload.fileType],\n [payload.id]: { ...payload },\n },\n },\n };\n case UPDATE_UPLOADING_MEDIA:\n return {\n ...state,\n uploading: {\n ...state.uploading,\n [payload.fileType]: {\n ...state.uploading[payload.fileType],\n [payload.id]: {\n ...state.uploading[payload.fileType][payload.id],\n ...payload,\n },\n },\n },\n };\n case REMOVE_UPLOADING_MEDIA:\n const newPayload = { ...state.uploading[payload.fileType] };\n delete newPayload[payload.id];\n return {\n ...state,\n uploading: {\n ...state.uploading,\n [payload.fileType]: newPayload,\n },\n };\n case MEDIA_UPLOAD_COMPLETED:\n return {\n ...state,\n recent: {\n ...state.recent,\n [payload.fileType]: [payload, ...state.recent[payload.fileType]],\n },\n };\n default:\n return state;\n }\n}\n","function replaceParameters(text, parameters) {\n let formattedText = text || \"\";\n\n parameters.forEach((param, index) => {\n const pattern = new RegExp(`\\\\{\\\\{${index + 1}\\\\}\\\\}`);\n if (param) {\n formattedText = formattedText.replace(pattern, `[${param}]`);\n }\n });\n return formattedText;\n}\n\nexport default replaceParameters;\n","import React from \"react\";\nimport {\n withStyles,\n Typography,\n CardMedia,\n CardContent,\n Box,\n} from \"@material-ui/core\";\nimport { Image, PlayCircleFilled, Description } from \"@material-ui/icons\";\nimport formatText from \"../../helpers/formatText\";\nimport InteractiveAction from \"../TemplateMessagePreview/interativeUrlAction\";\nimport ClickToAction from \"../TemplateMessagePreview/clickToAction\";\nimport WhatsAppIcon from \"../../static/WhatsApp_icon.png\";\nimport { bg_colors, icon_colors } from \"../MediaLibrary/mediaState.js\";\nimport TouchAppIcon from \"@material-ui/icons/TouchApp\";\nimport replaceParameters from \"../../helpers/replaceParameters\";\nimport LocationOnIcon from \"@material-ui/icons/LocationOn\";\n\nfunction Media(props) {\n const {\n classes,\n payload,\n type,\n maxHeight,\n bigIcon,\n showDisclaimer,\n selectedTemplate,\n } = props;\n\n const body = (payload.text || payload.caption || \"\").split(\" | [\")[0];\n let disclaimerMargin = payload.templateCTAUrl ? 80 : 16;\n\n return (\n <>\n {/* Main message box */}\n
\n {/* Whatsapp icon */}\n \n {/* Header section */}\n {payload.headerText && (\n \n \n {payload.headerText}\n \n \n )}\n {type !== \"TEXT\" ? (\n !!payload.url ? (\n type === \"AUDIO\" ? (\n \n ) : (\n \n )\n ) : (\n \n {type === \"IMAGE\" ? (\n \n ) : type === \"FILE\" ? (\n \n ) : type === \"VIDEO\" ? (\n \n ) : type === \"TEXT\" ? (\n \n ) : type === \"LOCATION\" ? (\n \n ) : (\n \n \n \n \n \n )}\n \n )\n ) : (\n \"\"\n )}\n\n {/* No caption in audio type message*/}\n {type !== \"AUDIO\" ? (\n \n \n \n ) : (\n \"\"\n )}\n {/* Footer section */}\n {payload.footerText && (\n \n \n {payload.footerText}\n \n \n )}\n\n {payload.actionType === \"CAT\" && (\n \n )}\n
\n {/* Button based actions */}\n {payload.actionType !== \"CAT\" && (\n \n \n
\n )}\n {/* Disclaimer text here */}\n
\n {showDisclaimer && (\n \n Disclaimer: This is just a graphical representation of the message\n that will be delivered. Actual message will consist of media selected\n and may appear different.\n \n )}\n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n background: \"#EBF5F3\",\n maxWidth: \"340px\",\n width: \"100%\",\n // margin: \"auto\",\n },\n message: {\n clear: \"both\",\n background: \"white\",\n maxWidth: \"340px\",\n width: \"100%\",\n // margin: \"auto\",\n position: \"relative\",\n lineHeight: \"24px\",\n fontSize: \"16px\",\n // wordWrap: \"break-word\",\n\n \"&::after\": {\n position: \"absolute\",\n content: '\"\"',\n width: 0,\n height: 0,\n borderStyle: \"solid\",\n },\n },\n received: {\n background: \"white\",\n borderRadius: \"0px 5px 5px 5px\",\n //float: \"left\",\n boxShadow:\n \"rgba(60, 64, 67, 0.3) 0px 0px 0px 0px, rgba(60, 64, 67, 0.15) -0.5px 1.5px 0px 0px\",\n filter:\n \"drop-shadow(0px 0.5px 0px rgba(60, 64, 67, 0.3)) drop-shadow(1px 1px 2px rgba(60, 64, 67, 0.15))\",\n\n \"&::after\": {\n content: '\"\"',\n borderWidth: \"0px 10px 10px 0\",\n borderColor: `transparent #fff transparent transparent`,\n top: \"0\",\n left: \"-10px\",\n },\n },\n sent: {\n background: \"#EBF5F3\",\n borderRadius: \"5px 0px 5px 5px\",\n //float: \"right\",\n boxShadow:\n \"rgba(60, 64, 67, 0.3) -0.1px 0px 0px 0px, rgba(60, 64, 67, 0.15) 0.5px 1.5px 0px 0px\",\n filter:\n \"drop-shadow(0px 0.5px 0px rgba(60, 64, 67, 0.3)) drop-shadow(1px 1px 2px rgba(60, 64, 67, 0.15))\",\n\n \"&::after\": {\n content: '\"\"',\n borderWidth: \"0px 0px 10px 10px\",\n borderColor: \"transparent transparent transparent #EBF5F3\",\n top: \"0\",\n right: \"-10px\",\n },\n },\n media: {\n height: 140,\n width: \"calc(100% - 32px)\",\n padding: \"16px\",\n borderRadius: \"20px\",\n border: 0,\n },\n messageBox: {\n whiteSpace: \"pre-line\",\n wordBreak: \"break-word\",\n color: \"#000000\",\n },\n agentMessageAction: {\n \"& .defaultTheme\": {\n borderRadius: \"6px\",\n maxWidth: \"100%\",\n boxShadow:\n \"0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%)\",\n },\n },\n header: {\n fontWeight: \"600\",\n padding: \"8px 16px\",\n },\n footer: {\n color: \"#A9A9A9\",\n fontSize: \"14px\",\n fontWeight: \"500\",\n padding: \"0px 16px\",\n paddingBottom: \"8px\",\n },\n icon: {\n width: \"50px\",\n height: \"50px\",\n color: \"#a0a0a0\",\n },\n whatsappIcon: {\n width: \"30px\",\n height: \"30px\",\n position: \"absolute\",\n top: -15,\n left: -15,\n zIndex: 1,\n },\n bigWhatsappIcon: {\n width: \"50px\",\n height: \"50px\",\n position: \"absolute\",\n top: -25,\n left: -25,\n zIndex: 1,\n },\n disclaimer: {\n color: \"#A9A9A9\",\n fontSize: \"12px\",\n maxWidth: 340,\n },\n fileIcon: {\n marginTop: \"3px\",\n height: \"45px\",\n },\n});\n\nexport default withStyles(styles)(Media);\n","import React from \"react\";\n\nimport Media from \"../MessageTypes/Media\";\nimport replacePrameters from \"../../helpers/replaceParameters\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { Info } from \"@material-ui/icons\";\nimport TouchAppIcon from \"@material-ui/icons/TouchApp\";\n\nexport default function TemplateMessagePreview(props) {\n const {\n parameters,\n media,\n selectedTemplate,\n maxHeight,\n bigIcon,\n showDisclaimer,\n } = props;\n const type = selectedTemplate.type;\n const text = replacePrameters(selectedTemplate.format, parameters);\n let ctaURL = selectedTemplate.templateCTAUrl;\n\n //For pre-existing templates\n if (!ctaURL) {\n const urlObject = (selectedTemplate.callToAction || []).filter(\n (e) => e.type === \"URL\"\n );\n\n if (urlObject.length > 0) {\n ctaURL = urlObject[0].buttonValue;\n if (parameters && parameters.length > 0) {\n const param = parameters[parameters.length - 1];\n if (param)\n ctaURL = ((string, replacement) => {\n return string.replace(/{{(\\d+)}}/g, function (match, g1) {\n return `[${replacement}]`;\n });\n })(urlObject[0].buttonValue, param);\n }\n }\n }\n\n const payload = {\n caption: type !== \"TEXT\" ? text : \"\",\n text: type === \"TEXT\" ? text : \"\",\n url: type === \"LOCATION\" ? null : media.url,\n filename: type === \"LOCATION\" ? null : media.filename,\n latitude: type === \"LOCATION\" ? media?.latitude : null,\n longitude: type === \"LOCATION\" ? media?.longitude : null,\n locationName: type === \"LOCATION\" ? media?.name : null,\n address: type === \"LOCATION\" ? media?.address : null,\n parameters: parameters,\n actionType: selectedTemplate.actionType,\n headerText: selectedTemplate.headerText,\n footerText: selectedTemplate.footerText,\n callToAction: selectedTemplate.callToAction,\n templateCTAUrl: ctaURL,\n };\n\n return (\n <>\n \n \n );\n}\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Typography,\n Dialog,\n DialogContent,\n Box,\n} from \"@material-ui/core\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport clsx from \"clsx\";\nimport { withRouter } from \"react-router-dom\";\nimport { CloseOutlined, Visibility } from \"@material-ui/icons\";\nimport TemplateMessagePreview from \"../../commons/TemplateMessagePreview/templateMessagePreview\";\n\nconst quickFilters = [\n \"Last active - 24 hr window\",\n \"Created - This week\",\n \"Created - This month\",\n];\nclass TemplateMsgTable extends Component {\n constructor(props) {\n super(props);\n this.state = {\n openDialog: false,\n openPreviewDialog: false,\n selectedTemplate: null,\n };\n }\n toggleDialog = () => {\n this.setState({ openDialog: !this.state.openDialog });\n };\n openTemplate = (e) => {\n const templates = [...this.props.templates];\n const foundIndex = templates.findIndex((x) => x._id == e._id);\n\n this.props.setTemplateId(templates[foundIndex]._id.toString());\n };\n\n togglePreviewDialog = (templateIdx) => {\n this.setState({\n openPreviewDialog: !this.state.openPreviewDialog,\n selectedTemplate: templateIdx,\n });\n };\n\n getFields = () => {\n return [\n {\n name: \"Project Name\",\n key: \"assistantName\",\n },\n {\n name: \"Created At\",\n key: \"createdAt\",\n },\n {\n name: \"Template Name\",\n key: \"name\",\n },\n {\n name: \"Status\",\n key: \"status\",\n },\n {\n name: \"Rejected Reason\",\n key: \"rejectedReason\",\n },\n {\n name: \"Action\",\n key: \"action\",\n },\n ];\n };\n\n render() {\n const { classes, templates, isLoading, type } = this.props;\n const { selectedTemplate, openPreviewDialog } = this.state;\n const fields = this.getFields();\n if (type === \"DIRECT\") fields.splice(1, 1);\n return (\n
\n \n \n \n {fields.map((field, index) => (\n \n \n {field.name.toUpperCase()}\n \n \n ))}\n \n {isLoading ? (\n \n {[1, 2, 3, 4, 5, 6, 7].map((e, index) => (\n \n {[1, 2, 3, 4, 5, 6, 7, 8, 9].map((field, index) => (\n \n \n \n ))}\n \n ))}\n \n ) : (\n \n {templates.map((e, index) => (\n \n {fields.map((field, idx) => (\n this.openTemplate(e)}\n >\n {columnType(\n classes,\n e,\n index,\n field,\n this.togglePreviewDialog\n )}\n \n ))}\n \n ))}\n \n )}\n \n
\n {openPreviewDialog && (\n \n )}\n
\n );\n }\n}\n\nfunction columnType(classes, columnData, idx, fieldName, togglePreviewDialog) {\n const key = fieldName.key;\n switch (key) {\n case \"assistantName\":\n return (\n \n {columnData[key]}\n \n );\n break;\n case \"createdAt\":\n return (\n \n {getFormattedDate(columnData[key])}\n \n );\n break;\n case \"name\":\n return (\n \n {columnData[key]}\n \n );\n break;\n case \"status\":\n return (\n \n {columnData[key]}\n \n );\n break;\n case \"rejectedReason\":\n return (\n \n {columnData[key] ? columnData[key] : \"Unmarked\"}\n \n );\n break;\n case \"action\":\n return (\n {\n togglePreviewDialog(idx);\n e.stopPropagation();\n }}\n />\n );\n\n break;\n default:\n return (\n \n {columnData[key] || \"-\"}\n \n );\n }\n}\n\nconst PreviewDialog = ({ template, togglePreviewDialog }) => {\n return (\n \n \n \n \n \n = 768 ? \"300px\" : \"200px\",\n padding:\n window.innerWidth >= 768\n ? `40px 60px ${template?.sampleCTAUrl ? 0 : \"60px\"} 60px`\n : window.innerWidth >= 350\n ? `20px 40px ${template?.sampleCTAUrl ? 0 : \"20px\"} 40px`\n : 0,\n }}\n >\n \n \n \n \n );\n};\n\nfunction getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n}\nconst styles = (theme) => ({\n root: {\n height: \"100%\",\n width: \"100%\",\n overflowX: \"auto\",\n overflowY: \"auto\",\n boxSizing: \"border-box\",\n borderRadius: \"8px\",\n position: \"relative\",\n border: \"1px solid lightgrey\",\n background: \"white\",\n paddingBottom: \"60px\",\n [theme.breakpoints.down(\"sm\")]: {\n // height: \"calc(100vh - 60px)\",\n },\n \"& table\": {\n borderCollapse: \"collapse\",\n borderSpacing: 0,\n width: \"100%\",\n background: \"white\",\n },\n },\n row: {\n background: \"white\",\n display: \"flex\",\n },\n alterRow: {\n background: \"rgb(246,246,246)\",\n },\n dataRow: {\n cursor: \"pointer\",\n transition: \"0.3s\",\n \"&:hover\": {\n background: \"rgb(237, 226, 252)\",\n },\n },\n topbar: {\n background: \"rgb(252,252,252)\",\n position: \"sticky\",\n top: \"0\",\n zIndex: \"100\",\n },\n column: {\n // width: \"4400px\",\n fontWeight: \"normal\",\n height: \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n textAlign: \"center\",\n paddingRight: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n boxSizing: \"border-box\",\n },\n dataColumn: {\n width: \"200px\",\n // minHeight: \"80px\",\n // display: \"flex\",\n // background: \"red\"\n // flexWrap: \"wrap\"\n },\n checkboxColumn: {\n width: \"60px\",\n // background: \"red\"\n },\n});\n\nexport default withStyles(styles)(withRouter(TemplateMsgTable));\n","const OPTIONS = [\n\t\"Afrikaans\",\n\t\"Albanian\",\n\t\"Arabic\",\n\t\"Azerbaijani\",\n\t\"Bengali\",\n\t\"Bulgarian\",\n\t\"Catalan\",\n\t\"Chinese (CHN)\",\n\t\"Chinese (HKG)\",\n\t\"Chinese (TAI)\",\n\t\"Croatian\",\n\t\"Czech\",\n\t\"Danish\",\n\t\"Dutch\",\n\t\"English\",\n\t\"English (UK)\",\n\t\"English (US)\",\n\t\"Estonian\",\n\t\"Filipino\",\n\t\"Finnish\",\n\t\"French\",\n\t\"German\",\n\t\"Greek\",\n\t\"Gujarati\",\n\t\"Hausa\",\n\t\"Hebrew\",\n\t\"Hindi\",\n\t\"Hungarian\",\n\t\"Indonesian\",\n\t\"Irish\",\n\t\"Italian\",\n\t\"Japanese\",\n\t\"Kannada\",\n\t\"Kazakh\",\n\t\"Korean\",\n\t\"Lao\",\n\t\"Latvian\",\n\t\"Lithuanian\",\n\t\"Macedonian\",\n\t\"Malay\",\n\t\"Malayalam\",\n\t\"Marathi\",\n\t\"Norwegian\",\n\t\"Persian\",\n\t\"Polish\",\n\t\"Portuguese (BR)\",\n\t\"Portuguese (POR)\",\n\t\"Punjabi\",\n\t\"Romanian\",\n\t\"Russian\",\n\t\"Serbian\",\n\t\"Slovak\",\n\t\"Slovenian\",\n\t\"Spanish\",\n\t\"Spanish (ARG)\",\n\t\"Spanish (SPA)\",\n\t\"Spanish (MEX)\",\n\t\"Swahili\",\n\t\"Swedish\",\n\t\"Tamil\",\n\t\"Telugu\",\n\t\"Thai\",\n\t\"Turkish\",\n\t\"Ukrainian\",\n\t\"Urdu\",\n\t\"Uzbek\",\n\t\"Vietnamese\",\n\t\"Zulu\"\n]\n\nexport default OPTIONS","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n TextField,\n Button,\n RadioGroup,\n Radio,\n FormControlLabel,\n IconButton,\n Tooltip,\n CircularProgress,\n Link,\n Dialog,\n DialogActions,\n DialogTitle,\n DialogContent,\n DialogContentText,\n Chip,\n Snackbar,\n} from \"@material-ui/core\";\nimport { Autocomplete, Alert } from \"@material-ui/lab\";\nimport { AddOutlined, Clear, Info } from \"@material-ui/icons\";\nimport axios from \"axios\";\nimport { fetchBusiness } from \"../../store/businessState\";\nimport LANGUAGES from \"../../config/languages\";\nimport templateMsgHelper from \"../../helpers/templateMsgHelper\";\n\nimport { fetchProject } from \"../../store/projectState\";\nimport { createnewTemplate } from \"./templateState\";\nimport Switch from \"@material-ui/core/Switch\";\nimport { URL, projectURL } from \"../../config/config\";\nimport TemplateMessagePreview from \"../../commons/TemplateMessagePreview/templateMessagePreview\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport dialCodes, { isoMap, countryMap } from \"../../config/dialCodes\";\nconst TEMPLATE_CATEGORIES = [\"UTILITY\", \"MARKETING\", \"AUTHENTICATION\"];\n\nconst MSG_TYPES = [\n {\n type: \"TEXT\",\n name: \"Text\",\n },\n {\n type: \"IMAGE\",\n name: \"Image\",\n },\n {\n type: \"VIDEO\",\n name: \"Video\",\n },\n {\n type: \"FILE\",\n name: \"Document\",\n },\n {\n type: \"LOCATION\",\n name: \"Location\",\n },\n];\n\nclass CreateTemplateMsgForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n actionType: \"None\",\n callToAction: [],\n quickReplies: [],\n templateLabel: \"\",\n templateCategory: \"\",\n templateType: \"\",\n templateLanguage: \"\",\n templateName: \"\",\n templateFormat: \"\",\n templateSample: \"\",\n templateMediaURL: \"\",\n templateCTAUrl: \"\",\n templateHeader: \"\",\n templateFooter: \"\",\n isSubmitting: false,\n err: \"\",\n success: false,\n ctaUrlParam: 0,\n isClickTrackingEnabled: false,\n parameters: [],\n draftId: \"\",\n cursor: 0,\n snackbar: {\n open: false,\n message: \"\",\n },\n alertMsg: \"\",\n alertType: \"\",\n };\n this.inputRef = React.createRef();\n }\n\n componentDidMount = () => {\n const { inDialog, template } = this.props;\n\n if (template) {\n let params = [];\n const regx = /{{([^}]+)}}/g;\n let curMatch;\n\n const format = template.format.split(\" | \")[0];\n if (template.templateParams) params = template.templateParams;\n else\n while ((curMatch = regx.exec(format))) {\n params.push(\"\");\n }\n\n for (let i = 0; i < template.callToAction.length; i++) {\n if (template.callToAction[i].type === \"Phone Number\") {\n //if ext exists update phone val\n if (template.callToAction[i].extension) {\n const ext = template.callToAction[i].extension.length;\n const len = template.callToAction[i].buttonValue.length;\n template.callToAction[i].buttonValue = template.callToAction[\n i\n ].buttonValue.substring(ext, len);\n }\n //set ext if possible\n else if (template.callToAction[i].buttonValue.length > 10) {\n const len = template.callToAction[i].buttonValue.length;\n template.callToAction[i].extension = template.callToAction[\n i\n ].buttonValue.substring(0, len - 10);\n\n template.callToAction[i].buttonValue = template.callToAction[\n i\n ].buttonValue.substring(len - 10, len);\n }\n }\n }\n //Later: templateCTAUrl sampleCTAUrl\n const action = template.callToAction.find((i) => i.type === \"URL\");\n const ctaUrlParam = action\n ? (action.buttonValue.match(/\\{\\{[0-9]+\\}\\}/g) || []).length\n : 0;\n\n this.setState({\n templateLabel: template.label,\n templateCategory: template.category,\n templateType: template.type,\n templateLanguage: template.language || template.templateLanguage,\n templateName: template.name,\n templateFormat: format,\n templateSample: template.sampleMessage,\n actionType: template.actionType,\n callToAction: template.callToAction,\n quickReplies: template.quickReplies,\n templateMediaURL: template.templateMediaURL,\n templateCTAUrl: action ? action.buttonValue : \"\",\n parameters: params,\n templateHeader: template.headerText ?? \"\",\n templateFooter: template.footerText ?? \"\",\n draftId: template._id,\n ctaUrlParam,\n });\n }\n };\n\n componentDidUpdate = (prevProps, prevState) => {\n if (prevState.templateFormat !== this.state.templateFormat) {\n const cursor = this.state.cursor;\n this.inputRef.current.setSelectionRange(cursor, cursor);\n }\n };\n\n handleInput = (e) => {\n this.setState({\n [e.target.name]: e.target.value,\n });\n };\n\n extractParams = (e) => {\n const prev = this.state.parameters;\n const params = [];\n const regx = /}}([0-9}]+){{/g;\n let curMatch;\n let format = e.target.value;\n let rev = format.split(\"\").reverse().join(\"\");\n\n while ((curMatch = regx.exec(rev))) {\n params.push(curMatch[0]);\n }\n\n //enforce sequence\n for (let i = 0; i < params.length; i++) {\n const revNum = `${i + 1}`.split(\"\").reverse().join(\"\");\n rev = rev.replace(params[params.length - i - 1], `}}${revNum}{{`);\n }\n\n format = rev.split(\"\").reverse().join(\"\");\n this.setState({\n templateFormat: format,\n parameters: params.map((e, idx) => (idx < prev.length ? prev[idx] : \"\")),\n cursor: e.target.selectionStart,\n });\n };\n\n setSampleURL = (e) => {\n const params = [];\n const regx = /{{([0-9}]+)}}/g;\n let curMatch;\n let hasCurly = false;\n while ((curMatch = regx.exec(this.state.templateCTAUrl))) {\n hasCurly = true;\n }\n\n const formattedURL = ((string, replacement) => {\n return string.replace(\n hasCurly ? /{{(\\d+)}}/g : /\\[.*?\\]/g,\n function (match, g1) {\n return `[${replacement}]`;\n }\n );\n })(this.state.templateCTAUrl, e.target.value);\n\n this.setState({ templateCTAUrl: formattedURL });\n };\n\n handleParamsInput = (index, elem) => {\n const params = this.state.parameters;\n params[index] = elem.target.value;\n\n this.setState({\n parameters: params,\n });\n };\n\n handleAutoComplete = (fieldName, value, reason) => {\n if (reason === \"select-option\") {\n this.setState({ [fieldName]: value });\n }\n };\n\n handleRadioInput = (e) => {\n this.setState({\n actionType: e.target.value,\n callToAction:\n e.target.value === \"CAT\"\n ? [{ type: \"\", buttonValue: \"\", buttonTitle: \"\" }]\n : [],\n quickReplies: e.target.value !== \"CAT\" ? [\"\"] : [],\n ctaUrlParam: 0,\n templateCTAUrl: \"\",\n isClickTrackingEnabled: false,\n });\n };\n\n catAutoComplete = (index, value, reason) => {\n if (reason === \"select-option\") {\n const callToAction = [...this.state.callToAction];\n callToAction[index][\"type\"] = value;\n if (value === \"URL\") {\n this.setState({\n ctaUrlParam: (\n callToAction[index][\"buttonValue\"].match(/\\{\\{[0-9]+\\}\\}/g) || []\n ).length,\n });\n } else if (index === 0) {\n this.setState({\n ctaUrlParam: 0,\n templateCTAUrl: \"\",\n });\n }\n this.setState({ callToAction });\n }\n };\n\n catInput = (index, elem) => {\n const callToAction = [...this.state.callToAction];\n const value = elem.target.value;\n callToAction[index][elem.target.name] = value;\n if (\n elem.target.name === \"buttonValue\" &&\n callToAction[index].type === \"URL\"\n ) {\n const params = [];\n const regx = /{{([0-9}]+)}}/g;\n let curMatch;\n let format = elem.target.value;\n\n while ((curMatch = regx.exec(format))) {\n params.push(curMatch[0]);\n }\n\n //enforce sequence\n for (let i = 0; i < params.length; i++) {\n format = format.replace(params[i], `{{${i + 1}}}`);\n }\n\n callToAction[index].buttonValue = format;\n\n this.setState({\n ctaUrlParam: (value.match(/\\{\\{[0-9]+\\}\\}/g) || []).length,\n //templateCTAUrl: format,\n });\n }\n this.setState({ callToAction });\n };\n\n quickReplyInput = (index, elem) => {\n const quickReplies = [...this.state.quickReplies];\n quickReplies[index] = elem.target.value;\n\n this.setState({ quickReplies });\n };\n\n addQuickReply = (index, elem) => {\n const quickReplies = [...this.state.quickReplies, \"\"];\n this.setState({ quickReplies });\n };\n\n removeQuickReply = (index, elem) => {\n let quickReplies = [...this.state.quickReplies];\n quickReplies = quickReplies.filter((e, i) => i !== index);\n this.setState({ quickReplies });\n };\n\n handleChange = (event) => {\n this.setState({\n ...this.state.isClickTrackingEnabled,\n [event.target.name]: event.target.checked,\n });\n };\n\n addCAT = () => {\n const newAction = { type: \"\", buttonValue: \"\", buttonTitle: \"\" };\n const callToAction = this.state.callToAction;\n this.setState({ callToAction: [...callToAction, newAction] });\n };\n\n removeCAT = (index) => {\n let callToAction = [...this.state.callToAction];\n let ctaUrlParam = this.state.ctaUrlParam;\n if (callToAction[index].type === \"URL\") ctaUrlParam = 0;\n callToAction = callToAction.filter((e, i) => i !== index);\n this.setState({ callToAction, templateCTAUrl: \"\", ctaUrlParam });\n };\n\n validateName = (e) => {\n let name = e.target.value;\n const snackbar = { message: \"\", open: false };\n if (name) {\n const lastChar = name[name.length - 1];\n const isAlphanumeric = (string) => /[^A-Za-z0-9_]/.test(string);\n if (isAlphanumeric(lastChar)) {\n snackbar.message =\n \"Only lower case alphabets, numbers and underscore is allowed for this field\";\n snackbar.open = true;\n name = name.substring(0, name.length - 1);\n }\n }\n this.setState({ templateName: name.toLowerCase(), snackbar });\n };\n\n validateTemplate = () => {\n const t = this.state;\n const validBracePattern = /\\{\\{[0-9]+\\}\\}/g;\n const validTextPattern = /^[a-zA-Z0-9].*$/; // string starting with alphabet & non-empty\n const buttonTextPattern = /^(?!\\s*$).{0,25}$/; // string with atleast non-space character, maxlength 25\n const alphanumericPattern = /^[a-z0-9_][a-z0-9_]*$/; // string starting with alphanumeric & non-empty\n const validNumberPattern = /^\\d+$/;\n\n if (!TEMPLATE_CATEGORIES.some((e) => e === t.templateCategory)) {\n return { valid: false, msg: \"Select template category\" };\n }\n if (!MSG_TYPES.some((e) => e.type === t.templateType)) {\n return { valid: false, msg: \"Select template type\" };\n }\n if (!LANGUAGES.some((e) => e === t.templateLanguage)) {\n return { valid: false, msg: \"Select template language\" };\n }\n if (!alphanumericPattern.test(t.templateName)) {\n return {\n valid: false,\n msg: \"Template name is required field, only alphanumeric characters & underscores without spaces are allowed.\",\n };\n }\n\n // check header for length\n if (t.templateHeader) {\n if (t.templateHeader.length > 60) {\n return {\n valid: false,\n msg: \"Template header length over 60 characters.\",\n };\n }\n //check if header contains params\n if (t.templateHeader.match(validBracePattern)) {\n return {\n valid: false,\n msg: \"Template header cannot contain paramters\",\n };\n }\n }\n\n //check footer doesn't exceed char limit\n if (t.templateFooter) {\n if (t.templateFooter.length > 60) {\n return {\n valid: false,\n msg: \"Template footer length over 60 characters.\",\n };\n }\n //check if footer contains params\n if (t.templateFooter.match(validBracePattern)) {\n return {\n valid: false,\n msg: \"Template footer cannot contain paramters\",\n };\n }\n }\n if (!t.templateFormat) {\n return { valid: false, msg: \"Template format is required field\" };\n }\n\n const result = templateMsgHelper.validateFormat(t.templateFormat, \"format\");\n if (!result.valid) {\n return result;\n }\n\n for (const params of t.parameters) {\n if (!params)\n return {\n valid: false,\n msg: \"Please provide sample values for all the paramters\",\n };\n }\n\n if (t.templateType !== \"TEXT\" && t.templateType !== \"LOCATION\") {\n if (!t.templateMediaURL) {\n return {\n valid: false,\n msg: `Sample media URL is required for template type ${t.templateType}`,\n };\n }\n if (!templateMsgHelper.validateUrl(t.templateMediaURL)) {\n return {\n valid: false,\n msg: `Invalid Sample media URL`,\n };\n }\n }\n\n // validate interactive actions\n if (t.templateName === \"shopify_cod_order_confirmation\") {\n if (t.quickReplies.length !== 2) {\n return { valid: false, msg: \"Need two quick reply\" };\n }\n }\n if (t.actionType === \"QuickReplies\") {\n if (t.quickReplies.length === 0) {\n return { valid: false, msg: \"Need atleast one quick reply\" };\n }\n const isNotValid = t.quickReplies.some((e) => !buttonTextPattern.test(e)); // check for empty quick reply\n if (isNotValid) {\n return {\n valid: false,\n msg: \"Quick replies must be non-empty & max 25 characters with spaces are allowed.\",\n };\n }\n const uniqueSet = new Set(t.quickReplies.map((i) => i.trim()));\n if (t.quickReplies.length !== uniqueSet.size)\n return {\n valid: false,\n msg: \"Each Quick Reply button must have unique text.\",\n };\n }\n if (t.actionType === \"CAT\") {\n const uniqueSet = new Set(\n t.callToAction.map((i) => i.buttonTitle.trim())\n );\n if (t.callToAction.length !== uniqueSet.size)\n return {\n valid: false,\n msg: \"Each Call-To-Action button must have unique text.\",\n };\n if (this.state.ctaUrlParam > 1) {\n return { valid: false, msg: \"Only one param allowed in CTA URL\" };\n }\n if (t.callToAction.length === 0) {\n return { valid: false, msg: \"Need atleast one call to action button\" };\n }\n const isNotValid = t.callToAction.some((e) => {\n if (e.type === \"Phone Number\") {\n return (\n !validTextPattern.test(e.type) ||\n !buttonTextPattern.test(e.buttonTitle) ||\n !validNumberPattern.test(e.buttonValue)\n );\n }\n if (e.type === \"URL\") {\n return (\n !validTextPattern.test(e.type) ||\n !buttonTextPattern.test(e.buttonTitle) ||\n !templateMsgHelper.validateUrl(e.buttonValue)\n );\n }\n return true;\n });\n if (isNotValid) {\n return { valid: false, msg: \"Call to action field invalid\" };\n }\n const interativeURLAction = t.callToAction.find((e) => e.type === \"URL\");\n if (interativeURLAction && this.state.ctaUrlParam > 0) {\n if (!t.templateCTAUrl) {\n return {\n valid: false,\n msg: \"Sample CTA URL is necessery for URL type actions.\",\n };\n }\n if (!templateMsgHelper.validateUrl(t.templateCTAUrl)) {\n return {\n valid: false,\n msg: \"Invalid Sample CTA URL.\",\n };\n }\n const compare = templateMsgHelper.compareFormatAndSample(\n interativeURLAction.buttonValue,\n t.templateCTAUrl\n );\n if (!compare.valid) {\n return {\n valid: false,\n msg: \"Sample action URL doesn't match with template URL format\",\n };\n }\n const bodyParamCount = (\n this.state.templateFormat.match(/\\{\\{[0-9]+\\}\\}/g) || []\n ).length;\n const ctaDynamicParam =\n interativeURLAction.buttonValue.match(/\\{\\{[0-9]+\\}\\}/g) || [];\n if (ctaDynamicParam.length) {\n if (!ctaDynamicParam[0].includes(1)) {\n return {\n valid: false,\n msg: \"Invalid parameter in dynamic CTA URL\",\n };\n }\n }\n }\n }\n // return { valid: true, msg: \"All fields are validated\" };\n return { valid: true, msg: \"All fields are validated\" };\n };\n\n autoFillAndSubmit = () => {\n // Fill sample CTA and Media URLS\n const { type } = this.props.partner || {};\n const { templateType, callToAction, ctaUrlParam } = this.state;\n const interativeURLAction = callToAction.find((e) => e.type === \"URL\");\n\n const sampleMediaUrl =\n templateType === \"IMAGE\"\n ? \"https://aisensy-demo-media.s3.ap-south-1.amazonaws.com/demo-image.png\"\n : templateType === \"VIDEO\"\n ? \"https://aisensy-demo-media.s3.ap-south-1.amazonaws.com/demo-video.mp4\"\n : templateType === \"FILE\"\n ? \"https://aisensy-demo-media.s3.ap-south-1.amazonaws.com/demo-doc.pdf\"\n : \"\";\n\n const sampleCTAUrl =\n interativeURLAction && ctaUrlParam > 0\n ? interativeURLAction.buttonValue.replace(\n /\\{\\{[0-9]+\\}\\}/g,\n (match) => \"[events]\"\n )\n : \"\";\n\n this.setState(\n {\n templateMediaURL: sampleMediaUrl,\n templateCTAUrl: sampleCTAUrl,\n },\n type !== \"DIRECT\" ? this.onSubmit : this.createTemplateFromDirectAPI\n );\n };\n\n generateTemplate = () => {\n let formattedString = this.state.templateFormat;\n const formattedSampleMsg = ((string, replacementArray) => {\n return string.replace(/{{(\\d+)}}/g, function (match, g1) {\n return `[${replacementArray[g1 - 1]}]`;\n });\n })(this.state.templateFormat, this.state.parameters);\n\n for (const reply of this.state.quickReplies) {\n formattedString += ` | [${reply}]`;\n }\n\n for (const action of this.state.callToAction) {\n formattedString += ` | [${action.buttonTitle},${action.buttonValue}]`;\n }\n return {\n assistantId: this.props.match.params.projectId,\n label: this.state.templateName,\n category: this.state.templateCategory,\n type: this.state.templateType,\n language: this.state.templateLanguage,\n name: this.state.templateName,\n format: formattedString,\n sampleMessage: formattedSampleMsg,\n actionType: this.state.actionType,\n callToAction: this.state.callToAction,\n quickReplies: this.state.quickReplies,\n sampleMediaUrl: this.state.templateMediaURL,\n sampleCTAUrl: this.state.templateCTAUrl,\n headerText: this.state.templateHeader,\n footerText: this.state.templateFooter,\n };\n };\n\n onSubmit = () => {\n const assistantId = this.props.match.params.projectId;\n const result = this.validateTemplate();\n const { onComplete } = this.props;\n\n if (!result.valid) {\n this.setState({ success: false, err: result.msg });\n return;\n } else {\n const t = this.state;\n this.setState({ err: \"\", isSubmitting: true, success: false });\n const template = {\n ...this.generateTemplate(),\n format: t.templateFormat,\n callToAction: t.callToAction.sort((a, b) => (a.type < b.type ? -1 : 1)),\n sampleCTAUrl: t.ctaUrlParam > 0 ? t.templateCTAUrl : \"\",\n isClickTrackingEnabled: t.isClickTrackingEnabled,\n };\n // Format call to action btn\n const callToActionBtns = JSON.parse(\n JSON.stringify(template.callToAction)\n );\n for (let i = 0; i < callToActionBtns.length; i++) {\n if (\n callToActionBtns[i].type === \"Phone Number\" &&\n callToActionBtns[i].extension\n ) {\n callToActionBtns[i].buttonValue =\n callToActionBtns[i].extension + callToActionBtns[i].buttonValue;\n }\n }\n\n template.callToAction = callToActionBtns;\n const interativeURLAction = callToActionBtns.find(\n (e) => e.type === \"URL\"\n );\n const payload = {\n label: template.label,\n category: template.category,\n type: template.type,\n language: template.language,\n name: template.name,\n text: template.format,\n sample_text: template.sampleMessage,\n message_action_type: template.actionType,\n call_to_action: template.callToAction,\n quick_replies: template.quickReplies,\n headerText: this.state.templateHeader,\n footerText: this.state.templateFooter,\n };\n axios\n .post(projectURL + `/project/${assistantId}/wa_template`, payload)\n .then((response) => {\n const payload = {\n ...response.data,\n assistantName: response.data.assistant_name,\n _id: response.data.id,\n };\n this.props.createnewTemplate(payload);\n this.setState({\n err: \"\",\n isSubmitting: false,\n success: true,\n templateCTAUrl: interativeURLAction\n ? interativeURLAction.buttonValue\n : \"\",\n });\n this.props.callSnackbar(\"success\", \"Template submit successful\");\n this.props.close();\n typeof onComplete === \"function\" &&\n onComplete(this.state.templateName, this.state.templateType);\n })\n .catch((error) => {\n console.log(error?.response?.data?.errorMessage);\n this.setState({\n err: error?.response?.data?.errorMessage,\n isSubmitting: false,\n success: false,\n templateCTAUrl: interativeURLAction\n ? interativeURLAction.buttonValue\n : \"\",\n\n alertMsg:\n error?.response?.data?.errorMessage ||\n \"Something went wrong, try again\",\n alertType: \"error\",\n });\n });\n }\n };\n\n onSnackbarClose = () => {\n this.setState({\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n\n createTemplateFromDirectAPI = async () => {\n //Validate Template\n const result = this.validateTemplate();\n if (!result.valid) {\n this.setState({ success: false, err: result.msg });\n return;\n }\n //Find template CTA Url\n const { onComplete } = this.props;\n const interativeURLAction = (this.state.callToAction || []).find(\n (e) => e.type === \"URL\"\n );\n\n try {\n const assistantId = this.props.match.params.projectId;\n const { templateName, templateLanguage, templateCategory, callToAction } =\n this.state;\n\n //Provide correct country code extension to the button\n const callToActionBtns = JSON.parse(JSON.stringify(callToAction));\n\n for (let i = 0; i < callToActionBtns.length; i++) {\n if (\n callToActionBtns[i].type === \"Phone Number\" &&\n callToActionBtns[i].extension\n ) {\n callToActionBtns[i].buttonValue =\n callToActionBtns[i].extension + callToActionBtns[i].buttonValue;\n }\n }\n\n //obtains components based on given data\n const components = templateMsgHelper.generateTemplateComponents({\n ...this.state,\n callToAction: callToActionBtns,\n });\n\n const response = await axios.post(\n URL + `/api/direct-api-partner/templates`,\n {\n projectId: assistantId,\n name: templateName,\n language: templateLanguage,\n category: templateCategory,\n components,\n }\n );\n\n if (response.status === 200) {\n this.props.createnewTemplate({ ...response.data, templateLanguage });\n this.setState({\n err: \"\",\n isSubmitting: false,\n success: true,\n templateCTAUrl: interativeURLAction\n ? interativeURLAction.buttonValue\n : \"\",\n });\n this.props.callSnackbar(\"success\", \"Template submit successful\");\n this.props.close();\n typeof onComplete === \"function\" &&\n onComplete(this.state.templateName, this.state.templateType);\n }\n } catch (error) {\n console.log(error?.response?.data?.errorMessage);\n this.setState({\n err: error?.response?.data?.errorMessage,\n isSubmitting: false,\n success: false,\n templateCTAUrl: interativeURLAction\n ? interativeURLAction.buttonValue\n : \"\",\n\n alertMsg:\n error?.response?.data?.errorMessage ||\n \"Something went wrong, try again\",\n alertType: \"error\",\n });\n }\n };\n\n render() {\n const {\n classes,\n inDialog,\n template,\n showDialog,\n toggleDialog,\n isSubmitted,\n } = this.props;\n\n const { projectId } = this.props.match.params;\n const interativeURLAction = this.state.callToAction.find(\n (e) => e.type === \"URL\"\n );\n return (\n \n \n \n \n \n \n Template Category\n \n \n Your template should fall under one of these categories.\n \n \n \n option)}\n onChange={(e, value, reason) =>\n this.handleAutoComplete(\"templateCategory\", value, reason)\n }\n value={this.state.templateCategory}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n \n Template Language\n \n \n You will need to specify the language in which message\n template is submitted.\n \n \n \n option)}\n onChange={(e, value, reason) =>\n this.handleAutoComplete(\"templateLanguage\", value, reason)\n }\n value={this.state.templateLanguage}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n\n \n \n {/* template name*/}\n \n \n \n Template Name\n \n \n Name can only be in lowercase alphanumeric characters and\n underscores. Special characters and white-space are not\n allowed\n
e.g. - app_verification_code\n
\n
\n \n \n \n
\n {/* HEADER */}\n \n \n \n Template Type\n \n \n Your template type should fall under one of these categories.\n \n \n \n option.type)}\n onChange={(e, value, reason) => {\n this.setState({\n templateMediaURL: \"\",\n templateHeader: \"\",\n });\n this.handleAutoComplete(\"templateType\", value, reason);\n }}\n value={this.state.templateType}\n renderInput={(params) => (\n \n )}\n />\n {this.state.templateType === \"TEXT\" && (\n \n \n \n Template Header Text{\" \"}\n (Optional)\n \n \n Header text is optional and only upto 60 characters are\n allowed.\n \n \n \n \n \n \n )}\n \n \n {/* body */}\n \n \n \n \n Template Format\n \n \n Use text formatting - *bold* , _italic_ & ~strikethrough~\n
\n Your message content. Upto 1024 characters are allowed.\n
e.g. - Hello {`{{1}}`}, your code will expire in{\" \"}\n {`{{2}}`} mins.\n \n
\n \n \n \n
\n
\n\n {this.state.parameters.length > 0 && (\n \n \n \n Sample Values\n \n \n Specify sample values for your parameters. These values can\n be changed at the time of sending.\n
e.g. - {`{{1}}`}: Mohit, {`{{2}}`}: 5.\n \n
\n \n \n {this.state.parameters.map((param, index) => (\n <>\n \n \n {` {{${index + 1}}} `}\n \n \n \n this.handleParamsInput(index, e)}\n />\n \n \n ))}\n \n
\n \n )}\n\n {/* Footer */}\n\n \n \n \n Template Footer{\" \"}\n (Optional)\n \n \n Your message content. Upto 60 characters are allowed.\n \n \n \n \n \n \n
\n \n \n \n \n Template Preview\n \n \n Your template message preview. It will update as you fill in\n the values in the form.\n \n \n = 1200 && \"340px\",\n display: \"inline-grid\",\n justifyContent: \"center\",\n padding: \"0 16px\",\n marginTop: \"40px\",\n }}\n >\n (a.type < b.type ? -1 : 1)),\n templateCTAUrl:\n interativeURLAction && interativeURLAction.buttonValue,\n }}\n showDisclaimer={true}\n />\n
\n
\n \n \n\n \n \n \n \n Interactive Actions\n \n \n In addition to your message, you can send actions with your\n message.\n
\n Maximum 25 characters are allowed in CTA button title & Quick\n Replies.\n
\n
\n \n \n }\n label=\"None\"\n />\n }\n label=\"Call to Actions\"\n />\n }\n label=\"Quick Replies\"\n />\n \n \n \n
\n
\n\n \n {this.state.err ? (\n \n \n {this.state.err}\n \n {this.state.err.includes(\"Floating\") && (\n \n \n How to fix floating parameter issue?\n \n \n )}\n \n ) : (\n \"\"\n )}\n {this.state.success ? (\n \n \n Template successfully submitted for approval !\n \n \n ) : (\n \"\"\n )}\n \n \n \n {this.state.isSubmitting ? (\n \n ) : (\n <>\n {!(inDialog && this.state.success) && (\n \n ) : (\n \"\"\n )\n }\n disabled={this.state.isSubmitting}\n style={{\n marginRight: 8,\n fontSize: \"14px\",\n padding: \"8px 16px\",\n }}\n >\n Submit\n \n )}\n \n )}\n \n \n \n {/* Show snackbar */}\n \n this.setState({ snackbar: { open: false, message: \"\" } })\n }\n message={this.state.snackbar.message}\n key={\"snack\"}\n autoHideDuration={3000}\n >\n \n this.setState({ snackbar: { open: false, message: \"\" } })\n }\n severity=\"error\"\n >\n {this.state.snackbar.message}\n \n \n {/* Show dialog on backpress */}\n \n \n \n Discard Template\n \n \n \n \n \n If you discard this template then all changes made by you will be\n lost. You can also save this template as a draft and modify it at\n a later point.\n \n \n \n {\n toggleDialog();\n this.props.history.push(\n \"/projects/\" + projectId + \"/manage/template-message\"\n );\n }}\n >\n Discard template\n \n {\n toggleDialog();\n this.props.history.push(\n \"/projects/\" + projectId + \"/manage/template-message\"\n );\n }}\n autoFocus\n >\n Save to Draft\n \n \n \n \n \n {this.state.alertMsg}\n \n \n \n );\n }\n}\n\nfunction InteractiveActions(props) {\n const {\n classes,\n actionType,\n callToAction,\n quickReplies,\n catAutoComplete,\n catInput,\n addCAT,\n removeCAT,\n quickReplyInput,\n addQuickReply,\n removeQuickReply,\n } = props;\n function getOptions(e, index) {\n const options = [\"Phone Number\", \"URL\"];\n if (callToAction.length === 1) {\n return options;\n } else {\n return options.filter((k) => k !== callToAction[Number(!index)].type);\n }\n }\n switch (actionType) {\n case \"None\":\n return
;\n case \"QuickReplies\":\n return (\n \n {quickReplies.map((e, index) => {\n return (\n \n \n \n Quick Reply {index + 1} :\n \n \n \n quickReplyInput(index, elem)}\n />\n \n \n removeQuickReply(index)}>\n \n \n \n \n );\n })}\n \n \n {quickReplies.length < 3 ? (\n }\n variant=\"outlined\"\n onClick={addQuickReply}\n >\n Quick Reply\n \n ) : (\n \"\"\n )}\n \n \n \n );\n case \"CAT\":\n return (\n \n {callToAction.map((e, index) => {\n return (\n \n \n \n Call to Action {index + 1} :\n \n \n \n option)}\n onChange={(e, value, reason) =>\n catAutoComplete(index, value, reason)\n }\n value={e.type}\n renderInput={(params) => (\n \n )}\n />\n \n \n catInput(index, elem)}\n />\n \n \n catInput(index, elem)}\n />\n \n \n removeCAT(index)}>\n \n \n \n \n );\n })}\n \n \n {callToAction.length < 2 ? (\n }\n variant=\"outlined\"\n onClick={addCAT}\n >\n Call to Action\n \n ) : (\n \"\"\n )}\n \n \n \n );\n default:\n return \"\";\n }\n}\n\nconst styles = (theme) => ({\n root: {\n background: \"white\",\n borderRadius: \"8px\",\n minHeight: \"200px\",\n },\n textField: {\n width: \"100%\",\n \"& .MuiAutocomplete-input\": {\n textOverflow: \"clip\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n },\n },\n textArea: {\n width: \"100%\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n },\n },\n previewWrapper: {\n width: 350,\n [theme.breakpoints.down(\"sm\")]: {\n width: 300,\n },\n },\n previewContainer: {\n minHeight: 160,\n background: \"#EBF5F3\",\n width: \"100%\",\n borderRadius: 8,\n },\n preview: {\n display: \"inline-grid\",\n width: \"100%\",\n //justifyContent: \"center\",\n position: \"sticky\",\n top: \"100px\",\n [theme.breakpoints.down(\"sm\")]: {\n position: \"static\",\n },\n },\n optional: {\n fontSize: \"14px\",\n color: \"#808080\",\n fontWeight: \"500\",\n },\n inlineCharacterCounter: {\n marginLeft: \"auto\",\n height: 0,\n bottom: \"25px\",\n position: \"absolute\",\n right: \"10px\",\n },\n characterCounter: {\n height: 0,\n position: \"absolute\",\n right: 0,\n bottom: \"-5px\",\n },\n dialogWrapper: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n icon: {\n marginRight: 24,\n \"&:hover\": {\n cursor: \"pointer\",\n },\n },\n dialogTitle: {\n \"& .MuiTypography-h6\": {\n fontSize: 20,\n fontWeight: 600,\n color: \"rgb(0,0,0,0.87)\",\n },\n },\n textFieldPopper: {\n [theme.breakpoints.down(\"md\")]: {\n left: \"12px !important\",\n minWidth: \"calc(100% - 35px)\",\n },\n [theme.breakpoints.up(\"md\")]: {\n left: \"calc(12.5vw - 16px) !important\",\n minWidth: \"calc(25vw + 54px)\",\n },\n },\n qualityStatus: {\n \"& .MuiChip-label\": {\n color: \"white\",\n },\n },\n});\n\nconst CreateTemplateconnect = connect(\n (state) => ({\n allBusiness: state.business.allBusiness,\n allProjects: state.projects.allProjects,\n partner: state.partner.partner,\n }),\n { fetchBusiness, fetchProject, createnewTemplate }\n)(CreateTemplateMsgForm);\n\nexport default withStyles(styles)(withRouter(CreateTemplateconnect));\n","import React, { Component } from \"react\";\nimport { DateRangePicker } from \"react-dates\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\nimport { Snackbar } from \"@material-ui/core\";\nimport SyncIcon from \"@material-ui/icons/Sync\";\nimport {\n fetchTemplateMessages,\n loadNext,\n unfetchTemplateMessages,\n loadSearch,\n} from \"./templateState\";\nimport {\n withStyles,\n Button,\n Box,\n Typography,\n Grid,\n IconButton,\n TextField,\n Dialog,\n DialogContent,\n DialogActions,\n} from \"@material-ui/core\";\nimport { Add, Clear, Close } from \"@material-ui/icons\";\nimport \"react-dates/initialize\";\nimport \"react-dates/lib/css/_datepicker.css\";\nimport \"../../react-dates-custom.css\";\n\nimport TemplateMsgTable from \"./TemplateMsgTable\";\nimport { TablePagination } from \"@material-ui/core\";\nimport { withRouter } from \"react-router-dom\";\nimport CreateTemplateMsgForm from \"./CreateTemplateMsgForm\";\nimport Header from \"../../commons/Header/Header\";\nimport axios from \"axios\";\nimport { partnerURL, URL } from \"../../config/config\";\nimport withMediaQuery from \"../../helpers/mediaQueryHelper\";\nclass TemplateMsgPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n backupSearchTemplates: [],\n totalCount: null,\n timeStamp: new Date(),\n search: \"\",\n openDialog: false,\n insideAssistantpage: false,\n templateDialog: false,\n filter: \"\",\n searchdone: \"\",\n opensnack: false,\n applied: {\n createdAt: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n },\n templateFilter: {\n sort: \"dec\",\n },\n planSubmitLoader: false,\n disableDate: Number(localStorage.getItem(\"resetSyncField\")) + 300000,\n };\n }\n\n componentDidMount() {\n const assistantId = this.props.match.params.projectId;\n this.props.unfetchTemplateMessages();\n\n this.props.fetchTemplateMessages(\n assistantId,\n this.state.templateFilter,\n this.props.partner?.type,\n 10,\n null\n );\n\n if (assistantId != null) {\n this.setState({\n insideAssistantpage: true,\n });\n }\n }\n\n toggleDialog = () => {\n this.setState({ openDialog: !this.state.openDialog });\n };\n toggleTemplateDialog = () => {\n this.setState({ templateDialog: !this.state.templateDialog });\n };\n toggleTemplate = () => {\n this.setState({\n templateDialog: !this.state.templateDialog,\n opensnack: true,\n });\n };\n getPageRows = () => {\n const { templates, page, rowsPerPage } = this.props;\n return templates.slice(\n page * rowsPerPage,\n page * rowsPerPage + rowsPerPage\n );\n };\n handlesearch = (e) => {\n this.setState({ filter: e.target.value });\n };\n\n handleInput = (e) => {\n this.setState({ [e.target.name]: e.target.value });\n };\n handleEnter = (e) => {\n if (e.key === \"Enter\") {\n this.props.unfetchTemplateMessages();\n const assistantId = this.props.match.params.projectId;\n if (this.state.filter === \"\") {\n this.props.fetchTemplateMessages(\n assistantId,\n this.state.templateFilter,\n this.props.partner?.type,\n 10,\n this.props.template?.after\n );\n this.setState({\n searchdone: \"not done\",\n });\n }\n this.props.loadSearch(\n this.state.filter,\n this.props.partner?.type,\n assistantId\n );\n if (this.state.filter !== \"\") {\n this.setState({\n searchdone: \"its done\",\n });\n }\n }\n };\n\n clearDate = (filterKey) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = null;\n applied[filterKey].endDate = null;\n this.setState({ applied });\n };\n checkDateInput = (filterKey) => {\n const applied = { ...this.state.applied };\n const s = applied[filterKey];\n if (s.startDate && s.endDate) {\n return;\n } else {\n this.clearDate(filterKey);\n }\n };\n setFocus = (filterKey, focusedInput) => {\n const applied = { ...this.state.applied };\n applied[filterKey].focusedInput = focusedInput;\n this.setState({ applied });\n };\n setDate = (filterKey, startDate, endDate) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = startDate;\n applied[filterKey].endDate = endDate;\n this.setState({ applied });\n };\n\n applyFilter = () => {\n const { applied, templateFilter } = this.state;\n const filterObj = { ...templateFilter };\n if (applied.createdAt.startDate && applied.createdAt.endDate) {\n filterObj.fromDate = applied.createdAt.startDate._d;\n filterObj.toDate = applied.createdAt.endDate._d;\n } else {\n delete filterObj.fromDate;\n delete filterObj.toDate;\n }\n this.setState(\n {\n templateFilter: filterObj,\n openDialog: false,\n },\n () => {\n this.onTabChange();\n }\n );\n };\n onTabChange = () => {\n const assistantId = this.props.match.params.projectId;\n this.props.unfetchTemplateMessages();\n this.props.fetchTemplateMessages(\n assistantId,\n this.state.templateFilter,\n this.props.partner?.type,\n 10,\n this.props.template?.after\n );\n };\n\n loadnextpage = (event, newPage) => {\n const assistantId = this.props.match.params.projectId;\n this.props.loadNext(\n event,\n newPage,\n assistantId,\n this.state.templateFilter,\n this.props.partner?.type,\n 10,\n this.props.template?.after,\n this.props.template?.totalprojects\n );\n };\n\n handleClear = () => {\n const assistantId = this.props.match.params.projectId;\n this.setState({\n filter: \"\",\n });\n this.setState({\n searchdone: \"not done\",\n });\n this.props.unfetchTemplateMessages();\n this.props.fetchTemplateMessages(\n assistantId,\n this.state.templateFilter,\n this.props.partner?.type,\n 10,\n this.props.template?.after\n );\n };\n\n onSnackbarClose = () => {\n this.setState({\n opensnack: false,\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n\n callSnackbar = (type, msg) => {\n this.setState({\n opensnack: true,\n alertType: type,\n alertMsg: msg,\n });\n };\n\n syncTemplate = () => {\n this.setState({ planSubmitLoader: true });\n const assistantId = this.props.match.params.projectId;\n const partnerId = this.props.partner._id;\n const checkTime = localStorage.getItem(\"resetSyncField\");\n const resetCheck = Number(checkTime) + 300000;\n if (checkTime) {\n if (resetCheck > Date.now()) {\n this.setState({\n opensnack: true,\n alertType: \"error\",\n alertMsg: \"Please try to sync after few miniutes\",\n });\n return;\n }\n }\n axios\n .post(partnerURL + `/partner/${partnerId}/sync-templates`, {\n assistantId,\n })\n .then((response) => {\n this.setState({\n opensnack: true,\n alertType: \"success\",\n alertMsg: \"Sync-template successful\",\n planSubmitLoader: false,\n disableDate: Date.now() + 300000,\n });\n localStorage.setItem(\"resetSyncField\", Date.now());\n })\n .catch((error) => {\n this.setState({\n opensnack: true,\n alertType: \"error\",\n alertMsg: \"Sync-template failed\",\n planSubmitLoader: false,\n });\n });\n };\n\n // methods for date filter\n render() {\n const { insideAssistant, templateFilter, disableDate } = this.state;\n const disableTemplateButton =\n Number(disableDate) - Date.now() >= 0 || this.state.planSubmitLoader;\n const tooltipTtile =\n Number(disableDate) - Date.now() >= 0 || this.state.planSubmitLoader;\n\n const { classes, mediaQuery, partner } = this.props;\n const { type } = partner || {};\n\n return (\n
\n {/* Page name & description container */}\n {(!this.props.assistants || this.state.insideAssistantpage) && (\n }\n buttonTitle={\"Create New Template\"}\n onButtonClick={this.toggleTemplateDialog}\n showSearch={true}\n searchPlaceholder={\"Search template name\"}\n handleSearch={this.handlesearch}\n handleEnter={this.handleEnter}\n searchDone={this.state.searchdone === \"its done\"}\n handleClear={this.handleClear}\n filter={this.state.filter}\n toggleFilterDialog={type !== \"DIRECT\" && this.toggleDialog}\n backgroundColor={\"transparent\"}\n filterColor={\n !!this.state.applied.createdAt.endDate &&\n !!this.state.applied.createdAt.startDate\n }\n syncButtonTitle={type !== \"DIRECT\" && \"Sync Templates\"}\n onSyncButtonClick={this.syncTemplate}\n syncButtonPrefixIcon={}\n disableTemplateButton={disableTemplateButton}\n tooltipTitle={\n tooltipTtile ? \"Retry again a in few mins\" : \"Sync Templates\"\n }\n />\n )}\n \n {/* Layout */}\n \n \n {/* First section */}\n {/* Scrollable (x & y) table container */}\n
\n {!this.props.assistants && this.state.insideAssistantpage ? (\n \n \n Waba is not live yet!\n \n
\n ) : (\n
\n \n
\n )}\n
\n \n \n {/* Table footer fixed at bottom */}\n
\n {!this.props.assistants && this.state.insideAssistantpage ? (\n <>\n ) : (\n <>\n \n \n )}\n
\n\n \n \n \n Create Template\n \n \n \n \n \n \n \n\n \n \n \n \n Filter\n \n \n \n \n \n \n \n \n \n Sort\n \n {\n const filterObj = {\n ...this.state.templateFilter,\n sort: value === \"Descending\" ? \"dec\" : \"asc\",\n };\n this.setState({ templateFilter: filterObj });\n }}\n name=\"sort\"\n options={[\"Descending\", \"Ascending\"]}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n \n this.clearDate(\"createdAt\")}\n style={{ marginRight: 8 }}\n >\n Clear Filter\n \n \n Apply\n \n \n \n \n \n \n {this.state.alertMsg}\n \n \n \n );\n }\n}\n\nfunction DateFilter({\n filterKey,\n applied,\n setFocus,\n setDate,\n checkDateInput,\n clearDate,\n ...props\n}) {\n const { classes, filterName, match } = props;\n\n const A = applied[filterKey];\n return (\n \n \n {A.startDate && A.endDate ? (\n \n clearDate(filterKey)}\n >\n \n \n \n ) : (\n \"\"\n )}\n \n \n {filterName}\n \n \n \n checkDateInput(filterKey)}\n startDateId=\"startDate\"\n endDateId=\"endDate\"\n startDate={A.startDate}\n endDate={A.endDate}\n onDatesChange={({ startDate, endDate }) =>\n setDate(filterKey, startDate, endDate)\n }\n focusedInput={A.focusedInput}\n onFocusChange={(focusedInput) => setFocus(filterKey, focusedInput)}\n navPosition=\"navPositionTop\"\n numberOfMonths={1}\n hideKeyboardShortcutsPanel\n customArrowIcon={null}\n screenReaderInputMessage={\" \"}\n small\n readOnly\n isOutsideRange={(day) => moment().diff(day) < 0}\n />\n \n \n \n );\n\n // function setToday()\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"#ffffff\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // paddingBottom: \"80px\"\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 80,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n //background: \"white\",\n },\n container: {\n background: \"white\",\n borderRadius: \"8px\",\n },\n fixedBottomContainer: {\n position: \"fixed\",\n height: \"60px\",\n borderTop: \"1px solid lightgrey\",\n background: \"white\",\n bottom: \"0\",\n left: \"71px\",\n right: \"0\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n [theme.breakpoints.down(\"sm\")]: {\n left: \"0px\",\n height: \"50px\",\n },\n },\n tableContainer: {\n top: \"60px\",\n height: \"calc(100vh - 180px)\",\n width: \"100%\",\n overflow: \"hidden\",\n // background: \"red\",\n boxSizing: \"border-box\",\n position: \"sticky\",\n [theme.breakpoints.down(\"sm\")]: {\n // position top + bottombar height + bottom padding + navbar\n height: \"calc(100vh - 70px - 50px - 10px - 50px)\",\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n textField: {\n width: 300,\n marginRight: 8,\n height: 42,\n },\n\n sortFormControl: {\n width: 120,\n marginRight: 8,\n height: 32,\n borderRadius: \"4px\",\n border: \"1px solid lightgrey\",\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n textFieldSortAutocomplete: {\n width: \"120\",\n height: 32,\n \"& input\": {\n padding: \"0px 12px!important\",\n },\n background: \"white\",\n borderRadius: \"4px\",\n border: \"1px solid #d3d3d4\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n dialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"600px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n});\n\nconst Templateconnect = connect(\n (state) => ({\n template: state.template,\n templates: state.template.templates,\n skip: state.template.skip,\n totalprojects: state.template.totalprojects,\n partner: state.partner.partner,\n isLoading: state.template.isLoading,\n error: state.template.error,\n page: state.template.page,\n rowsPerPage: state.template.rowsPerPage,\n nameQuery: state.template.nameQuery,\n allBusiness: state.business.allBusiness,\n allProjects: state.projects.allProjects,\n }),\n {\n fetchTemplateMessages,\n loadNext,\n unfetchTemplateMessages,\n loadSearch,\n }\n)(TemplateMsgPage);\nexport default withStyles(styles)(\n withMediaQuery(\"(max-width:600px)\")(withRouter(Templateconnect))\n);\n","import React, { Component } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport ErrorPage from \"../../commons/ErrorPage/ErrorPage\";\nimport TemplateDetails from \"./TemplateDetails\";\nimport TemplateMsgPage from \"./TemplateMsgPage\";\n\nclass TemplateRoute extends Component {\n constructor(props) {\n super(props);\n this.state = {\n templateId: null,\n };\n }\n\n setTemplateId = (id) => this.setState({ templateId: id });\n\n render() {\n return !this.state.templateId ? (\n \n ) : (\n \n );\n }\n}\n\nexport default TemplateRoute;\n","import React, { Component } from \"react\";\nimport {\n Button,\n Grid,\n Typography,\n withStyles,\n Box,\n Dialog,\n} from \"@material-ui/core\";\n\nclass ConfirmationDialog extends Component {\n render() {\n const { classes, openDialog, closeDialog, title } = this.props;\n const { body, action } = this.props;\n const mobileScreen = window.innerWidth < 767 ? true : false;\n return (\n \n {openDialog && (\n
\n \n {title}\n \n <>{body}\n \n \n \n \n \n \n \n \n \n
\n )}\n \n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"500px\",\n minHeight: 150,\n padding: \"20px\",\n // height: \"70vh\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n color: \"black\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n minHeight: 200,\n },\n },\n});\n\nexport default withStyles(styles)(ConfirmationDialog);\n","import axios from \"axios\";\nimport { projectURL, URL } from \"../config/config\";\n\nconst initialState = {\n webhooks: {},\n isLoading: false,\n error: null,\n};\n\nconst LOAD_START = \"WEBHOOK/LOAD_START\";\nconst LOAD_SUCCESS = \"WEBHOOK/LOAD_SUCCESS\";\nconst LOAD_FAILURE = \"WEBHOOK/LOAD_FAILURE\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = ({ webhooks }) => ({\n type: LOAD_SUCCESS,\n payload: { webhooks },\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nexport const fetchAssistantsWebhooks = (projectId) => (dispatch, getState) => {\n dispatch(loadStart());\n axios\n .get(projectURL + `/project/${projectId}/webhooks`)\n .then((response) => {\n let webhooks = response.data;\n let webhooksObj = {};\n webhooks.forEach((assistant) => {\n webhooksObj[assistant.project_id] = assistant;\n });\n dispatch(loadSuccess(webhooksObj));\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport default function AssistantsMessageReducer(\n state = initialState,\n { type, payload }\n) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n webhooks: payload.webhooks,\n isLoading: false,\n error: null,\n };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: false, error: payload };\n\n default:\n return state;\n }\n}\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Box,\n Typography,\n Dialog,\n IconButton,\n Snackbar,\n Tooltip,\n DialogContent,\n Grid,\n TextField,\n DialogActions,\n Button,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { Visibility, DeleteOutlined, Edit, Clear } from \"@material-ui/icons\";\nimport clsx from \"clsx\";\nimport FileCopyIcon from \"@material-ui/icons/FileCopy\";\nimport { Alert, Autocomplete, Skeleton } from \"@material-ui/lab\";\nimport DeleteConfirm from \"./ConfirmationDialog\";\nimport { withRouter } from \"react-router-dom\";\nimport { fetchAssistantsWebhooks } from \"../../store/webhookState\";\nimport { connect } from \"react-redux\";\nimport axios from \"axios\";\nimport { projectURL } from \"../../config/config\";\n\nconst FIELDS = [\n {\n name: \"Topics\",\n key: \"topics\",\n width: \"largeWidth\",\n },\n {\n name: \"Webhook Url\",\n key: \"webhook_url\",\n width: \"mediumWidth\",\n },\n {\n name: \"Created At\",\n key: \"created_at\",\n width: \"smallWidth\",\n },\n {\n name: \"Actions\", // This is table actions\n key: \"tableActions\",\n width: \"smallWidth\",\n },\n];\n\nconst allTopics = [\n \"contact.created\",\n \"contact.attribute.updated\",\n \"contact.chat.intervened\",\n \"contact.chat.requesting\",\n \"contact.chat.closed\",\n \"contact.campaign.sent\",\n \"contact.campaign.read\",\n \"contact.first_message.added\",\n \"contact.first_message.removed\",\n \"contact.tag.added\",\n \"contact.tag.removed\",\n];\n// const COLORS = {\n// ENABLED: { main: \"green\", light: \"#d4f1d4\" },\n// DISABLED: { main: \"grey\", light: \"#fdeeee\" },\n// };\n\nclass WebhookMappingsTable extends Component {\n constructor(props) {\n super(props);\n this.state = {\n alertType: \"\",\n alertMsg: \"\",\n openDialog: false,\n deleteIndex: null,\n isLoading: true,\n webhooks: [],\n deleteDialog: false,\n webhookDeleteId: \"\",\n deleteLoading: false,\n deleteWebhookName: \"\",\n updateDialog: false,\n webhookUpdateId: \"\",\n updateWebhookName: \"\",\n updateLoading: false,\n webhookUpdateUrl: \"\",\n sharedSecret: \"\",\n };\n }\n\n openAction = () => {};\n\n handleDeleteClick = (webhookId, webhookName) => {\n // Pop-up confirmation dialog\n this.setState({\n webhookDeleteId: webhookId,\n deleteWebhookName: webhookName,\n deleteDialog: true,\n });\n };\n\n deleteConfirm = () => {\n this.setState({ deleteLoading: true });\n axios\n .delete(\n projectURL +\n `/project/${this.props.assistantId}/webhook/${this.state.webhookDeleteId}`\n )\n .then((response) => {\n this.setState(\n {\n webhookDeleteId: \"\",\n deleteDialog: false,\n deleteLoading: false,\n alertType: \"success\",\n alertMsg: \"Successfully deleted webhook\",\n },\n this.props.fetchWebhook\n );\n })\n .catch((error) => {\n console.error(error);\n this.setState({\n deleteLoading: false,\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, tryagain\",\n });\n });\n };\n\n copySnack = () => {\n this.setState({\n alertType: \"success\",\n alertMsg: \"Shared Secret Copied\",\n });\n };\n\n cancelDeletion = (event, reason) => {\n reason !== \"backdropClick\" && this.setState({ deleteDialog: false });\n };\n\n handleUpdateClick = (webhookId, webhookName, webhookUrl, shared_secret) => {\n // Pop-up confirmation dialog\n this.setState({\n webhookUpdateId: webhookId,\n updateWebhookName: webhookName,\n updateDialog: true,\n webhookUpdateUrl: webhookUrl,\n sharedSecret: shared_secret,\n });\n };\n\n updateConfirm = () => {\n this.setState({ updateLoading: true });\n axios\n .patch(\n projectURL +\n `/project/${this.props.assistantId}/webhook/${this.state.webhookUpdateId}`,\n {\n webhook_url: this.state.webhookUpdateUrl,\n topics: this.state.updateWebhookName,\n }\n )\n .then((response) => {\n this.setState(\n {\n updateDialog: false,\n webhookUpdateId: \"\",\n updateWebhookName: \"\",\n updateLoading: false,\n alertType: \"success\",\n alertMsg: \"Successfully Updated webhook\",\n },\n this.props.fetchWebhook\n );\n })\n .catch((error) => {\n console.error(error);\n this.setState({\n updateLoading: false,\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, tryagain\",\n });\n });\n };\n\n cancelUpdate = (event, reason) => {\n reason !== \"backdropClick\" && this.setState({ updateDialog: false });\n };\n\n closeDialog = () => {\n this.setState({ openDialog: false });\n };\n\n // viewEventMapping = (data) => {\n // const { projectId } = this.props.match.params;\n // const path = `/projects/${projectId}/integrations/appstore/app/razorpay/set-campaigns/view/${data._id}`;\n // this.props.history.push(path);\n // };\n\n onSnackbarClose = () => {\n this.setState({\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n\n render() {\n const { classes, eventMappings, isLoading } = this.props;\n const { deleteIndex } = this.state;\n const mobileScreen = window.innerWidth < 767 ? true : false;\n return (\n
\n \n \n \n {FIELDS.map((field, index) => (\n \n \n {field.name}\n \n \n ))}\n \n {!this.props.isLoading ? (\n this.props.webhooks && this.props.webhooks.length === 0 ? (\n
\n \n {\" \"}\n No Activites set yet!\n \n
\n ) : (\n \n {this.props.webhooks &&\n this.props.webhooks.map((e, rowIndex) => (\n this.openAction(e)}\n >\n {FIELDS.map((field, index) => (\n \n {this.columnType(e, field, index, rowIndex)}\n \n ))}\n \n ))}\n \n )\n ) : (\n \n {[1, 2, 3, 4].map((e, index) => (\n \n {FIELDS.map((field, index) => (\n \n \n \n ))}\n \n ))}\n \n )}\n \n
\n \n \n {/* Template Dteails */}\n \n \n \n \n \n \n \n \n \n \n \n Topics\n \n \n {\n if (reason === \"select-option\") {\n this.setState({ updateWebhookName: value });\n }\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n WebHook Url\n \n \n {\n this.setState({ webhookUpdateUrl: e.target.value });\n }}\n />\n \n \n Shared Secret\n \n \n {\n // this.setState({ webhookUpdateUrl: e.target.value });\n // }}\n InputProps={{\n endAdornment: (\n \n \n {\n navigator.clipboard.writeText(\n this.state.sharedSecret\n );\n this.copySnack();\n }}\n >\n \n \n \n \n ),\n }}\n />\n \n \n \n \n \n \n : \"\"\n }\n >\n Submit\n \n \n \n \n \n \n {this.state.alertMsg}\n \n \n
\n );\n }\n\n columnType = (columnData, field, rowIndex) => {\n const key = field.key;\n switch (key) {\n case \"topics\":\n return (\n \n \n {columnData[field.key][0]}{\" \"}\n {columnData[field.key].length > 1\n ? \" +\" + (columnData[field.key].length - 1)\n : \"\"}\n \n \n );\n\n case \"created_at\":\n return (\n \n {getFormattedDate(columnData[field.key])}\n \n );\n\n case \"tableActions\":\n return (\n \n \n this.handleUpdateClick(\n columnData.id,\n columnData.topics,\n columnData.webhook_url,\n columnData.shared_secret\n )\n }\n >\n \n \n \n this.handleDeleteClick(columnData.id, columnData.topics.join())\n }\n >\n \n \n \n );\n\n default:\n return (\n \n {columnData[field.key]}\n \n );\n }\n };\n}\n\nfunction getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return date ? d.toLocaleDateString(\"en-US\", options) : \"\";\n}\n\nconst styles = (theme) => ({\n root: {\n // height: \"100%\",\n width: \"100%\",\n overflowX: \"auto\",\n // overflowY: \"auto\",\n // background: theme.palette.secondary.main,\n boxSizing: \"border-box\",\n // borderRadius: \"8px\",\n position: \"relative\",\n // border: \"1px solid lightgrey\",\n [theme.breakpoints.down(\"sm\")]: {\n // height: \"calc(100vh - 60px)\",\n },\n \"& table\": {\n borderCollapse: \"collapse\",\n borderSpacing: 0,\n width: \"100%\",\n // background: \"pink\"\n },\n },\n header: {},\n row: {\n background: \"white\",\n display: \"flex\",\n margin: \"15px 0px\",\n borderRadius: \"8px\",\n padding: \"10px 10px\",\n boxSizing: \"border-box\",\n },\n alterRow: {\n // background: \"rgb(245,245,245)\"\n },\n topbar: {\n background: \"rgb(255,255,255)\",\n padding: \"0px 10px\",\n cursor: \"auto\",\n // position: \"sticky\",\n // top: \"0\",\n // zIndex: \"100\"\n },\n column: {\n // width: \"4400px\",\n fontWeight: \"normal\",\n height: \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n textAlign: \"left\",\n paddingRight: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n boxSizing: \"border-box\",\n },\n dataColumn: {\n // width: \"30%\",\n // minHeight: \"80px\",\n // display: \"flex\",\n // background: \"red\"\n // flexWrap: \"wrap\"\n },\n smallWidth: {\n width: \"20%\",\n minWidth: \"100px\",\n [theme.breakpoints.down(\"sm\")]: {\n minWidth: \"180px\",\n },\n },\n mediumWidth: {\n width: \"30%\",\n minWidth: 200,\n [theme.breakpoints.down(\"sm\")]: {\n minWidth: \"180px\",\n },\n },\n largeWidth: {\n width: \"30%\",\n minWidth: 250,\n [theme.breakpoints.down(\"sm\")]: {\n minWidth: \"200px\",\n },\n },\n checkboxColumn: {\n width: \"60px\",\n // background: \"red\"\n },\n clickable: {\n cursor: \"pointer\",\n \"&:hover\": {\n background: \"rgb(252,252,252)\",\n },\n },\n noEventsContainer: {\n display: \"flex\",\n minHeight: \"12em\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexGrow: 1,\n },\n plandialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n height: \"unset\",\n maxHeight: \"unset\",\n minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n});\n\n// export default withStyles(styles)(withRouter(WebhookMappingsTable));\n\nconst connectWebhookMappingsTable = connect(\n (state) => ({\n // webhooks: state.webhooks,\n }),\n {\n fetchAssistantsWebhooks,\n }\n)(WebhookMappingsTable);\n\nexport default withStyles(styles)(withRouter(connectWebhookMappingsTable));\n","import React, { useState } from \"react\";\nimport {\n Dialog,\n Grid,\n Typography,\n IconButton,\n DialogContent,\n Button,\n TextField,\n DialogActions,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { Clear } from \"@material-ui/icons\";\n\nexport default function PlanChangeDialog(props) {\n const {\n classes,\n showDialog,\n toggleDialog,\n planFamilies,\n changePlan,\n defaultPlanFamily,\n defaultPlanName,\n } = props;\n\n let [newFamilyId, newPlanId] = [defaultPlanFamily, defaultPlanName];\n if (!defaultPlanFamily || !defaultPlanName) {\n newFamilyId = Object.keys(planFamilies)[0];\n const plans = planFamilies[newFamilyId].plans;\n newPlanId = Object.keys(plans)[0];\n }\n const [plan, setActivePlan] = useState({\n newFamilyId,\n newPlanId,\n });\n\n const plans = planFamilies[plan.newFamilyId].plans;\n const [isLoading, setLoading] = useState(false);\n\n return (\n \n \n Select Plan Family\n \n \n \n \n \n \n \n \n Plan Family\n \n \n option)}\n getOptionLabel={(option) => {\n return planFamilies && planFamilies[option].name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n setActivePlan((prev) => ({ ...prev, newFamilyId: value }));\n }\n }}\n defaultValue={plan.newFamilyId}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n Plans\n \n \n option)}\n getOptionLabel={(option) => {\n return plans && plans[option]?.name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n setActivePlan((prev) => ({ ...prev, newPlanId: value }));\n }\n }}\n defaultValue={plan.newPlanId}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n \n \n \n \n \n Cancel\n \n {\n setLoading(true);\n await changePlan(plan.newFamilyId, plan.newPlanId);\n setLoading(false);\n }}\n disabled={isLoading}\n endIcon={isLoading ? : \"\"}\n >\n Change Plan\n \n \n \n \n );\n}\n","import React, { useState } from \"react\";\nimport {\n Dialog,\n Grid,\n Typography,\n IconButton,\n DialogContent,\n DialogActions,\n TextField,\n Button,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { Clear } from \"@material-ui/icons\";\n\nexport default function WccChangeDialog(props) {\n const {\n classes,\n showDialog,\n toggleDialog,\n wccPlans,\n defaultPlan,\n changePlan,\n } = props;\n const [plan, setPlan] = useState(defaultPlan ?? Object.keys(wccPlans)[0]);\n const [isLoading, setLoading] = useState(false);\n\n return (\n \n \n Select Wcc Plan Family\n \n \n \n \n \n \n \n \n Plans\n \n \n option)}\n getOptionLabel={(option) => {\n return wccPlans[option]?.name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n setPlan(value);\n }\n }}\n defaultValue={plan}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n \n \n \n \n \n Cancel\n \n {\n setLoading(true);\n await changePlan(plan);\n setLoading(false);\n }}\n disabled={isLoading}\n endIcon={isLoading ? : \"\"}\n >\n Change Plan\n \n \n \n \n );\n}\n","const stepOne = {\n title: \"Step 1\",\n subTitle: \"Enter Your Personal Details\",\n keys: {\n name: {\n type: \"textfield\",\n title: \"Your Name\",\n isMandatory: true,\n placeholder: \"Enter your name here\",\n },\n number: {\n type: \"textfield\",\n title: \"Your Personal Phone Number\",\n subTitle: \"Enter your number with country code\",\n isMandatory: true,\n placeholder: \"Enter your phone number here\",\n },\n email: {\n type: \"textfield\",\n title: \"Your Email Address\",\n isMandatory: true,\n placeholder: \"Enter your email here\",\n },\n },\n};\n\nconst stepTwo = {\n title: \"Step 2\",\n subTitle: \"Enter Your Business Details\",\n keys: {\n entityName: {\n type: \"textfield\",\n title: \"Business Entity Name\",\n isMandatory: true,\n placeholder: \"Enter your business entity name here\",\n },\n website: {\n type: \"textfield\",\n title: \"Website URL\",\n isMandatory: true,\n placeholder: \"Enter your website here\",\n },\n businessVertical: {\n type: \"autocomplete\",\n title: \"Select Business Vertical\",\n options: [\n \"Ecommerce\",\n \"Education\",\n \"Automotive\",\n \"IT Services\",\n \"Real Estate\",\n \"SAAS/Apps\",\n \"Gaming\",\n \"Entertainment\",\n \"Finance and Banking\",\n \"Medical and Health\",\n \"Hotel and Lodging\",\n \"Beauty, Spa and Salon\",\n \"Clothing and Apparel\",\n \"Event Planning and Service\",\n \"Food and Grocery\",\n \"Professional Services\",\n \"Public Service\",\n \"Non-profit\",\n \"Shopping and Retail\",\n \"Travel and Transportation\",\n \"Restaurant\",\n \"Other\",\n ],\n isMandatory: true,\n placeholder: \"Please select a business vertical\",\n },\n companySize: {\n type: \"autocomplete\",\n title: \"Company Size\",\n options: [\n \"1 - 10 Employees\",\n \"10 - 20 Employees\",\n \"20 - 50 Employees\",\n \"50 - 200 Employees\",\n \"200 - 500 Employees\",\n \"500 +\",\n ],\n isMandatory: true,\n placeholder: \"Please select company size\",\n },\n headquarters: {\n type: \"textfield\",\n title: \"In which country are your Headquarters\",\n placeholder: \"Enter your headquarters here\",\n isMandatory: true,\n },\n addressLine1: {\n type: \"textfield\",\n title: \"Official Address: Address line 1\",\n isMandatory: true,\n placeholder: \"Enter your address line 1 here\",\n },\n addressLine2: {\n type: \"textfield\",\n title: \"Official Address: Address line 2\",\n placeholder: \"Enter your address line 2 here\",\n isMandatory: false,\n },\n city: {\n type: \"textfield\",\n title: \"City\",\n placeholder: \"Enter your city here\",\n isMandatory: true,\n },\n state: {\n type: \"textfield\",\n title: \"State\",\n placeholder: \"Enter your state here\",\n isMandatory: true,\n },\n zipCode: {\n type: \"textfield\",\n title: \"Zip Code\",\n isMandatory: true,\n placeholder: \"Enter your zip code here\",\n },\n country: {\n type: \"textfield\",\n title: \"Country\",\n isMandatory: true,\n placeholder: \"Enter your country here\",\n },\n },\n};\n\nconst stepThree = {\n title: \"Step 3\",\n subTitle: \"Facebook Business Details\",\n keys: {\n facebookPage: {\n type: \"textfield\",\n title: \"Facebook Page URL\",\n placeholder: \"Enter your facebook page url here\",\n isMandatory: true,\n },\n businessManagerId: {\n type: \"textfield\",\n title: \"Your Facebook Business Manager ID\",\n subTitle: \"Check it from here -\",\n hyperlink: \"https://business.facebook.com/settings/info\",\n placeholder: \"Enter your facebook business manager id here\",\n isMandatory: true,\n },\n isManagerVerified: {\n type: \"checkbox\",\n title: \"Is your Facebook Business Manager Verified?\",\n subTitle: \"Check it from here -\",\n hyperlink: \"https://business.facebook.com/settings/security\",\n isMandatory: true,\n options: [\"Yes\", \"No\", \"No, Start Verification is Faded\"],\n placeholder: \"Select one option\",\n },\n },\n};\n\nconst stepFour = {\n title: \"Step 4\",\n subTitle: \"Whatsapp Account Details\",\n keys: {\n whatsappNumber: {\n type: \"textfield\",\n title: \"Set Phone Number for WhatsApp\",\n subTitle:\n \"This number will be approved. All WhatsApp accounts from this number should be deleted.\",\n isMandatory: true,\n placeholder: \"Enter your whatsapp phone number here\",\n },\n displayName: {\n type: \"textfield\",\n title: \"Display Name\",\n subTitle: \"Set Display Name to be shown on WhatsApp\",\n isMandatory: true,\n placeholder: \"Enter your whatsapp display name here\",\n },\n },\n};\n\nconst stepOneState = {\n name: \"\",\n number: \"\",\n email: \"\",\n};\n\nconst stepTwoState = {\n entityName: \"\",\n website: \"\",\n businessVertical: \"\",\n companySize: \"\",\n headquarters: \"\",\n addressLine1: \"\",\n addressLine2: \"\",\n city: \"\",\n state: \"\",\n zipCode: \"\",\n country: \"\",\n};\n\nconst stepThreeState = {\n facebookPage: \"\",\n businessManagerId: \"\",\n isManagerVerified: \"\",\n};\n\nconst stepFourState = {\n whatsappNumber: \"\",\n displayName: \"\",\n};\n\nexport {\n stepOne,\n stepTwo,\n stepThree,\n stepFour,\n stepOneState,\n stepTwoState,\n stepThreeState,\n stepFourState,\n};\n","import { stepTwo, stepThree } from \"../pages/Dashboard/WabaForm/FormDetails\";\n\nconst validateFirstStep = (props) => {\n const { name, number, email } = props;\n if (!name) return \"Please enter a valid name\";\n const validNumberPattern = /^\\d+$/;\n if (!validNumberPattern.test(number))\n return \"Please enter a valid phone number\";\n const validEmailPattern =\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\n if (!validEmailPattern.test(email))\n return \"Please enter a valid email address\";\n};\n\nconst validateSecondStep = (props) => {\n const {\n entityName,\n website,\n businessVertical,\n companySize,\n headquarters,\n addressLine1,\n addressLine2,\n city,\n state,\n zipCode,\n country,\n } = props;\n if (!entityName) return \"Please enter your Business Entity Name\";\n const validWebsitePattern =\n /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i;\n if (!validWebsitePattern.test(website))\n return \"Please enter a valid Website URL\";\n if (!stepTwo.keys.businessVertical.options.includes(businessVertical))\n return \"Please select one Business Vertical\";\n if (!stepTwo.keys.companySize.options.includes(companySize))\n return \"Please specify your Company Size\";\n if (!headquarters) return \"Please specify country of your Headquarters\";\n if (!addressLine1) return \"Please specify Official Address: Address line 1\";\n if (!city) return \"Please specify City\";\n if (!state) return \"Please specify State\";\n if (!zipCode) return \"Please specify Zip Code\";\n if (!country) return \"Please specify Country\";\n};\n\nconst validateThirdStep = (props) => {\n const { facebookPage, businessManagerId, isManagerVerified } = props;\n const validWebsitePattern =\n /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i;\n if (!validWebsitePattern.test(facebookPage))\n return \"Please enter a valid Facebook Page\";\n if (!businessManagerId) return \"Please enter a FB Business Manager ID\";\n if (!stepThree.keys.isManagerVerified.options.includes(isManagerVerified))\n return \"Please select one option\";\n};\n\nconst validateFourthStep = (props) => {\n const { whatsappNumber, displayName } = props;\n const validNumberPattern = /^\\d+$/;\n if (!validNumberPattern.test(whatsappNumber))\n return \"Please enter a valid Whatsapp Phone Number\";\n if (!displayName) return \"Please enter a FB Business Manager ID\";\n};\n\nexport default {\n validateFirstStep,\n validateSecondStep,\n validateThirdStep,\n validateFourthStep,\n};\n","import {\n Box,\n Typography,\n TextField,\n withStyles,\n Link,\n} from \"@material-ui/core\";\nimport React from \"react\";\n\nfunction FormField(props) {\n const {\n title,\n subText,\n hyperlink,\n isMandatory,\n stepKey,\n setKey,\n value,\n classes,\n placeholder,\n } = props;\n return (\n \n \n {title}\n {isMandatory && *}\n \n {subText && (\n {subText}\n )}\n {hyperlink && (\n \n \n {hyperlink}\n \n \n )}\n setKey(stepKey, e.target.value)}\n />\n \n );\n}\n\nconst styles = (theme) => ({\n title: {\n color: \"#202124\",\n fontWeight: 600,\n fontSize: 15,\n textDecoration: \"none rgb(32,33,36)\",\n margin: \"24px 0 5px 0\",\n },\n mandatory: {\n color: \"red\",\n },\n subTitle: {\n color: \"#151514\",\n margin: \"0 0 6px 0\",\n fontSize: 14,\n textDecoration: \"none rgb(21,21,20)\",\n },\n textFieldRoot: {\n backgroundColor: \"rgb(240,240,240)\",\n outline: \"none\",\n border: \"none\",\n borderRadius: \"8px\",\n width: \"100%\",\n padding: 2,\n boxShadow: \"none\",\n boxSizing: \"border-box\",\n fontFamily: \"Roboto, sans-serif\",\n fontSize: \"15px\",\n fontWeight: 500,\n },\n hyperlink: {\n width: \"100%\",\n color: \"blue\",\n fontSize: 14,\n textDecoration: \"underline\",\n marginBottom: 8,\n },\n});\n\nexport default withStyles(styles)(FormField);\n","import {\n Box,\n Typography,\n FormControlLabel,\n Checkbox,\n withStyles,\n Link,\n} from \"@material-ui/core\";\nimport React from \"react\";\n\nfunction FormCheckbox(props) {\n const {\n title,\n subText,\n hyperlink,\n isMandatory,\n stepKey,\n setKey,\n value,\n options,\n classes,\n placeholder,\n } = props;\n return (\n \n \n {title}\n {isMandatory && *}\n \n {subText && (\n {subText}\n )}\n {hyperlink && (\n \n \n {hyperlink}\n \n \n )}\n {options.map((e) => {\n console.log(value);\n return (\n setKey(stepKey, e)}\n style={{\n color: \"#50C878\",\n }}\n name={e}\n />\n }\n label={e}\n />\n );\n })}\n \n );\n}\n\nconst styles = (theme) => ({\n title: {\n color: \"#202124\",\n fontWeight: 600,\n fontSize: 15,\n textDecoration: \"none rgb(32,33,36)\",\n margin: \"24px 0 5px 0\",\n },\n mandatory: {\n color: \"red\",\n },\n subTitle: {\n color: \"#151514\",\n margin: \"0 0 6px 0\",\n fontSize: 14,\n textDecoration: \"none rgb(21,21,20)\",\n },\n textFieldRoot: {\n backgroundColor: \"rgb(240,240,240)\",\n outline: \"none\",\n border: \"none\",\n borderRadius: \"8px\",\n width: \"100%\",\n padding: 2,\n boxShadow: \"none\",\n boxSizing: \"border-box\",\n fontFamily: \"Roboto, sans-serif\",\n fontSize: \"15px\",\n fontWeight: 500,\n },\n hyperlink: {\n color: \"blue\",\n fontSize: 14,\n textDecoration: \"underline\",\n marginBottom: 6,\n },\n});\n\nexport default withStyles(styles)(FormCheckbox);\n","import {\n Box,\n Typography,\n withStyles,\n TextField,\n Link,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport React from \"react\";\n\nfunction FormAutocomplete(props) {\n const {\n title,\n subText,\n hyperlink,\n isMandatory,\n stepKey,\n setKey,\n value,\n options,\n classes,\n placeholder,\n } = props;\n return (\n \n \n {title}\n {isMandatory && *}\n \n {subText && (\n {subText}\n )}\n {hyperlink && (\n \n \n {hyperlink}\n \n \n )}\n setKey(stepKey, value)}\n value={value}\n placeholder={placeholder}\n renderInput={(params) => (\n \n )}\n />\n \n );\n}\n\nconst styles = (theme) => ({\n title: {\n color: \"#202124\",\n fontWeight: 600,\n fontSize: 15,\n textDecoration: \"none rgb(32,33,36)\",\n margin: \"24px 0 5px 0\",\n },\n mandatory: {\n color: \"red\",\n },\n subTitle: {\n color: \"#151514\",\n margin: \"0 0 6px 0\",\n fontSize: 14,\n textDecoration: \"none rgb(21,21,20)\",\n },\n textFieldRoot: {\n backgroundColor: \"rgb(240,240,240)\",\n outline: \"none\",\n border: \"none\",\n borderRadius: \"8px\",\n width: \"100%\",\n padding: 2,\n boxShadow: \"none\",\n boxSizing: \"border-box\",\n fontFamily: \"Roboto, sans-serif\",\n fontSize: \"15px\",\n fontWeight: 500,\n },\n hyperlink: {\n color: \"blue\",\n fontSize: 14,\n textDecoration: \"underline\",\n marginBottom: 6,\n },\n});\n\nexport default withStyles(styles)(FormAutocomplete);\n","import {\n Box,\n Grid,\n Typography,\n Snackbar,\n Button,\n withStyles,\n Dialog,\n IconButton,\n} from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport React, { useState } from \"react\";\nimport {\n stepOne,\n stepTwo,\n stepThree,\n stepFour,\n stepOneState,\n stepTwoState,\n stepThreeState,\n stepFourState,\n} from \"./FormDetails\";\nimport { Clear } from \"@material-ui/icons\";\nimport validateStep from \"../../../helpers/wabaFormHelper\";\nimport FormField from \"./FormField\";\nimport FormCheckbox from \"./FormCheckbox\";\nimport FormAutocomplete from \"./FormAutocomplete\";\nimport axios from \"axios\";\nimport { URL, partnerURL } from \"../../../config/config\";\n\nfunction WabaForm(props) {\n const [step, setStep] = useState(0);\n const { classes, showDialog, toggleDialog, assistantDetails, setSnackbar } =\n props;\n\n const [alert, setAlert] = useState({ show: false, severity: \"\", msg: \"\" });\n const [personalDetails, setPersonalDetails] = useState(\n assistantDetails.personalDetails\n );\n const [businessDetails, setBusinessDetails] = useState(\n assistantDetails.businessDetails\n );\n const [fbBusinessDetails, setFbBusinessDetails] = useState(\n assistantDetails.fbBusinessDetails\n );\n const [whatsappAccountDetails, setWhatsappAccountDetails] = useState(\n assistantDetails.whatsappAccountDetails\n );\n\n const nextStep = () => {\n let err;\n if (step === 0) err = validateStep.validateFirstStep(personalDetails);\n if (step === 1) err = validateStep.validateSecondStep(businessDetails);\n if (step === 2) err = validateStep.validateThirdStep(fbBusinessDetails);\n\n if (!err) setStep((prev) => prev + 1);\n else setAlert({ show: true, severity: \"error\", msg: err });\n };\n\n const prevStep = () => setStep((prev) => (prev > 1 ? prev - 1 : 0));\n\n const setStepFields = (applicableStep, key, value) => {\n if (applicableStep === 0)\n setPersonalDetails((prev) => ({ ...prev, [key]: value }));\n if (applicableStep === 1)\n setBusinessDetails((prev) => ({ ...prev, [key]: value }));\n if (applicableStep === 2)\n setFbBusinessDetails((prev) => ({ ...prev, [key]: value }));\n if (applicableStep === 3)\n setWhatsappAccountDetails((prev) => ({ ...prev, [key]: value }));\n };\n\n const closeSnackbar = () => setAlert((prev) => ({ ...prev, show: false }));\n\n const StepTitle = ({ title, subTitle }) => {\n return (\n \n {title}\n {subTitle}\n \n );\n };\n\n return (\n \n \n \n \n \n \n Whatsapp Business Application Form\n \n {/* Step 1 - Personal Details */}\n {step == 0 && (\n \n \n {Object.keys(stepOne.keys).map((e) => {\n const field = stepOne.keys[e];\n return (\n \n \n \n );\n })}\n \n )}\n\n {/* Step 2 - Business Details */}\n {step == 1 && (\n \n \n {Object.keys(stepTwo.keys).map((e) => {\n const field = stepTwo.keys[e];\n return (\n \n {field.type === \"textfield\" ? (\n \n ) : (\n \n )}\n \n );\n })}\n \n )}\n\n {/* Step 3 - FB Business Details */}\n {step == 2 && (\n \n \n {Object.keys(stepThree.keys).map((e) => {\n const field = stepThree.keys[e];\n return (\n \n {field.type === \"textfield\" ? (\n \n ) : (\n \n )}\n \n );\n })}\n \n )}\n\n {/* Step 4 - Whatsapp Account Details */}\n {step == 3 && (\n \n \n {Object.keys(stepFour.keys).map((e) => {\n const field = stepFour.keys[e];\n return (\n \n \n \n );\n })}\n \n )}\n\n {/* Action Button */}\n {step < 3 && (\n \n {step < 3 ? \"Next\" : \"Submit\"}\n \n )}\n\n {/* Previous Button */}\n {step > 0 && (\n \n Previous\n \n )}\n\n {/* Snackbar based toast */}\n \n \n {alert.msg}\n \n \n \n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n // borderRadius: \"10px\",\n padding: 32,\n paddingTop: 0,\n overflow: \"scroll\",\n \"&::-webkit-scrollbar\": {\n display: \"none\",\n },\n // boxSizing: \"border-box\",\n },\n head: {\n width: \"100%\",\n textAlign: \"center\",\n fontWeight: 700,\n fontSize: 24,\n margin: \"0px 0 20px 0\",\n },\n stepTitle: {\n color: \"#202134\",\n fontSize: 20,\n fontWeight: 700,\n textDecoration: \"none rgb(32,33,36)\",\n margin: \"20px 0 0px 0\",\n },\n stepSubTitle: {\n color: \"#202134\",\n fontSize: 16,\n textDecoration: \"none rgb(32,33,36)\",\n },\n\n IconButton: {\n padding: \"8px \",\n zIndex: 100,\n \"&:hover\": {\n borderRadius: \"70px\",\n background: \"#F0F0F0\",\n cursor: \"pointer\",\n },\n },\n prevButton: {\n background: \"transparent\",\n color: \"#000000\",\n margin: \"8px 0 20px 0\",\n fontWeight: 600,\n \"&:hover\": {\n background: \"transparent\",\n textDecoration: \"underline\",\n },\n },\n});\n\nexport default withStyles(styles)(WabaForm);\n","import React from \"react\";\nimport {\n Dialog,\n Grid,\n Typography,\n IconButton,\n DialogContent,\n TextField,\n DialogActions,\n Button,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { Clear } from \"@material-ui/icons\";\n\nexport default function AgentLimitDialog(props) {\n const { openDialog, closeDialog, classes, currentValue, changeValueFn } =\n props;\n const [value, setValue] = React.useState(currentValue || 1);\n const [isLoading, setLoading] = React.useState(false);\n return (\n \n \n Configure Agents Limit\n \n \n \n \n \n \n \n \n Enter Agents Limit\n \n \n {\n let agentSize = e.target.value || 1;\n if (e.target.value < 1) agentSize = 1;\n if (e.target.value > 100) agentSize = 100;\n setValue(agentSize);\n }}\n defaultValue={value}\n style={{ width: \"calc(100%)\" }}\n />\n {/* style={{ width: \"calc(100%)\", paddingTop: \"0px\" }} */}\n \n \n \n \n \n \n \n Cancel\n \n {/* // assistant.wabaProgressStep === 9 && assistant.familyId */}\n {\n setLoading(true);\n await changeValueFn(value);\n setLoading(false);\n }}\n disabled={isLoading}\n endIcon={isLoading ? : \"\"}\n >\n Change Agents Limit\n \n \n \n \n );\n}\n","import React, { createRef, PureComponent } from \"react\";\n\nimport {\n ComposedChart,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip,\n Legend,\n Area,\n} from \"recharts\";\nimport { Box, Grid, Typography, withStyles } from \"@material-ui/core\";\nimport { Skeleton } from \"@material-ui/lab\";\n\nconst global_strokes = [\n { id: \"av\", color: \"#F2C14E\" },\n { id: \"bv\", color: \"#BDBF00\" },\n { id: \"wv\", color: \"#4babda\" },\n { id: \"ev\", color: \"#F70054\" },\n { id: \"cv\", color: \"#F78154\" },\n { id: \"gv\", color: \"#a48ed2\" },\n { id: \"dv\", color: \"#5FAD56\" },\n { id: \"8\", color: \"#5D3FD3\" },\n { id: \"9\", color: \"#C70039\" },\n { id: \"10\", color: \"#40B5AD\" },\n { id: \"11\", color: \"#F2e14E\" },\n { id: \"12\", color: \"#BDBc00\" },\n { id: \"13\", color: \"#4baBda\" },\n { id: \"14\", color: \"#F70354\" },\n { id: \"15\", color: \"#F78254\" },\n { id: \"16\", color: \"#a48Ed2\" },\n { id: \"17\", color: \"#5FAF56\" },\n { id: \"18\", color: \"#5D3Ft3\" },\n { id: \"19\", color: \"#6e6e6e\" },\n { id: \"20\", color: \"#433030\" },\n { id: \"21\", color: \"#984ba1\" },\n { id: \"22\", color: \"#d7f142\" },\n { id: \"23\", color: \"#3f98a6\" },\n { id: \"24\", color: \"#333cc5\" },\n { id: \"25\", color: \"#2a2f18e3\" },\n { id: \"26\", color: \"#1d9483e3\" },\n];\n\nclass LineGraph extends PureComponent {\n constructor(props) {\n super(props);\n this.rootRef = createRef(null);\n }\n render() {\n const { data, keys, title, isLoading, Subheading, Options, fixed_strokes } =\n this.props;\n const classes = this.props.classes;\n const strokes = fixed_strokes || global_strokes;\n const color = \"white\";\n let newData = [];\n if (data.length === 1 && data[0].date) {\n const record = data[0];\n const dummyRecord = {};\n let dateBefore = new Date(record.date);\n dateBefore.setDate(dateBefore.getDate() - 1);\n dateBefore = dateBefore.toDateString().split(\" \");\n\n Object.keys(record).forEach((i) => {\n dummyRecord[i] = 0;\n });\n newData = [\n { ...dummyRecord, date: `${dateBefore[2]} ${dateBefore[1]}` },\n record,\n ];\n }\n return (\n \n \n {title && (\n \n \n \n {title}\n \n \n {\" \"}\n (per day)\n \n \n \n )}\n {Options && (\n \n \n \n \n \n )}\n \n\n {Subheading && }\n {isLoading || !this.rootRef.current ? (\n \n \n \n ) : (\n \n {data.length > 0 ? (\n \n 300\n ? 300\n : this.rootRef.current.clientWidth / 3\n }\n data={data.length === 1 ? newData : data}\n >\n \n {strokes.map((e) => {\n return (\n \n \n \n \n );\n })}\n \n \n \n {\n if (number > 1000000000) {\n return (\n (number / 1000000000).toFixed(0).toString() + \"B\"\n );\n } else if (number > 1000000) {\n return (number / 1000000).toFixed(0).toString() + \"M\";\n } else if (number > 1000) {\n return (number / 1000).toFixed(0).toString() + \"K\";\n } else {\n return number.toString();\n }\n }}\n />\n \n \n {keys.map((key, index) => {\n return (\n \n );\n })}\n \n \n ) : (\n \n \n {\" \"}\n Nothing to show for now ;)\n \n \n )}\n \n )}\n \n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n display: \"flex\",\n // margin: \"3% 0em\",\n // paddingTop: \"1em\",\n width: \"100%\",\n justifyContent: \"left\",\n flexDirection: \"column\",\n alignItems: \"start\",\n // color: \"white\",\n // backgroundColor: \"#a100f2\",\n backgroundColor: \"white\",\n borderRadius: \"1em\",\n },\n heading: { margin: \"0.5em\" },\n header: {\n [theme.breakpoints.down(\"md\")]: {\n padding: \"0 20px\",\n },\n [theme.breakpoints.up(\"sm\")]: {\n padding: \"0 30px\",\n },\n },\n});\n\nexport default withStyles(styles)(LineGraph);\n","import React, { useEffect, useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport moment from \"moment\";\nimport { APIURL } from \"../../../config/config\";\nimport {\n Typography,\n withStyles,\n Box,\n Grid,\n TextField,\n Button,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport ComposedGraph from \"../../../commons/Graphs/ComposedGraph\";\nimport DateFilter from \"../../../commons/Filters/DateFilter\";\n\nconst current = moment();\nconst INTERVAL_VALUES = {\n Today: {\n fromDate: current.clone().startOf(\"day\"),\n toDate: current,\n },\n Yesterday: {\n fromDate: current.clone().subtract(1, \"days\").startOf(\"day\"),\n toDate: current.clone().subtract(1, \"days\").endOf(\"day\"),\n },\n \"Last 7 days\": {\n fromDate: current.clone().subtract(7, \"days\").startOf(\"day\"),\n toDate: current,\n },\n \"Last 30 days\": {\n fromDate: current.clone().subtract(30, \"days\").endOf(\"day\"),\n toDate: current,\n },\n};\nconst INTERVALS = Object.keys(INTERVAL_VALUES);\n\nfunction AffiliateAnalytics(props) {\n const { classes, projectId, partnerId, currency } = props;\n const [loading, setLoading] = useState(true);\n const [interval, setInterval] = useState(\"Last 7 days\");\n const [graphData, setGraphData] = useState([]);\n const [startDate, setStartDate] = useState(\n INTERVAL_VALUES[interval].fromDate\n );\n const [endDate, setEndDate] = useState(INTERVAL_VALUES[interval].toDate);\n const [focusedInput, setFocusedInput] = useState();\n const eventTypes = {\n sent: 0,\n delivered: 0,\n read: 0,\n failed: 0,\n };\n\n const [stats, setStats] = useState({ ...eventTypes });\n const [analytics, setAnalytics] = useState([]);\n const [selectedCountry, setSelectedCountry] = useState(\"ALL\");\n const [showReport, setShowReport] = useState(false);\n const didMount = useRef(false);\n\n useEffect(() => {\n if (!didMount.current) {\n const weekly = INTERVAL_VALUES[\"Last 7 days\"];\n getAnalytics(weekly.fromDate, weekly.toDate);\n didMount.current = true;\n return;\n }\n }, [selectedCountry]);\n\n const getAnalytics = async (startDate, endDate) => {\n try {\n // let url = APIURL + `/affiliates/affiliate-analytics`;\n // if (startDate) url += `&startDate=${startDate}`;\n // if (endDate) url += `&endDate=${endDate}`;\n // const { data } = await axios.get(url);\n // setAnalytics(data.AffiliateAnalytics);\n setLoading(false);\n } catch (err) {\n console.log(\"Unable to fetch WCC Analytics ->\", err);\n setLoading(false);\n }\n };\n\n const setDateRange = (startDate, endDate) => {\n if (startDate && endDate) {\n setStartDate(startDate);\n setEndDate(endDate);\n setLoading(true);\n getAnalytics(startDate, endDate);\n }\n };\n\n const setFocus = (focusedInput) => {\n const picker = document.getElementsByClassName(\"DateInput\");\n if (picker[0])\n picker[0].style.border =\n focusedInput === \"startDate\" ? \"1px solid grey\" : \"1px solid lightgrey\";\n if (picker[1])\n picker[1].style.border =\n focusedInput === \"endDate\" ? \"1px solid grey\" : \"1px solid lightgrey\";\n setFocusedInput(focusedInput);\n };\n const keys = [\"Sent\", \"Delivered\", \"Read\", \"Failed\"];\n\n return (\n \n \n \n \n \n Analytics\n \n \n {window.innerWidth < 400 ? \" / day\" : \" (per day)\"}\n \n \n {/* \n {\n setShowReport(true);\n }}\n variant=\"outlined\"\n startIcon={}\n >\n {window.innerWidth < 400 ? \"Report\" : \"Download Report\"}\n \n */}\n \n\n \n \n \n option)}\n onChange={(e, value) => {\n const obj = INTERVAL_VALUES[value];\n setInterval(value);\n setStartDate(obj.fromDate);\n setEndDate(obj.toDate);\n setLoading(true);\n getAnalytics(obj.fromDate, obj.toDate);\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n \n\n {/* \n \n \n Sent\n \n {stats.sent}\n \n \n \n Delivered\n \n {stats.delivered}\n \n \n \n Read\n \n {stats.read}\n \n \n \n Failed\n \n {stats.failed}\n \n */}\n \n\n \n \n {/* */}\n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // marginBottom: \"5em\",\n // paddingBottom: \"80px\"\n },\n roundedBox: {\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: \"12px\",\n backgroundColor: \"white\",\n border: \"1px black\",\n margin: \"1em\",\n // padding: \"1.2em\",\n paddingLeft: \"2em\",\n },\n messageCountContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: \"12px\",\n backgroundColor: \"white\",\n border: \"1px black\",\n margin: \"1em\",\n padding: \"1.2em\",\n paddingLeft: \"2em\",\n paddingBottom: \"10px\",\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n boxShadow: \"0 0 11px rgb(230 230 230)\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n tabPageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 124,\n boxShadow: \"0 0 12px rgb(171 170 170)\",\n boxSizing: \"border-box\",\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n container: {\n background: \"white\",\n borderRadius: \"8px\",\n },\n dataContainer: {\n // padding: \"2em\",\n minWidth: \"10vw\",\n },\n agentMessage: {\n textAlign: \"justify\",\n margin: \"0.1em 0.5em\",\n backgroundColor: \"#EBF5F3\",\n color: theme.palette.primary.main,\n borderRadius: \"22px\",\n width: \"100%\",\n marginTop: \"auto\",\n overflow: \"hidden\",\n whiteSpace: \"pre-line\",\n wordBreak: \"break-word\",\n },\n textField: {\n width: 200,\n padding: \"2px 16px\",\n },\n dateFilterContainer: {\n padding: \"0.5em\",\n backgroundColor: \"white\",\n borderRadius: \"1em\",\n margin: \"0 1em 1em\",\n width: \"auto\",\n },\n countryDropdown: {\n width: 200,\n float: \"right\",\n marginLeft: 24,\n padding: \"2px 16px\",\n },\n totalContainer: {\n [theme.breakpoints.down(\"md\")]: {\n margin: \"18px 12px 0 0\",\n },\n [theme.breakpoints.up(\"md\")]: {\n margin: \"24px 0 0 18px\",\n },\n },\n changeQualityStatus: {\n \"& .MuiChip-labelSmall\": {\n color: \"white\",\n },\n },\n attachTooltipPopper: {\n \"& .MuiTooltip-tooltip\": {\n padding: 0,\n background: \"#EBF5F3\",\n borderRadius: 8,\n boxShadow: \"0 0 6px #c6c6c6\",\n },\n \"& .MuiTooltip-arrow\": {\n color: \"#EBF5F3\",\n filter: \"drop-shadow(0px -2px 1px #ddd)\",\n },\n },\n tabIndicator_OVERVIEW: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n maxWidth: \"150px\",\n },\n tabIndicator_SENT: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n maxWidth: \"150px\",\n background: \"#F2C14E\",\n },\n tabIndicator_DELIVERED: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n maxWidth: \"150px\",\n background: \"#BDBF00\",\n },\n tabIndicator_READ: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n maxWidth: \"150px\",\n background: \"rgb(8, 207, 101)\",\n },\n tabIndicator_REPLIED: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n maxWidth: \"150px\",\n background: \"rgb(83, 189, 235)\",\n },\n tabIndicator_CLICKED: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n maxWidth: \"150px\",\n background: \"#a48ed2\",\n },\n tabIndicator_FAILED: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n maxWidth: \"150px\",\n background: \"#F78154\",\n },\n tabIcon: {\n fontSize: 18,\n position: \"relative\",\n right: 4,\n top: 4,\n },\n previewWrapper: {\n \"& .arrowTop\": {\n bottom: -80,\n },\n },\n qualityStatus: {\n \"& .MuiChip-label\": {\n color: \"white\",\n },\n },\n menuRoot: {\n top: \"44px !important\",\n left: \"-30px !important\",\n },\n dialogContainer: {\n \"& .MuiDialogContent-root\": { overflow: \"hidden\" },\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"450px\",\n minWidth: \"100px\",\n height: \"550px\",\n margin: \"0\",\n borderRadius: \"6px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"450px\",\n height: \"550px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n});\n\nexport default withStyles(styles)(AffiliateAnalytics);\n","import React, { useState, useEffect } from \"react\";\nimport {\n Button,\n Box,\n Typography,\n withStyles,\n Grid,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { partnerURL } from \"../../config/config\";\nimport axios from \"axios\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\n\nfunction RegisterPin(props) {\n const {\n classes,\n assistant,\n partnerId,\n setSnackbar,\n setMetaError,\n wabaIsLive,\n } = props;\n const { _id: assistantId } = assistant || {};\n const [isLoading, setLoading] = useState(false);\n const [openDialog, setDialog] = useState(false);\n const [canRegister, setCanRegister] = useState(true);\n\n const checkRegister = () => {\n const lastRegisterCall = localStorage.getItem(\n `lastRegisterCall_${assistantId}`\n );\n if (!lastRegisterCall) {\n setCanRegister(true);\n } else {\n const timePassed = Date.now() - lastRegisterCall;\n const hoursPassed = timePassed / (1000 * 60 * 60);\n setCanRegister(hoursPassed >= 24);\n }\n };\n useEffect(() => {\n checkRegister();\n const intervalId = setInterval(checkRegister, 1000 * 60 * 30); // check every 30 minutes\n return () => clearInterval(intervalId);\n }, []);\n\n const registerWithPin = () => {\n setLoading(true);\n setDialog(false);\n\n if (wabaIsLive) {\n localStorage.setItem(`lastRegisterCall_${assistantId}`, Date.now());\n }\n\n axios\n .post(partnerURL + `/partner/${partnerId}/register-with-pin`, {\n assistantId,\n })\n .then((response) => {\n setLoading(false);\n checkRegister();\n setSnackbar({\n alert: true,\n alertMsg: \"Successfully Registered\",\n alertType: \"success\",\n });\n })\n .catch((error) => {\n console.log(error);\n setMetaError(error);\n setLoading(false);\n checkRegister();\n setSnackbar({\n alert: true,\n alertMsg: \"Phone Number registeration failed!\",\n alertType: \"error\",\n });\n });\n };\n\n return (\n \n \n \n \n Register Phone Number\n \n \n \n \n \n \n \n )\n }\n disabled={!canRegister}\n onClick={\n wabaIsLive && canRegister\n ? () => setDialog(true)\n : registerWithPin\n }\n >\n Register\n \n \n \n \n \n \n\n {/* confirmation dialog */}\n\n setDialog(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n PaperProps={{\n style: {\n width: \"40%\",\n height: \"30%\",\n },\n }}\n >\n \n \n Are you sure you want to continue?\n \n \n \n • Performing this action would re-register you with Meta.\n \n \n \n • Only perform this action if your business is locked or if you\n have manually\n \n \n \n changed your display name from FBM.\n \n \n • This action can only be performed once in 24 hours.\n \n \n \n \n \n \n \n \n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n // width: \"100%\",\n paddingTop: 20,\n overflowX: \"hidden\",\n },\n dialogContainer: {\n overflowX: \"hidden\",\n height: \"100%\",\n position: \"relative\",\n color: \"black\",\n },\n dialogTopbar: {\n position: \"sticky\",\n top: 0,\n left: 0,\n background: \"white\",\n zIndex: 100,\n },\n container: {\n background: \"rgb(70 20 134/0.1)\",\n borderRadius: \"15px\",\n },\n textField: {\n width: 200,\n },\n});\n\nexport default withStyles(styles)(RegisterPin);\n","import React, { useState } from \"react\";\nimport {\n Button,\n Box,\n Typography,\n TextField,\n withStyles,\n Grid,\n Snackbar,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { APIURL, partnerURL } from \"../../config/config\";\nimport { Alert } from \"@material-ui/lab\";\nimport axios from \"axios\";\n\nfunction OtpVerification(props) {\n const { classes, assistant, partnerId, setMetaError } = props;\n const { _id: assistantId } = assistant || {};\n const [code, setCode] = useState();\n const [mode, setMode] = useState(\"SMS\");\n const [open, setOpen] = useState(false);\n const [severity, setSeverity] = useState(\"\");\n const [msg, setMsg] = useState(\"\");\n\n const closeSnackbar = () => {\n setOpen(false);\n setSeverity(\"\");\n setMsg(\"\");\n };\n\n const verifyCode = () => {\n axios\n .post(partnerURL + `/partner/${partnerId}/verify-code`, {\n assistantId,\n verifyCode: code,\n })\n .then((response) => {\n localStorage.removeItem(`lastRegisterCall_${assistantId}`);\n setOpen(true);\n setMsg(\"Success\");\n setSeverity(\"success\");\n })\n .catch((error) => {\n console.log(error);\n setOpen(true);\n setMsg(\"Could not verify\");\n setSeverity(\"error\");\n });\n };\n\n const triggerOtp = () => {\n axios\n .post(partnerURL + `/partner/:partnerId/trigger-code`, {\n assistantId,\n mode,\n })\n .then((response) => {\n setOpen(true);\n setMsg(\"OTP sent!\");\n setSeverity(\"success\");\n })\n .catch((error) => {\n console.log(error);\n setMetaError(error);\n setOpen(true);\n setMsg(\"Failed\");\n setSeverity(\"error\");\n });\n };\n\n return (\n \n \n \n \n Request OTP\n \n \n {window.innerWidth < 767 && (\n \n setMode(value)}\n renderInput={(params) => (\n \n )}\n />\n \n )}\n\n {window.innerWidth < 767 && (\n \n \n Request\n \n \n )}\n\n {window.innerWidth >= 767 && (\n \n setMode(value)}\n renderInput={(params) => (\n \n )}\n />\n \n Request\n \n \n )}\n \n\n \n \n \n Verify OTP\n \n \n {window.innerWidth < 767 && (\n \n setCode(e.target.value)}\n value={code}\n style={{\n padding: \"0px 20px\",\n border: \"1px solid \",\n background: \"white\",\n width: 120,\n }}\n />\n \n )}\n\n {window.innerWidth < 767 && (\n \n \n Verify\n \n \n )}\n\n {window.innerWidth >= 767 && (\n \n setCode(e.target.value)}\n value={code}\n style={{\n padding: \"8px 20px\",\n border: \"1px solid \",\n background: \"white\",\n width: 120,\n }}\n />\n \n Verify\n \n \n )}\n \n \n \n {msg}\n \n \n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n // width: \"100%\",\n paddingTop: 20,\n overflowX: \"hidden\",\n },\n dialogContainer: {\n overflowX: \"hidden\",\n height: \"100%\",\n position: \"relative\",\n color: \"black\",\n },\n dialogTopbar: {\n position: \"sticky\",\n top: 0,\n left: 0,\n background: \"white\",\n zIndex: 100,\n },\n container: {\n background: \"rgb(70 20 134/0.1)\",\n borderRadius: \"15px\",\n },\n textField: {\n width: 200,\n },\n});\n\nexport default withStyles(styles)(OtpVerification);\n","import React, { useState } from \"react\";\nimport {\n Button,\n Box,\n Typography,\n TextField,\n withStyles,\n Grid,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { partnerURL } from \"../../config/config\";\nimport axios from \"axios\";\n\nfunction HealthCheck(props) {\n const { classes, assistant, partnerId, setSnackbar, setMetaError } = props;\n const { _id: assistantId } = assistant || {};\n const [isLoading, setLoading] = useState(false);\n\n const healthCheck = async () => {\n setLoading(true);\n const appId = axios.post(\n partnerURL + `/partner/${partnerId}/waba-app-id-health-check`,\n {\n assistantId,\n }\n );\n\n const numberId = axios.post(\n partnerURL + `/partner/${partnerId}/waba-number-id-health-check`,\n {\n assistantId,\n }\n );\n\n const results = await Promise.allSettled([appId, numberId]);\n setLoading(false);\n for (const result of results) {\n if (result.status === \"rejected\") {\n setMetaError(result.reason);\n return setSnackbar({\n alert: true,\n alertMsg:\n \"Health degraded. You to undergo procurement procedure again.\",\n alertType: \"error\",\n });\n }\n }\n\n setSnackbar({\n alert: true,\n alertMsg: \"Health check success. Everything is healthy.\",\n alertType: \"success\",\n });\n };\n\n return (\n \n \n \n \n Health Check\n \n \n \n \n \n )\n }\n >\n Check\n \n \n \n \n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n // width: \"100%\",\n paddingTop: 20,\n overflowX: \"hidden\",\n },\n dialogContainer: {\n overflowX: \"hidden\",\n height: \"100%\",\n position: \"relative\",\n color: \"black\",\n },\n dialogTopbar: {\n position: \"sticky\",\n top: 0,\n left: 0,\n background: \"white\",\n zIndex: 100,\n },\n container: {\n background: \"rgb(70 20 134/0.1)\",\n borderRadius: \"15px\",\n },\n textField: {\n width: 200,\n },\n});\n\nexport default withStyles(styles)(HealthCheck);\n","import React, { useState } from \"react\";\nimport {\n Box,\n Button,\n Grid,\n Typography,\n withStyles,\n Stepper,\n Step,\n StepLabel,\n StepContent,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n} from \"@material-ui/core\";\nimport { ExpandMore } from \"@material-ui/icons\";\nimport RegisterPin from \"./RegisterPin\";\nimport OtpVerification from \"./OtpVerification\";\nimport HealthCheck from \"./HealthCheck\";\n\nfunction StepBasedSolutions(props) {\n const {\n classes,\n assistant,\n partnerId,\n steps,\n EmbeddedSignup,\n EmbeddedMigration,\n SyncProgress,\n setSnackbar,\n customMsgObject,\n setMetaError,\n wabaIsLive,\n } = props;\n const [step, setStep] = useState(0);\n const [disabledList, setDisabled] = useState(\n Array.from({ length: steps?.length || 0 }, () => false)\n );\n\n const troubleshoot_options = {\n embedded_signup: {\n component: EmbeddedSignup,\n title: \"Embedded Signup\",\n message:\n \"Please tap on the button to generate an Embedded Signup URL. Complete the process to activate your WhatsApp Business Account\",\n },\n migrate_partner_project: {\n component: EmbeddedMigration,\n title: \"WABA Migration\",\n message:\n \"Please tap on the button to generate an Embedded WABA Migration URL. Complete the process to migrate your WhatsApp Business Account\",\n },\n sync_progress: {\n component: SyncProgress,\n title: \"Sync your progress\",\n message: \"Please tap on the button to sync your procurement progress.\",\n },\n register_pin: {\n component: RegisterPin,\n title: \"Phone Number Registeration\",\n message:\n \"Please tap on the button to register your Phone Number. If this steps fails then proceed to OTP Verification.\",\n },\n otp_verification: {\n component: OtpVerification,\n title: \"OTP Verification\",\n message:\n \"This step is optional if your registeration in previous step succeeded. If Registration Failed then tap on the trigger button to generate otp. Once the OTP is recieved fill the code and to complete verification required to complete your WhatsApp Business Account procurement process. After this go back to the previous Register step and register your number. If requesting OTP fails then proceed to next step to restart procurement process. \",\n },\n health_check: {\n component: HealthCheck,\n title: \"Phone Number Health Check\",\n message:\n \"Please tap on the button to check health status of your Phone Number\",\n },\n custom_msg: customMsgObject,\n };\n\n const handleNext = (disabled) => {\n const newDisabledList = [...disabledList];\n newDisabledList[step] = disabled;\n setStep((prevActiveStep) => prevActiveStep + 1);\n setDisabled((prev) => newDisabledList);\n };\n\n const handleBack = () => {\n setStep((prevActiveStep) => prevActiveStep - 1);\n };\n\n return (\n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n className={classes.accordianSummary}\n >\n \n WABA Procurement Troubleshoot\n \n \n \n \n {steps.map((label, index) => {\n const StepComponent = troubleshoot_options[label].component;\n return (\n \n {troubleshoot_options[label].title}\n \n {troubleshoot_options[label].message}\n \n
\n
\n \n Back\n \n \n {step === steps.length - 1 ? \"Finish\" : \"Next\"}\n \n
\n
\n
\n
\n );\n })}\n \n
\n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n // width: \"100%\",\n paddingTop: 20,\n overflowX: \"hidden\",\n },\n step: {\n \"& .MuiStepIcon-text\": {\n fill: \"white\",\n },\n },\n dialogContainer: {\n overflowX: \"hidden\",\n height: \"100%\",\n position: \"relative\",\n color: \"black\",\n },\n dialogTopbar: {\n position: \"sticky\",\n top: 0,\n left: 0,\n background: \"white\",\n zIndex: 100,\n },\n container: {\n background: \"#EBF5F3\",\n borderRadius: \"15px\",\n },\n textField: {\n width: 200,\n },\n cells: {\n padding: 24,\n color: \"grey\",\n borderBottom: \"1px solid #ecebeb\",\n },\n celltext: {\n color: \"grey\",\n },\n accordianDetail: {\n padding: \"0\",\n display: \"block\",\n },\n accordianSummary: {\n paddingLeft: \"0px\",\n \"&.Mui-expanded\": {\n minHeight: \"0px\",\n },\n },\n accordian: {\n \"&:before\": {\n display: \"none\",\n },\n \"&.Mui-expanded\": {\n minHeight: \"0px\",\n marginTop: \"0px\",\n },\n },\n});\n\nexport default withStyles(styles)(StepBasedSolutions);\n","import { Box, Tooltip, Typography } from \"@material-ui/core\";\nimport { Lock } from \"@material-ui/icons\";\nimport React from \"react\";\n\nfunction getOptionLabel(data, selected, classes) {\n const { tag, pageId, tasks, accountId, pageName, accountName, freezed } =\n data || {};\n\n const label = accountId\n ? `${accountName} - ${accountId.split(\"_\")[1]}`\n : pageId\n ? `${pageName} - ${pageId}`\n : \"NA\";\n\n const chipColors = {\n Assigned: \"#28c152\",\n Limited: \"#efa95e\",\n Personal: \"#8859e7\",\n };\n\n const lbl = `${pageId ? \"Page\" : \"Ad Account\"}`;\n\n const tagDescription = {\n Limited: `${lbl} is not assigned to AiSensy`,\n Personal: `Cannnot Access Personal ${lbl}'s`,\n };\n\n return (\n \n \n {`${pageId ? \"Page : \" : \"Account : \"}`}\n {label}\n \n {freezed && (\n \n {`Freezed : `}\n {`Other Agents will only be able to access this ${lbl}`}\n \n )}\n {/* \n {`Permissions : `}\n {JSON.stringify(tasks)\n .replace(/[\"\\[\\]]/g, \"\")\n .replace(/,/g, \", \")}\n */}\n {tag !== \"Assigned\" && (\n \n {`Reason : `}\n {tagDescription[tag] || \"\"}\n \n )}\n \n }\n arrow\n classes={{ arrow: classes.arrow }}\n >\n \n \n \n {label}\n \n \n {freezed && (\n \n \n \n )}\n {/* \n \n */}\n \n \n );\n}\n\nexport { getOptionLabel };\n","import React, { useState, useEffect } from \"react\";\nimport axios from \"axios\";\nimport { connect } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\nimport { isEmpty, startCase } from \"lodash\";\nimport { Autocomplete, Alert } from \"@material-ui/lab\";\nimport {\n Typography,\n makeStyles,\n Box,\n Grid,\n TextField,\n Button,\n Divider,\n DialogContent,\n Dialog,\n Snackbar,\n DialogActions,\n CircularProgress,\n IconButton,\n Tooltip,\n Link as LinkButton,\n InputAdornment,\n} from \"@material-ui/core\";\nimport {\n CheckCircleOutline,\n Clear,\n LockOpenOutlined,\n LockOutlined,\n} from \"@material-ui/icons\";\n\nimport { APIURL as baseUrl } from \"../../config/config\";\nimport { editAssistants } from \"../../store/assistantState\";\nimport { getOptionLabel } from \"./adsHelper\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n contentContainer: {\n width: \"100%\",\n boxSizing: \"border-box\",\n padding: \"40px\",\n minHeight: 200,\n borderRadius: \"15px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"25px 15px\",\n },\n },\n projectdialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n },\n },\n },\n message: {\n fontFamily: \"Inter\",\n fontSize: \"16px\",\n lineHeight: \"19.8px\",\n lineWidth: \"0.1px\",\n marginTop: \"1.5rem\",\n },\n autoComplete: {\n '& .MuiAutocomplete-option[aria-disabled=\"true\"]': {\n pointerEvents: \"inherit\",\n background: \"white\",\n },\n '& .MuiAutocomplete-option[aria-disabled=\"true\"]:active': {\n pointerEvents: \"none\",\n background: \"white\",\n },\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 8px\",\n\n background: \"#f9f9f9\",\n border: \"1px solid grey\",\n \"& label\": {\n background: \"#f9f9f9\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n truncate: {\n width: \"100%\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n textField: {\n width: \"100%\",\n height: 42,\n marginBottom: \"0.25em\",\n },\n Actions: {\n flex: \"0 0 auto\",\n display: \"flex\",\n alignItems: \"center\",\n padding: \"0 16px 16px\",\n },\n Dialog: {\n flex: \"1 1 auto\",\n padding: \"10px 16px\",\n overflowY: \"auto\",\n },\n dialogHeader: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"8px 4px 0 16px\",\n },\n arrow: {\n color: \"white\",\n },\n snackbar: {\n zIndex: 3000,\n top: 70,\n },\n selectContainer: {\n [theme.breakpoints.down(\"sm\")]: {\n width: \"80%\",\n },\n [theme.breakpoints.up(\"sm\")]: {\n width: \"60%\",\n },\n },\n otpTextField: {\n width: \"100%\",\n padding: \"8px 16px 7px 20px\",\n background: \"#f9f9f9\",\n border: \"1px solid grey\",\n },\n otpTextFieldDisabled: {\n \"& div\": {\n color: \"black !important\",\n },\n },\n lineItemGrid: {\n [theme.breakpoints.up(\"md\")]: {\n paddingRight: \"6em\",\n },\n },\n}));\n\nconst SetupMetaAds = (props) => {\n const { updateAssistantStore, partner, assistantDetails } = props;\n const { _id: partnerId } = partner || {};\n const { metaAdsDetails } = assistantDetails || {};\n const { minDailyBudgetLimit, totalAssignedBudget } = metaAdsDetails || {};\n\n const [open, setOpen] = useState(false);\n const [otp, setOtp] = useState(\"\");\n const [snack, setSnack] = useState({});\n const [fbloading, setFbloading] = useState(false);\n const [otpLoader, setOtpLoader] = useState(false);\n const [submitOtpLoader, setSubmitOtpLoader] = useState(false);\n const [fbaccount, setFbaccount] = useState([]);\n const [fbpages, setFbpages] = useState([]);\n const [accountValue, setAccountValue] = useState({});\n const [pageValue, setPageValue] = useState({});\n const [minDailyLimit, setMinDailyLimit] = useState(minDailyBudgetLimit);\n const [totalBudget, setTotalBudget] = useState(totalAssignedBudget);\n const [assignPageId, setAssignPageId] = useState(\"\");\n const [assignAccountId, setAssignAccountId] = useState(\"\");\n\n const classes = useStyles();\n const { projectId: assistantId } = useParams();\n\n const {\n fbUserId,\n isWhatsappVerified,\n whatsappNumber,\n activePlan,\n fbConnected,\n fbConnectedBy,\n wabaProgressStep,\n providerType,\n freezedMetaPageId,\n freezedMetaAdAccountId,\n selectedMetaAdAccountId,\n selectedMetaPageId,\n clientId,\n } = assistantDetails || {};\n\n const { whatsappNumber: pageWhatsappNumber } = pageValue || {};\n const numberLinked = whatsappNumber === pageWhatsappNumber;\n const fbOwner = !fbConnectedBy || fbConnectedBy === partnerId;\n const hasPlan = activePlan && activePlan !== \"NONE\";\n\n useEffect(() => {\n if (fbConnected) {\n getFbAcc(assistantId);\n getFbPages(assistantId);\n }\n }, []);\n\n const setupconnect = () => {\n if (isWhatsappVerified) {\n setFbloading(true);\n window.FB.login(\n (response) => {\n console.log(response);\n setupClientAccount(response);\n },\n {\n scope:\n \"public_profile,email,ads_read,ads_management,pages_show_list,business_management,pages_manage_metadata,pages_read_engagement\",\n auth_type: \"rerequest\",\n return_scopes: true,\n }\n );\n } else {\n setSnack({\n open: true,\n message: \"WhatsApp API is not live\",\n type: \"error\",\n });\n }\n };\n\n const setupClientAccount = (response) => {\n const { authResponse, status } = response;\n const { grantedScopes } = authResponse || {};\n\n if (status === \"connected\" && assistantId && grantedScopes) {\n if (!grantedScopes.includes(\"business_management\")) {\n setFbloading(false);\n setSnack({\n open: true,\n message: \"Provide Business Management permission!\",\n type: \"error\",\n });\n } else if (!grantedScopes.includes(\"ads_management\")) {\n setFbloading(false);\n setSnack({\n open: true,\n message: \"Provide Ads Management permission!\",\n type: \"error\",\n });\n } else if (!grantedScopes.includes(\"ads_read\")) {\n setFbloading(false);\n setSnack({\n open: true,\n message: \"Provide Ads Read permission!\",\n type: \"error\",\n });\n } else if (!grantedScopes.includes(\"pages_show_list\")) {\n setFbloading(false);\n setSnack({\n open: true,\n message: \"Provide Page Read permission!\",\n type: \"error\",\n });\n } else if (!grantedScopes.includes(\"pages_manage_metadata\")) {\n setFbloading(false);\n setSnack({\n open: true,\n message: \"Provide Page Management permission!\",\n type: \"error\",\n });\n } else {\n axios\n .post(`${baseUrl}/meta-ads/fb-connect`, {\n assistantId,\n authResponse,\n status,\n })\n .then((res) => {\n const { assistantData } = res?.data;\n const { fbConnected, fbUserId, fbGrantedScopes, fbConnectedBy } =\n assistantData;\n\n updateAssistantStore({\n fbConnected,\n fbUserId,\n fbGrantedScopes,\n fbConnectedBy,\n });\n\n getFbAcc(assistantId);\n getFbPages(assistantId);\n setFbloading(false);\n setSnack({\n open: true,\n message: \"Facebook connected!\",\n type: \"success\",\n });\n })\n .catch((error) => {\n console.log(error);\n setFbloading(false);\n setSnack({\n open: true,\n message: error?.response?.data?.message,\n type: \"error\",\n });\n });\n }\n } else {\n setFbloading(false);\n setSnack({\n open: true,\n message: \"Connection Failure!\",\n type: \"error\",\n });\n }\n };\n\n const disconnectClientAccount = () => {\n if (assistantId && fbUserId) {\n setFbloading(true);\n axios\n .post(`${baseUrl}/meta-ads/fb-disconnect`, { assistantId, fbUserId })\n .then((res) => {\n const { assistantData } = res?.data;\n const {\n fbConnected,\n selectedMetaPageId,\n selectedMetaAdAccountId,\n freezedMetaAdAccountId,\n freezedMetaPageId,\n } = assistantData;\n\n updateAssistantStore({\n fbConnected,\n selectedMetaPageId,\n selectedMetaAdAccountId,\n freezedMetaAdAccountId,\n freezedMetaPageId,\n });\n setFbloading(false);\n setSnack({\n open: true,\n message: \"Facebook disconnected!\",\n type: \"success\",\n });\n setAccountValue({});\n setPageValue({});\n setFbaccount([]);\n setFbpages([]);\n })\n .catch((error) => {\n console.log(error);\n setFbloading(false);\n setSnack({\n open: true,\n message: error?.response?.data?.message,\n type: \"error\",\n });\n });\n }\n };\n\n const getFbPages = (assistantId) => {\n if (assistantId) {\n axios\n .post(`${baseUrl}/meta-ads/fetch-pages`, {\n assistantId: assistantId,\n })\n .then((res) => {\n const filteredPages = modifyList(res.data);\n setFbpages(filteredPages);\n\n if (\n fbConnectedBy &&\n fbConnectedBy !== partnerId &&\n freezedMetaAdAccountId\n ) {\n const selectedPageValue = freezedMetaPageId\n ? res.data?.find(({ pageId }) => pageId === freezedMetaPageId)\n : {};\n setPageValue(selectedPageValue);\n } else if (selectedMetaPageId) {\n const selectedPageValue = res.data?.find(\n ({ pageId }) => pageId === selectedMetaPageId\n );\n\n setPageValue(selectedPageValue);\n }\n })\n .catch((error) => {\n console.log(\"error:\", error);\n });\n }\n };\n\n const getFbAcc = (assistantId) => {\n if (assistantId) {\n axios\n .post(`${baseUrl}/meta-ads/fetch-ad-accounts`, { assistantId })\n .then((res) => {\n const filteredAccounts = modifyList(res.data);\n setFbaccount(filteredAccounts);\n\n if (\n fbConnectedBy &&\n fbConnectedBy !== partnerId &&\n freezedMetaAdAccountId\n ) {\n const selectedAccountValue = res.data?.find(\n ({ accountId }) => accountId === freezedMetaAdAccountId\n );\n setAccountValue(selectedAccountValue);\n } else if (selectedMetaAdAccountId) {\n const selectedAccountValue = res.data?.find(\n ({ accountId }) => accountId === selectedMetaAdAccountId\n );\n setAccountValue(selectedAccountValue);\n }\n })\n .catch((error) => {\n console.log(\"error:\", error);\n });\n }\n };\n\n const updateWhatsappNumber = (number) => {\n const pages = fbpages.map((p) => {\n if (p.pageId === pageValue?.pageId) {\n p[\"whatsappNumber\"] = number;\n }\n return p;\n });\n\n setPageValue({ ...pageValue, whatsappNumber: number });\n setFbpages(pages);\n };\n\n const saveAdProfile = (accountValue, pageValue) => {\n if (!isEmpty(accountValue) && !isEmpty(pageValue)) {\n axios\n .post(`${baseUrl}/meta-ads/select-ad-profile`, {\n assistantId,\n selectedMetaAdAccountId: accountValue.accountId,\n selectedMetaPageId: pageValue.pageId,\n })\n .then((res) => {\n const { assistantData } = res?.data;\n console.log(assistantData);\n })\n .catch((error) => console.log(\"error:\", error));\n }\n };\n\n const selectAdAccount = (value) => {\n setPageValue({});\n setAccountValue(value);\n updateAssistantStore({\n selectedMetaAdAccountId: value.accountId,\n selectedMetaPageId: \"\",\n });\n };\n\n const selectPage = (value) => {\n if (fbOwner || !freezedMetaAdAccountId) {\n setPageValue(value);\n updateAssistantStore({ selectedMetaPageId: value.pageId });\n saveAdProfile(accountValue, value);\n }\n };\n\n const modifyList = (data, id) => {\n const result = isEmpty(data)\n ? []\n : data?.map((obj) => {\n const { metaBusinessId, isAssigned, pageId, accountId } = obj || {};\n\n let freezed = false;\n if (pageId && id !== \"\") {\n id = id || freezedMetaPageId;\n freezed = pageId === id ? true : false;\n } else if (accountId && id !== \"\") {\n id = id || freezedMetaAdAccountId;\n freezed = accountId === id ? true : false;\n }\n\n let tag = \"Limited\";\n if (isAssigned) tag = \"Assigned\";\n else if (!metaBusinessId) tag = \"Personal\";\n return { ...obj, tag, freezed };\n });\n\n return result;\n };\n\n const freezeAssets = (asset) => {\n const data = {};\n if (asset === \"page\" && pageValue?.pageId) {\n data.pageId = pageValue?.pageId;\n } else if (asset === \"adaccount\" && accountValue?.accountId) {\n data.adAccountId = accountValue?.accountId;\n }\n\n if (!isEmpty(data)) {\n data.assistantId = assistantId;\n axios\n .post(`${baseUrl}/meta-ads/freeze-asset`, data)\n .then((res) => {\n const { freezedMetaAdAccountId, freezedMetaPageId } = res?.data;\n\n let updatedAccountList = fbaccount;\n let updatedPageList = fbpages;\n if (\n freezedMetaAdAccountId !== assistantDetails?.freezedMetaAdAccountId\n ) {\n updatedAccountList = modifyList(fbaccount, freezedMetaAdAccountId);\n }\n if (freezedMetaPageId !== assistantDetails?.freezedMetaPageId) {\n updatedPageList = modifyList(fbpages, freezedMetaPageId);\n }\n\n setSnack({\n open: true,\n message: `Successfully freezed ${startCase(asset)} !!`,\n type: \"success\",\n });\n setFbaccount(updatedAccountList);\n setFbpages(updatedPageList);\n updateAssistantStore({\n freezedMetaPageId,\n freezedMetaAdAccountId,\n });\n })\n .catch((error) => {\n console.log(\"error:\", error);\n setSnack({\n open: true,\n message: `Something went wrong !!`,\n type: \"error\",\n });\n });\n }\n };\n\n const unFreezeAssets = (asset) => {\n if (!isEmpty(assistantId)) {\n const data = { assistantId, assets: asset };\n axios\n .post(`${baseUrl}/meta-ads/unfreeze-assets`, data)\n .then((res) => {\n const { freezedMetaAdAccountId, freezedMetaPageId } = res?.data;\n\n let updatedAccountList = fbaccount;\n let updatedPageList = fbpages;\n if (\n freezedMetaAdAccountId !== assistantDetails?.freezedMetaAdAccountId\n ) {\n updatedAccountList = modifyList(fbaccount, freezedMetaAdAccountId);\n }\n if (freezedMetaPageId !== assistantDetails?.freezedMetaPageId) {\n updatedPageList = modifyList(fbpages, freezedMetaPageId);\n }\n\n setFbaccount(updatedAccountList);\n setFbpages(updatedPageList);\n updateAssistantStore({\n freezedMetaPageId,\n freezedMetaAdAccountId,\n });\n setSnack({\n open: true,\n message: `Successfully un-freezed ${startCase(asset)} !!`,\n type: \"success\",\n });\n })\n .catch((error) => {\n console.log(\"error:\", error);\n setSnack({\n open: true,\n message: `Something went wrong !!`,\n type: \"error\",\n });\n });\n }\n };\n\n const linkWhatsappNumber = (verify) => {\n if (!pageValue?.pageId) {\n setSnack({\n open: true,\n message: \"Select facebook page !!\",\n type: \"error\",\n });\n return;\n }\n\n // if (!pageValue?.tasks?.includes(\"MANAGE\")) {\n // setSnack({\n // open: true,\n // message: \"User don't have MANAGE access on this page !!\",\n // type: \"error\",\n // });\n // return;\n // }\n\n if (verify && !otp) {\n setSnack({\n open: true,\n message: \"Enter OTP !!\",\n type: \"error\",\n });\n return;\n }\n\n if (verify) setSubmitOtpLoader(true);\n else setOtpLoader(true);\n\n const verificationCode = verify ? otp : \"\";\n axios\n .post(`${baseUrl}/meta-ads/update-whatsapp-number`, {\n assistantId,\n verificationCode,\n pageId: pageValue.pageId,\n number: whatsappNumber,\n })\n .then((res) => {\n const { otpState, message } = res?.data;\n console.log(message);\n if (otpState === \"send\") {\n setOpen(true);\n setOtpLoader(false);\n } else if (otpState === \"verified\") {\n updateWhatsappNumber(whatsappNumber);\n setOpen(false);\n setOtpLoader(false);\n setSubmitOtpLoader(false);\n setSnack({ open: true, message, type: \"success\" });\n }\n })\n .catch((error) => {\n console.log(\"error:\", error);\n setOtpLoader(false);\n setSubmitOtpLoader(false);\n setSnack({\n open: true,\n message: error?.response?.data?.message || \"Something went wrong\",\n type: \"error\",\n });\n\n const { action, assistant } = error?.response?.data || {};\n if (action === \"reconnect\" && assistant) {\n setAccountValue({});\n setFbaccount([]);\n setFbpages([]);\n setPageValue({});\n\n const {\n fbConnected,\n fbUserId,\n fbGrantedScopes,\n selectedMetaPageId,\n selectedMetaAdAccountId,\n freezedMetaAdAccountId,\n freezedMetaPageId,\n } = assistant || {};\n updateAssistantStore({\n fbConnected,\n fbUserId,\n fbGrantedScopes,\n selectedMetaPageId,\n selectedMetaAdAccountId,\n freezedMetaAdAccountId,\n freezedMetaPageId,\n });\n }\n });\n };\n\n const updateMetaAdDetails = (field, value) => {\n console.log({ field, value });\n if (!isEmpty(assistantId) && field && value) {\n const data = { assistantId, [field]: value };\n axios\n .post(`${baseUrl}/meta-ads/updateMetaAdDetails`, data)\n .then((res) => {\n const { metaAdsDetails } = res?.data;\n\n updateAssistantStore({ metaAdsDetails });\n setSnack({\n open: true,\n message: `Successfully updated values !!`,\n type: \"success\",\n });\n })\n .catch((error) => {\n console.log(\"error:\", error);\n const { message } = error?.response?.data || {};\n setSnack({\n open: true,\n message: message || `Something went wrong !!`,\n type: \"error\",\n });\n });\n }\n };\n\n const assignNewAsset = async (field, value) => {\n const urlMap = {\n assignPageId: \"assign-meta-page\",\n assignAccountId: \"assign-ad-account\",\n };\n try {\n const url = `${baseUrl}/meta-ads/${urlMap[field]}`;\n const payload = { assistantId, id: value, clientId };\n const { data: res } = await axios.post(url, payload);\n if (res.success) {\n if (field === \"assignPageId\") {\n setFbpages([...fbpages, res.data]);\n } else {\n setFbaccount([...fbaccount, res.data]);\n }\n setSnack({\n open: true,\n message: `Successfully assigned !!`,\n type: \"success\",\n });\n } else {\n setSnack({\n open: true,\n message: `Something went wrong !!`,\n type: \"error\",\n });\n }\n } catch (error) {\n console.log(\"error:\", error);\n const { message } = error?.response?.data || {};\n setSnack({\n open: true,\n message: message || `Something went wrong !!`,\n type: \"error\",\n });\n }\n };\n\n return (\n
\n \n \n
\n \n \n \n Connect your Facebook account\n \n \n \n <>\n {fbConnected ? (\n \n
\n \n ) : (\n \"\"\n )\n }\n >\n Disconnect\n \n
\n \n ) : (\n \n \n Get WhatsApp Business API approved first →\n \n \n ) : providerType !== \"v3\" ? (\n \n \n Upgrade to new APIs for free to enable this\n feature →\n \n \n ) : wabaProgressStep !== 9 ? (\n \n \n WhatsApp Business API Pending, Sync Status →\n \n \n ) : !hasPlan ? (\n \"Purchase a plan to continue\"\n ) : (\n \"\"\n )\n }\n >\n \n \n ) : (\n \"\"\n )\n }\n >\n Continue With Facebook\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n Choose your Ad account\n \n \n \n \n \n !option.isAssigned}\n options={fbaccount}\n onChange={(e, value) => selectAdAccount(value)}\n value={accountValue}\n groupBy={(option) =>\n option.metaBusinessName || \"Other Ad Accounts\"\n }\n renderOption={(a, b) => getOptionLabel(a, b, classes)}\n getOptionLabel={(option) => {\n const { accountName, accountId } = option;\n if (accountName && accountId)\n return `${accountName} - ${accountId.split(\"_\")[1]}`;\n return \"\";\n }}\n name=\"fbaccount\"\n renderInput={(params) => {\n return (\n \n );\n }}\n />\n \n \n\n {fbConnectedBy === partnerId && accountValue?.accountId && (\n <>\n {freezedMetaAdAccountId === accountValue?.accountId ? (\n \n unFreezeAssets(\"adaccount\")}\n >\n \n Un-Freeze\n \n \n ) : (\n \n Freeze selected Ad Account\n
\n \n Other agents will be able to access this Ad\n Account only\n \n
\n
\n }\n >\n freezeAssets(\"adaccount\")}\n >\n \n Freeze\n \n \n )}\n \n )}\n
\n
\n \n \n \n \n \n \n Choose your Facebook page\n \n \n\n \n \n \n !option.isAssigned}\n id=\"grouped-demo\"\n disabled={\n !fbConnected ||\n !accountValue?.systemUserId ||\n (fbConnectedBy !== partnerId && freezedMetaPageId)\n }\n renderOption={(a, b) => getOptionLabel(a, b, classes)}\n options={fbpages.filter(\n (value) =>\n value?.metaBusinessId === accountValue?.metaBusinessId\n )}\n getOptionLabel={(option) => {\n const { pageName, pageId } = option;\n if (pageName && pageId)\n return `${pageName} - ${pageId}`;\n return \"\";\n }}\n onChange={(e, value) => selectPage(value)}\n groupBy={(option) =>\n option.metaBusinessName || \"Other Pages\"\n }\n value={pageValue}\n name=\"fbpage\"\n renderInput={(params) => (\n \n )}\n />\n \n \n {fbConnectedBy === partnerId && pageValue?.pageId && (\n <>\n {freezedMetaPageId === pageValue?.pageId ? (\n \n unFreezeAssets(\"page\")}\n >\n \n Un-Freeze\n \n \n ) : (\n \n Freeze selected Facebook Page\n
\n \n Other agents will be able to access this Page\n only\n \n
\n
\n ) : (\n \"First freeze selected Ad Account to freeze Page\"\n )\n }\n >\n
\n freezeAssets(\"page\")}\n disabled={\n freezedMetaAdAccountId !== accountValue?.accountId\n }\n >\n \n Freeze\n \n
\n \n )}\n \n )}\n \n \n \n \n \n \n \n Link Whatsapp Number\n \n \n \n \n \n \n \n ),\n }}\n />\n \n \n <>\n {numberLinked ? (\n <>\n ) : (\n \n
\n linkWhatsappNumber()}\n endIcon={\n otpLoader ? (\n \n ) : (\n \"\"\n )\n }\n disabled={\n otpLoader || !fbConnected || !pageValue?.pageId\n }\n >\n Send OTP\n \n
\n \n )}\n \n \n\n \n {\" \"}\n \n \n \n \n \n \n Set Minimum Daily Ad Budget\n \n \n \n \n setMinDailyLimit(e.target.value)}\n name=\"minDailyLimit\"\n value={minDailyLimit}\n placeholder=\"Enter Daily Min Ad Limit\"\n />\n \n <>\n \n
\n \n updateMetaAdDetails(\n \"minDailyBudgetLimit\",\n minDailyLimit\n )\n }\n disabled={!fbConnected}\n >\n Confirm\n \n
\n \n \n \n\n \n \n \n \n \n \n \n Assign Total Budget\n \n \n \n setTotalBudget(e.target.value)}\n name=\"totalBudget\"\n value={totalBudget}\n placeholder=\"Enter Total Budget Cap\"\n />\n \n <>\n \n
\n \n updateMetaAdDetails(\n \"totalAssignedBudget\",\n totalBudget\n )\n }\n disabled={!fbConnected}\n >\n Confirm\n \n
\n \n \n \n \n \n \n \n \n \n Assign New Page\n \n \n \n setAssignPageId(e.target.value)}\n name=\"assignPageId\"\n value={assignPageId}\n placeholder=\"Enter Page Id\"\n />\n \n <>\n \n
\n \n assignNewAsset(\"assignPageId\", assignPageId)\n }\n disabled={!fbConnected}\n >\n Assign\n \n
\n \n \n \n\n \n \n \n \n \n \n \n Assign New Ad Account\n \n \n \n setAssignAccountId(e.target.value)}\n name=\"assignAccountId\"\n value={assignAccountId}\n />\n \n <>\n \n
\n \n assignNewAsset(\"assignAccountId\", assignAccountId)\n }\n disabled={!fbConnected}\n >\n Assign\n \n
\n \n \n \n\n \n \n {/* \n \n \n \n \n Create Advertisement\n \n Click Create Ad to start receiving leads directly on your\n WhatsApp.\n \n \n \n \n \n\n \n */}\n \n \n \n \n \n \n One Time Password\n {\n setOpen(false);\n setOtpLoader(false);\n }}\n >\n \n \n \n \n {\n setOtp(e.target.value);\n }}\n placeholder=\"Waiting for OTP...\"\n gutterBot\n />\n \n OTP recieved on LIVE chat of registered WhatsApp Number\n \n \n \n \n {\n linkWhatsappNumber(true);\n }}\n disabled={submitOtpLoader}\n endIcon={\n submitOtpLoader ? (\n \n ) : (\n \"\"\n )\n }\n >\n Submit\n \n \n \n \n {\n setSnack({ open: false });\n }}\n anchorOrigin={{ vertical: \"top\", horizontal: \"center\" }}\n autoHideDuration={3000}\n >\n setSnack({ open: false })}>\n {snack.message}\n \n \n \n );\n};\n\nconst ConnectedSetupMetaAds = connect(\n (state) => ({\n partner: state.partner.partner,\n }),\n { editAssistants }\n)(SetupMetaAds);\n\nexport default ConnectedSetupMetaAds;\n","import {\n Box,\n Button,\n FormControl,\n FormHelperText,\n Grid,\n IconButton,\n InputAdornment,\n Switch,\n TextField,\n Typography,\n} from \"@material-ui/core\";\nimport React, { useState } from \"react\";\nimport ConfirmationDialog from \"./ConfirmationDialog\";\nimport axios from \"axios\";\nimport { partnerURL } from \"../../config/config\";\nimport { Edit } from \"@material-ui/icons\";\n\n// const ADDONS = { webhooks: \"Webhooks\", meta_ads: \"Meta Ads\" };\n\nexport default function AddonsManagement(props) {\n const { classes, partner, assistantId, assistantAddons, setSnackbar } = props;\n const ADDONS = partner?.addons || {};\n const [addons, setAddons] = useState(assistantAddons || {});\n const [showDialog, setShowDialog] = useState(false);\n const [currentAddon, setCurrentAddon] = useState();\n const partnerAddons = partner?.addons || {};\n const [partnerPlans, setPartnerPlans] = useState();\n const [flowCount, setFlowCount] = useState(\n addons?.FLOW_BUILDER?.flowCount || 5\n );\n const [action, setAction] = useState(\"ADD\");\n const aisensyPlansClone = JSON.parse(\n JSON.stringify(partnerAddons[currentAddon]?.aisensyPlans || {})\n );\n\n const toggleDialog = () => setShowDialog((prev) => !prev);\n\n const activateAddon = async (addonKey) => {\n try {\n const payload = {\n addon: addonKey,\n };\n\n if (addonKey === \"FLOW_BUILDER\") {\n payload.flowCount = flowCount;\n payload.partnerPlans = partnerPlans || aisensyPlansClone;\n }\n\n const { data } = await axios.post(\n partnerURL + `/partner/${partner._id}/project/${assistantId}/addon`,\n payload\n );\n\n setAddons((prev) => ({\n ...prev,\n [currentAddon]: data.addon,\n }));\n setSnackbar({\n alert: true,\n alertType: \"success\",\n alertMsg: `Addon activated successfully!`,\n });\n } catch (error) {\n const errMsg = error?.response?.data?.message || \"\";\n setSnackbar({\n alert: true,\n alertType: \"error\",\n alertMsg: `Unable to active addon: ${errMsg}`,\n });\n }\n };\n\n const modifyAddon = async (addonKey) => {\n try {\n const payload = {\n addon: addonKey,\n };\n\n if (partnerPlans) payload.partnerPlans = partnerPlans;\n if (addonKey === \"FLOW_BUILDER\") payload.flowCount = flowCount;\n\n const { data } = await axios.patch(\n partnerURL + `/partner/${partner._id}/project/${assistantId}/addon`,\n payload\n );\n console.log(data);\n setAddons((prev) => ({\n ...prev,\n [currentAddon]: data.addon,\n }));\n setSnackbar({\n alert: true,\n alertType: \"success\",\n alertMsg: `Addon updated successfully!`,\n });\n } catch (error) {\n const errMsg = error?.response?.data?.message || \"\";\n setSnackbar({\n alert: true,\n alertType: \"error\",\n alertMsg: `Unable to update addon: ${errMsg}`,\n });\n }\n };\n\n const disableAddon = async (addonKey) => {\n try {\n await axios.delete(\n partnerURL + `/partner/${partner._id}/project/${assistantId}/addon`,\n { data: { addon: addonKey } }\n );\n setAddons((prev) => {\n return {\n ...prev,\n [currentAddon]: { ...prev[currentAddon], status: \"paused\" },\n };\n });\n setSnackbar({\n alert: true,\n alertType: \"success\",\n alertMsg: `Addon disabled successfully!`,\n });\n } catch (error) {\n const errMsg = error?.response?.data?.message || \"\";\n setSnackbar({\n alert: true,\n alertType: \"error\",\n alertMsg: `Unable to disable addon: ${errMsg}`,\n });\n }\n };\n\n const updateAddons = () => {\n if (action === \"REMOVE\") disableAddon(currentAddon);\n if (action === \"MODIFY\") modifyAddon(currentAddon);\n if (action === \"ACTIVATE\") activateAddon(currentAddon);\n\n toggleDialog();\n };\n\n const toggleSwitch = (addon, event) => {\n setAction(event.target.checked ? \"ACTIVATE\" : \"REMOVE\");\n setCurrentAddon(addon);\n toggleDialog();\n };\n\n const AddOn = ({ addon, classes }) => {\n const exists = addons[addon] && addons[addon].status === \"active\";\n const name = ADDONS[addon].name;\n return (\n \n \n {name}\n \n = 768 && \"flex-end\",\n alignItems: \"center\",\n }}\n className={classes.cells}\n >\n toggleSwitch(addon, e)}\n color=\"primary\"\n name={name}\n inputProps={{ \"aria-label\": \"primary checkbox\" }}\n />\n {exists && [\"FLOW_BUILDER\"].includes(addon) && (\n {\n setAction(\"MODIFY\");\n setCurrentAddon(addon);\n toggleDialog();\n }}\n >\n \n \n )}\n \n \n );\n };\n\n const FlowCountUI = () => {\n return (\n <>\n
\n \n \n No. of flows\n \n \n \n\n \n {\n setFlowCount((prev) => Number(prev) - 10);\n }}\n >\n -10\n \n\n {\n setFlowCount((prev) => Number(prev) + 10);\n }}\n >\n +10\n \n {\n setFlowCount((prev) => Number(prev) + 20);\n }}\n >\n +20\n \n {\n setFlowCount((prev) => Number(prev) + 40);\n }}\n >\n +40\n \n {\n setFlowCount((prev) => Number(prev) + 80);\n }}\n >\n +80\n \n \n
\n \n );\n };\n\n const PlanUI = () => {\n const aisensyPlans = partnerAddons[currentAddon].aisensyPlans;\n const partnerPlan =\n partnerPlans || addons[currentAddon]?.partnerPlans || aisensyPlansClone;\n\n return (\n <>\n \n \n \n AiSensy Charges\n \n \n \n \n Your Charges\n \n \n \n \n First 5 Flow Charge\n \n \n {Object.keys(aisensyPlans.tier1.plans)\n .filter((e) => e !== \"QUARTERLY\")\n .map((plan) => {\n return (\n <>\n \n \n \n {plan} PLAN(INR)\n \n Enter the amount in INR\n ₹\n ),\n }}\n disabled\n />\n \n \n \n {plan} PLAN(USD)\n \n Enter the amount in USD\n $\n ),\n }}\n disabled\n />\n \n \n \n \n \n {plan} PLAN(INR)\n \n Enter the amount in INR\n ₹\n ),\n }}\n onChange={(e) => {\n partnerPlan.tier1.plans[plan].INR = Math.round(\n Number(e.target.value) * 100000\n );\n setPartnerPlans(partnerPlan);\n }}\n />\n \n \n \n {plan} PLAN(USD)\n \n Enter the amount in USD\n $\n ),\n }}\n onChange={(e) => {\n partnerPlan.tier1.plans[plan].USD = Math.round(\n Number(e.target.value) * 100000\n );\n setPartnerPlans(partnerPlan);\n }}\n />\n \n \n \n );\n })}\n \n \n Subsequent 10 Flow Charge\n \n {Object.keys(aisensyPlans.tier2.plans)\n .filter((e) => e !== \"QUARTERLY\")\n .map((plan) => {\n return (\n \n \n \n \n {plan} PLAN(INR)\n \n Enter the amount in INR\n ₹\n ),\n }}\n disabled\n />\n \n \n \n {plan} PLAN(USD)\n \n Enter the amount in USD\n $\n ),\n }}\n disabled\n />\n \n \n \n \n \n {plan} PLAN(INR)\n \n Enter the amount in INR\n ₹\n ),\n }}\n onChange={(e) => {\n partnerPlan.tier2.plans[plan].INR = Math.round(\n Number(e.target.value) * 100000\n );\n setPartnerPlans(partnerPlan);\n }}\n />\n \n \n \n {plan} PLAN(USD)\n \n Enter the amount in USD\n $\n ),\n }}\n onChange={(e) => {\n partnerPlan.tier2.plans[plan].USD = Math.round(\n Number(e.target.value) * 100000\n );\n setPartnerPlans(partnerPlan);\n }}\n />\n \n \n \n );\n })}\n \n );\n };\n\n return (\n \n \n Addons\n \n\n \n {Object.keys(ADDONS)\n .filter((addon) => ADDONS[addon].status === \"active\")\n .map((e) => {\n return (\n \n \n \n );\n })}\n \n {currentAddon && (\n \n {action !== \"REMOVE\" &&\n [\"FLOW_BUILDER\"].includes(currentAddon) ? (\n <>\n {\"FLOW_BUILDER\" === currentAddon &&\n addons[currentAddon]?.status !== \"paused\" && (\n \n )}\n \n \n ) : (\n \n Are you sure that you want to{\" \"}\n {action === \"ACTIVATE\"\n ? \"enable\"\n : action === \"MODIFY\"\n ? \"modify\"\n : \"disable\"}{\" \"}\n this Add-On for this project?\n \n )}\n \n }\n />\n )}\n \n );\n}\n","import React from \"react\";\nimport {\n Dialog,\n Grid,\n Typography,\n IconButton,\n DialogContent,\n TextField,\n DialogActions,\n Button,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { Clear } from \"@material-ui/icons\";\n\nexport default function DefaultsDialog(props) {\n const {\n openDialog,\n closeDialog,\n classes,\n changeValueFn,\n title,\n CustomComponent,\n activeKey,\n } = props;\n const [isLoading, setLoading] = React.useState(false);\n return (\n \n \n {title}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Cancel\n \n {/* // assistant.wabaProgressStep === 9 && assistant.familyId */}\n {\n setLoading(true);\n await changeValueFn(activeKey);\n setLoading(false);\n }}\n disabled={isLoading}\n endIcon={isLoading ? : \"\"}\n >\n Update\n \n \n \n \n );\n}\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n IconButton,\n Snackbar,\n TextField,\n} from \"@material-ui/core\";\nimport { Edit } from \"@material-ui/icons\";\nimport { connect } from \"react-redux\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\nimport Header from \"../../commons/Header/Header\";\nimport axios from \"axios\";\nimport { URL } from \"../../config/config\";\nimport AgentLimitDialog from \"./AgentLimitDialog\";\nimport dialCodes, { isoToName } from \"../../config/dialCodes\";\nimport DefaultsDialog from \"./DefaultsDialog\";\nimport { act } from \"react-dom/test-utils\";\n\nclass DefaultsPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n alert: false,\n alertMsg: \"\",\n alertSeverity: \"\",\n openDialog: false,\n activeKey: null,\n whatsAppAbout:\n this.props.whatsAppAbout ||\n this.props.partner?.defaultConfigs?.whatsAppAbout ||\n null,\n isoCode:\n this.props.isoCode ||\n this.props.partner?.defaultConfigs?.isoCode ||\n this.props.partner?.isoCode ||\n null,\n };\n }\n\n closeSnackbar = () => {\n this.setState({ alert: false, alertMsg: \"\", alertSeverity: \"\" });\n };\n\n toggleDialog = (key) => {\n const { openDialog } = this.state;\n if (openDialog) {\n this.setState({ openDialog: false, activeKey: null });\n } else {\n this.setState({ openDialog: true, activeKey: key });\n }\n };\n\n updateDefaultConfig = (key) => {\n axios\n .post(URL + `/api/set-default-configs`, {\n assistantId: this.props?.assistantId,\n [key]: this.state[key],\n })\n .then((_) => {\n this.setState({\n alert: true,\n alertSeverity: \"success\",\n alertMsg: \"Updated successfully\",\n openDialog: false,\n });\n })\n .catch((error) => {\n const { message } = error?.response?.data?.error || error || {};\n this.setState({\n alert: true,\n alertSeverity: \"error\",\n alertMsg: message || \"Update failed!\",\n });\n });\n };\n\n countrySelection = () => {\n const { classes } = this.props;\n const defaultValue = dialCodes.find(\n (e) =>\n e.isoCode ===\n (this.state.isoCode || this.props.partner?.isoCode || \"IN\")\n );\n return (\n {\n this.setState({\n isoCode: value.isoCode,\n country: value,\n });\n }}\n value={this.state.value}\n getOptionLabel={(option) => option.name}\n renderOption={(option) => (\n {option.name}\n )}\n renderInput={(params) => (\n \n )}\n />\n );\n };\n\n whatsAppAboutSelection = () => {\n return (\n {\n this.setState({ whatsAppAbout: e.target.value });\n }}\n defaultValue={this.state.whatsAppAbout}\n style={{ width: \"calc(100%)\" }}\n />\n );\n };\n\n render() {\n const { classes, assistantId } = this.props;\n const { isoCode, whatsAppAbout, activeKey } = this.state;\n return (\n
\n {/* Page name & description container */}\n {!assistantId &&
}\n \n {/* Layout */}\n \n \n \n \n \n Set Defaults\n \n \n \n \n Country\n \n \n {isoToName[isoCode] ?? \"Set country\"}\n \n\n \n this.toggleDialog(\"isoCode\")}\n >\n \n \n \n \n \n\n \n\n \n \n About\n \n \n {whatsAppAbout ?? \"Set WhatsApp About\"}\n \n\n \n this.toggleDialog(\"whatsAppAbout\")}\n >\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n {this.state.alertMsg}\n \n \n {this.state.openDialog && (\n \n )}\n
\n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(247,247,247)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // paddingBottom: \"80px\"\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n detailContainer: {\n marginTop: \"20px\",\n width: \"100%\",\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n primaryBackground: {\n background: \"rgb(70 20 134 / 15%)\",\n },\n container: {\n marginTop: 16,\n background: \"white\",\n borderRadius: 8,\n padding: \"24px 36px\",\n },\n containerPlans: {\n marginTop: 24,\n background: \"white\",\n borderRadius: 8,\n padding: \"24px 36px\",\n },\n containerButton: {\n marginTop: 16,\n background: \"white\",\n borderRadius: 8,\n padding: \"15px 15px\",\n },\n viewOldButton: {\n \"&:hover\": {\n color: \"grey\",\n cursor: \"pointer\",\n },\n },\n cells: {\n padding: 24,\n color: \"grey\",\n borderBottom: \"1px solid #ecebeb\",\n },\n lastCell: {\n padding: 24,\n color: \"grey\",\n },\n plandialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n height: \"unset\",\n maxHeight: \"unset\",\n minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n height: \"unset\",\n maxHeight: \"unset\",\n minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n});\n\nconst connectDefaultsPage = connect((state) => ({\n partner: state.partner.partner,\n}))(DefaultsPage);\n\nexport default withStyles(styles)(connectDefaultsPage);\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Box,\n Grid,\n IconButton,\n Typography,\n Tabs,\n Tab,\n Button,\n TextField,\n Snackbar,\n Dialog,\n DialogContent,\n DialogActions,\n Tooltip,\n Select,\n MenuItem,\n} from \"@material-ui/core\";\nimport { withRouter } from \"react-router-dom\";\nimport FileCopyIcon from \"@material-ui/icons/FileCopy\";\nimport moment from \"moment\";\nimport {\n Add,\n ArrowBack,\n Clear,\n Edit,\n FiberManualRecord,\n Person,\n Info,\n ArrowForward,\n Close,\n} from \"@material-ui/icons\";\nimport BillingPage from \"../BillingProfile/BillingPage\";\nimport TemplateRoute from \"../TemplateMsg/TemplateRoute\";\nimport { connect } from \"react-redux\";\nimport axios from \"axios\";\nimport { URL, projectURL, partnerURL } from \"../../config/config\";\nimport { editAssistants } from \"../../store/assistantState\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport WebhookMappingsTable from \"./webhookMappingsTable\";\nimport PlanChangeDialog from \"../PlanDetails/PlanChangeDialog\";\nimport plansHelper from \"../../helpers/plansHelper\";\nimport WccChangeDialog from \"../PlanDetails/WccChangeDialog\";\nimport WabaForm from \"../Dashboard/WabaForm/WabaForm\";\nimport AgentLimitDialog from \"../Manage/AgentLimitDialog\";\nimport WccAnalytics from \"./WccAnalytics/WccAnalytics\";\nimport StepBasedSolutions from \"../../commons/Troubleshoot/StepBasedSolutions\";\nimport SetupMetaAds from \"../MetaAds/SetupMetaAds\";\nimport AddonsManagement from \"./AddonsManagement\";\nimport { fetchPartnerDetails } from \"../../store/partnerState\";\nimport DeleteForeverIcon from \"@material-ui/icons/DeleteForever\";\nimport DefaultsPage from \"../Manage/DefaultsPage\";\nimport Header from \"../../commons/Header/Header\";\nconst verticals = [\n \"UNDEFINED\",\n \"OTHER\",\n \"AUTO\",\n \"BEAUTY\",\n \"APPAREL\",\n \"EDU\",\n \"ENTERTAIN\",\n \"EVENT_PLAN\",\n \"FINANCE\",\n \"GROCERY\",\n \"GOVT\",\n \"HOTEL\",\n \"HEALTH\",\n \"NONPROFIT\",\n \"PROF_SERVICES\",\n \"RETAIL\",\n \"TRAVEL\",\n \"RESTAURANT\",\n \"NOT_A_BIZ\",\n];\nconst PLANS = [\n \"FREE\",\n \"LITE\",\n \"PRO\",\n \"PLUS\",\n \"PREMIUM\",\n \"BASIC_MONTHLY\",\n \"BASIC_QUARTERLY\",\n \"BASIC_YEARLY\",\n \"PRO_MONTHLY\",\n \"PRO_QUARTERLY\",\n \"PRO_YEARLY\",\n \"ENTERPRISE_MONTHLY\",\n \"ENTERPRISE_QUARTERLY\",\n \"ENTERPRISE_YEARLY\",\n \"BASIC_MONTHLY_TIER_1\",\n \"BASIC_MONTHLY_TIER_2\",\n \"BASIC_MONTHLY_TIER_3\",\n \"BASIC_MONTHLY_TIER_4\",\n \"BASIC_MONTHLY_TIER_5\",\n \"BASIC_MONTHLY_TIER_6\",\n \"BASIC_MONTHLY_TIER_7\",\n \"BASIC_MONTHLY_TIER_8\",\n \"BASIC_YEARLY_TIER_1\",\n \"BASIC_YEARLY_TIER_2\",\n];\n\nconst PROJECT_STATUS = [\n \"active\",\n \"unpaid\",\n \"terminated\",\n \"pending\",\n \"suspended\",\n \"stopped\",\n \"archived\",\n];\n\nfunction getStatusColor() {\n const templateStatus = \"PENDING\";\n switch (templateStatus) {\n case \"PENDING\":\n return \"grey\";\n case \"APPROVED\":\n return \"#08CF65\";\n case \"REJECTED\":\n return \"#ff0000\";\n default:\n return \"pink\";\n }\n}\n\nconst allTopics = [\n \"message.created\",\n \"message.status.updated\",\n \"message.sender.user\",\n \"contact.created\",\n \"contact.attribute.updated\",\n \"contact.chat.intervened\",\n \"contact.chat.requesting\",\n \"contact.chat.closed\",\n \"contact.campaign.sent\",\n \"contact.campaign.read\",\n \"contact.first_message.added\",\n \"contact.first_message.removed\",\n \"contact.tag.added\",\n \"contact.tag.removed\",\n];\n\nclass AssistantsDetail extends Component {\n constructor(props) {\n super(props);\n this.state = {\n alertType: \"\",\n alertMsg: \"\",\n tab: \"Details\",\n assistant: null,\n editProfilePicture: false,\n editAboutText: false,\n editAddress: false,\n editDescription: false,\n editEmail: false,\n editWebsite: false,\n editBusinessVertical: false,\n newProfilePicture: \"\",\n newAboutText: \"\",\n newAddress: \"\",\n newDescription: \"\",\n newEmail: \"\",\n newWebsite: \"\",\n newBusinessVertical: \"\",\n loadProfilePicture: false,\n loadAboutText: false,\n loadAddress: false,\n loadDescription: false,\n loadEmail: false,\n loadWebsite: false,\n loadBusinessVertical: false,\n selectedFile: {},\n wasImageChanged: false,\n openPlanDialog: false,\n allPlans: [],\n changePlan: \"\",\n planSubmitLoader: false,\n openWebhookDialog: false,\n webhookSubmitLoader: false,\n selectedTopic: [],\n selectedWebhookurl: \"\",\n webhookResult: [],\n isWebhookLoading: true,\n openWccDialog: false,\n wccAction: \"\",\n wccAmount: \"\",\n wccSubmitLoader: false,\n openPwcDialog: false,\n pwcAction: \"\",\n pwcAmount: \"\",\n pwcSubmitLoader: false,\n linkGenerated: \"\",\n migrationLinkGenerated: \"\",\n manageCatalogLinkGenerated: \"\",\n selectedFamilyId: null,\n currentPlan: \"\",\n email: \"\",\n contact: \"\",\n company: \"\",\n reqBusinessId: \"\",\n planStoppedOn: false,\n selectedValue: \"a\",\n disableDate: Number(localStorage.getItem(\"resetField\")) + 300000,\n openWccChangeDialog: false,\n handleClickDialog: false,\n openPlanDialog: false,\n wabaDialog: false,\n showAgentDialog: false,\n metaError: null,\n isLoading: false,\n openPrivateAppDialog: false,\n privateApps: [],\n password: \"\",\n webhookUrl: \"\",\n SharedSecret: \"\",\n isWebhookLoading: false,\n chatApiWebhook: {},\n reactivationLoader: false,\n deleteProject: false,\n deleteMessage: null,\n deleteStatus: null,\n deleteLoading: false,\n reportLoading: false,\n };\n }\n\n fecthAssistant = () => {\n axios\n .get(URL + `/api/get-project/${this.props.match.params.projectId}`)\n .then((response) => {\n const assistants = response.data.projects;\n this.setState({ assistant: assistants[0] }, () => {\n this.setState({\n addonCheck: this.state?.assistant?.addons?.WEBHOOKS ? true : false,\n });\n });\n if (assistants[0].isWhatsappVerified) this.getDirectApiPartnerProfile();\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n updateAssistant = (values) => {\n const existing = this.state.assistant;\n this.setState({ assistant: { ...existing, ...values } });\n };\n\n onConfirm = () => {\n this.setState({ deleteLoading: true });\n axios\n .post(URL + `/api/delete-project/${this.props.match.params.projectId}`)\n .then((response) => {\n let { message, status } = response.data;\n this.setState(\n {\n deleteMessage: message,\n deleteStatus: status,\n deleteLoading: false,\n },\n () => {\n const data = { projectDeleted: true };\n if (this.state.deleteStatus == \"#28C153\") {\n this.props.history.push(\"/assistants\", data);\n }\n }\n );\n })\n .catch((error) => {\n this.setState({ deleteLoading: false });\n console.error(error);\n });\n };\n\n componentDidMount() {\n this.props.fetchPartnerDetails();\n this.fecthAssistant();\n // this.fetchBusiness();\n\n if (this.props.partner?.type !== \"DIRECT\") {\n this.fetchPrivateApp();\n plansHelper.setPlanFamilies();\n plansHelper.setWccPlans();\n this.getPartnerPlans();\n this.fetchWebhook();\n }\n }\n\n getPartnerPlans = () => {\n axios\n .get(\n URL +\n `/api/get-partner-plan-family/${this.props.match.params.projectId}`\n )\n .then((response) => {\n const data = response.data.family.plans;\n this.setState({\n selectedFamilyId: response.data.family._id.toString(),\n allPlans: data,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n closeHandleDialog = () => {\n this.setState({ handleClickDialog: !this.state.handleClickDialog });\n };\n\n fetchBusiness() {\n // const partnerId = this.props.user.id;\n const _id = this.props.match.params.projectId;\n axios\n .get(URL + `/api/get-business-details/${_id}`)\n .then((response) => {\n const data = response.data;\n this.setState({\n email: data.email,\n contact: data.contact,\n company: data.company,\n reqBusinessId: data._id,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n }\n\n goToBusiness = () => {\n this.props.history.push(`/businesses/${this.state.reqBusinessId}`);\n };\n\n editToggle = (edit) => {\n this.setState({\n [edit]: !this.state[edit],\n });\n };\n\n handleInput = (e) => {\n this.setState({\n [e.target.name]: e.target.value,\n });\n };\n\n syncWaba = () => {\n this.setState({ planSubmitLoader: true });\n const id = this.props.match.params.projectId;\n const partnerId = this.props.partner._id;\n const checkTime = localStorage.getItem(\"resetField\");\n const resetCheck = Number(checkTime) + 300000;\n if (checkTime) {\n if (resetCheck > Date.now()) {\n this.setState({\n alertType: \"error\",\n alertMsg: \"Please try to sync after few miniutes\",\n });\n return;\n }\n }\n axios\n .post(partnerURL + `/partner/${partnerId}/sync-channel-status`, {\n assistantId: id,\n })\n .then((response) => {\n this.setState({\n alertType: \"success\",\n alertMsg: \"Sync successful\",\n planSubmitLoader: false,\n disableDate: Date.now() + 30000,\n });\n localStorage.setItem(\"resetField\", Date.now());\n })\n .catch((error) => {\n this.setState({\n alertType: \"error\",\n alertMsg: \"Sync failed\",\n planSubmitLoader: false,\n });\n });\n };\n\n onEdit = async (item) => {\n try {\n const { assistant, wasImageChanged, selectedFile } = this.state;\n\n const keys = {\n newAboutText: [\"whatsAppAbout\", \"loadAboutText\", \"editAboutText\"],\n newAddress: [\"address\", \"loadAddress\", \"editAddress\"],\n newDescription: [\"description\", \"loadDescription\", \"editDescription\"],\n newEmail: [\"email\", \"loadEmail\", \"editEmail\"],\n newWebsite: [\"websites\", \"loadWebsite\", \"editWebsite\"],\n newBusinessVertical: [\n \"vertical\",\n \"loadBusinessVertical\",\n \"editBusinessVertical\",\n ],\n newProfilePicture: [\n \"whatsAppDisplayImage\",\n \"loadProfilePicture\",\n \"editProfilePicture\",\n ],\n };\n const { whatsAppAbout, whatsAppBusinessProfile } = assistant || {};\n\n const { address, description, email, vertical, websites } =\n whatsAppBusinessProfile || {};\n\n const queryObj = {\n assistantId: this.props.match.params.projectId,\n address: address,\n description: description,\n email: email,\n vertical: vertical,\n wasImageChanged: false,\n filePath: \"\",\n websites: websites,\n whatsAppAbout: whatsAppAbout,\n whatsAppDisplayImage: \"\",\n };\n\n let result;\n\n if (item === \"newProfilePicture\") {\n if (this.state.loadProfilePicture) return;\n } else {\n if (!this.state[item] || this.state[keys[item][1]]) {\n return;\n }\n if (item === \"newWebsite\") result = [this.state[item]];\n else result = this.state[item];\n queryObj[keys[item][0]] = result;\n }\n\n this.setState({\n [keys[item][1]]: true,\n });\n\n if (wasImageChanged && selectedFile) {\n // Get Upload-URL\n const response = await axios.post(\n projectURL + `/project/${queryObj.assistantId}/get-upload-url`,\n {\n assistantId: queryObj.assistantId,\n fileName: \"profile_picture_\" + Date.now(),\n contentType: selectedFile.type,\n fileType: \"IMAGE\",\n }\n );\n let form = new FormData();\n Object.entries(response.data.uploadURL.fields).forEach((entry) => {\n form.append(entry[0], entry[1]);\n });\n form.append(\"file\", selectedFile);\n const config = {\n transformRequest: (data, headers) => {\n delete headers.common[\"Authorization\"];\n return data;\n },\n };\n await axios.post(response.data.uploadURL.url, form, config);\n const fileURL = response.data.fullUrl;\n const filePath = response.data.filePath;\n queryObj.wasImageChanged = true;\n queryObj.whatsAppDisplayImage = fileURL;\n queryObj.filePath = filePath;\n queryObj.type = selectedFile?.type;\n queryObj.size = selectedFile?.size;\n result = fileURL;\n }\n\n axios\n .post(\n projectURL +\n `/project/${queryObj.assistantId}/update-business-profile`,\n queryObj\n )\n .then((response) => {\n this.setState({\n alertType: \"success\",\n alertMsg: \"Successfully Updated\",\n wasImageChanged: false,\n selectedFile: {},\n });\n this.props.editAssistants(\n queryObj.assistantId,\n keys[item][0],\n result\n );\n\n const updateState = {\n ...this.state.assistant,\n };\n\n if (item === \"newAboutText\" || item === \"newProfilePicture\") {\n updateState[keys[item][0]] = result;\n } else {\n const whatsAppBusinessProfile = {\n ...this.state.assistant.whatsAppBusinessProfile,\n [keys[item][0]]: result,\n };\n updateState.whatsAppBusinessProfile = whatsAppBusinessProfile;\n }\n\n this.setState({\n [keys[item][1]]: false,\n [keys[item][2]]: false,\n assistant: updateState,\n });\n })\n .catch((error) => {\n console.log(error);\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message ||\n \"something went wrong, tryagain\",\n });\n this.setState({\n [keys[item][1]]: false,\n [keys[item][2]]: false,\n });\n });\n } catch (error) {\n console.log(error);\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, tryagain\",\n });\n }\n };\n\n openFileUploader = (action) => {\n this.setState({ editProfilePicture: true }, () => {\n if (this.props.partner?.type !== \"DIRECT\") {\n const input = document.createElement(\"input\");\n input.id = \"file_uploader\";\n input.type = \"file\";\n input.accept = \"image/jpeg, image/png\";\n input.addEventListener(\"change\", this.uploadFile);\n input.click();\n }\n });\n };\n\n uploadFile = (input) => {\n const files = input.target?.files;\n if (files && files[0]) {\n const file = files[0];\n const MB_1 = 1000000;\n\n // Max size of 5MB allowed.\n if (file.size > 5 * MB_1) {\n this.setState({\n alertOpen: true,\n alertType: \"error\",\n alertMsg: \"Maximum size of Image can be 5MB\",\n });\n } else {\n var reader = new FileReader();\n reader.onload = (e) => {\n const img = new Image();\n const updateState = (data) => this.setState(data);\n // const updateForm = (key, value) => this.updateForm(key, value);\n img.onload = function () {\n var height = this.height;\n var width = this.width;\n if (height < 192 || width < 192) {\n updateState({\n alertOpen: true,\n alertType: \"error\",\n alertMsg: \"Image size too small\",\n });\n } else {\n updateState({\n wasImageChanged: true,\n selectedFile: file,\n });\n }\n };\n img.onerror = () => {\n this.setState({\n alertOpen: true,\n alertType: \"error\",\n alertMsg: \"Invalid file format\",\n });\n };\n img.src = e.target.result;\n };\n reader.readAsDataURL(file);\n const input = document.getElementById(\"file_uploader\");\n input.removeEventListener(\"change\", this.uploadFile);\n }\n }\n };\n\n updateProfileViaDirectAPI = (key, value, toggleKey) => {\n axios\n .patch(URL + `/api/direct-api-partner/profile`, {\n projectId: this.props.match.params.projectId,\n [key]: value,\n })\n .then((_) => {\n this.setState({\n alertType: \"success\",\n alertMsg: \"Updated successfully\",\n [toggleKey]: !this.state[toggleKey],\n });\n })\n .catch((error) => {\n console.log(error);\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, try again\",\n });\n });\n };\n\n getDirectApiPartnerProfile = () => {\n const projectId = this.props.match.params.projectId;\n axios\n .get(URL + `/api/direct-api-partner/profile/${projectId}`)\n .then(({ data }) => {\n const { businessProfile } = data;\n const [profile] = businessProfile;\n\n const {\n about: newAboutText,\n address: newAddress,\n description: newDescription,\n email: newEmail,\n profile_picture_url: newProfilePicture,\n websites,\n vertical: newBusinessVertical,\n } = profile;\n\n this.setState({\n newProfilePicture,\n newAboutText,\n newAddress,\n newDescription,\n newEmail,\n newWebsite: websites?.join(\", \") || \"\",\n newBusinessVertical,\n });\n })\n .catch((error) => {\n console.log(error);\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, try again\",\n });\n });\n };\n\n planDialog = () => {\n this.setState({ openPlanDialog: !this.state.openPlanDialog });\n };\n\n toggleWccPlanChangeDialog = () => {\n this.setState({ openWccChangeDialog: !this.state.openWccChangeDialog });\n };\n\n wccDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openWccDialog: !this.state.openWccDialog });\n };\n\n pwcDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openPwcDialog: !this.state.openPwcDialog });\n };\n\n webhookDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openWebhookDialog: !this.state.openWebhookDialog });\n };\n\n privateAppDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openPrivateAppDialog: !this.state.openPrivateAppDialog });\n };\n\n fetchWebhook = () => {\n this.setState({ isWebhookLoading: true });\n axios\n .get(\n projectURL +\n `/project/${this.props.match.params.projectId}/partner/webhook`\n )\n .then((response) => {\n let webhooks = response.data;\n webhooks.forEach((assistant) => {\n if (\n assistant.topics.includes(\"message.sender.user\") ||\n assistant.topics.includes(\"message.status.updated\")\n ) {\n this.setState({ chatApiWebhook: assistant });\n }\n });\n this.setState({ webhookResult: webhooks, isWebhookLoading: false });\n })\n .catch((error) => {\n console.error(error);\n this.setState({ isWebhookLoading: false });\n });\n };\n\n fetchPrivateApp = () => {\n this.setState({ isLoading: true });\n axios\n .get(\n projectURL + `/project/${this.props.match.params.projectId}/private-app`\n )\n .then((response) => {\n let privateApps = response.data;\n this.setState({\n privateApps: privateApps,\n isLoading: false,\n });\n })\n .catch((error) => {\n console.error(error);\n this.setState({\n isLoading: false,\n });\n });\n };\n\n CreatePrivateApp = async () => {\n this.setState({ isLoading: true });\n const { partnerId, clientId } = this.state.assistant;\n axios\n .post(\n projectURL +\n `/project/${this.props.match.params.projectId}/private-app`,\n { partnerId, clientId }\n )\n .then((response) => {\n let privateApps = response.data;\n // let webhooksObj = {};\n // webhooks.forEach((assistant) => {\n // webhooksObj[assistant.project_id] = assistant;\n // });\n this.setState({ password: privateApps, isLoading: false });\n this.setState({\n isLoading: false,\n alertType: \"success\",\n alertMsg: \"Private app created\",\n });\n })\n .catch((error) => {\n console.log(error);\n this.setState({\n isLoading: false,\n alertType: \"error\",\n alertMsg: error.response.data.message || \"Something went wrong\",\n });\n });\n };\n\n updatePrivateApp = async () => {\n this.setState({ isLoading: true });\n const { _id } = this.state.privateApps;\n axios\n .patch(\n projectURL +\n `/project/${this.props.match.params.projectId}/private-app`,\n { privateAppId: _id }\n )\n .then((response) => {\n let reqPassword = response.data;\n this.setState({\n password: reqPassword,\n isLoading: false,\n alertType: \"success\",\n alertMsg: \"Private app updated\",\n });\n })\n .catch((error) => {\n console.error(error);\n this.setState({\n isLoading: false,\n alertType: \"error\",\n alertMsg: error.response.data.message || \"Something went wrong\",\n });\n });\n };\n\n planSubmit = async (newFamilyId, newPlanId) => {\n const newObj = {\n ...this.state.assistant,\n };\n try {\n const resonse = await axios.patch(\n partnerURL +\n `/partner/${this.state.assistant.partnerId}/project/${this.props.match.params.projectId}/billing/switch-plan`,\n {\n newFamilyId,\n newPlanId,\n }\n );\n\n if (resonse.status === 200) {\n newObj.activePlan = newPlanId;\n newObj.familyId = newFamilyId;\n this.props.editAssistants(newObj._id, \"familyId\", newFamilyId);\n this.props.editAssistants(newObj._id, \"activePlan\", newPlanId);\n\n const reqPlan = this.state.changePlan;\n this.setState({\n alertType: \"success\",\n alertMsg: \"Successfully updated plan\",\n planSubmitLoader: false,\n openPlanDialog: false,\n assistant: newObj,\n currentPlan: reqPlan,\n });\n }\n } catch (error) {\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, try again\",\n planSubmitLoader: false,\n });\n }\n };\n\n changeWccPlan = async (wccPlanId) => {\n const newObj = {\n ...this.state.assistant,\n };\n try {\n const response = await axios.patch(URL + \"/api/update-project-wcc-plan\", {\n assistantId: this.props.match.params.projectId,\n wccPlanId,\n });\n\n if (response.status === 200) {\n newObj.templateTier = wccPlanId;\n this.props.editAssistants(newObj._id, \"templateTier\", wccPlanId);\n this.setState({\n alertType: \"success\",\n alertMsg: \"Successfully changed wcc plan\",\n planSubmitLoader: false,\n openWccChangeDialog: false,\n assistant: newObj,\n });\n }\n } catch (error) {\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, try again\",\n planSubmitLoader: false,\n });\n }\n };\n\n // to stop the plan\n stopPlan = () => {\n this.setState({\n planSubmitLoader: true,\n });\n axios\n .patch(\n partnerURL +\n `/partner/${this.state.assistant.partnerId}/stop-project-billing/${this.props.match.params.projectId}`\n )\n .then((response) => {\n this.setState({\n alertType: \"success\",\n alertMsg: \"Plan stopped!\",\n planStoppedOn: true,\n planSubmitLoader: false,\n });\n this.closeHandleDialog();\n })\n .catch((error) => {\n console.log(error);\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, try again\",\n planSubmitLoader: false,\n });\n });\n };\n\n webhookSubmit = () => {\n this.setState({ webhookSubmitLoader: true });\n const newObj = {\n topics: this.state.selectedTopic,\n webhook_url: this.state.selectedWebhookurl,\n };\n\n axios\n .post(\n projectURL + `/project/${this.props.match.params.projectId}/webhook`,\n newObj\n )\n .then((response) => {\n this.setState(\n {\n alertType: \"success\",\n alertMsg: \"Successfully created webhook\",\n webhookSubmitLoader: false,\n openWebhookDialog: false,\n },\n this.fetchWebhook\n );\n })\n .catch((error) => {\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, tryagain\",\n webhookSubmitLoader: false,\n });\n });\n };\n\n createWebhook = () => {\n this.setState({ isWebhookLoading: true });\n const newObj = {\n topics: [\"message.sender.user\", \"message.status.updated\"],\n webhook_url: this.state.webhookUrl,\n };\n\n axios\n .post(\n projectURL + `/project/${this.props.match.params.projectId}/webhook`,\n newObj\n )\n .then((response) => {\n this.setState(\n {\n alertType: \"success\",\n alertMsg: \"Successfully created webhook\",\n isWebhookLoading: false,\n },\n this.fetchWebhook\n );\n })\n .catch((error) => {\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, tryagain\",\n isWebhookLoading: false,\n });\n });\n };\n\n wccSubmit = () => {\n this.setState({ wccSubmitLoader: true });\n const newObj = {\n ...this.state.assistant,\n };\n if (this.state.wccAmount && this.state.wccAmount > 0)\n axios\n .patch(\n partnerURL +\n `/partner/${this.state.assistant.partnerId}/project/${this.props.match.params.projectId}/billing/wcc`,\n {\n amount: this.state.wccAmount,\n action: this.state.wccAction,\n }\n )\n .then((response) => {\n newObj.templateCredit = response.data.credit;\n this.props.editAssistants(\n newObj._id,\n \"templateCredit\",\n response.data.credit\n );\n this.setState({\n alertType: \"success\",\n alertMsg: \"Successfully updated Wcc\",\n wccSubmitLoader: false,\n openWccDialog: false,\n assistant: newObj,\n });\n })\n .catch((error) => {\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message ||\n \"something went wrong, tryagain\",\n wccSubmitLoader: false,\n });\n });\n else\n this.setState({\n alertType: \"error\",\n alertMsg: \"Invalid amount\",\n wccSubmitLoader: false,\n });\n };\n\n pwcSubmit = () => {\n this.setState({ pwcSubmitLoader: true });\n const newObj = {\n ...this.state.assistant,\n };\n if (this.state.pwcAmount && this.state.pwcAmount > 0)\n axios\n .patch(\n partnerURL +\n `/partner/${this.state.assistant.partnerId}/project/${this.props.match.params.projectId}/billing/pwc`,\n {\n amount: this.state.pwcAmount,\n action: this.state.pwcAction,\n }\n )\n .then((response) => {\n newObj.partnerWhatsappCredit = response.data.partner_credit;\n this.props.editAssistants(\n newObj._id,\n \"partnerWhatsappCredit\",\n response.data.partner_credit\n );\n this.setState({\n alertType: \"success\",\n alertMsg: \"Successfully updated Wcc\",\n pwcSubmitLoader: false,\n openPwcDialog: false,\n assistant: newObj,\n });\n })\n .catch((error) => {\n this.setState({\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message ||\n \"something went wrong, tryagain\",\n pwcSubmitLoader: false,\n });\n });\n else\n this.setState({\n alertType: \"error\",\n alertMsg: \"Enter a valid amount value\",\n pwcSubmitLoader: false,\n });\n };\n\n onSnackbarClose = () => {\n this.setState({\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n\n setSnackbar = ({ alert, alertType, alertMsg }) => {\n this.setState({\n alert,\n alertType,\n alertMsg,\n });\n };\n\n generateWabaLink = () => {\n const assistant = this.state.assistant;\n const { clientId, partnerId, _id } = assistant;\n axios\n .post(URL + `/api/generate-waba-link/`, {\n assistantId: _id,\n businessId: clientId,\n partnerId,\n })\n .then((response) => {\n const { link } = response.data;\n this.setState({\n linkGenerated: link,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n generateWabaMigrationLink = () => {\n const assistant = this.state.assistant;\n const { partnerId, _id } = assistant;\n axios\n .post(URL + `/api/generate-waba-migration-link/`, {\n assistantId: _id,\n partnerId,\n })\n .then((response) => {\n const { link } = response.data;\n this.setState({\n migrationLinkGenerated: link,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n generateManageCatalogLink = () => {\n const assistant = this.state.assistant;\n const { partnerId, _id } = assistant;\n axios\n .post(URL + `/api/generate-connect-catalog-link/`, {\n assistantId: _id,\n partnerId,\n })\n .then((response) => {\n const { link } = response.data;\n this.setState({\n manageCatalogLinkGenerated: link,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n handleChange = (event) => {\n this.setState({\n selectedValue: event.target.value,\n });\n };\n\n toggleWABADialog = () => {\n this.setState({ wabaDialog: !this.state.wabaDialog });\n };\n\n openWabaDialog = () => {\n if (!this.state.assistant.apiFormDetails) {\n this.setState({\n alertType: \"error\",\n alertMsg: \"API form details are not available\",\n });\n } else {\n this.setState({\n wabaDialog: true,\n });\n }\n };\n\n toggleAgentDialog = () => {\n this.setState({ showAgentDialog: !this.state.showAgentDialog });\n };\n\n updateAgentLimit = (agentSize) => {\n const assistant = this.state.assistant;\n const { _id } = assistant;\n axios\n .patch(URL + `/api/update-project-agent-size`, {\n projectId: _id,\n agentSize,\n })\n .then((response) => {\n this.setState({\n alertType: \"success\",\n alertMsg: \"Agent size updated successfully\",\n showAgentDialog: false,\n assistant: { ...this.state.assistant, maxAgents: agentSize },\n });\n })\n .catch((error) => {\n this.setState({\n alertType: \"error\",\n alertMsg: \"Agent size updation failed! Something went wrong.\",\n });\n console.error(error);\n });\n };\n\n EmbeddedSignup = () => {\n const { classes } = this.props;\n return (\n \n \n \n \n Embedded SignUp URL\n \n \n \n {this.state.linkGenerated ? (\n \n \n {this.state.linkGenerated}\n \n {\n this.setState({\n alertType: \"success\",\n alertMsg: \"URL copied to clipboard\",\n });\n navigator.clipboard.writeText(this.state.linkGenerated);\n }}\n >\n Copy Link\n \n \n ) : (\n \n Generate URL\n \n )}\n \n \n
\n );\n };\n\n EmbeddedMigration = () => {\n const { classes } = this.props;\n return (\n \n \n \n \n WhatsApp Business API Account Migration URL\n \n \n \n {this.state.migrationLinkGenerated ? (\n \n \n {this.state.migrationLinkGenerated}\n \n {\n this.setState({\n alertType: \"success\",\n alertMsg: \"URL copied to clipboard\",\n });\n navigator.clipboard.writeText(\n this.state.migrationLinkGenerated\n );\n }}\n >\n Copy Link\n \n \n ) : (\n \n Generate URL\n \n )}\n \n \n
\n );\n };\n\n SyncProgress = () => {\n const { classes } = this.props;\n return (\n \n \n \n Sync Waba Procurement Progress\n \n \n = 0 ||\n this.state.planSubmitLoader\n ? \"Retry again a in few mins\"\n : \"Sync WABA\"\n }\n >\n \n = 0 ||\n this.state.planSubmitLoader\n }\n endIcon={\n this.state.planSubmitLoader ? (\n \n ) : (\n \"\"\n )\n }\n >\n Sync\n \n \n \n \n \n \n );\n };\n\n setMetaError = (error) => {\n this.setState({ metaError: error });\n };\n\n embeddedHelper = () => {\n const { assistant, metaError } = this.state;\n let { wabaProgressStep, procurementError, isWhatsappVerified } =\n assistant || {};\n if (this.state.assistant && !wabaProgressStep) {\n wabaProgressStep = 0;\n }\n\n let { process, error } = metaError || procurementError || {};\n if (metaError && metaError?.response?.data?.error?.code) {\n error = metaError;\n }\n let steps = [];\n let customObject = { component: <>, title: \"\", message: \"\" };\n\n if (wabaProgressStep === 9 && isWhatsappVerified) {\n steps = [\"register_pin\", \"otp_verification\"];\n }\n\n if (wabaProgressStep <= 7) {\n steps = [\n \"health_check\",\n \"register_pin\",\n \"otp_verification\",\n \"embedded_signup\",\n \"sync_progress\",\n // \"migrate_partner_project\"\n ];\n\n const code = error?.response?.data?.error?.code;\n const subCode = error?.response?.data?.error?.error_subcode;\n // If we have error available then use it to suggest further steps\n if (wabaProgressStep < 7) {\n switch (process) {\n case \"partner_embedded_signup\":\n //Facebook Authentication failed!\n steps = [\"health_check\", \"embedded_signup\"];\n break;\n case \"partner_waba_migration\":\n steps = [\"health_check\", \"migrate_partner_project\"];\n break;\n default:\n break;\n }\n }\n // If we have error available then use it to suggest further steps\n else if (code === 100) {\n // \"Phone numbers count exceeded limit per business.\n if (subCode === 2388112) {\n steps = [\n \"health_check\",\n process === \"migrate_partner_project\"\n ? \"migrate_partner_project\"\n : \"embedded_signup\",\n ];\n }\n // Incorrect/Unsupported APP ID.\n else if (subCode === 33) {\n steps = [\n \"custom_msg\",\n process === \"migrate_partner_project\"\n ? \"migrate_partner_project\"\n : \"embedded_signup\",\n ];\n customObject = {\n component: <>,\n title: \"Incorrect/Unsupported WhatsApp Business Account ID\",\n message:\n \"The WhatsApp Business Account ID used during the onboarding process is either Incorrect or Unsupported. Kindly go through onboarding again with a new Account ID\",\n };\n }\n // Fallback\n else {\n steps = [];\n }\n } else if (code === 133005) {\n //2 Factor Authentication is enabled\n steps = [\n \"custom_msg\",\n \"register_pin\",\n \"otp_verification\",\n \"health_check\",\n \"sync_progress\",\n ];\n customObject = {\n component: <>,\n title: \"Disable 2FA\",\n message:\n \"Your 2 Factor Authentication is enabled. Please disable 2 Factor Authentication first and then proceed to register your phone number in the next step.\",\n };\n } else if (code === 133006) {\n //Phone number re-verification needed\n if (subCode === 2494081) {\n steps = [\n \"custom_msg\",\n \"otp_verification\",\n \"register_pin\",\n \"health_check\",\n \"sync_progress\",\n ];\n }\n\n customObject = {\n component: <>,\n title: \"Phone number re-verification needed\",\n message:\n \"Phone number needs to be verified before registering. Press next to proceed for OTP verification.\",\n };\n } else if (code === 136024) {\n // You have already verified ownership of this phone number.\n if (subCode === 2388091) {\n steps = [\"register_pin\", \"health_check\", \"sync_progress\"];\n }\n }\n // If error isn't available then suggest general solutions for troubleshooting\n else {\n steps = [\n \"health_check\",\n process === \"migrate_partner_project\"\n ? \"migrate_partner_project\"\n : \"embedded_signup\",\n ];\n }\n }\n\n return { troubleshootSteps: steps, customObject };\n };\n\n updateWebhookUrl = () => {\n this.setState({ isWebhookLoading: true });\n axios\n .patch(\n projectURL +\n `/project/${this.state.assistant._id}/webhook/${this.state.chatApiWebhook.id}`,\n {\n webhook_url: this.state.chatApiWebhook.webhook_url,\n }\n )\n .then((response) => {\n this.setState(\n {\n isWebhookLoading: false,\n alertType: \"success\",\n alertMsg: \"Successfully Updated webhook\",\n },\n this.props.fetchWebhook\n );\n })\n .catch((error) => {\n console.error(error);\n this.setState({\n isWebhookLoading: false,\n alertType: \"error\",\n alertMsg:\n error?.response?.data?.message || \"something went wrong, try again\",\n });\n });\n };\n\n copySnack = () => {\n this.setState({\n alertType: \"success\",\n alertMsg: \"API key copied\",\n });\n };\n\n reactivatePlan = async () => {\n this.setState({\n reactivationLoader: true,\n });\n const {\n familyId,\n activePlan: defaultPlan,\n partnerId,\n } = this.state.assistant;\n axios\n .patch(\n partnerURL +\n `/partner/${partnerId}/project/${this.state.assistant._id}/billing/reactivate-project`,\n { familyId, defaultPlan }\n )\n .then((response) => {\n this.setState({\n planStoppedOn: false,\n reactivationLoader: false,\n alertType: \"success\",\n alertMsg: response.data.message || \"plan reactivated Successfully\",\n });\n this.props.editAssistants(\n this.state.assistant._id,\n \"planStoppedOn\",\n false\n );\n })\n .catch((error) => {\n this.setState({\n reactivationLoader: false,\n alertType: \"error\",\n alertMsg: error?.response?.data?.message || \"something went wrong\",\n });\n });\n };\n\n toggleDialog = () => {\n this.props.history.push(\"/assistants\");\n };\n\n getConvoReport = async (startDate, endDate) => {\n const assistant = this.state.assistant;\n const assistantId = assistant?._id;\n const partnerId = this.props.partner._id;\n if (!assistantId) return null;\n\n this.setState({ reportLoading: true });\n\n try {\n const response = await axios.post(\n partnerURL +\n `/partner/${partnerId}/project/${assistantId}/project-convo-report`,\n { startDate, endDate },\n { responseType: \"stream\" }\n );\n\n const report = response.data?.logs || [];\n const headers = Array.from(\n new Set(report.flatMap((entry) => Object.keys(entry)))\n );\n let csvContent = headers.join(\",\") + \"\\n\";\n\n report.forEach((entry) => {\n headers.forEach((header) => {\n const cellContent = entry[header]\n ? `\"${entry[header].replace(/\\n/g, \"\\n\")}\"`\n : \"\";\n csvContent += cellContent + \",\";\n });\n csvContent = csvContent.slice(0, -1);\n csvContent += \"\\n\";\n });\n\n // Download the file as CSV\n var downloadLink = document.createElement(\"a\");\n const blob = new Blob([csvContent], { type: \"text/csv\" });\n var url = window.URL.createObjectURL(blob);\n downloadLink.href = url;\n\n // Format file name\n let start = moment(startDate, \"YYYY-MM-DD\").isValid()\n ? moment(startDate).format(\"DD-MM-YYYY\")\n : null;\n let end = moment(endDate, \"YYYY-MM-DD\").isValid()\n ? moment(endDate).format(\"DD-MM-YYYY\")\n : null;\n\n if (startDate && endDate) {\n downloadLink.download = `Project_Conversation_Report_${start}_to_${end}.csv`;\n } else {\n downloadLink.download = `Project_Conversation_Report.csv`;\n }\n\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n this.setState({\n reportLoading: false,\n alertType: \"success\",\n alertMsg: \"Successfully Downloaded!\",\n });\n } catch (error) {\n this.setState({\n reportLoading: false,\n alertType: \"error\",\n alertMsg: error?.response?.data?.message || \"Error downloading report!\",\n });\n console.log(error);\n }\n };\n\n render() {\n // console.log(this.state.privateApps);\n const { assistant, tab } = this.state;\n const { classes, planFamilies, wccPlans, partner } = this.props;\n const { type, addons, centralBalance, minAllowedBalance } = partner || {};\n const {\n assistantName,\n isWhatsappVerified,\n currency,\n templateCredit,\n whatsappNumber,\n whatsAppDisplayImage,\n whatsAppAbout,\n whatsAppDisplayName,\n displayNameVerified,\n dailyTemplateLimit,\n qualityRating,\n whatsAppBusinessProfile,\n activePlan,\n familyId,\n planStoppedOn,\n templateTier,\n chargebeePlan,\n status,\n maxAgents,\n fbManagerVerified,\n partnerId,\n addons: assistantAddons,\n isoCode,\n wabaNumberId,\n wabaAppId,\n wabaProgressStep,\n } = assistant || {};\n\n const family = planFamilies[familyId];\n const familyName = family?.name ?? \"NA FAMILY\";\n const name = family?.plans[activePlan]?.name ?? \"NA PLAN\";\n const wccPlanName = wccPlans[templateTier]?.name ?? \"NA PLAN\";\n const { address, description, email, vertical, websites } =\n whatsAppBusinessProfile || {};\n const { troubleshootSteps, customObject } = this.embeddedHelper();\n const lowBalance = centralBalance < (minAllowedBalance || 0);\n return !this.state.assistant ? (\n \n ) : (\n
\n {/* Page name & description container */}\n \n \n \n \n \n\n \n\n \n \n
\n \n \n \n {assistantName}\n \n \n Project Name\n \n \n \n \n \n {isWhatsappVerified ? \"LIVE\" : \"DRAFT\"}\n \n \n Account Status\n \n \n {[\"verified\", \"VERIFIED\"].includes(fbManagerVerified) &&\n [\"ready\", \"verified\", \"APPROVED\", \"DEFERRED\"].includes(\n displayNameVerified\n ) && (\n \n \n \n {[\"Low\", \"FLAGGED\"].includes(qualityRating)\n ? \"LOW\"\n : [\"UNFLAGGED\", \"Medium\", \"RESTRICTED\"].includes(\n qualityRating\n )\n ? \"MEDIUM\"\n : \"HIGH\"}\n \n \n Quality Rating\n \n \n )}\n \n \n {`${!currency || currency === \"INR\" ? \"₹\" : \"$\"} ${\n !templateCredit\n ? 0\n : Number(templateCredit / 100000).toFixed(2)\n }`}\n \n \n WhatsApp Credits\n \n \n \n
\n \n {/* \n \n \n \n \n Business Details\n \n \n Go To Business \n \n \n\n \n
\n \n \n \n \n Company Name\n \n \n \n \n \n \n \n \n \n \n {this.state.company}\n \n \n \n \n\n \n \n \n Mobile Number\n \n \n \n \n \n \n \n \n \n \n {this.state.contact}\n \n \n \n \n\n \n \n \n Admin Email\n \n \n \n \n \n \n \n \n \n \n {this.state.email}\n \n \n \n \n \n
\n
\n
\n
\n
*/}\n \n \n\n \n {\n this.setState({\n tab: newValue,\n });\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n aria-label=\"scrollable auto tabs example\"\n TabIndicatorProps={{\n className: classes.tabIndicator,\n }}\n >\n {/* */}\n \n \n {/* */}\n {/* */}\n {/* */}\n\n {/* */}\n\n {/* {isWhatsappVerified &&\n Object.keys(addons || {}).length > 0 && (\n \n )} */}\n {/* {assistantAddons?.WEBHOOKS?.status === \"active\" &&\n [\"WHITELABEL\"].includes(this.props.partner.type) &&\n ![\"BASIC_MONTHLY\", \"BASIC_YEARLY\", \"NONE\"].includes(\n this.state.assistant.activePlan\n ) && }\n {[\"WHITELABEL\"].includes(this.props.partner.type) &&\n ![\"BASIC_MONTHLY\", \"BASIC_YEARLY\", \"NONE\"].includes(\n this.state.assistant.activePlan\n ) &&\n [\"DIAMOND\"].includes(partner.planType) && (\n \n )}\n {addons?.META_ADS?.status === \"active\" &&\n addons?.META_ADS?.dashboardKey &&\n [\"WHITELABEL\"].includes(this.props.partner.type) &&\n this.state.assistant.activePlan &&\n this.state.assistant.activePlan !== \"NONE\" && (\n \n )} */}\n {/* */}\n \n \n
\n {tab === \"Setup\" ? (\n \n \n Onboarding\n \n\n \n <>\n {type !== \"DIRECT\" && (\n \n \n Agents Limit\n \n \n {maxAgents ?? \"Set agent limit\"}\n \n\n \n \n \n \n \n \n )}\n {type !== \"DIRECT\" &&\n partner?.onboardingMethod ===\n \"WHATSAPP_API_FORM\" && (\n \n \n Whatsapp Application Form Status\n \n = 768 && \"flex-end\",\n }}\n className={classes.cells}\n >\n {assistant?.apiFormDetails\n ? \"Completed\"\n : \"Incomplete\"}\n \n \n )}\n {type !== \"DIRECT\" &&\n partner?.onboardingMethod ===\n \"WHATSAPP_API_FORM\" && (\n \n \n WhatsApp API Form Details\n \n = 768 && \"flex-end\",\n }}\n className={classes.cells}\n >\n this.openWabaDialog()}\n >\n View Details\n \n \n \n )}\n\n {type === \"DIRECT\" && (\n \n \n Embedded FB Catalog Management\n \n = 768 && \"flex-end\",\n }}\n className={classes.cells}\n >\n {this.state.manageCatalogLinkGenerated ? (\n \n \n {this.state.manageCatalogLinkGenerated}\n \n {\n this.setState({\n alertType: \"success\",\n alertMsg: \"URL copied to clipboard\",\n });\n navigator.clipboard.writeText(\n this.state.manageCatalogLinkGenerated\n );\n }}\n >\n Copy Link\n \n \n ) : (\n \n \n \n Generate URL\n \n \n \n )}\n \n \n )}\n\n {!isWhatsappVerified && (\n \n \n WhatsApp Business API Account Migration URL\n \n = 768 && \"flex-end\",\n }}\n className={classes.cells}\n >\n {this.state.migrationLinkGenerated ? (\n \n \n {this.state.migrationLinkGenerated}\n \n {\n this.setState({\n alertType: \"success\",\n alertMsg: \"URL copied to clipboard\",\n });\n navigator.clipboard.writeText(\n this.state.migrationLinkGenerated\n );\n }}\n >\n Copy Link\n \n \n ) : (\n \n \n \n Generate URL\n \n \n \n )}\n \n \n )}\n {!isWhatsappVerified && (\n \n \n Embedded SignUp URL\n \n = 768 && \"flex-end\",\n }}\n className={classes.cells}\n >\n {this.state.linkGenerated ? (\n \n \n {this.state.linkGenerated}\n \n {\n this.setState({\n alertType: \"success\",\n alertMsg: \"URL copied to clipboard\",\n });\n navigator.clipboard.writeText(\n this.state.linkGenerated\n );\n }}\n >\n Copy Link\n \n \n ) : (\n \n \n \n Generate URL\n \n \n \n )}\n \n \n )}\n {assistant && !assistant.planTier && (\n \n \n Sync Waba Progress\n \n = 768 && \"flex-end\",\n }}\n className={classes.cells}\n >\n =\n 0 || this.state.planSubmitLoader\n ? \"Retry again a in few mins\"\n : \"Sync WABA\"\n }\n >\n \n =\n 0 || this.state.planSubmitLoader\n }\n endIcon={\n this.state.planSubmitLoader ? (\n \n ) : (\n \"\"\n )\n }\n >\n Sync\n \n \n \n \n \n )}\n \n \n\n {troubleshootSteps.length > 0 && (\n \n )}\n \n ) : tab === \"Details\" ? (\n \n \n \n WhatsApp Channel\n \n \n \n \n Phone Number\n \n \n {whatsappNumber}\n \n \n \n {/* DONE */}\n {/* */}\n \n \n\n \n WhatsApp Display Name\n \n \n {whatsAppDisplayName}\n \n \n \n {displayNameVerified}\n {/* */}\n \n \n\n \n Messaging Limit\n \n \n {dailyTemplateLimit}\n \n \n\n \n Quality Rating\n \n \n {qualityRating}\n \n \n {/* \n WABA Number ID\n \n \n {wabaNumberId}\n */}\n {/* \n \n WABA App ID\n \n \n {wabaAppId}\n */}\n {/* \n Embedded SignUp URL\n {this.state.linkGenerated ? (\n \n \n {this.state.linkGenerated}\n \n {\n this.setState({\n alertType: \"success\",\n alertMsg: \"URL copied to clipboard\",\n });\n navigator.clipboard.writeText(\n this.state.linkGenerated\n );\n }}\n >\n Copy Link\n \n \n ) : (\n \n Generate URL\n \n )}\n */}\n\n {/* \n Sync Waba Progress\n \n Sync\n \n */}\n \n \n \n ) : tab === \"Analytics\" ? (\n \n \n \n ) : tab === \"Templates\" ? (\n \n \n \n ) : tab === \"Profile\" ? (\n \n {isWhatsappVerified ? (\n \n \n WhatsApp Business Profile\n \n \n \n \n Profile Picture\n \n \n {this.state.editProfilePicture ? (\n type === \"DIRECT\" ? (\n \n ) : (\n \n )\n ) : this.state.newProfilePicture ||\n whatsAppDisplayImage ? (\n \n ) : (\n \n )}\n \n\n \n {this.state.editProfilePicture ? (\n <>\n {\n if (type === \"DIRECT\")\n this.updateProfileViaDirectAPI(\n \"whatsAppDisplayImage\",\n this.state.newProfilePicture,\n \"editProfilePicture\"\n );\n else this.onEdit(\"newProfilePicture\");\n }}\n style={{ marginRight: 16 }}\n disabled={this.state.loadProfilePicture}\n endIcon={\n this.state.loadProfilePicture ? (\n \n ) : (\n \"\"\n )\n }\n >\n Save\n \n {\n this.editToggle(\"editProfilePicture\");\n this.setState({\n wasImageChanged: false,\n selectedFile: {},\n });\n }}\n >\n Cancel\n \n \n ) : (\n \n Change Profile Picture\n \n )}\n \n\n \n About text\n \n \n {this.state.editAboutText ? (\n \n ) : (\n this.state.newAboutText || whatsAppAbout\n )}\n \n \n {this.state.editAboutText ? (\n <>\n {\n if (type === \"DIRECT\")\n this.updateProfileViaDirectAPI(\n \"whatsAppAbout\",\n this.state.newAboutText,\n \"editAboutText\"\n );\n else this.onEdit(\"newAboutText\");\n }}\n style={{ marginRight: 16 }}\n disabled={this.state.loadAboutText}\n endIcon={\n this.state.loadAboutText ? (\n \n ) : (\n \"\"\n )\n }\n >\n Save\n \n {\n this.editToggle(\"editAboutText\");\n }}\n >\n Cancel\n \n \n ) : (\n {\n this.editToggle(\"editAboutText\");\n }}\n >\n \n \n )}\n \n \n \n \n Business Profile\n \n\n \n \n Address\n \n \n {this.state.editAddress ? (\n \n ) : this.state.newAddress || address ? (\n this.state.newAddress || address\n ) : (\n N/A\n )}\n \n \n {this.state.editAddress ? (\n <>\n {\n if (type === \"DIRECT\")\n this.updateProfileViaDirectAPI(\n \"address\",\n this.state.newAddress,\n \"editAddress\"\n );\n else this.onEdit(\"newAddress\");\n }}\n disabled={this.state.loadAddress}\n style={{ marginRight: 16 }}\n endIcon={\n this.state.loadAddress ? (\n \n ) : (\n \"\"\n )\n }\n >\n Save\n \n {\n this.editToggle(\"editAddress\");\n }}\n >\n Cancel\n \n \n ) : (\n {\n this.editToggle(\"editAddress\");\n }}\n >\n \n \n )}\n \n \n Description\n \n \n {this.state.editDescription ? (\n \n ) : this.state.newDescription || description ? (\n this.state.newDescription || description\n ) : (\n N/A\n )}\n \n \n {this.state.editDescription ? (\n <>\n {\n if (type === \"DIRECT\")\n this.updateProfileViaDirectAPI(\n \"description\",\n this.state.newDescription,\n \"editDescription\"\n );\n else this.onEdit(\"newDescription\");\n }}\n disabled={this.state.loadDescription}\n style={{ marginRight: 16 }}\n endIcon={\n this.state.loadDescription ? (\n \n ) : (\n \"\"\n )\n }\n >\n Save\n \n {\n this.editToggle(\"editDescription\");\n }}\n >\n Cancel\n \n \n ) : (\n {\n this.editToggle(\"editDescription\");\n }}\n >\n \n \n )}\n \n \n Email\n \n \n {this.state.editEmail ? (\n \n ) : this.state.newEmail || email ? (\n this.state.newEmail || email\n ) : (\n N/A\n )}\n \n \n {this.state.editEmail ? (\n <>\n {\n if (type === \"DIRECT\")\n this.updateProfileViaDirectAPI(\n \"email\",\n this.state.newEmail,\n \"editEmail\"\n );\n else this.onEdit(\"newEmail\");\n }}\n disabled={this.state.loadEmail}\n style={{ marginRight: 16 }}\n endIcon={\n this.state.loadEmail ? (\n \n ) : (\n \"\"\n )\n }\n >\n Save\n \n {\n this.editToggle(\"editEmail\");\n }}\n >\n Cancel\n \n \n ) : (\n {\n this.editToggle(\"editEmail\");\n }}\n >\n \n \n )}\n \n\n \n Website\n \n \n {this.state.editWebsite ? (\n \n ) : this.state.newWebsite || websites ? (\n this.state.newWebsite || websites.join(\", \")\n ) : (\n N/A\n )}\n \n \n {this.state.editWebsite ? (\n <>\n {\n if (type === \"DIRECT\")\n this.updateProfileViaDirectAPI(\n \"websites\",\n this.state.newWebsite\n .split(\",\")\n .map(function (item) {\n return item.trim();\n }),\n \"editWebsite\"\n );\n else this.onEdit(\"newWebsite\");\n }}\n style={{ marginRight: 16 }}\n disabled={this.state.loadWebsite}\n endIcon={\n this.state.loadWebsite ? (\n \n ) : (\n \"\"\n )\n }\n >\n Save\n \n {\n this.editToggle(\"editWebsite\");\n }}\n >\n Cancel\n \n \n ) : (\n {\n this.editToggle(\"editWebsite\");\n }}\n >\n \n \n )}\n \n\n \n Business vertical\n \n \n {this.state.editBusinessVertical ? (\n {\n this.setState({\n newBusinessVertical: event.target.value,\n });\n }}\n >\n {verticals.map((e) => (\n {e}\n ))}\n \n ) : this.state.newBusinessVertical || vertical ? (\n this.state.newBusinessVertical || vertical\n ) : (\n N/A\n )}\n \n \n {this.state.editBusinessVertical ? (\n <>\n {\n if (type === \"DIRECT\")\n this.updateProfileViaDirectAPI(\n \"vertical\",\n this.state.newBusinessVertical,\n \"editBusinessVertical\"\n );\n else this.onEdit(\"newBusinessVertical\");\n }}\n style={{ marginRight: 16 }}\n disabled={this.state.loadBusinessVertical}\n endIcon={\n this.state.loadBusinessVertical ? (\n \n ) : (\n \"\"\n )\n }\n >\n Save\n \n {\n this.editToggle(\"editBusinessVertical\");\n }}\n >\n Cancel\n \n \n ) : (\n {\n this.editToggle(\"editBusinessVertical\");\n }}\n >\n \n \n )}\n \n \n \n ) : (\n <>\n \n WhatsApp Business Profile\n \n \n \n Profile Picture\n \n \n {whatsAppDisplayImage ? (\n \n ) : (\n \n )}\n \n \n \n\n \n Change Profile Picture\n \n \n\n \n About text\n \n \n <>\n \n \n \n \n \n \n \n \n\n \n \n Waba is not live yet!\n \n \n \n )}\n \n ) : tab === \"Billings\" ? (\n \n \n \n ) : tab === \"Plan Setup\" ? (\n \n {isWhatsappVerified ? (\n <>\n \n {!chargebeePlan && type !== \"DIRECT\" && (\n <>\n \n \n Subscription Plan Family\n \n \n \n \n Active Plan Family\n \n \n {familyName}\n \n\n \n {!planStoppedOn &&\n Object.keys(planFamilies).length >= 1 && (\n \n \n \n )}\n \n \n \n \n Active Plan\n \n \n {name}\n \n\n \n {!planStoppedOn &&\n Object.keys(planFamilies).length >= 1 && (\n \n \n \n )}\n \n \n \n \n WhatsApp Conversation Charges (WCC) Family\n \n \n \n \n Active Plan\n \n \n {wccPlanName}\n \n\n \n {!planStoppedOn &&\n Object.keys(wccPlans).length > 1 && (\n \n \n \n )}\n \n \n {partner._id === \"62839c2733581a0fb5e71df6\" && (\n <>\n \n \n PWC Credit\n \n \n \n \n Amount\n \n \n {Number(\n this.state.assistant\n .partnerWhatsappCredit / 100000\n ).toFixed(2)}\n {/* {parseInt(this.state.assistant.partnerWhatsappCredit.toString().slice(0,-5))} */}\n \n \n \n \n \n \n \n \n )}\n {partner._id !== \"62839c2733581a0fb5e71df6\" && (\n <>\n \n \n WCC Credit\n \n \n \n \n Amount\n \n \n {Number(\n this.state.assistant.templateCredit /\n 100000\n ).toFixed(2)}\n {/* {parseInt(this.state.assistant.templateCredit.toString().slice(0,-5))} */}\n \n \n \n \n \n \n \n \n )}\n \n )}\n {chargebeePlan && (\n \n \n \n \n This project's billing is being managed\n through ChargeBee\n \n \n \n \n )}\n \n \n \n Settings\n \n \n \n \n Delete Project\n \n\n \n {/* {\n \"Un-register this project from your patner dashboard\"\n } */}\n \n \n {\n console.log(\"qwertyui\");\n console.log(this.state.deleteProject);\n this.editToggle(\"deleteProject\");\n }}\n >\n \n \n \n \n \n {!chargebeePlan && (\n \n \n {planStoppedOn || this.state.planStoppedOn ? (\n <>\n \n {status !== \"stopped\" ? (\n \n This project was requested to be\n stopped on{\" \"}\n \n {moment(planStoppedOn).format(\n \"LL\"\n )}\n {\" \"}\n all the services of this project\n will be disabled on{\" \"}\n \n {moment(\n assistant.planRenewalOn\n ).format(\"LL\")}\n \n \n ) : (\n \n This project was stopped on{\" \"}\n \n {moment(planStoppedOn).format(\n \"LL\"\n )}\n {\" \"}\n all the services of this project are\n be disabled\n \n )}\n \n \n )\n }\n >\n Reactivate Plan\n \n \n ) : (\n <>\n \n Disable Plan\n \n \n Stop\n \n \n )}\n \n \n )}\n \n \n ) : (\n <>\n \n \n Settings\n \n\n \n \n \n Delete Project\n \n\n \n {/* {\n \"Un-register this project from your patner dashboard\"\n } */}\n \n \n {\n console.log(\"qwertyui\");\n console.log(this.state.deleteProject);\n this.editToggle(\"deleteProject\");\n }}\n >\n \n \n \n \n \n\n \n \n Waba is not live yet!\n \n \n \n )}\n \n ) : tab === \"Addons Management\" ? (\n \n ) : tab === \"Webhook\" ? (\n \n {isWhatsappVerified ? (\n \n \n \n \n \n webhooks\n \n \n \n = 5\n ? \"Maximux(5) Webhook Is Created\"\n : \"\"\n }\n >\n \n }\n style={{ marginRight: 8, height: 42 }}\n onClick={this.webhookDialog}\n disabled={\n this.state.webhookResult.length >= 5\n ? true\n : false\n }\n >\n Create New Webhook\n \n \n \n \n \n <>\n \n \n \n \n ) : (\n \n \n \n \n \n webhooks\n \n \n \n }\n style={{ marginRight: 8, height: 42 }}\n onClick={this.webhookDialog}\n disabled={!isWhatsappVerified ? true : false}\n >\n Create New Webhook\n \n \n \n \n Waba is not live yet!\n \n \n )}\n \n ) : tab === \"Project Api\" ? (\n \n \n \n \n \n Project API\n \n \n \n \n \n \n Project API Password\n \n \n \n \n \n The password shown here will be lost after being\n copied.\n \n \n \n \n {\n navigator.clipboard.writeText(\n this.state.password\n );\n this.setState({ password: \"\" });\n }}\n placeholder=\"Click Reset to get a new password\"\n fullWidth\n value={this.state.password}\n InputProps={{\n endAdornment: (\n \n \n {\n navigator.clipboard.writeText(\n this.state.password\n );\n this.setState({ password: \"\" });\n this.copySnack();\n }}\n >\n \n \n \n \n ),\n }}\n />\n \n \n {\n if (\n Object.keys(this.state.privateApps).length >\n 0\n ) {\n this.updatePrivateApp();\n } else {\n this.CreatePrivateApp();\n }\n }}\n endIcon={\n this.state.isLoading ? (\n \n ) : (\n \"\"\n )\n }\n >\n {Object.keys(this.state.privateApps).length > 0\n ? \"Reset\"\n : \"Create\"}\n \n \n \n \n \n \n \n \n \n Chat API URL\n \n \n \n \n \n \n WebHook URL\n \n \n \n \n \n Endpoint URL to receive webhook events\n \n \n \n \n {\n if (this.state.chatApiWebhook.webhook_url) {\n this.setState({\n chatApiWebhook: {\n ...this.state.chatApiWebhook,\n webhook_url: event.target.value,\n },\n });\n } else {\n this.setState({\n webhookUrl: event.target.value,\n });\n }\n }}\n // InputProps={{\n // endAdornment: (\n // \n // \n // {\n // navigator.clipboard.writeText(\n // this.state.password\n // );\n // this.copySnack();\n // }}\n // >\n // \n // \n // \n // \n // ),\n // }}\n />\n \n \n {\n if (\n Object.keys(this.state.chatApiWebhook)\n .length > 0\n ) {\n this.updateWebhookUrl();\n } else {\n this.createWebhook();\n }\n }}\n endIcon={\n this.state.isWebhookLoading ? (\n \n ) : (\n \"\"\n )\n }\n >\n {Object.keys(this.state.chatApiWebhook).length >\n 0\n ? \"Update\"\n : \"Create\"}\n \n \n \n \n \n \n \n \n \n Shared Secret\n \n \n \n \n \n \n Shared Secret\n \n \n \n \n \n Shared secret to validate the received webhook\n event\n \n \n \n \n {\n navigator.clipboard.writeText(\n this.state.SharedSecret\n );\n this.setState({\n SharedSecret: \"\",\n });\n }}\n value={this.state.SharedSecret}\n InputProps={{\n endAdornment: (\n \n \n {\n navigator.clipboard.writeText(\n this.state.SharedSecret\n );\n this.setState({\n SharedSecret: \"\",\n });\n this.copySnack();\n }}\n >\n \n \n \n \n ),\n }}\n />\n \n \n {\n if (this.state.chatApiWebhook.shared_secret) {\n this.setState({\n SharedSecret:\n this.state.chatApiWebhook.shared_secret,\n });\n } else {\n this.setState({\n alertType: \"error\",\n alertMsg: \"subscribe to webhook first\",\n });\n }\n }}\n >\n Generate\n \n \n \n \n \n \n ) : tab === \"Meta Ad\" ? (\n \n \n \n ) : (\n tab === \"Defaults Config\" && (\n \n \n \n )\n )}\n
\n \n \n \n \n {this.state.openPlanDialog && (\n \n )}\n {this.state.openWccChangeDialog && (\n \n )}\n {this.state.showAgentDialog && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n Topics\n \n \n {\n if (reason === \"select-option\") {\n this.setState({ selectedTopic: value });\n }\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n WebHook Url\n \n \n {\n this.setState({ selectedWebhookurl: e.target.value });\n }}\n />\n \n \n \n \n \n \n \n ) : (\n \"\"\n )\n }\n >\n Submit\n \n \n \n \n \n \n <>\n \n Generate Project API Key\n \n \n \n \n \n \n Click generate to create Api key and on copy button to copy it\n \n \n \n \n \n \n {\n navigator.clipboard.writeText(\n this.state.appPassword\n );\n this.copySnack();\n }}\n >\n \n \n \n \n ),\n }}\n />\n \n \n \n Generate\n \n \n \n \n \n \n \n \n ) : (\n \"\"\n )\n }\n >\n Close\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n action\n \n \n {\n if (reason === \"select-option\") {\n this.setState({ wccAction: value });\n }\n }}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n Amount\n \n \n {\n const value = Number(e.target.value ?? 0);\n if (value > 0)\n this.setState({\n wccAmount: value * 100000,\n });\n }}\n />\n \n \n \n \n \n \n \n ) : (\n \"\"\n )\n }\n >\n Submit\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Action\n \n \n {\n if (reason === \"select-option\") {\n this.setState({ pwcAction: value });\n }\n }}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n Amount\n \n \n {\n const value = Number(e.target.value ?? 0);\n if (value > 0)\n this.setState({\n pwcAmount: value * 100000,\n });\n }}\n />\n \n \n \n \n \n \n \n ) : (\n \"\"\n )\n }\n >\n Submit\n \n \n \n \n \n \n Stop Project\n \n \n \n \n \n \n \n \n Are you sure you want disable this project? If you disable\n this project then all of its services will be terminated\n permanently.\n \n \n
\n \n \n {\n this.closeHandleDialog();\n }}\n >\n Cancel\n \n\n \n ) : (\n \"\"\n )\n }\n >\n Stop Plan\n \n \n \n \n {\n // this.editToggle(\"deleteProject\");\n // }}\n style={{ zIndex: 3002 }}\n >\n \n \n \n \n Are you sure that you want to delete this project?\n \n \n\n \n {this.state.deleteMessage}\n \n \n \n ) : (\n \"\"\n )\n }\n >\n Confirm\n \n {\n this.editToggle(\"deleteProject\");\n\n this.setState({\n deleteMessage: null,\n });\n }}\n >\n Cancel\n \n \n \n \n \n {this.state.wabaDialog && (\n \n )}\n\n \n \n {this.state.alertMsg}\n \n \n
\n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n },\n tabContainer: {\n background: \"white\",\n boxShadow: \"0 0 12px rgb(171 170 170 / 21%)\",\n },\n tableContainer: {\n background: \"white\",\n borderRadius: 8,\n padding: 24,\n },\n detailContainer: {\n top: \"60px\",\n height: \"calc(100vh - 260px)\",\n width: \"100%\",\n // overflowY: \"scroll\",\n // background: \"red\",\n boxSizing: \"border-box\",\n position: \"sticky\",\n [theme.breakpoints.down(\"sm\")]: {\n // position top + bottombar height + bottom padding + navbar\n height: \"calc(100vh - 70px - 50px - 10px - 50px)\",\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n tabIndicator: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n },\n cells: {\n padding: 24,\n color: \"grey\",\n borderBottom: \"1px solid #ecebeb\",\n },\n textField: {\n width: 200,\n marginRight: 8,\n height: 42,\n },\n descriptionTextField: {\n width: 240,\n marginRight: 8,\n whiteSpace: \"pre-line\",\n },\n plandialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n urlWrapper: {\n display: \"flex\",\n alignItems: \"center\",\n background: \"white\",\n overflow: \"hidden\",\n },\n urlLink: {\n border: `1px solid ${theme.palette.primary.main}`,\n overflowX: \"scroll\",\n whiteSpace: \"nowrap\",\n padding: \"9px 16px\",\n fontWeight: \"600\",\n background: \"rgb(70, 20, 134, 0.1)\",\n color: theme.palette.primary.main,\n borderTopLeftRadius: \"8px\",\n borderBottomLeftRadius: \"8px\",\n width: \"200px\",\n fontSize: \"14px\",\n \"&::-webkit-scrollbar\": {\n display: \"none\",\n },\n },\n copyLink: {\n background: theme.palette.primary.main,\n padding: \"10px 16px\",\n color: \"white\",\n fontWeight: \"600\",\n borderTopRightRadius: \"8px\",\n borderBottomRightRadius: \"8px\",\n fontSize: \"14px\",\n \"&:hover\": {\n cursor: \"pointer\",\n opacity: 0.9,\n },\n },\n roundedBox2: {\n // width: \"100%\",\n [theme.breakpoints.down(\"sm\")]: {\n // height: \"auto\",\n borderRadius: \"12px\",\n marginRight: \"0px\",\n },\n height: \"100%\",\n backgroundColor: \"white\",\n border: \"1px black\",\n borderRadius: \"8px\",\n // margin: \"0px 8px\",\n padding: \"1.5em 1.5em 1.5em 1.5em\",\n marginBottom: \"2em\",\n },\n roundedBox3: {\n // height: \"45px\",\n borderRadius: \"12px\",\n backgroundColor: \"rgb(237, 226, 252)\",\n border: \"1px black\",\n margin: \"1em 0em\",\n padding: \"1em 2em\",\n flexWrap: \"nowrap\",\n lineBreak: \"anywhere\",\n },\n container: {\n background: \"rgb(70 20 134/0.1)\",\n borderRadius: \"15px\",\n },\n dialogTopbar: {\n position: \"sticky\",\n top: 0,\n left: 0,\n background: \"white\",\n zIndex: 100,\n },\n});\n\n// export default withStyles(styles)(withRouter(AssistantsDetail));\n\nconst connectAssistantsDetail = connect(\n (state) => ({\n assistants: state.assistants.assistants,\n partner: state.partner.partner,\n planFamilies: state.planFamilies.allPlanFamilies,\n wccPlans: state.wccPlans.allWccPlans,\n }),\n {\n editAssistants,\n fetchPartnerDetails,\n }\n)(AssistantsDetail);\n\nexport default withStyles(styles)(withRouter(connectAssistantsDetail));\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Button,\n Box,\n Typography,\n IconButton,\n TextField,\n Snackbar,\n Switch,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { ArrowBackOutlined } from \"@material-ui/icons\";\nimport { Autocomplete, Alert } from \"@material-ui/lab\";\nimport axios from \"axios\";\n\nimport { URL } from \"../../config/config\";\nimport { withRouter } from \"react-router-dom\";\n\nconst PLANS = [\n \"FREE\",\n \"LITE\",\n \"PRO\",\n \"PLUS\",\n \"PREMIUM\",\n \"BASIC_MONTHLY_TIER_1\",\n \"BASIC_MONTHLY_TIER_2\",\n \"BASIC_MONTHLY_TIER_3\",\n \"BASIC_MONTHLY_TIER_4\",\n \"BASIC_MONTHLY_TIER_5\",\n \"BASIC_MONTHLY_TIER_6\",\n \"BASIC_MONTHLY_TIER_7\",\n \"BASIC_MONTHLY_TIER_8\",\n \"BASIC_YEARLY_TIER_1\",\n \"BASIC_YEARLY_TIER_2\",\n];\n\nconst PROJECT_STATUS = [\n \"active\",\n \"unpaid\",\n \"terminated\",\n \"pending\",\n \"suspended\",\n \"stopped\",\n \"archived\",\n];\n\nfunction getStatusColor() {\n const templateStatus = \"PENDING\";\n switch (templateStatus) {\n case \"PENDING\":\n return \"grey\";\n case \"APPROVED\":\n return \"#08CF65\";\n case \"REJECTED\":\n return \"#ff0000\";\n default:\n return \"pink\";\n }\n}\n\nclass Assistant extends Component {\n constructor(props) {\n super(props);\n this.state = {\n status: \"PENDING\",\n alert: false,\n alertMsg: \"\",\n alertSeverity: \"\",\n remainingCredit: 0,\n activePlan: this.props.template,\n whatsappNumber: \"\",\n appName: \"\",\n templateCredit: 0,\n apiKey360: \"\",\n cachedAssistant: null,\n projectStatus: \"\",\n // verifiedStatus: null,\n };\n }\n handleInput = (e) => {\n this.setState({ [e.target.name]: parseInt(e.target.value) });\n };\n handleNumberInput = (e) => {\n this.setState({ [e.target.name]: e.target.value });\n };\n updateTemplateCredit = (e) => {\n let template = this.props.templates[this.props.templateIndex];\n // const amount = template.remainingCredit + this.state.remainingCredit*100\n // console.log({status: e.target.checked});\n const amount = this.state.templateCredit * 100000;\n\n const totalTemplateCredit = template.templateCredit\n ? template.templateCredit + amount\n : amount;\n this.setTemplateInDb({\n templateCredit: totalTemplateCredit,\n })\n .then((response) => {\n template.templateCredit = totalTemplateCredit;\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Template credit updated!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to add template credit\",\n alertSeverity: \"error\",\n });\n });\n };\n updateApiKey = (e) => {\n let template = this.props.templates[this.props.templateIndex];\n // const amount = template.remainingCredit + this.state.remainingCredit*100\n const apiKey360 = this.state.apiKey360;\n\n this.setTemplateInDb({\n apiKey360: apiKey360,\n })\n .then((response) => {\n template.apiKey360 = apiKey360;\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"API Key updated!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to add API Key\",\n alertSeverity: \"error\",\n });\n });\n };\n updateVerificationStatus = (e) => {\n let template = this.props.templates[this.props.templateIndex];\n // const amount = template.remainingCredit + this.state.remainingCredit*100\n // console.log({status: e.target.checked});\n const checked = e.target.checked;\n\n this.setTemplateInDb({\n isWhatsappVerified: checked,\n })\n .then((response) => {\n template.isWhatsappVerified = checked;\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Assistant verified status updated!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to update verified status\",\n alertSeverity: \"error\",\n });\n });\n };\n updateVerificationStatus = (e) => {\n let template = this.props.templates[this.props.templateIndex];\n // const amount = template.remainingCredit + this.state.remainingCredit*100\n // console.log({status: e.target.checked});\n const checked = e.target.checked;\n\n this.setTemplateInDb({\n isWhatsappVerified: checked,\n })\n .then((response) => {\n template.isWhatsappVerified = checked;\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Assistant verified status updated!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to update verified status\",\n alertSeverity: \"error\",\n });\n });\n };\n updateWhatsAppNumber = () => {\n let template = this.props.templates[this.props.templateIndex];\n // const amount = template.remainingCredit + this.state.remainingCredit*100\n // console.log({status: e.target.checked});\n const whatsappNumber = this.state.whatsappNumber;\n template.whatsappNumber = whatsappNumber;\n\n this.setTemplateInDb({\n whatsappNumber,\n })\n .then((response) => {\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Whatsapp number updated!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to update whatsapp number\",\n alertSeverity: \"error\",\n });\n });\n };\n updateAppName = () => {\n let template = this.props.templates[this.props.templateIndex];\n // const amount = template.remainingCredit + this.state.remainingCredit*100\n // console.log({status: e.target.checked});\n const appName = this.state.appName;\n template.appName = appName;\n\n this.setTemplateInDb({\n appName,\n })\n .then((response) => {\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Whatsapp app name updated!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to update whatsapp app name\",\n alertSeverity: \"error\",\n });\n });\n };\n updateProjectStatus = () => {\n let template = this.props.templates[this.props.templateIndex];\n // const amount = template.remainingCredit + this.state.remainingCredit*100\n // console.log({status: e.target.checked});\n const projectStatus = this.state.projectStatus;\n template.status = projectStatus;\n\n this.setTemplateInDb({\n status: projectStatus,\n })\n .then((response) => {\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Project status updated!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to update project status\",\n alertSeverity: \"error\",\n });\n });\n };\n updateCredit = () => {\n let template = { ...this.props.templates[this.props.templateIndex] };\n const amount =\n template.remainingCredit + this.state.remainingCredit * 100000;\n const activePlan = this.state.activePlan || template.activePlan;\n // console.log(template.remainingCredit, this.state.remainingCredit)\n // if (this.state.activePlan) {\n const oldPlan = template.activePlan;\n\n // Set plan name\n template.activePlan = activePlan;\n\n // Check plan type\n if (activePlan.includes(\"BASIC_\")) {\n if (!oldPlan.includes(\"BASIC_\")) {\n template.planActivatedOn = null;\n }\n // Check if its renewal or first time\n if (template.planActivatedOn) {\n template.planActivatedOn = new Date(template.planActivatedOn);\n\n // console.log(template.planActivatedOn);\n\n // template.planActivatedOn.setMonth(\n // template.planActivatedOn.getMonth() + 8\n // );\n // console.log(template.planActivatedOn);\n // Get the current date\n const currentDate = template.planActivatedOn.getDate();\n // Set to day 1 to avoid forward\n template.planActivatedOn.setDate(1);\n // Increase month by 1\n template.planActivatedOn.setMonth(\n template.planActivatedOn.getMonth() + 1\n );\n // Get max # of days in this new month\n var daysInMonth = new Date(\n template.planActivatedOn.getYear(),\n template.planActivatedOn.getMonth() + 1,\n 0\n ).getDate();\n // Set the date to the minimum of current date of days in month\n template.planActivatedOn.setDate(Math.min(currentDate, daysInMonth));\n } else {\n template.planActivatedOn = new Date();\n }\n } else {\n // v1 pricing\n template.planActivatedOn = new Date();\n }\n // }\n\n template.remainingCredit = amount;\n\n this.setTemplateInDb({\n remainingCredit: amount,\n activePlan: template.activePlan,\n planActivatedOn: template.planActivatedOn,\n })\n .then((response) => {\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Assistant status updated!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to update template status\",\n alertSeverity: \"error\",\n });\n });\n };\n handleAutoComplete = (fieldName, value, reason) => {\n if (reason == \"select-option\") {\n this.setState({ [fieldName]: value });\n }\n };\n handleMark = (mark, temp) => {\n const template = { ...temp };\n if (mark) {\n // set process to new Date()\n this.setTemplateInDb({ processed: new Date() })\n .then((response) => {\n template.processed = new Date();\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Template marked processed!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg: \"Unable to mark, Check your internet connection.\",\n alertSeverity: \"error\",\n });\n });\n } else {\n this.setTemplateInDb({ processed: null })\n .then((response) => {\n template.processed = null;\n this.props.setTemplate(template);\n this.setState({\n alert: true,\n alertMsg: \"Template marked un-processed!\",\n alertSeverity: \"success\",\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertMsg:\n \"Unable to fulfill request, Check your internet connection.\",\n alertSeverity: \"error\",\n });\n });\n }\n };\n setTemplateInDb = (fields) => {\n // try {\n const t = this.props.templates[this.props.templateIndex];\n const queryObj = {\n assistantId: t._id,\n fields,\n dailyTemplateLimit: t.dailyTemplateLimit,\n };\n return axios.post(URL + \"/superadmin/set-assistant-field\", { ...queryObj });\n };\n closeSnackbar = () => {\n this.setState({ alert: false, alertMsg: \"\", alertSeverity: \"\" });\n };\n getAssistantDetailsFromCache = async () => {\n try {\n const { templateIndex, templates } = this.props;\n const assistant = templates[templateIndex];\n if (!assistant) {\n return;\n }\n const redisKey = \"assistants/\" + assistant._id;\n\n const { data: cachedAssistant } = await axios.post(\n URL + \"/superadmin/get-credits-from-cache\",\n {\n assistantId: assistant._id,\n }\n );\n\n this.setState({ cachedAssistant });\n } catch (err) {\n console.log(err);\n }\n };\n syncTemplateMsg = async () => {\n try {\n const { templateIndex, templates } = this.props;\n const assistant = templates[templateIndex];\n if (!assistant) {\n return;\n }\n const { data: cachedAssistant } = await axios.post(\n URL + \"/superadmin/sync-template-messages\",\n {\n assistantId: assistant._id,\n }\n );\n\n this.setState({\n alert: true,\n alertMsg: \"Template msg synched\",\n alertSeverity: \"success\",\n });\n } catch (err) {\n console.log(err);\n this.setState({\n alert: true,\n alertMsg: \"Unable update template msg\",\n alertSeverity: \"error\",\n });\n }\n };\n migrateTemplateMsg = async () => {\n try {\n const { templateIndex, templates } = this.props;\n const assistant = templates[templateIndex];\n if (!assistant) {\n return;\n }\n const { data: cachedAssistant } = await axios.post(\n URL + \"/superadmin/migrate-all-templates\",\n {\n assistantId: assistant._id,\n }\n );\n\n this.setState({\n alert: true,\n alertMsg: \"Template msg migrated\",\n alertSeverity: \"success\",\n });\n } catch (err) {\n console.log(err);\n this.setState({\n alert: true,\n alertMsg: \"Unable migrate template msg\",\n alertSeverity: \"error\",\n });\n }\n };\n componentDidMount() {\n this.getAssistantDetailsFromCache();\n }\n render() {\n //changes\n const { classes, toggleDialog, templateIndex, templates, setTemplate } =\n this.props || {};\n const template = templates?.[templateIndex];\n return this.props?.templates ? (\n \n \n \n \n \n \n \n {template.assistantName}\n \n
\n \n \n \n \n \n \n \n \n \n Remaining Credit\n
    \n
  • \n For v3, Keep the excessMac reading as New Plan will\n reset it\n
  • \n
  • \n Default currency in INR for Dollar Billing contact\n developers\n
  • \n
  • Max Agents 5 for v3 pricing
  • \n
  • 35p template msg pricing for v3 pricing
  • \n
  • \n v3 monthly pricing & renewal can be done from here\n
  • \n
  • \n v3 yearly plan can be added but can't be renewed from\n here\n
  • \n
  • To upgrade monthly to yearly - Contact devs
  • \n
\n \n \n {template.remainingCredit / 100000}\n \n
\n \n \n \n Add Credit\n \n \n \n \n \n \n \n Change Plan\n \n \n \n option)}\n onChange={(e, value, reason) =>\n this.handleAutoComplete(\"activePlan\", value, reason)\n }\n value={template.activePlan}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n Update\n \n \n \n
\n
\n \n \n WhatsApp Verification Status\n \n \n \n \n \n \n \n For GS only - WhatsApp Number - Enter number with dial code\n \n \n Number in use - {template.whatsappNumber}\n \n \n \n \n \n \n \n \n Update Number\n \n \n \n \n \n \n \n WhatsApp App Name - Enter name (default to AiSensy)\n \n \n Number in use - {template.appName}\n \n \n \n \n \n \n \n \n Update App Name\n \n \n \n \n \n \n \n Template Credit (v2 & v3) - Enter amount in +/-\n \n \n Current Balance -{\" \"}\n {template.templateCredit\n ? template.templateCredit / 100000\n : 0}\n \n \n \n \n \n \n \n \n Update Template Credit\n \n \n \n \n {\" \"}\n \n \n 360 API Key (Do this at the end)\n \n \n API Key in use - {template.apiKey360}\n \n \n \n \n \n \n \n \n Update Key\n \n \n \n \n \n \n \n Cached Assistant\n \n \n
\n
\n                      {this.state.cachedAssistant\n                        ? JSON.stringify(this.state.cachedAssistant, null, 2)\n                        : \"\"}\n                    
\n
\n
\n
\n \n \n Sync Template Msg ( for migration from GS to 360D only)\n \n \n \n Sync Template Messages\n \n \n \n \n \n Suspend/Activate Project\n \n \n \n option)}\n onChange={(e, value, reason) =>\n this.handleAutoComplete(\"projectStatus\", value, reason)\n }\n value={template.status}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n Update Status\n \n \n \n \n \n \n \n Migrate Template Msg ( for migration of new clients only)\n \n \n \n Migrate Template Messages\n \n \n \n
\n \n
\n \n \n {this.state.alertMsg}\n \n \n
\n ) : (\n \n \n \n );\n }\n}\n\nfunction getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n}\nconst styles = (theme) => ({\n root: {\n // width: \"100%\",\n paddingTop: 20,\n overflowX: \"hidden\",\n },\n dialogContainer: {\n overflowX: \"hidden\",\n height: \"100%\",\n position: \"relative\",\n color: \"black\",\n },\n dialogTopbar: {\n position: \"sticky\",\n top: 0,\n left: 0,\n background: \"white\",\n zIndex: 100,\n },\n container: {\n background: \"rgb(70 20 134 / 15%)\",\n borderRadius: \"15px\",\n },\n textField: {\n width: 200,\n },\n});\n\nexport default withStyles(styles)(withRouter(Assistant));\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Checkbox,\n Typography,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Button,\n TextField,\n IconButton,\n CircularProgress,\n} from \"@material-ui/core\";\n\nimport clsx from \"clsx\";\nimport AssistantsDetails from \"./AssistantsDetails\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { Skeleton } from \"@material-ui/lab\";\n\nconst leads = [\n {\n name: \"Name\",\n size: 2,\n key: \"agentName\",\n },\n {\n name: \"Project Name\",\n size: 2,\n key: \"assistantName\",\n },\n {\n name: \"Phone Number\",\n size: 2,\n key: \"agentPhone\",\n },\n {\n name: \"Company Name\",\n size: 2,\n key: \"agentCompanyName\",\n },\n {\n name: \"Industry\",\n size: 2,\n key: \"agentIndustry\",\n },\n {\n name: \"Created At\",\n size: 2,\n key: \"createdAt\",\n },\n];\n\nconst wabaLive = [\n {\n name: \"Name\",\n size: 2,\n key: \"agentName\",\n },\n {\n name: \"Project Name\",\n size: 2,\n key: \"assistantName\",\n },\n {\n name: \"Phone Number\",\n size: 2,\n key: \"agentPhone\",\n },\n {\n name: \"WABA Number\",\n size: 2,\n key: \"whatsappNumber\",\n },\n {\n name: \"Company Name\",\n size: 2,\n key: \"agentCompanyName\",\n },\n {\n name: \"Industry\",\n size: 2,\n key: \"agentIndustry\",\n },\n {\n name: \"Created At\",\n size: 2,\n key: \"createdAt\",\n },\n];\n\nconst conversions = [\n {\n name: \"Project Name\",\n key: \"assistantName\",\n size: 2,\n },\n {\n name: \"Plan Purchased\",\n key: \"planPurchased\",\n size: 2,\n },\n {\n name: \"Currency\",\n key: \"currency\",\n size: 2,\n },\n {\n name: \"Amount\",\n key: \"amountPaid\",\n size: 2,\n },\n {\n name: \"Commision Earned\",\n key: \"commision\",\n size: 2,\n },\n {\n name: \"Commision Percentage\",\n key: \"commisionPercent\",\n size: 2,\n },\n {\n name: \"Purchase Date\",\n key: \"createdAt\",\n size: 2,\n },\n];\n\nclass AssistantsTable extends Component {\n constructor(props) {\n super(props);\n this.state = {\n openDialog: false,\n selectedTemplate: null,\n };\n }\n\n listScrolled = (event) => {\n if (!this.offsetPosition) {\n this.offsetPosition = this.rootEle.current.offsetTop;\n }\n const container = event.currentTarget;\n const currentPos = container.scrollTop;\n this.setState({\n sticky: currentPos > this.offsetPosition,\n });\n };\n toggleDialog = () => {\n this.setState({ openDialog: !this.state.openDialog });\n };\n openTemplate = (e) => {\n const templates = [...this.props.templates];\n const foundIndex = templates.findIndex((x) => x._id == e._id);\n this.props.history.push(\"/assistants/\" + templates[foundIndex]._id);\n // this.setState({ openDialog: true, selectedTemplate: foundIndex });\n };\n render() {\n const { classes, templates, tab } = this.props;\n\n const fields =\n tab === \"Signups\" ? leads : tab === \"WABA Live\" ? wabaLive : conversions;\n\n return (\n <>\n
\n \n \n \n \n \n \n {fields.map((e) => (\n \n \n \n {e.name}\n \n \n \n ))}\n \n {templates.map((e) => (\n \n {fields.map((field) => (\n this.openTemplate(e)\n // }\n >\n \n \n ))}\n \n ))}\n \n \n \n \n \n
\n\n \n {/* Assistants Details */}\n \n \n \n );\n }\n}\n\nfunction Cell({\n classes,\n item,\n field,\n allBusiness,\n openCampaign,\n partner,\n ...props\n}) {\n switch (field) {\n case \"commision\":\n return (\n \n \n \n {item.currency === \"USD\" ? \"$\" : \"₹\"}\n {(item[field] ? item[field] / 100000 : 0).toFixed(2)}\n \n \n \n );\n break;\n\n case \"amountPaid\":\n return (\n \n \n \n {item.currency === \"USD\" ? \"$\" : \"₹\"}\n {(item[field] ? item[field] / 100000 : 0).toFixed(2)}\n \n \n \n );\n break;\n\n case \"commisionPercent\":\n return (\n \n \n \n {item[field] ? item[field] / 100000 : 0}%\n \n \n \n );\n\n case \"displayNameVerified\":\n return (\n \n \n \n {item[field] ? \"Verified\" : \"Not Verified\"}\n \n \n \n );\n\n case \"assistantName\":\n return (\n \n \n {item[field]}\n \n \n );\n break;\n case \"createdAt\":\n return (\n \n \n \n {getFormattedDate(item[field])}\n \n \n \n );\n\n break;\n\n case \"Loading\":\n return (\n \n \n {Array.from(Array(20).keys()).map((i) => {\n return (\n
\n \n
\n );\n })}\n
\n
\n );\n break;\n\n case \"agentPhone\":\n return (\n \n \n \n {partner?.isChildAffiliate\n ? maskPhoneNumber(item[field])\n : item[field]}\n \n \n \n );\n\n default:\n return (\n \n \n {item[field]}\n \n \n );\n }\n}\n\nexport function getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n}\n\nexport const maskPhoneNumber = (phone) => {\n if (phone) return phone?.replace(/.(?=.{4})/g, \"*\");\n};\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // marginBottom: \"5em\",\n // paddingBottom: \"80px\"\n },\n tableWrapper: {\n overflowX: \"auto\",\n width: \"100%\",\n },\n\n tableContainer: {\n marginTop: \"1.5em\",\n minWidth: 1800,\n },\n\n tableItem: {\n background: \"white\",\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n // cursor: \"pointer\",\n // \"&:hover\": {\n // background: \"#efefef\",\n // },\n },\n tableItemNoHover: {\n background: \"white\",\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n },\n tableItem1: {\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n },\n\n tableHeader: {\n background: \"white\",\n padding: 4,\n borderRadius: 8,\n marginBottom: \"1em\",\n flexWrap: \"nowrap\",\n },\n row: {\n background: \"white\",\n display: \"flex\",\n },\n alterRow: {\n background: \"rgb(246,246,246)\",\n },\n dataRow: {\n cursor: \"pointer\",\n transition: \"0.3s\",\n \"&:hover\": {\n background: \"rgb(70 20 134 / 15%)\",\n },\n },\n topbar: {\n background: \"rgb(252,252,252)\",\n position: \"sticky\",\n top: \"0\",\n zIndex: \"100\",\n },\n column: {\n // width: \"4400px\",\n fontWeight: \"normal\",\n height: \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n textAlign: \"center\",\n paddingRight: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n boxSizing: \"border-box\",\n },\n});\n\n// export default withStyles(styles)(withRouter(AssistantsTable));\n\nconst connectAssistantsTable = connect((state) => ({\n allBusiness: state.business.allBusiness,\n isLoading: state.assistants.isLoading,\n partner: state.partner.partner,\n}))(AssistantsTable);\n\nexport default withStyles(styles)(withRouter(connectAssistantsTable));\n","export const countries = [\n { code: \"AD\", label: \"Andorra\", phone: \"376\" },\n { code: \"AE\", label: \"United Arab Emirates\", phone: \"971\" },\n { code: \"AF\", label: \"Afghanistan\", phone: \"93\" },\n { code: \"AG\", label: \"Antigua and Barbuda\", phone: \"1-268\" },\n { code: \"AI\", label: \"Anguilla\", phone: \"1-264\" },\n { code: \"AL\", label: \"Albania\", phone: \"355\" },\n { code: \"AM\", label: \"Armenia\", phone: \"374\" },\n { code: \"AO\", label: \"Angola\", phone: \"244\" },\n { code: \"AQ\", label: \"Antarctica\", phone: \"672\" },\n { code: \"AR\", label: \"Argentina\", phone: \"54\" },\n { code: \"AS\", label: \"American Samoa\", phone: \"1-684\" },\n { code: \"AT\", label: \"Austria\", phone: \"43\" },\n { code: \"AU\", label: \"Australia\", phone: \"61\", suggested: true },\n { code: \"AW\", label: \"Aruba\", phone: \"297\" },\n { code: \"AX\", label: \"Alland Islands\", phone: \"358\" },\n { code: \"AZ\", label: \"Azerbaijan\", phone: \"994\" },\n { code: \"BA\", label: \"Bosnia and Herzegovina\", phone: \"387\" },\n { code: \"BB\", label: \"Barbados\", phone: \"1-246\" },\n { code: \"BD\", label: \"Bangladesh\", phone: \"880\" },\n { code: \"BE\", label: \"Belgium\", phone: \"32\" },\n { code: \"BF\", label: \"Burkina Faso\", phone: \"226\" },\n { code: \"BG\", label: \"Bulgaria\", phone: \"359\" },\n { code: \"BH\", label: \"Bahrain\", phone: \"973\" },\n { code: \"BI\", label: \"Burundi\", phone: \"257\" },\n { code: \"BJ\", label: \"Benin\", phone: \"229\" },\n { code: \"BL\", label: \"Saint Barthelemy\", phone: \"590\" },\n { code: \"BM\", label: \"Bermuda\", phone: \"1-441\" },\n { code: \"BN\", label: \"Brunei Darussalam\", phone: \"673\" },\n { code: \"BO\", label: \"Bolivia\", phone: \"591\" },\n { code: \"BR\", label: \"Brazil\", phone: \"55\" },\n { code: \"BS\", label: \"Bahamas\", phone: \"1-242\" },\n { code: \"BT\", label: \"Bhutan\", phone: \"975\" },\n { code: \"BV\", label: \"Bouvet Island\", phone: \"47\" },\n { code: \"BW\", label: \"Botswana\", phone: \"267\" },\n { code: \"BY\", label: \"Belarus\", phone: \"375\" },\n { code: \"BZ\", label: \"Belize\", phone: \"501\" },\n { code: \"CA\", label: \"Canada\", phone: \"1\", suggested: true },\n { code: \"CC\", label: \"Cocos (Keeling) Islands\", phone: \"61\" },\n { code: \"CD\", label: \"Congo, Democratic Republic of the\", phone: \"243\" },\n { code: \"CF\", label: \"Central African Republic\", phone: \"236\" },\n { code: \"CG\", label: \"Congo, Republic of the\", phone: \"242\" },\n { code: \"CH\", label: \"Switzerland\", phone: \"41\" },\n { code: \"CI\", label: \"Cote d'Ivoire\", phone: \"225\" },\n { code: \"CK\", label: \"Cook Islands\", phone: \"682\" },\n { code: \"CL\", label: \"Chile\", phone: \"56\" },\n { code: \"CM\", label: \"Cameroon\", phone: \"237\" },\n { code: \"CN\", label: \"China\", phone: \"86\" },\n { code: \"CO\", label: \"Colombia\", phone: \"57\" },\n { code: \"CR\", label: \"Costa Rica\", phone: \"506\" },\n { code: \"CU\", label: \"Cuba\", phone: \"53\" },\n { code: \"CV\", label: \"Cape Verde\", phone: \"238\" },\n { code: \"CW\", label: \"Curacao\", phone: \"599\" },\n { code: \"CX\", label: \"Christmas Island\", phone: \"61\" },\n { code: \"CY\", label: \"Cyprus\", phone: \"357\" },\n { code: \"CZ\", label: \"Czech Republic\", phone: \"420\" },\n { code: \"DE\", label: \"Germany\", phone: \"49\", suggested: true },\n { code: \"DJ\", label: \"Djibouti\", phone: \"253\" },\n { code: \"DK\", label: \"Denmark\", phone: \"45\" },\n { code: \"DM\", label: \"Dominica\", phone: \"1-767\" },\n { code: \"DO\", label: \"Dominican Republic\", phone: \"1-809\" },\n { code: \"DZ\", label: \"Algeria\", phone: \"213\" },\n { code: \"EC\", label: \"Ecuador\", phone: \"593\" },\n { code: \"EE\", label: \"Estonia\", phone: \"372\" },\n { code: \"EG\", label: \"Egypt\", phone: \"20\" },\n { code: \"EH\", label: \"Western Sahara\", phone: \"212\" },\n { code: \"ER\", label: \"Eritrea\", phone: \"291\" },\n { code: \"ES\", label: \"Spain\", phone: \"34\" },\n { code: \"ET\", label: \"Ethiopia\", phone: \"251\" },\n { code: \"FI\", label: \"Finland\", phone: \"358\" },\n { code: \"FJ\", label: \"Fiji\", phone: \"679\" },\n { code: \"FK\", label: \"Falkland Islands (Malvinas)\", phone: \"500\" },\n { code: \"FM\", label: \"Micronesia, Federated States of\", phone: \"691\" },\n { code: \"FO\", label: \"Faroe Islands\", phone: \"298\" },\n { code: \"FR\", label: \"France\", phone: \"33\", suggested: true },\n { code: \"GA\", label: \"Gabon\", phone: \"241\" },\n { code: \"GB\", label: \"United Kingdom\", phone: \"44\" },\n { code: \"GD\", label: \"Grenada\", phone: \"1-473\" },\n { code: \"GE\", label: \"Georgia\", phone: \"995\" },\n { code: \"GF\", label: \"French Guiana\", phone: \"594\" },\n { code: \"GG\", label: \"Guernsey\", phone: \"44\" },\n { code: \"GH\", label: \"Ghana\", phone: \"233\" },\n { code: \"GI\", label: \"Gibraltar\", phone: \"350\" },\n { code: \"GL\", label: \"Greenland\", phone: \"299\" },\n { code: \"GM\", label: \"Gambia\", phone: \"220\" },\n { code: \"GN\", label: \"Guinea\", phone: \"224\" },\n { code: \"GP\", label: \"Guadeloupe\", phone: \"590\" },\n { code: \"GQ\", label: \"Equatorial Guinea\", phone: \"240\" },\n { code: \"GR\", label: \"Greece\", phone: \"30\" },\n {\n code: \"GS\",\n label: \"South Georgia and the South Sandwich Islands\",\n phone: \"500\",\n },\n { code: \"GT\", label: \"Guatemala\", phone: \"502\" },\n { code: \"GU\", label: \"Guam\", phone: \"1-671\" },\n { code: \"GW\", label: \"Guinea-Bissau\", phone: \"245\" },\n { code: \"GY\", label: \"Guyana\", phone: \"592\" },\n { code: \"HK\", label: \"Hong Kong\", phone: \"852\" },\n { code: \"HM\", label: \"Heard Island and McDonald Islands\", phone: \"672\" },\n { code: \"HN\", label: \"Honduras\", phone: \"504\" },\n { code: \"HR\", label: \"Croatia\", phone: \"385\" },\n { code: \"HT\", label: \"Haiti\", phone: \"509\" },\n { code: \"HU\", label: \"Hungary\", phone: \"36\" },\n { code: \"ID\", label: \"Indonesia\", phone: \"62\" },\n { code: \"IE\", label: \"Ireland\", phone: \"353\" },\n { code: \"IL\", label: \"Israel\", phone: \"972\" },\n { code: \"IM\", label: \"Isle of Man\", phone: \"44\" },\n { code: \"IN\", label: \"India\", phone: \"91\" },\n { code: \"IO\", label: \"British Indian Ocean Territory\", phone: \"246\" },\n { code: \"IQ\", label: \"Iraq\", phone: \"964\" },\n { code: \"IR\", label: \"Iran, Islamic Republic of\", phone: \"98\" },\n { code: \"IS\", label: \"Iceland\", phone: \"354\" },\n { code: \"IT\", label: \"Italy\", phone: \"39\" },\n { code: \"JE\", label: \"Jersey\", phone: \"44\" },\n { code: \"JM\", label: \"Jamaica\", phone: \"1-876\" },\n { code: \"JO\", label: \"Jordan\", phone: \"962\" },\n { code: \"JP\", label: \"Japan\", phone: \"81\", suggested: true },\n { code: \"KE\", label: \"Kenya\", phone: \"254\" },\n { code: \"KG\", label: \"Kyrgyzstan\", phone: \"996\" },\n { code: \"KH\", label: \"Cambodia\", phone: \"855\" },\n { code: \"KI\", label: \"Kiribati\", phone: \"686\" },\n { code: \"KM\", label: \"Comoros\", phone: \"269\" },\n { code: \"KN\", label: \"Saint Kitts and Nevis\", phone: \"1-869\" },\n {\n code: \"KP\",\n label: \"Korea, Democratic People's Republic of\",\n phone: \"850\",\n },\n { code: \"KR\", label: \"Korea, Republic of\", phone: \"82\" },\n { code: \"KW\", label: \"Kuwait\", phone: \"965\" },\n { code: \"KY\", label: \"Cayman Islands\", phone: \"1-345\" },\n { code: \"KZ\", label: \"Kazakhstan\", phone: \"7\" },\n { code: \"LA\", label: \"Lao People's Democratic Republic\", phone: \"856\" },\n { code: \"LB\", label: \"Lebanon\", phone: \"961\" },\n { code: \"LC\", label: \"Saint Lucia\", phone: \"1-758\" },\n { code: \"LI\", label: \"Liechtenstein\", phone: \"423\" },\n { code: \"LK\", label: \"Sri Lanka\", phone: \"94\" },\n { code: \"LR\", label: \"Liberia\", phone: \"231\" },\n { code: \"LS\", label: \"Lesotho\", phone: \"266\" },\n { code: \"LT\", label: \"Lithuania\", phone: \"370\" },\n { code: \"LU\", label: \"Luxembourg\", phone: \"352\" },\n { code: \"LV\", label: \"Latvia\", phone: \"371\" },\n { code: \"LY\", label: \"Libya\", phone: \"218\" },\n { code: \"MA\", label: \"Morocco\", phone: \"212\" },\n { code: \"MC\", label: \"Monaco\", phone: \"377\" },\n { code: \"MD\", label: \"Moldova, Republic of\", phone: \"373\" },\n { code: \"ME\", label: \"Montenegro\", phone: \"382\" },\n { code: \"MF\", label: \"Saint Martin (French part)\", phone: \"590\" },\n { code: \"MG\", label: \"Madagascar\", phone: \"261\" },\n { code: \"MH\", label: \"Marshall Islands\", phone: \"692\" },\n {\n code: \"MK\",\n label: \"Macedonia, the Former Yugoslav Republic of\",\n phone: \"389\",\n },\n { code: \"ML\", label: \"Mali\", phone: \"223\" },\n { code: \"MM\", label: \"Myanmar\", phone: \"95\" },\n { code: \"MN\", label: \"Mongolia\", phone: \"976\" },\n { code: \"MO\", label: \"Macao\", phone: \"853\" },\n { code: \"MP\", label: \"Northern Mariana Islands\", phone: \"1-670\" },\n { code: \"MQ\", label: \"Martinique\", phone: \"596\" },\n { code: \"MR\", label: \"Mauritania\", phone: \"222\" },\n { code: \"MS\", label: \"Montserrat\", phone: \"1-664\" },\n { code: \"MT\", label: \"Malta\", phone: \"356\" },\n { code: \"MU\", label: \"Mauritius\", phone: \"230\" },\n { code: \"MV\", label: \"Maldives\", phone: \"960\" },\n { code: \"MW\", label: \"Malawi\", phone: \"265\" },\n { code: \"MX\", label: \"Mexico\", phone: \"52\" },\n { code: \"MY\", label: \"Malaysia\", phone: \"60\" },\n { code: \"MZ\", label: \"Mozambique\", phone: \"258\" },\n { code: \"NA\", label: \"Namibia\", phone: \"264\" },\n { code: \"NC\", label: \"New Caledonia\", phone: \"687\" },\n { code: \"NE\", label: \"Niger\", phone: \"227\" },\n { code: \"NF\", label: \"Norfolk Island\", phone: \"672\" },\n { code: \"NG\", label: \"Nigeria\", phone: \"234\" },\n { code: \"NI\", label: \"Nicaragua\", phone: \"505\" },\n { code: \"NL\", label: \"Netherlands\", phone: \"31\" },\n { code: \"NO\", label: \"Norway\", phone: \"47\" },\n { code: \"NP\", label: \"Nepal\", phone: \"977\" },\n { code: \"NR\", label: \"Nauru\", phone: \"674\" },\n { code: \"NU\", label: \"Niue\", phone: \"683\" },\n { code: \"NZ\", label: \"New Zealand\", phone: \"64\" },\n { code: \"OM\", label: \"Oman\", phone: \"968\" },\n { code: \"PA\", label: \"Panama\", phone: \"507\" },\n { code: \"PE\", label: \"Peru\", phone: \"51\" },\n { code: \"PF\", label: \"French Polynesia\", phone: \"689\" },\n { code: \"PG\", label: \"Papua New Guinea\", phone: \"675\" },\n { code: \"PH\", label: \"Philippines\", phone: \"63\" },\n { code: \"PK\", label: \"Pakistan\", phone: \"92\" },\n { code: \"PL\", label: \"Poland\", phone: \"48\" },\n { code: \"PM\", label: \"Saint Pierre and Miquelon\", phone: \"508\" },\n { code: \"PN\", label: \"Pitcairn\", phone: \"870\" },\n { code: \"PR\", label: \"Puerto Rico\", phone: \"1\" },\n { code: \"PS\", label: \"Palestine, State of\", phone: \"970\" },\n { code: \"PT\", label: \"Portugal\", phone: \"351\" },\n { code: \"PW\", label: \"Palau\", phone: \"680\" },\n { code: \"PY\", label: \"Paraguay\", phone: \"595\" },\n { code: \"QA\", label: \"Qatar\", phone: \"974\" },\n { code: \"RE\", label: \"Reunion\", phone: \"262\" },\n { code: \"RO\", label: \"Romania\", phone: \"40\" },\n { code: \"RS\", label: \"Serbia\", phone: \"381\" },\n { code: \"RU\", label: \"Russian Federation\", phone: \"7\" },\n { code: \"RW\", label: \"Rwanda\", phone: \"250\" },\n { code: \"SA\", label: \"Saudi Arabia\", phone: \"966\" },\n { code: \"SB\", label: \"Solomon Islands\", phone: \"677\" },\n { code: \"SC\", label: \"Seychelles\", phone: \"248\" },\n { code: \"SD\", label: \"Sudan\", phone: \"249\" },\n { code: \"SE\", label: \"Sweden\", phone: \"46\" },\n { code: \"SG\", label: \"Singapore\", phone: \"65\" },\n { code: \"SH\", label: \"Saint Helena\", phone: \"290\" },\n { code: \"SI\", label: \"Slovenia\", phone: \"386\" },\n { code: \"SJ\", label: \"Svalbard and Jan Mayen\", phone: \"47\" },\n { code: \"SK\", label: \"Slovakia\", phone: \"421\" },\n { code: \"SL\", label: \"Sierra Leone\", phone: \"232\" },\n { code: \"SM\", label: \"San Marino\", phone: \"378\" },\n { code: \"SN\", label: \"Senegal\", phone: \"221\" },\n { code: \"SO\", label: \"Somalia\", phone: \"252\" },\n { code: \"SR\", label: \"Suriname\", phone: \"597\" },\n { code: \"SS\", label: \"South Sudan\", phone: \"211\" },\n { code: \"ST\", label: \"Sao Tome and Principe\", phone: \"239\" },\n { code: \"SV\", label: \"El Salvador\", phone: \"503\" },\n { code: \"SX\", label: \"Sint Maarten (Dutch part)\", phone: \"1-721\" },\n { code: \"SY\", label: \"Syrian Arab Republic\", phone: \"963\" },\n { code: \"SZ\", label: \"Swaziland\", phone: \"268\" },\n { code: \"TC\", label: \"Turks and Caicos Islands\", phone: \"1-649\" },\n { code: \"TD\", label: \"Chad\", phone: \"235\" },\n { code: \"TF\", label: \"French Southern Territories\", phone: \"262\" },\n { code: \"TG\", label: \"Togo\", phone: \"228\" },\n { code: \"TH\", label: \"Thailand\", phone: \"66\" },\n { code: \"TJ\", label: \"Tajikistan\", phone: \"992\" },\n { code: \"TK\", label: \"Tokelau\", phone: \"690\" },\n { code: \"TL\", label: \"Timor-Leste\", phone: \"670\" },\n { code: \"TM\", label: \"Turkmenistan\", phone: \"993\" },\n { code: \"TN\", label: \"Tunisia\", phone: \"216\" },\n { code: \"TO\", label: \"Tonga\", phone: \"676\" },\n { code: \"TR\", label: \"Turkey\", phone: \"90\" },\n { code: \"TT\", label: \"Trinidad and Tobago\", phone: \"1-868\" },\n { code: \"TV\", label: \"Tuvalu\", phone: \"688\" },\n { code: \"TW\", label: \"Taiwan, Province of China\", phone: \"886\" },\n { code: \"TZ\", label: \"United Republic of Tanzania\", phone: \"255\" },\n { code: \"UA\", label: \"Ukraine\", phone: \"380\" },\n { code: \"UG\", label: \"Uganda\", phone: \"256\" },\n { code: \"US\", label: \"United States\", phone: \"1\", suggested: true },\n { code: \"UY\", label: \"Uruguay\", phone: \"598\" },\n { code: \"UZ\", label: \"Uzbekistan\", phone: \"998\" },\n { code: \"VA\", label: \"Holy See (Vatican City State)\", phone: \"379\" },\n { code: \"VC\", label: \"Saint Vincent and the Grenadines\", phone: \"1-784\" },\n { code: \"VE\", label: \"Venezuela\", phone: \"58\" },\n { code: \"VG\", label: \"British Virgin Islands\", phone: \"1-284\" },\n { code: \"VI\", label: \"US Virgin Islands\", phone: \"1-340\" },\n { code: \"VN\", label: \"Vietnam\", phone: \"84\" },\n { code: \"VU\", label: \"Vanuatu\", phone: \"678\" },\n { code: \"WF\", label: \"Wallis and Futuna\", phone: \"681\" },\n { code: \"WS\", label: \"Samoa\", phone: \"685\" },\n { code: \"XK\", label: \"Kosovo\", phone: \"383\" },\n { code: \"YE\", label: \"Yemen\", phone: \"967\" },\n { code: \"YT\", label: \"Mayotte\", phone: \"262\" },\n { code: \"ZA\", label: \"South Africa\", phone: \"27\" },\n { code: \"ZM\", label: \"Zambia\", phone: \"260\" },\n { code: \"ZW\", label: \"Zimbabwe\", phone: \"263\" },\n];\n","import React, { useState } from \"react\";\nimport {\n Grid,\n TextField,\n Typography,\n Button,\n IconButton,\n DialogContent,\n Dialog,\n DialogActions,\n CircularProgress,\n withStyles,\n Checkbox,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { Clear } from \"@material-ui/icons\";\nimport {\n CountryDropdown,\n RegionDropdown,\n CountryRegionData,\n} from \"react-country-region-selector-material-ui-new\";\nimport { countries } from \"../countries/countries.js\";\nimport { DialogTitle } from \"@material-ui/core\";\n\nfunction CreateProjectDialog(props) {\n const {\n showDialog,\n closeDialog,\n classes,\n allBusiness,\n selectBusiness,\n setProjectName,\n createBusiness,\n onSubmit,\n disableSubmit,\n reqId4Business,\n planFamilies,\n defaultPlanFamily,\n defaultPlanName,\n wccPlans,\n defaultWccPlan,\n type,\n } = props;\n const states = [\n \"Andaman and Nicobar Islands\",\n \"Andhra Pradesh\",\n \"Arunachal Pradesh\",\n \"Assam\",\n \"Bihar\",\n \"Chandigarh\",\n \"Chhattisgarh\",\n \"Dadra and Nagar Haveli\",\n \"Daman and Diu\",\n \"Delhi\",\n \"Foreign Country\",\n \"Goa\",\n \"Gujarat\",\n \"Haryana\",\n \"Himachal Pradesh\",\n \"Jammu and Kashmir\",\n \"Jharkhand\",\n \"Karnataka\",\n \"Kerala\",\n \"Ladakh\",\n \"Lakshadweep\",\n \"Madhya Pradesh\",\n \"Maharashtra\",\n \"Manipur\",\n \"Meghalaya\",\n \"Mizoram\",\n \"Nagaland\",\n \"Odisha\",\n \"Other Territory\",\n \"Puducherry\",\n \"Punjab\",\n \"Rajasthan\",\n \"Sikkim\",\n \"Tamil Nadu\",\n \"Telangana\",\n \"Tripura\",\n \"Uttar Pradesh\",\n \"Uttarakhand\",\n \"West Bengal\",\n ];\n\n // const [country, setCountry] = useState(\"\");\n const [billingAddress, setBillingAddress] = useState({\n country: \"\",\n street: \"\",\n state: \"\",\n city: \"\",\n zip: \"\",\n });\n const [shippingAddress, setShippingAddress] = useState({\n country: \"\",\n street: \"\",\n state: \"\",\n city: \"\",\n zip: \"\",\n });\n const [gstNumber, setGstNumber] = useState(\"\");\n const [checked, setChecked] = useState(true);\n const [isLoading, setIsLoading] = useState(false);\n\n const copyBillingAddress = (event) => {\n setChecked(event.target.checked);\n if (event.target.checked) {\n setShippingAddress(billingAddress);\n }\n };\n\n const countryToFlag = (isoCode) => {\n return typeof String.fromCodePoint !== \"undefined\"\n ? isoCode\n .toUpperCase()\n .replace(/./g, (char) =>\n String.fromCodePoint(char.charCodeAt(0) + 127397)\n )\n : isoCode;\n };\n\n const defualtBusiness = Object.values(allBusiness).filter((item) => {\n if (item._id === reqId4Business) {\n return item;\n }\n })[0];\n console.log(Object.keys(planFamilies)[0]);\n // <--- Set Plan Family and Plan Name --->\n let [newFamilyId, newPlanId] = [defaultPlanFamily, defaultPlanName];\n if (type !== \"DIRECT\" && (!defaultPlanFamily || !defaultPlanName)) {\n newFamilyId = Object.keys(planFamilies)[0];\n const plans = planFamilies[newFamilyId].plans;\n newPlanId = Object.keys(plans)[0];\n }\n const [plan, setActivePlan] = useState({\n newFamilyId,\n newPlanId,\n });\n console.log(plan);\n const plans = type !== \"DIRECT\" && planFamilies[plan.newFamilyId].plans;\n // <--- Set Wcc Plan --->\n const [wccPlan, setWccPlan] = useState(\n type !== \"DIRECT\" && (defaultWccPlan ?? Object.keys(wccPlans)[0])\n );\n const [name, setName] = useState(selectBusiness ?? \"\");\n console.log(props.partner);\n return (\n \n \n \n Create project\n \n \n \n \n \n \n \n {/* Header */}\n\n {/* Body */}\n \n {/* \n Business\n \n \n {\n return (\n (item.company || item.displayName) + \" - \" + item.name\n );\n })\n }\n // value={this.state.selectBusiness}\n onChange={selectBusiness}\n defaultValue={\n defualtBusiness &&\n (defualtBusiness.company || defualtBusiness.displayName) +\n \" - \" +\n defualtBusiness.name\n }\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n */}\n\n {/* Body */}\n \n \n \n Business\n \n \n {\n return item.company + \" - \" + item.name;\n })\n }\n // value={this.state.selectBusiness}\n onChange={selectBusiness}\n defaultValue={\n defualtBusiness &&\n defualtBusiness.company + \" - \" + defualtBusiness.name\n }\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n\n \n Project Name\n \n \n setName(e.target.value)}\n fullWidth\n disabled={\n allBusiness && Object.values(allBusiness).length === 0\n }\n />\n \n {type !== \"DIRECT\" && (\n <>\n \n Plan Family\n \n \n option\n )}\n getOptionLabel={(option) => {\n return planFamilies && planFamilies[option].name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n setActivePlan((prev) => ({\n ...prev,\n newFamilyId: value,\n }));\n }\n }}\n defaultValue={plan.newFamilyId}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n Plan\n \n \n option)\n }\n getOptionLabel={(option) => {\n return plans && plans[option]?.name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n setActivePlan((prev) => ({\n ...prev,\n newPlanId: value,\n }));\n }\n }}\n defaultValue={plan.newPlanId}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n Wcc Plan Family\n \n \n option)}\n getOptionLabel={(option) => {\n return wccPlans[option]?.name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n setWccPlan(value);\n }\n }}\n defaultValue={wccPlan}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n )}\n {props?.partner?.isZohoEnabled === true && (\n <>\n \n \n Enter GST Number\n \n \n \n setGstNumber(event.target.value)}\n disabled={isLoading}\n />\n \n \n \n Billing Address\n \n \n \n \n Select Country\n \n \n \n option.label}\n onChange={(e, value, reason) => {\n console.log(e, value, reason);\n setBillingAddress((prev) => ({\n ...prev,\n country: value.label,\n }));\n }}\n renderOption={(option) => (\n \n {countryToFlag(option.code)}\n {option.label} ({option.code}) +{option.phone}\n \n )}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n\n \n \n Select state\n \n \n \n {billingAddress?.country === \"India\" && (\n option)}\n onChange={(e, value, reason) => {\n setBillingAddress((prev) => ({\n ...prev,\n state: value,\n }));\n }}\n value={billingAddress?.state}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n )}\n\n {billingAddress?.country !== \"India\" && (\n \n setBillingAddress((prev) => ({\n ...prev,\n state: e.target.value,\n }))\n }\n className={classes.textFieldRoot}\n // onBlur={() => {\n // trackEvent({\n // event: !isOtpVerified\n // ? \"signup_company_name_filled\"\n // : \"new_signup_company_name_filled\",\n // properties: {\n // company,\n // },\n // });\n // }}\n />\n )}\n \n \n \n Enter Address\n \n \n \n \n setBillingAddress({\n ...billingAddress,\n street: event.target.value,\n })\n }\n disabled={isLoading}\n />\n \n \n \n Enter City\n \n \n \n \n setBillingAddress({\n ...billingAddress,\n city: event.target.value,\n })\n }\n disabled={isLoading}\n />\n \n\n \n \n Enter Zip\n \n \n \n \n setBillingAddress({\n ...billingAddress,\n zip: event.target.value,\n })\n }\n disabled={isLoading}\n />\n \n\n \n \n Shipping Address\n \n \n \n \n \n Use shipping address same as billing address\n \n copyBillingAddress(e)}\n inputProps={{ \"aria-label\": \"primary checkbox\" }}\n />\n \n \n\n {!checked && (\n <>\n \n \n Select Country\n \n \n \n option.label}\n onChange={(e, value, reason) => {\n console.log(e, value, reason);\n setShippingAddress({\n ...shippingAddress,\n country: value.label,\n });\n }}\n renderOption={(option) => (\n \n {this.countryToFlag(option.code)}\n {option.label} ({option.code}) +{option.phone}\n \n )}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n \n Select state\n \n \n \n {shippingAddress?.country === \"India\" && (\n option)}\n onChange={(e, value, reason) => {\n setShippingAddress((prev) => ({\n ...prev,\n state: value,\n }));\n }}\n value={billingAddress?.state}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n )}\n\n {billingAddress?.country !== \"India\" && (\n \n setShippingAddress((prev) => ({\n ...prev,\n state: e.target.value,\n }))\n }\n className={classes.textFieldRoot}\n // onBlur={() => {\n // trackEvent({\n // event: !isOtpVerified\n // ? \"signup_company_name_filled\"\n // : \"new_signup_company_name_filled\",\n // properties: {\n // company,\n // },\n // });\n // }}\n />\n )}\n \n \n \n Enter Address\n \n \n \n \n setShippingAddress({\n ...shippingAddress,\n street: event.target.value,\n })\n }\n disabled={isLoading}\n />\n \n \n \n Enter City\n \n \n \n \n setShippingAddress({\n ...shippingAddress,\n city: event.target.value,\n })\n }\n disabled={isLoading}\n />\n \n \n \n Enter Zip\n \n \n \n \n setShippingAddress({\n ...shippingAddress,\n zip: event.target.value,\n })\n }\n disabled={isLoading}\n />\n \n \n )}\n \n )}\n \n \n \n \n {/* Buttons here */}\n \n \n \n \n \n Create New Business\n \n \n \n \n onSubmit({\n name,\n planFamilyId: plan.newFamilyId,\n planName: plan.newPlanId,\n wccId: wccPlan,\n gstNumber,\n shippingAddress,\n billingAddress,\n checked,\n })\n }\n disabled={disableSubmit}\n endIcon={disableSubmit && }\n >\n Submit\n \n \n \n \n \n );\n}\n\nconst styles = (theme) => ({\n textField: {\n width: \"100%\",\n height: 42,\n },\n dialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"600px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n projectdialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n});\n\nexport default withStyles(styles)(CreateProjectDialog);\n","import React, { Component } from \"react\";\nimport { DateRangePicker } from \"react-dates\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport { withRouter } from \"react-router-dom\";\nimport {\n withStyles,\n Button,\n Box,\n Typography,\n Grid,\n IconButton,\n TextField,\n Tabs,\n Tab,\n DialogContent,\n Dialog,\n DialogActions,\n FormControl,\n Select,\n MenuItem,\n InputLabel,\n Snackbar,\n CircularProgress,\n Popper,\n InputAdornment,\n Tooltip,\n} from \"@material-ui/core\";\nimport {\n NavigateNext,\n NavigateBefore,\n Clear,\n FilterList,\n Add,\n Visibility,\n VisibilityOff,\n InfoOutlined,\n CheckCircleOutlined,\n GetApp,\n} from \"@material-ui/icons\";\nimport \"react-dates/initialize\";\nimport \"react-dates/lib/css/_datepicker.css\";\nimport \"../../react-dates-custom.css\";\n\nimport AssistantsTable, { fields, getFormattedDate } from \"./AssistantsTable\";\nimport { TablePagination } from \"@material-ui/core\";\n// import { assistants } from \"../../config/assistants\";\nimport { URL, partnerURL } from \"../../config/config\";\nimport axios from \"axios\";\nimport {\n fetchAssistants,\n loadNextAssistants,\n loadPrevAssistants,\n changeRowsPerPage,\n fetchAssistantsCounts,\n} from \"../../store/assistantState\";\nimport { fetchBusiness } from \"../../store/businessState\";\nimport { Alert, Autocomplete, Skeleton } from \"@material-ui/lab\";\nimport { timeZones } from \"../../config/timezone\";\nimport dialCodes, {\n countryMap,\n isoMap,\n isoToDialCode,\n} from \"../../config/dialCodes\";\nimport Header from \"../../commons/Header/Header\";\nimport CreateProjectDialog from \"../../commons/Dialog/CreateProjectDialog\";\nimport plansHelper from \"../../helpers/plansHelper\";\nimport withMediaQuery from \"../../helpers/mediaQueryHelper\";\n\nclass AssistantsPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n alertType: \"\",\n alertMsg: \"\",\n rowsPerPage: 15,\n totalCount: null,\n skip: 0,\n timeStamp: new Date(),\n search: \"\",\n searchDone: false,\n templates: [],\n backupTemplates: [],\n backupSearchTemplates: [],\n err: null,\n isLoading: false,\n page: 0,\n applied: {\n createdAt: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n planActivatedOn: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n },\n tab: \"Signups\",\n openDialog: false,\n assistantFilter: {\n filter: \"Signups\",\n sort: \"dec\",\n },\n allCount: 0,\n wabaCount: 0,\n countryCode: isoToDialCode[this.props.partner?.isoCode] || \"+91\",\n liveCount: 0,\n draftCount: 0,\n trialPlanCount: 0,\n monthlyPlanCount: 0,\n yearlyPlanCount: 0,\n deletedCount: 0,\n stoppedCount: 0,\n openProjectDialog: false,\n selectBusiness: \"\",\n newProjectName: \"\",\n projectSubmitLoader: false,\n clientDialog: false,\n company: \"\",\n companySize: \"\",\n industry: \"\",\n display_name: \"\",\n contact: \"\",\n buttonDisable: false,\n timezone: \"Asia/Calcutta GMT+05:30\",\n currency: this.props.partner?.currency || \"INR\",\n };\n }\n componentDidMount() {\n const { partner } = this.props;\n const { isSuperAffiliate } = partner || {};\n this.props.fetchAssistantsCounts(isSuperAffiliate);\n this.props.fetchAssistants(this.state.assistantFilter, isSuperAffiliate);\n }\n\n toggleDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openDialog: !this.state.openDialog });\n };\n\n handleChangePage = (event, newPage) => {\n const { partner } = this.props;\n const { isSuperAffiliate } = partner || {};\n const { page } = this.props;\n const step = newPage - page;\n if (step === -1) {\n this.props.loadPrevAssistants();\n } else if (step === 1) {\n this.props.loadNextAssistants(\n this.state.assistantFilter,\n isSuperAffiliate\n );\n }\n };\n\n handleChangeRowsPerPage = (event) => {\n const rowsPerPage = parseInt(event.target.value, 10);\n this.props.changeRowsPerPage(rowsPerPage);\n this.onTabChange();\n };\n\n setTemplate = (template) => {\n const templates = [...this.state.templates];\n const foundIndex = templates.findIndex((x) => x._id == template._id);\n // console.log({foundIndex})\n // if(foundIndex > -1) {\n templates[foundIndex] = template;\n this.setState({ templates });\n // } else {\n // }\n // templates.forEach\n };\n\n handleBusinessInput = (e) => {\n this.setState({ [e.target.name]: e.target.value });\n };\n\n handleInput = (e) => {\n this.setState({ [e.target.name]: e.target.value });\n };\n\n handleEnter = (e) => {\n // const { backupSearchTemplates, search } = this.state;\n if (e.key === \"Enter\") {\n const { assistantFilter } = this.state;\n const newObj = { ...assistantFilter };\n if (e.target.value) {\n newObj.assistantName = e.target.value;\n } else {\n delete newObj.assistantName;\n }\n this.setState(\n { assistantFilter: newObj, searchDone: true },\n this.onTabChange\n );\n }\n };\n handleSearch = (e) => {\n const { assistantFilter } = this.state;\n const newObj = { ...assistantFilter, assistantName: e.target.value };\n this.setState({\n assistantFilter: newObj,\n search: e.target.value,\n });\n };\n handleClear = () => {\n const { assistantFilter } = this.state;\n delete assistantFilter.assistantName;\n this.setState(\n {\n search: \"\",\n searchDone: false,\n assistantFilter,\n },\n this.onTabChange\n );\n };\n\n // methods for date filter\n clearDate = (filterKey) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = null;\n applied[filterKey].endDate = null;\n this.setState({ applied });\n };\n checkDateInput = (filterKey) => {\n const applied = { ...this.state.applied };\n const s = applied[filterKey];\n if (s.startDate && s.endDate) {\n return;\n } else {\n this.clearDate(filterKey);\n }\n };\n setFocus = (filterKey, focusedInput) => {\n const applied = { ...this.state.applied };\n applied[filterKey].focusedInput = focusedInput;\n this.setState({ applied });\n };\n setDate = (filterKey, startDate, endDate) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = startDate;\n applied[filterKey].endDate = endDate;\n this.setState({ applied });\n };\n applyFilter = () => {\n const { applied, assistantFilter } = this.state;\n const filterObj = { ...assistantFilter };\n if (applied.createdAt.startDate && applied.createdAt.endDate) {\n filterObj.fromDate = applied.createdAt.startDate._d;\n filterObj.toDate = applied.createdAt.endDate._d;\n } else {\n delete filterObj.fromDate;\n delete filterObj.toDate;\n }\n\n if (applied.planActivatedOn.startDate && applied.planActivatedOn.endDate) {\n filterObj.fromPlanActivatedDate = applied.planActivatedOn.startDate._d;\n filterObj.toPlanActivatedDate = applied.planActivatedOn.endDate._d;\n } else {\n delete filterObj.fromPlanActivatedDate;\n delete filterObj.toPlanActivatedDate;\n }\n this.setState(\n {\n assistantFilter: filterObj,\n openDialog: false,\n },\n () => {\n this.onTabChange();\n }\n );\n };\n\n onTabChange = () => {\n const { partner } = this.props;\n const { isSuperAffiliate } = partner || {};\n this.props.fetchAssistants(this.state.assistantFilter, isSuperAffiliate);\n };\n\n projectDialog = (event) => {\n this.setState({ openProjectDialog: !this.state.openProjectDialog });\n };\n\n toggleclientDialog = () => {\n this.setState({ clientDialog: !this.state.clientDialog });\n };\n\n buttondisbale = () => {\n this.setState({ buttonDisable: !this.state.buttonDisable });\n };\n\n createclient = async () => {\n try {\n const partnerId = this.props.user.id;\n const {\n email,\n display_name,\n company,\n contact,\n currency,\n timezone,\n password,\n } = this.state;\n const queryObj = {\n email,\n password,\n display_name,\n company,\n contact,\n timezone,\n currency,\n };\n\n let response = await axios.post(\n partnerURL + `/partner/${partnerId}/business/`,\n queryObj\n );\n // this.props.createnewClient(response.data)\n // this.props.fetchBusiness();\n this.setState({\n clientDialog: !this.state.clientDialog,\n openProjectDialog: true,\n });\n this.setState({\n status: \"success\",\n statusMessage: \"Business Created Succesfully\",\n });\n this.setState({\n email: null,\n display_name: null,\n company: null,\n contact: null,\n currency: this.props.partner?.currency || \"INR\",\n timezone: \"Asia/Calcutta GMT+05:30\",\n countryCode: isoToDialCode[this.props.partner?.isoCode] || \"+91\",\n industry: null,\n companySize: null,\n password: null,\n });\n } catch (error) {\n this.setState({\n buttonDisable: false,\n });\n const errorResponse = error.response;\n console.error(error);\n const errorMessage = errorResponse?.data?.message;\n this.setState({\n status: \"error\",\n statusMessage: errorMessage,\n });\n }\n };\n\n onSnackbarClose = () => {\n this.setState({\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n\n selectBusiness = (e, value, reason) => {\n if (reason === \"select-option\") {\n const assistantValue = Object.keys(this.props.allBusiness).find(\n (key) => this.props.allBusiness[key].name === value.split(\" - \")[1]\n );\n this.setState({ selectBusiness: assistantValue });\n }\n };\n\n render() {\n const {\n classes,\n partner,\n partnerPlanFamily,\n partnerWccFamily,\n mediaQuery,\n partnerId,\n user,\n } = this.props;\n const { backupTemplates, tab, assistantFilter, applied } = this.state;\n const { assistants, page, rowsPerPage, totalAssistants } = this.props;\n\n const affiliateTabs = [\n {\n display: \"Signups\",\n state: \"draftCount\",\n theme: \"#00b4bf59\",\n list: backupTemplates.filter((i) => !i.isWhatsappVerified),\n },\n {\n display: \"WABA Live\",\n state: \"wabaCount\",\n theme: \"#f2c14e3d\",\n list: backupTemplates,\n },\n {\n display: \"Conversions\",\n state: \"liveCount\",\n theme: \"#08cf6533\",\n list: backupTemplates.filter((i) => !!i.isWhatsappVerified),\n },\n ];\n\n const tabs = affiliateTabs;\n\n const passwordRegex = /^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$/;\n const isPasswordValid = passwordRegex.test(this.state.password);\n\n return (\n
\n {/* Page name & description container */}\n \n \n \n }\n // buttonTitle={user.isReferral ? \"\" : \"Create New Project\"}\n onButtonClick={this.projectDialog}\n showSearch={true}\n searchPlaceholder={\"Search project name\"}\n handleSearch={this.handleSearch}\n handleEnter={this.handleEnter}\n searchDone={this.state.searchDone}\n handleClear={this.handleClear}\n filter={this.state.search}\n toggleFilterDialog={this.toggleDialog}\n filterColor={\n (!!applied.createdAt.startDate &&\n !!applied.createdAt.endDate) ||\n (!!applied.planActivatedOn.endDate &&\n !!applied.planActivatedOn.startDate)\n }\n />\n \n {\n if (this.state.tab === newValue) return;\n const tab = tabs.find((i) => i.display === newValue);\n this.setState(\n {\n tab: newValue,\n templates: tab.list,\n totalCount: tab.list.length,\n assistantFilter: {\n ...this.state.assistantFilter,\n filter: newValue,\n },\n },\n this.onTabChange\n );\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n aria-label=\"scrollable auto tabs example\"\n TabIndicatorProps={{\n className: classes.tabIndicator,\n }}\n >\n {tabs.map((i) => (\n \n \n \n \n {this.props[i.state]}\n \n \n \n \n {`${i.display}`}\n \n \n }\n value={i.display}\n style={{\n textTransform: \"none\",\n alignItems: \"end\",\n minWidth: 190,\n // marginLeft: 16,\n paddingBottom: 8,\n background: `linear-gradient(180deg, white, ${\n this.state.tab === i.display ? i.theme : \"white\"\n })`,\n }}\n />\n ))}\n \n \n \n \n \n \n {/* Layout */}\n \n \n {/* First section */}\n {/* Scrollable (x & y) table container */}\n
\n \n
\n
\n
\n {/* Table footer fixed at bottom */}\n
\n \n
\n {/* Filter dialog */}\n \n \n \n \n Filter\n \n \n \n \n \n \n \n \n \n \n \n \n \n Apply\n \n \n \n \n\n {/* project dialog */}\n {this.state.openProjectDialog && (\n \n this.setState({ newProjectName: e.target.value })\n }\n createBusiness={() =>\n this.setState({\n openProjectDialog: false,\n clientDialog: true,\n })\n }\n onSubmit={this.projectSubmit}\n disableSubmit={this.state.projectSubmitLoader}\n planFamilies={partnerPlanFamily}\n defaultPlanFamily={partner?.defaultPlanFamily}\n defaultPlanName={partner?.defaultPlanName}\n wccPlans={partnerWccFamily}\n defaultWccPlan={partner?.defaultWccPlan}\n type={partner?.type}\n partner={partner}\n />\n )}\n\n \n \n {this.state.alertMsg}\n \n \n
\n );\n }\n}\n\n// Navigattion icons used in date fliters\nfunction NavigationWrapper(props) {\n const { classes } = props;\n return (\n
\n {props.children}\n
\n );\n}\n\nfunction DateFilter({\n filterKey,\n applied,\n setFocus,\n setDate,\n checkDateInput,\n clearDate,\n ...props\n}) {\n const { classes, filterName } = props;\n const A = applied[filterKey];\n return (\n \n \n {A.startDate && A.endDate ? (\n \n clearDate(filterKey)}\n >\n \n \n \n ) : (\n \"\"\n )}\n \n \n {filterName}\n \n \n \n checkDateInput(filterKey)}\n startDateId=\"startDate\"\n endDateId=\"endDate\"\n startDate={A.startDate}\n endDate={A.endDate}\n onDatesChange={({ startDate, endDate }) =>\n setDate(filterKey, startDate, endDate)\n }\n focusedInput={A.focusedInput}\n onFocusChange={(focusedInput) => setFocus(filterKey, focusedInput)}\n navPosition=\"navPositionTop\"\n numberOfMonths={1}\n navPrev={\n \n \n \n }\n navNext={\n \n \n \n }\n hideKeyboardShortcutsPanel\n customArrowIcon={null}\n screenReaderInputMessage={\" \"}\n small\n readOnly\n isOutsideRange={(day) => moment().diff(day) < 0}\n />\n \n \n \n );\n\n // function setToday()\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // paddingBottom: \"80px\"\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n container: {\n background: \"white\",\n borderRadius: \"8px\",\n },\n fixedBottomContainer: {\n position: \"fixed\",\n height: \"60px\",\n borderTop: \"1px solid lightgrey\",\n background: \"white\",\n bottom: \"0\",\n left: \"71px\",\n right: \"0\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n [theme.breakpoints.down(\"sm\")]: {\n left: \"0px\",\n height: \"50px\",\n },\n },\n tableContainer: {\n top: \"60px\",\n height: \"calc(100vh - 260px)\",\n width: \"100%\",\n overflow: \"hidden\",\n // background: \"red\",\n boxSizing: \"border-box\",\n position: \"sticky\",\n [theme.breakpoints.down(\"xs\")]: {\n // position top + bottombar height + bottom padding + navbar\n marginTop: 48,\n height: \"calc(100vh - 70px - 50px - 10px - 50px)\",\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n textField: {\n width: \"100%\",\n height: 42,\n },\n sortFormControl: {\n width: 120,\n marginRight: 8,\n height: 32,\n borderRadius: \"4px\",\n border: \"1px solid lightgrey\",\n },\n textFieldPopper: {\n [theme.breakpoints.down(\"md\")]: {\n left: \"12px !important\",\n minWidth: \"calc(100% - 35px)\",\n },\n [theme.breakpoints.up(\"md\")]: {\n left: \"calc(12.5vw - 16px) !important\",\n minWidth: \"calc(25vw + 54px)\",\n },\n },\n tabContainer: {\n background: \"white\",\n boxShadow: \"0 0 12px rgb(171 170 170)\",\n // padding: \"24px\",\n },\n tabIndicator: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n height: 32,\n background: \"white\",\n border: \"2px solid grey\",\n \"& input\": {\n padding: \"0px 12px!important\",\n },\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n dialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"600px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n projectdialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n\n inputRoot: {\n '&[class*=\"MuiOutlinedInput-root\"].MuiAutocomplete-input': {\n padding: 12,\n },\n '&&[class*=\"MuiOutlinedInput-root\"]': {\n padding: 0,\n },\n },\n popper: {\n width: \"fit-content\",\n zIndex: 10000,\n height: \"10px\",\n },\n snackbar: {\n // marginTop:\"20px\",\n // [theme.breakpoints.down(\"sm\")]: {\n // marginTop:\"40px\",\n // },\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n phoneTextFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n \"& input\": { width: \"calc(100% - 80px)\", marginLeft: \"80px\" },\n background: \"white\",\n border: \"2px solid grey\",\n },\n codeTextFieldRoot: {\n width: \"90px\",\n padding: \"0 0 0 14px\",\n position: \"absolute\",\n zIndex: 1,\n margin: \"10px 0 0 2px\",\n background: \"white\",\n \"& input\": {\n padding: \"10px 0 !important\",\n },\n \"& button\": {\n width: \"12px\",\n position: \"relative\",\n left: \"7px\",\n background: \"white\",\n borderRadius: 0,\n \"&:hover\": {\n background: \"white\",\n },\n },\n \"& div\": {\n paddingRight: \"0px !important\",\n },\n },\n textFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px 10px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& input\": {\n padding: \"6px 12px!important\",\n },\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n});\n\nconst connectAssistants = connect(\n (state) => ({\n user: state.login.user,\n assistants: state.assistants.assistants,\n page: state.assistants.page,\n isAssistantsLoading: state.assistants.isLoading,\n assistantError: state.assistants.error,\n rowsPerPage: state.assistants.rowsPerPage,\n totalAssistants: state.assistants.total,\n allCount: state.assistants.allCount,\n liveCount: state.assistants.liveCount,\n wabaCount: state.assistants.wabaCount,\n draftCount: state.assistants.draftCount,\n trialPlanCount: state.assistants.trialPlanCount,\n monthlyPlanCount: state.assistants.monthlyPlanCount,\n yearlyPlanCount: state.assistants.yearlyPlanCount,\n deletedCount: state.assistants.deletedCount,\n stoppedCount: state.assistants.stoppedCount,\n allBusiness: state.business.allBusiness,\n partnerId: state.partner.partner._id,\n partner: state.partner.partner,\n partnerSecretHash: state.partner.partner.passwordHash,\n partnerPlanFamily: state.planFamilies.allPlanFamilies,\n partnerWccFamily: state.wccPlans.allWccPlans,\n }),\n {\n fetchAssistants,\n loadNextAssistants,\n loadPrevAssistants,\n changeRowsPerPage,\n fetchAssistantsCounts,\n fetchBusiness,\n }\n)(AssistantsPage);\n\nexport default withStyles(styles)(\n withMediaQuery(\"(max-width:600px)\")(withRouter(connectAssistants))\n);\n","import React, { Component } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport ErrorPage from \"../../commons/ErrorPage/ErrorPage\";\nimport AssistantsDetail from \"./AssistantsDetail\";\n// import AssistantsDetails from \"./AssistantsDetails\";\nimport AssistantsPage from \"./AssistantsPage\";\n\nclass AssistantsRoute extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n render() {\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default AssistantsRoute;\n","import React, { Component } from \"react\";\nimport axios from \"axios\";\nimport { URL } from \"../../config/config.js\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport billingsHelper from \"../../helpers/billingsHelper.js\";\nimport Header from \"../../commons/Header/Header.js\";\n\nclass BillingDetails extends Component {\n constructor(props) {\n super(props);\n this.state = {\n commision: 0,\n amountPaid: 0,\n currency: \"\",\n planPurchased: \"\",\n createdAt: \"\",\n isLoading: true,\n assistantName: \"\",\n commisionPercent: 0,\n };\n }\n\n getBillingLog = () => {\n const partnerId = this.props.user.id;\n const _id = this.props.match.params.billingId;\n const { partnerPlanFamily, isPlansLoading, partner } = this.props;\n const { type } = partner || {};\n if (!isPlansLoading)\n axios\n .get(URL + `/api/${partnerId}/partnerbilling-lists/${_id}`)\n .then((response) => {\n const assistantName = response.data[1]?.assistantName;\n const modifiedBill =\n type !== \"DIRECT\"\n ? billingsHelper.mouldBill(response.data[0], partnerPlanFamily)\n : billingsHelper.mouldDirectBill(response.data[0]);\n const { commision, amountPaid, currency, planPurchased, createdAt } =\n modifiedBill;\n\n this.setState({\n commision,\n amountPaid,\n currency,\n planPurchased,\n createdAt,\n isLoading: false,\n assistantName: assistantName,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n };\n //merge error\n componentDidMount() {\n // if (!this.props.location?.state?.log) this.getBillingLog();\n const log = this.props.location?.state;\n\n if (log) {\n const {\n commision,\n amountPaid,\n currency,\n planPurchased,\n createdAt,\n assistantName,\n commisionPercent,\n } = log;\n this.setState({\n commision,\n amountPaid,\n currency,\n planPurchased,\n createdAt,\n isLoading: false,\n assistantName,\n commisionPercent,\n });\n }\n }\n render() {\n const { classes } = this.props;\n const toggleDialog = () => {\n this.props.history.goBack();\n };\n\n const log = this.props.location?.state;\n\n const { currency } = log;\n\n return (\n \n
\n <>\n {\" \"}\n {this.state.isLoading ? (\n \n \n \n ) : (\n
\n \n \n {this.state.assistantName && (\n \n \n Project Name\n \n \n {this.state.assistantName}\n \n \n )}\n \n \n COMMISION\n \n \n {`${\n currency === \"INR\"\n ? `₹ `\n : currency === \"USD\"\n ? `$ `\n : \"\"\n } ${this.state.commision / 100000}`}\n \n \n \n \n COMMISION PERCENTAGE\n \n \n {this.state.commisionPercent / 100000} {\" %\"}\n \n \n \n \n AMOUNT PAID\n \n \n {`${\n currency === \"INR\"\n ? `₹ `\n : currency === \"USD\"\n ? `$ `\n : \"\"\n } ${this.state.amountPaid / 100000}`}\n \n \n \n \n CURRENCY\n \n \n {this.state.currency}\n \n \n \n \n PLAN PURCHASED\n \n \n {this.state.planPurchased}\n \n \n \n \n Created At\n \n \n {getFormattedDate(this.state.createdAt)}\n \n \n\n \n \n \n
\n )}\n \n \n );\n }\n}\n\nfunction getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n}\nconst styles = (theme) => ({\n root: {\n // width: \"100%\",\n paddingTop: 20,\n overflowX: \"hidden\",\n \"& pre\": {\n whiteSpace: \"pre-wrap\",\n // whiteSpace: \"-moz-pre-wrap\",\n // whiteSpace: \"-pre-wrap\",\n // whiteSpace: \"-o-pre-wrap\",\n wordWrap: \"break-word\",\n wordBreak: \"keep-all\",\n },\n },\n dialogContainer: {\n overflowX: \"hidden\",\n height: \"100%\",\n position: \"relative\",\n color: \"black\",\n },\n dialogTopbar: {\n position: \"sticky\",\n top: 0,\n left: 0,\n background: \"white\",\n zIndex: 100,\n },\n container: {\n background: \"rgb(237, 226, 252)\",\n borderRadius: \"15px\",\n },\n textField: {\n width: 200,\n },\n});\nconst billingconnect = connect(\n (state) => ({\n user: state.login.user,\n partnerPlanFamily: state.planFamilies.allPlanFamilies,\n isPlansLoading: state.planFamilies.isLoading,\n partner: state.partner.partner,\n }),\n {}\n)(BillingDetails);\nexport default withStyles(styles)(withRouter(billingconnect));\n","import React, { Component } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport ErrorPage from \"../../commons/ErrorPage/ErrorPage\";\nimport BillingPage from \"./BillingPage\";\nimport BillingDetails from \"./BillingDetails\";\nclass BillingRoute extends Component {\n render() {\n return (\n \n \n {/* */}\n \n );\n }\n}\n\nexport default BillingRoute;\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n Button,\n IconButton,\n Snackbar,\n CircularProgress,\n Dialog,\n DialogContent,\n DialogActions,\n TextField,\n} from \"@material-ui/core\";\nimport {\n FiberManualRecord,\n FileCopyOutlined,\n FilterNone,\n VisibilityOutlined,\n Edit,\n Clear,\n Flag,\n} from \"@material-ui/icons\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\nimport Header from \"../../commons/Header/Header\";\nimport { connect } from \"react-redux\";\nimport { getUnavailablePlanFamilies } from \"../../store/planFamilyState\";\nimport { toHaveStyle } from \"@testing-library/jest-dom\";\nimport { URL } from \"../../config/config\";\nimport axios from \"axios\";\nimport plansHelper from \"../../helpers/plansHelper\";\nclass PlanFamilyPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n alert: false,\n alertMsg: \"\",\n alertSeverity: \"\",\n isLoading: true,\n openPlanDialog: false,\n planFamily: {},\n changePlan: \"\",\n slectedPlans: \"\",\n openSelectPlanDialog: false,\n openWccDialog: false,\n changePlanFamily: \"\",\n wccPlanFamily: {},\n changeWccPlanFamily: \"\",\n planSubmitLoader: false,\n defaultWccPlan: \"\",\n defaultPlanName: \"\",\n defaultPlanFamily: \"\",\n };\n }\n\n componentDidMount() {\n plansHelper.setPlanFamilies();\n plansHelper.setWccPlans();\n this.setState({\n isLoading: false,\n });\n }\n\n planSubmit = () => {\n this.setState({\n planSubmitLoader: true,\n });\n const firstPlan =\n this.state.planFamily &&\n this.state.planFamily[Object.keys(this.state.planFamily)[0]]?.plans;\n const renderFirstPlan = firstPlan && Object.keys(firstPlan)[0];\n\n const updatePlanFamily = this.state.changePlanFamily\n ? this.state.changePlanFamily\n : this.state.defaultPlanFamily\n ? this.state.defaultPlanFamily\n : Object.keys(this.state.planFamily)[0];\n\n const updateDefualtPlan = this.state.changePlan\n ? this.state.changePlan\n : this.state.defaultPlanName\n ? this.state.defaultPlanName\n : renderFirstPlan;\n\n axios\n .patch(URL + `/api/update-partner-config`, {\n defaultPlanFamily: updatePlanFamily,\n defaultPlanName: updateDefualtPlan,\n })\n .then((response) => {\n this.setState({\n alert: true,\n alertSeverity: \"success\",\n alertMsg: \"Plan family updated successfully\",\n planSubmitLoader: false,\n openPlanDialog: false,\n defaultPlanFamily: updatePlanFamily,\n defaultPlanName: updateDefualtPlan,\n });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertSeverity: \"error\",\n alertMsg: \"Plan family update failed\",\n planSubmitLoader: false,\n });\n });\n };\n\n wccPlanSubmit = () => {\n this.setState({\n planSubmitLoader: true,\n });\n\n const updateDefaultWcc = this.state.changeWccPlanFamily\n ? this.state.changeWccPlanFamily\n : this.state.defaultWccPlan\n ? this.state.defaultWccPlan\n : Object.keys(this.state?.wccPlanFamily)[0];\n\n axios\n .patch(URL + `/api/update-partner-config`, {\n defaultWccPlan: updateDefaultWcc,\n })\n .then((response) => {\n this.setState({\n alert: true,\n alertSeverity: \"success\",\n alertMsg: \"WCC Plan family updated successfully\",\n planSubmitLoader: false,\n openPlanDialog: false,\n defaultWccPlan: updateDefaultWcc,\n });\n this.props.updateWccFamily({ defaultWccPlan: updateDefaultWcc });\n })\n .catch((error) => {\n this.setState({\n alert: true,\n alertSeverity: \"error\",\n alertMsg: \"WCC Plan family update failed\",\n planSubmitLoader: false,\n });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (this.props !== prevProps) {\n this.setState(\n {\n planFamily: { ...this.props?.planFamilies },\n defaultPlanFamily: this.props?.partner?.defaultPlanFamily\n ? this.props?.partner?.defaultPlanFamily\n : Object.keys(this.props?.planFamilies)[0],\n defaultPlanName: this.props?.partner?.defaultPlanName,\n defaultWccPlan: this.props?.partner?.defaultWccPlan,\n wccPlanFamily: { ...this.props.wccPlans },\n },\n () => {\n this.setState({\n plans:\n this.props?.planFamilies?.[this?.state?.defaultPlanFamily]?.[\n \"plans\"\n ],\n });\n }\n );\n }\n }\n\n closeSnackbar = () => {\n this.setState({ alert: false, alertMsg: \"\", alertSeverity: \"\" });\n };\n\n planDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openPlanDialog: !this.state.openPlanDialog });\n };\n\n SelectWccDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openWccDialog: !this.state.openWccDialog });\n };\n\n selectPlanDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openSelectPlanDialog: !this.state.openSelectPlanDialog });\n };\n\n render() {\n const { classes, match } = this.props;\n const {\n planFamily,\n changePlanFamily,\n changePlan,\n plans,\n changeWccPlanFamily,\n defaultWccPlan,\n wccPlanFamily,\n defaultPlanFamily,\n defaultPlanName,\n } = this.state;\n const firstPlan =\n planFamily && planFamily[Object.keys(planFamily)[0]]?.plans;\n\n const renderFirstPlan = firstPlan && Object.keys(firstPlan)[0];\n\n const renderPlanName =\n planFamily?.[defaultPlanFamily]?.[\"plans\"]?.[defaultPlanName]?.[\"name\"];\n\n return this.state.isLoading ? (\n \n ) : (\n
\n
\n \n \n \n \n \n \n \n Select Default Subscription Plan Family\n \n \n \n \n \n Active Plan Family\n \n \n {planFamily?.[defaultPlanFamily]?.[\"name\"] ??\n \"Select a plan family\"}\n \n \n \n \n \n \n \n \n \n \n \n Active Plan\n \n \n {renderPlanName ?? \"Select a plan\"}\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Default WhatsApp Conversation Charges (WCC) Family\n \n \n \n \n \n Active Plan\n \n \n {wccPlanFamily[defaultWccPlan]?.name ??\n \"Select a plan first\"}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {this.state.openPlanDialog && (\n \n \n Select Plan Family\n \n \n \n \n \n \n \n \n Plan Family\n \n \n option)}\n getOptionLabel={(option) => {\n return planFamily[option].name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n this.setState({\n changePlanFamily: value,\n plans: planFamily[value]?.plans,\n });\n }\n }}\n defaultValue={defaultPlanFamily}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n Plans\n \n \n option)\n }\n getOptionLabel={(option) => {\n return plans && plans[option]?.name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n this.setState({ changePlan: value });\n }\n }}\n defaultValue={\n defaultPlanName ? defaultPlanName : renderFirstPlan\n }\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n \n \n \n \n (\n this.planDialog(),\n this.setState({\n planSubmitLoader: false,\n })\n )}\n style={{ marginRight: 8 }}\n >\n Cancel\n \n \n ) : (\n \"\"\n )\n }\n >\n Change Plan\n \n \n \n \n )}\n {/* {this.state.openSelectPlanDialog && (\n \n \n \n \n \n \n \n \n \n \n PLANS\n \n \n option)}\n getOptionLabel={(option) => {\n return plans[option]?.name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n this.setState({ changePlan: value });\n }\n }}\n defaultValue={changePlan ?? renderFirstPlan}\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n \n \n \n \n \n Cancel\n \n \n ) : (\n \"\"\n )\n }\n >\n Change Plan\n \n \n \n \n )} */}\n {this.state.openWccDialog && (\n \n \n Select Wcc Plan Family\n \n \n \n \n \n \n \n \n Plans\n \n \n option\n )}\n getOptionLabel={(option) => {\n return wccPlanFamily[option]?.name;\n }}\n onChange={(e, value, reason) => {\n if (reason === \"select-option\") {\n this.setState({ changeWccPlanFamily: value });\n }\n }}\n defaultValue={\n defaultWccPlan ?? Object.keys(wccPlanFamily)[0]\n }\n renderInput={(params) => (\n \n )}\n style={{ width: \"calc(100%)\", paddingTop: \"0px\" }}\n />\n \n \n \n \n \n \n \n Cancel\n \n \n ) : (\n \"\"\n )\n }\n >\n Change Plan\n \n \n \n \n )}\n\n \n \n {this.state.alertMsg}\n \n \n
\n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(247,247,247)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // paddingBottom: \"80px\"\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n cells: {\n padding: 24,\n color: \"grey\",\n borderBottom: \"1px solid #ecebeb\",\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n detailContainer: {\n marginTop: \"20px\",\n width: \"100%\",\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n primaryBackground: {\n background: \"rgb(70 20 134 / 15%)\",\n },\n container: {\n marginTop: 16,\n background: \"white\",\n borderRadius: 8,\n padding: \"24px 36px\",\n },\n containerPlans: {\n marginTop: 24,\n background: \"white\",\n borderRadius: 8,\n padding: \"24px 36px\",\n },\n containerButton: {\n marginTop: 16,\n background: \"white\",\n borderRadius: 8,\n padding: \"15px 15px\",\n },\n viewOldButton: {\n \"&:hover\": {\n color: \"grey\",\n cursor: \"pointer\",\n },\n },\n plandialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n height: \"unset\",\n maxHeight: \"unset\",\n minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n height: \"unset\",\n maxHeight: \"unset\",\n minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n});\n\nconst connectPlanFamilyPage = connect((state) => ({\n partner: state.partner.partner,\n planFamilies: state.planFamilies.allPlanFamilies,\n wccPlans: state.wccPlans.allWccPlans,\n}))(PlanFamilyPage);\n\nexport default withStyles(styles)(connectPlanFamilyPage);\n","import React from \"react\";\nimport { useHistory, useLocation, useParams, Link } from \"react-router-dom\";\nimport {\n Box,\n Typography,\n withStyles,\n Grid,\n ButtonBase,\n} from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { renderMetaAdsRoute } from \"../Routes/ProjectRoutes\";\n\nfunction AdsNavBarDesktop(props) {\n const location = useLocation();\n const history = useHistory();\n const params = useParams();\n const { classes, agent, partner } = props;\n const { type } = partner || {};\n\n return (\n
\n \n \n Meta Ads\n \n {renderMetaAdsRoute.map((route, index) => {\n let className = \"inactive\";\n if (location.pathname.includes(route.to)) {\n className = \"active\";\n }\n return (\n {\n history.push(\"/meta-ads\" + route.to);\n }}\n >\n \n \n \n {route.icon}\n \n \n \n \n {route.name}\n \n \n \n \n );\n })}\n \n
\n );\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"220px\",\n height: \"100vh\",\n background: \"rgb(255, 255, 255)\",\n borderRight: \"1px solid rgb(240,240,240)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n color: \"gray\",\n [theme.breakpoints.down(\"md\")]: {\n width: \"220px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n display: \"none\",\n },\n },\n logo: {\n height: 50,\n marginTop: 15,\n },\n link_inactive: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"35px\",\n width: \"35px\",\n margin: \"auto\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n transition: \"0.5s\",\n },\n link_active: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"35px\",\n width: \"35px\",\n margin: \"auto\",\n borderRadius: \"50%\",\n backgroundColor: \"white\",\n color: \"white\",\n cursor: \"pointer\",\n transition: \"0.5s\",\n },\n icon_active: {\n color: theme.palette.primary.main,\n },\n icon_inactive: {\n color: \"rgb(20,20,20)\",\n },\n name_active: {\n color: theme.palette.primary.main,\n },\n name_inactive: {\n color: \"rgb(20,20,20)\",\n },\n linkButton: {\n margin: \"3px 0em\",\n width: \"100%\",\n borderRadius: \"5px\",\n padding: \"10px\",\n },\n active: {\n backgroundColor: \"#002d621f\",\n },\n inactive: {\n backgroundColor: \"transparent\",\n },\n});\n\nconst connectedAdsNavBarDesktop = connect((state) => ({\n agent: state.login.user,\n partner: state.partner.partner,\n}))(AdsNavBarDesktop);\n\nexport default withStyles(styles)(connectedAdsNavBarDesktop);\n","import React, { Component } from \"react\";\nimport { withStyles, Grid, Typography, Box } from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { Redirect, Route, Switch } from \"react-router-dom\";\nimport AdsNavBarDesktop from \"./Navbar/AdsNavBarDesktop\";\nimport { renderMetaAdsRoute } from \"./Routes/ProjectRoutes\";\nimport { fetchPartnerDetails } from \"../../store/partnerState\";\n\nclass MetaAdsLayout extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n componentDidMount() {\n this.props.fetchPartnerDetails();\n }\n\n render() {\n const { classes, agent, partner, user } = this.props;\n const { type } = partner || {};\n const baseroute = \"/meta-ads\";\n\n return (\n \n \n \n \n \n
\n \n (\n \n )}\n />\n {renderMetaAdsRoute.map((route, index) => {\n return (\n \n );\n })}\n } />\n \n
\n
\n
\n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100vh\",\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n },\n routeWrapper: {\n height: \"100vh\",\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n background: \"white\",\n },\n routeContainer: {\n width: \"100%\",\n height: \"100vh\",\n transition: \"1s\",\n overflow: \"hidden\",\n [theme.breakpoints.down(\"sm\")]: {},\n },\n});\n\nconst connectedMetaAdsLayout = connect(\n (state) => ({\n user: state.login.user,\n agent: state.login.user,\n partner: state.partner.partner,\n }),\n { fetchPartnerDetails }\n)(MetaAdsLayout);\n\nexport default withStyles(styles)(connectedMetaAdsLayout);\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Checkbox,\n Typography,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Button,\n TextField,\n IconButton,\n CircularProgress,\n} from \"@material-ui/core\";\n\nimport { withRouter } from \"react-router-dom\";\nimport { Skeleton } from \"@material-ui/lab\";\n\nexport const adfields = [\n {\n name: \"Ad Name\",\n size: 12,\n key: \"adName\",\n },\n {\n name: \"Agent Name\",\n size: 12,\n key: \"affiliateName\",\n },\n {\n name: \"Team Name\",\n size: 12,\n key: \"teamName\",\n },\n {\n name: \"Business Name\",\n size: 12,\n key: \"businessName\",\n },\n {\n name: \"Project Name\",\n size: 12,\n key: \"projectName\",\n },\n {\n name: \"Ad Status\",\n size: 12,\n key: \"adStatus\",\n },\n {\n name: \"Quality Ranking\",\n size: 12,\n key: \"qualityRanking\",\n },\n {\n name: \"Ad Start Date\",\n size: 12,\n key: \"adStartDate\",\n },\n {\n name: \"Ad End Date\",\n size: 12,\n key: \"adStopDate\",\n },\n {\n name: \"Daily Ad Budget\",\n size: 12,\n key: \"dailyBudget\",\n },\n {\n name: \"Impressions\",\n size: 12,\n key: \"impressions\",\n },\n {\n name: \"Reach\",\n size: 12,\n key: \"reach\",\n },\n {\n name: \"Unique Clicks\",\n size: 12,\n key: \"uniqueClicks\",\n },\n {\n name: \"Clicks\",\n size: 12,\n key: \"clicks\",\n },\n {\n name: \"Total Spend\",\n size: 12,\n key: \"totalBudget\",\n },\n {\n name: \"Cost Per Click\",\n size: 12,\n key: \"costPerClick\",\n },\n // {\n // name: \"Messages\",\n // size: 12,\n // key: \"totalMessages\",\n // },\n {\n name: \"New messaging contacts\",\n size: 12,\n key: \"messagingFirstReply\",\n },\n {\n name: \"Messaging conversations started\",\n size: 12,\n key: \"totalMessagingConnection\",\n },\n {\n name: \"Engagement Ranking\",\n size: 12,\n key: \"engagementRateRanking\",\n },\n];\n\nexport const adAccountFields = [\n {\n name: \"Agent Name\",\n size: 12,\n key: \"affiliateName\",\n },\n {\n name: \"Team Name\",\n size: 12,\n key: \"teamName\",\n },\n {\n name: \"Business Name\",\n size: 12,\n key: \"businessName\",\n },\n {\n name: \"Project Name\",\n size: 12,\n key: \"projectName\",\n },\n {\n name: \"Connection Stage\",\n size: 12,\n key: \"connectionStage\",\n },\n {\n name: \"Active Ads\",\n size: 12,\n key: \"activeAds\",\n },\n {\n name: \"Cost per lead\",\n size: 12,\n key: \"costPerLead\",\n },\n {\n name: \"Number of leads\",\n size: 12,\n key: \"numberOfLeads\",\n },\n {\n name: \"Click Through Rate\",\n size: 12,\n key: \"clickThroughRate\",\n },\n // {\n // name: \"Today's spend\",\n // size: 12,\n // key: \"todaySpend\",\n // },\n {\n name: \"Total spend\",\n size: 12,\n key: \"totalSpend\",\n },\n];\n\nclass AdsTable extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n listScrolled = (event) => {\n if (!this.offsetPosition) {\n this.offsetPosition = this.rootEle.current.offsetTop;\n }\n const container = event.currentTarget;\n const currentPos = container.scrollTop;\n this.setState({\n sticky: currentPos > this.offsetPosition,\n });\n };\n\n render() {\n const { classes, ads, adAccounts, isLoading, page } = this.props;\n\n const fields = page == \"Project\" ? adAccountFields : adfields;\n\n const data = page == \"Project\" ? ads : adAccounts;\n\n return (\n <>\n
\n \n \n \n \n \n \n {fields.map((e) => (\n \n \n \n {e.name}\n \n \n \n ))}\n \n {ads.map((e) => (\n \n {fields.map((field) => (\n \n \n \n ))}\n \n ))}\n \n \n \n \n \n
\n \n );\n }\n}\n\nfunction Cell({ classes, item, field, allAds, allAdAccounts }) {\n switch (field) {\n case \"activeAds\":\n return (\n \n \n {item[field] || 0}\n \n \n );\n break;\n case \"adStartDate\":\n return (\n \n \n \n {getFormattedDate(item[field])}\n \n \n \n );\n\n break;\n case \"adStopDate\":\n return (\n \n \n \n {getFormattedDate(item[field])}\n \n \n \n );\n\n break;\n case \"Loading\":\n return (\n \n \n {Array.from(Array(20).keys()).map((i) => {\n return (\n
\n \n
\n );\n })}\n
\n
\n );\n break;\n\n case \"numberOfLeads\":\n const nol = item?.totalLeadsGenerated || \"0\";\n\n return (\n \n \n {nol}\n \n \n );\n\n break;\n default:\n return (\n \n \n {item[field]}\n \n \n );\n }\n}\n\nexport function getFormattedDate(date) {\n if (date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n }\n return \"\";\n}\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // marginBottom: \"5em\",\n // paddingBottom: \"80px\"\n },\n tableWrapper: {\n overflowX: \"auto\",\n width: \"100%\",\n },\n\n tableContainer: {\n marginTop: \"1.5em\",\n minWidth: \"220%\",\n },\n\n tableItem: {\n background: \"white\",\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n cursor: \"pointer\",\n \"&:hover\": {\n background: \"#efefef\",\n },\n },\n tableItemNoHover: {\n background: \"white\",\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n },\n tableItem1: {\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n },\n\n tableHeader: {\n background: \"white\",\n padding: 4,\n borderRadius: 8,\n marginBottom: \"1em\",\n flexWrap: \"nowrap\",\n },\n row: {\n background: \"white\",\n display: \"flex\",\n },\n alterRow: {\n background: \"rgb(246,246,246)\",\n },\n dataRow: {\n cursor: \"pointer\",\n transition: \"0.3s\",\n \"&:hover\": {\n background: \"rgb(70 20 134 / 15%)\",\n },\n },\n topbar: {\n background: \"rgb(252,252,252)\",\n position: \"sticky\",\n top: \"0\",\n zIndex: \"100\",\n },\n column: {\n // width: \"4400px\",\n fontWeight: \"normal\",\n height: \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n textAlign: \"center\",\n paddingRight: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n boxSizing: \"border-box\",\n },\n});\n\nexport default withStyles(styles)(AdsTable);\n","import React, { Component, useEffect, useState } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n Button,\n IconButton,\n Snackbar,\n CircularProgress,\n Dialog,\n DialogContent,\n DialogActions,\n TextField,\n Switch,\n Tabs,\n Tab,\n} from \"@material-ui/core\";\nimport { DateRangePicker } from \"react-dates\";\nimport { TablePagination } from \"@material-ui/core\";\nimport { URL } from \"../../config/config\";\nimport {\n NavigateNext,\n NavigateBefore,\n FiberManualRecord,\n FileCopyOutlined,\n FilterNone,\n VisibilityOutlined,\n Edit,\n Clear,\n Flag,\n GetApp,\n} from \"@material-ui/icons\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\nimport Header from \"../../commons/Header/Header\";\nimport { connect } from \"react-redux\";\nimport axios from \"axios\";\nimport { fetchPartnerDetails } from \"../../store/partnerState\";\nimport { useHistory, useLocation, useParams, Link } from \"react-router-dom\";\nimport AdsTable from \"./table/AdsTable\";\nimport withMediaQuery from \"../../helpers/mediaQueryHelper\";\nimport moment from \"moment\";\n\nconst MetaAds = (props) => {\n const { id: childAffiliateId } = useParams();\n const { classes, mediaQuery } = props;\n const [tab, setTab] = useState(\"All\");\n const [alertObj, setAlertObj] = useState({\n alertType: \"\",\n alertMsg: \"\",\n });\n const [reportLoading, setReportLoading] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [ads, setAds] = useState([]);\n const [counts, setCounts] = useState({});\n const [paginationCount, setPaginationCount] = useState(0);\n const [page, setPage] = useState(\"\");\n const [currentPage, setCurrentPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [openDialog, setOpenDialog] = useState(false);\n const [applied, setApplied] = useState({\n adStartDate: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n adStopDate: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n });\n const [assistantFilter, setAssistantFilter] = useState({});\n const location = useLocation();\n\n const tabs =\n page == \"Project\"\n ? [\n {\n display: \"All\",\n state: \"allCount\",\n // icon: ,\n theme: \"#00b4bf59\",\n },\n {\n display: \"FB not connected\",\n state: \"fbNotConnectedCount\",\n theme: \"#08cf6533\",\n },\n {\n display: \"Page not selected\",\n state: \"pageNotSelectedCount\",\n // icon: ,\n theme: \"#f2c14e3d\",\n },\n {\n display: \"WA Number not linked\",\n state: \"waNumberNotLinkedCount\",\n // icon: ,\n theme: \"#ff000059\",\n },\n {\n display: \"Connected\",\n state: \"completedCount\",\n theme: \"#08cf6533\",\n },\n ]\n : [\n {\n display: \"All\",\n state: \"all\",\n // icon: ,\n theme: \"#00b4bf59\",\n },\n {\n display: \"Live\",\n state: \"liveCount\",\n theme: \"#08cf6533\",\n },\n {\n display: \"Paused\",\n state: \"pausedCount\",\n // icon: ,\n theme: \"#f2c14e3d\",\n },\n {\n display: \"Stopped\",\n state: \"stoppedCount\",\n // icon: ,\n theme: \"#ff808059\",\n },\n {\n display: \"Others\",\n state: \"othersCount\",\n // icon: ,\n theme: \"#ff000059\",\n },\n ];\n\n const toggleDialog = (event, reason) => {\n reason !== \"backdropClick\" && setOpenDialog(!openDialog);\n };\n\n useEffect(() => {\n const fetchCounts = async () => {\n try {\n const { partner = {} } = props;\n const { isSuperAffiliate } = partner;\n const response = await axios.post(`${URL}/api/meta-ad-counts`, {\n childAffiliateId: childAffiliateId,\n isSuperAffiliate,\n });\n setCounts(response.data[0]);\n if (!assistantFilter?.filter) {\n setPaginationCount(response.data[0][\"all\"]);\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n const fetchProjectAdsInsightData = async () => {\n try {\n const { partner = {} } = props;\n const { isSuperAffiliate } = partner;\n const response = await axios.post(`${URL}/api/meta-ad-account-counts`, {\n childAffiliateId: childAffiliateId,\n isSuperAffiliate,\n });\n setCounts(response.data);\n if (!assistantFilter?.filter) {\n setPaginationCount(response.data.allCount);\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n if (location.pathname.includes(\"project\")) {\n setPage(\"Project\");\n fetchProjectAdsInsightData();\n } else {\n fetchCounts();\n setPage(\"Ads\");\n }\n }, []);\n\n useEffect(() => {\n if (location.pathname.includes(\"project\")) {\n fetchMetaAdAccountLists(assistantFilter);\n } else {\n fetchMetaAdLists(assistantFilter);\n }\n }, [tab, currentPage, rowsPerPage]);\n\n const DownloadReportHandler = async () => {\n if (location.pathname.includes(\"project\")) {\n await fetchMetaAdAccountLists(assistantFilter, \"report\");\n } else {\n await fetchMetaAdLists(assistantFilter, \"report\");\n }\n };\n\n const makeCsvDataReport = (data) => {\n try {\n const headers = Array.from(\n new Set(data.flatMap((entry) => Object.keys(entry)))\n );\n // Convert to CSV\n const csvContent = [\n headers.join(\",\"),\n ...data.map((entry) =>\n headers\n .map((header) =>\n entry[header] !== undefined && entry[header] !== null\n ? `\"${entry[header].toString().replace(/\\n/g, \"\\\\n\")}\"`\n : \"\"\n )\n .join(\",\")\n ),\n ].join(\"\\n\");\n let start;\n let end;\n if (assistantFilter?.filter) {\n start = moment(\n assistantFilter?.fromAdStartDate\n ? assistantFilter.fromAdStartDate\n : assistantFilter.fromAdStopDate,\n \"YYYY-MM-DD\"\n ).isValid()\n ? moment(\n assistantFilter?.fromAdStartDate\n ? assistantFilter.fromAdStartDate\n : assistantFilter.fromAdStopDate\n ).format(\"DD-MM-YYYY\")\n : null;\n end = moment(\n assistantFilter?.toAdStartDate\n ? assistantFilter.toAdStartDate\n : assistantFilter.toAdStopDate,\n \"YYYY-MM-DD\"\n ).isValid()\n ? moment(\n assistantFilter?.toAdStartDate\n ? assistantFilter.toAdStartDate\n : assistantFilter.toAdStopDate\n ).format(\"DD-MM-YYYY\")\n : null;\n }\n\n // Create download link\n var downloadLink = document.createElement(\"a\");\n const blob = new Blob([csvContent], { type: \"text/csv\" });\n var url = window.URL.createObjectURL(blob);\n downloadLink.href = url;\n downloadLink.download = `Meta${\n location.pathname.includes(\"project\") ? \"-AdAccounts\" : \"-Ads\"\n }${\n assistantFilter?.search\n ? `-${assistantFilter?.search}`\n : assistantFilter?.filter\n ? `-${start}-${end}`\n : `-${tab}`\n }-Report`;\n\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n setAlertObj({\n alertType: \"success\",\n alertMsg: \"Report successfully downloaded\",\n });\n } catch (error) {\n setAlertObj({\n alertType: \"error\",\n alertMsg: \"Unable to download report\",\n });\n }\n };\n\n const fetchMetaAdLists = async (filterObj, purpose) => {\n purpose == \"report\" ? setReportLoading(true) : setIsLoading(true);\n const { partner = {} } = props;\n const { isSuperAffiliate } = partner;\n const endPoint = `${URL}/api/meta-ad-lists?sort=dec`;\n const headers = {\n accept: \"application/json\",\n };\n const data = {\n skip: purpose == \"report\" ? 0 : currentPage * rowsPerPage,\n rowsPerPage: purpose == \"report\" ? paginationCount : rowsPerPage,\n tab,\n filterObj,\n childAffiliateId: childAffiliateId,\n isSuperAffiliate,\n };\n\n try {\n const response = await axios.post(endPoint, data, { headers });\n if (purpose != \"report\") {\n setAds(response?.data?.logs || []);\n if (filterObj?.filter || filterObj?.search) {\n setPaginationCount(response.data?.metaAdsCount);\n } else {\n const newTab = tabs.find((item) => item.display == tab);\n if (counts[newTab.state]) {\n setPaginationCount(counts[newTab.state]);\n }\n }\n } else {\n makeCsvDataReport(response?.data?.logs || []);\n }\n purpose == \"report\" ? setReportLoading(false) : setIsLoading(false);\n } catch (error) {\n console.error(\"Error:\", error);\n setAlertObj({\n alertType: \"error\",\n alertMsg: \"Unable to fetch data\",\n });\n setIsLoading(false);\n }\n };\n\n const fetchMetaAdAccountLists = async (filterObj, purpose) => {\n purpose == \"report\" ? setReportLoading(true) : setIsLoading(true);\n const endpoint = `${URL}/api/meta-ad-acccount-lists?sort=dec`;\n const headers = {\n accept: \"application/json\",\n };\n const { partner = {} } = props;\n const { isSuperAffiliate } = partner;\n const data = {\n skip: purpose == \"report\" ? 0 : currentPage * rowsPerPage,\n rowsPerPage: purpose == \"report\" ? paginationCount : rowsPerPage,\n tab,\n filterObj,\n childAffiliateId: childAffiliateId,\n isSuperAffiliate,\n };\n\n try {\n const response = await axios.post(endpoint, data, { headers });\n\n if (purpose != \"report\") {\n setAds(response?.data?.logs || []);\n if (filterObj?.filter || filterObj?.search) {\n setPaginationCount(response.data?.totalCount);\n } else {\n const newTab = tabs.find((item) => item.display == tab);\n if (counts[newTab.state]) {\n setPaginationCount(counts[newTab.state]);\n }\n }\n } else {\n makeCsvDataReport(response?.data?.logs || []);\n }\n\n purpose == \"report\" ? setReportLoading(false) : setIsLoading(false);\n } catch (error) {\n console.error(\"Error:\", error);\n setAlertObj({\n alertType: \"error\",\n alertMsg: \"Unable to fetch data\",\n });\n purpose == \"report\" ? setReportLoading(false) : setIsLoading(false);\n }\n };\n\n const handleChangePage = (event, newPage) => {\n setCurrentPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setCurrentPage(0);\n };\n\n const setDate = (filterKey, startDate, endDate) => {\n const appliedData = { ...applied };\n appliedData[filterKey].startDate = startDate;\n appliedData[filterKey].endDate = endDate;\n\n setApplied(applied);\n };\n\n const setFocus = (filterKey, focusedInput) => {\n const appliedData = { ...applied };\n appliedData[filterKey].focusedInput = focusedInput;\n setApplied(appliedData);\n };\n\n const checkDateInput = (filterKey) => {\n const appliedData = { ...applied };\n const s = appliedData[filterKey];\n if (s.startDate && s.endDate) {\n return;\n } else {\n clearDate(filterKey);\n }\n };\n const clearDate = (filterKey) => {\n const appliedData = { ...applied };\n appliedData[filterKey].startDate = null;\n appliedData[filterKey].endDate = null;\n setApplied(appliedData);\n };\n\n const applyFilter = async () => {\n const filterObj = {};\n if (applied.adStartDate.startDate && applied.adStartDate.endDate) {\n filterObj.filter = true;\n filterObj.fromAdStartDate = applied.adStartDate.startDate._d;\n filterObj.toAdStartDate = applied.adStartDate.endDate._d;\n } else {\n delete filterObj.fromAdStartDate;\n delete filterObj.toAdStartDate;\n }\n if (applied.adStopDate.startDate && applied.adStopDate.endDate) {\n filterObj.filter = true;\n filterObj.fromAdStopDate = applied.adStopDate.startDate._d;\n filterObj.toAdStopDate = applied.adStopDate.endDate._d;\n } else {\n delete filterObj.fromAdStopDate;\n delete filterObj.toAdStopDate;\n }\n setAssistantFilter(filterObj);\n await fetchMetaAdLists(filterObj);\n setOpenDialog(!openDialog);\n };\n\n const onSnackbarClose = () => {\n setAlertObj({\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n return (\n
\n \n ) : (\n \n )\n }\n onButtonClick={() => DownloadReportHandler()}\n filter={assistantFilter?.search}\n searchPlaceholder={`Search ${page}`}\n handleSearch={(e) => {\n setAssistantFilter({ ...assistantFilter, search: e.target.value });\n }}\n handleEnter={(e) => {\n if (e.key === \"Enter\") {\n const filterObj = {};\n setRowsPerPage(10);\n setCurrentPage(0);\n filterObj.search = e.target.value;\n setAssistantFilter({ ...assistantFilter, filterObj });\n if (location.pathname.includes(\"project\")) {\n fetchMetaAdAccountLists(filterObj);\n } else {\n fetchMetaAdLists(filterObj);\n }\n }\n }}\n searchDone={assistantFilter?.search}\n handleClear={() => {\n if (location.pathname.includes(\"project\")) {\n fetchMetaAdAccountLists();\n } else {\n fetchMetaAdLists();\n }\n\n setAssistantFilter({});\n setRowsPerPage(10);\n setCurrentPage(0);\n }}\n toggleFilterDialog={\n location.pathname.includes(\"project\") ? \"\" : toggleDialog\n }\n buttonTitle={\n props?.partner?.isChildAffiliate ? null : \"Download Report\"\n }\n showSearch={true}\n filterColor={false}\n />\n \n {\n if (tab === newValue) return;\n\n const newTab = tabs.find((item) => item.display == newValue);\n setPaginationCount(counts[newTab.state]);\n setCurrentPage(0);\n setRowsPerPage(10);\n const filterObj = {};\n filterObj.filter = true;\n filterObj.search = \"\";\n setAssistantFilter(filterObj);\n setTab(newValue);\n setAssistantFilter({});\n setApplied({\n adStartDate: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n adStopDate: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n });\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n aria-label=\"scrollable auto tabs example\"\n TabIndicatorProps={{ className: classes.tabIndicator }}\n >\n {tabs.map((i) => (\n \n \n \n \n {(assistantFilter?.filter || assistantFilter?.search) &&\n tab === i.display\n ? paginationCount\n : counts?.[i.state] || 0}\n \n \n \n \n \n {(assistantFilter?.filter || assistantFilter?.search) &&\n tab === i.display\n ? \"Result\"\n : i.display}\n \n \n }\n value={i.display}\n style={{\n textTransform: \"none\",\n alignItems: \"end\",\n minWidth: 190,\n paddingBottom: 8,\n background: `linear-gradient(180deg, white, ${\n tab === i.display ? i.theme : \"white\"\n })`,\n }}\n />\n ))}\n \n \n \n \n \n \n
\n {page == \"projects\"}\n \n
\n
\n
\n
\n
\n \n `${from}-${to} of ${count !== -1 ? count : \"more than \" + to}`\n }\n />\n
\n\n \n \n \n \n Filter\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Apply\n \n \n \n \n \n \n {alertObj.alertMsg}\n \n \n
\n );\n};\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(247,247,247)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // paddingBottom: \"80px\"\n },\n dialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"600px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n pageTitleContainer: {\n position: \"sticky\",\n // zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n height: \"71px\",\n },\n tabIndicator: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n },\n tableContainer: {\n top: \"60px\",\n height: \"calc(100vh - 260px)\",\n width: \"100%\",\n overflow: \"hidden\",\n // background: \"red\",\n boxSizing: \"border-box\",\n position: \"sticky\",\n [theme.breakpoints.down(\"xs\")]: {\n // position top + bottombar height + bottom padding + navbar\n marginTop: 48,\n height: \"calc(100vh - 70px - 50px - 10px - 50px)\",\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n fixedBottomContainer: {\n position: \"fixed\",\n height: \"60px\",\n borderTop: \"1px solid lightgrey\",\n background: \"white\",\n bottom: \"0\",\n left: \"71px\",\n right: \"0\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n [theme.breakpoints.down(\"sm\")]: {\n left: \"0px\",\n height: \"50px\",\n },\n },\n});\n\nfunction DateFilter({\n filterKey,\n applied,\n setFocus,\n setDate,\n checkDateInput,\n clearDate,\n ...props\n}) {\n const { classes, filterName } = props;\n const A = applied[filterKey];\n return (\n \n \n {A.startDate && A.endDate ? (\n \n clearDate(filterKey)}\n >\n \n \n \n ) : (\n \"\"\n )}\n \n \n {filterName}\n \n \n \n checkDateInput(filterKey)}\n startDateId=\"startDate\"\n endDateId=\"endDate\"\n startDate={A.startDate}\n endDate={A.endDate}\n onDatesChange={({ startDate, endDate }) =>\n setDate(filterKey, startDate, endDate)\n }\n focusedInput={A.focusedInput}\n onFocusChange={(focusedInput) => setFocus(filterKey, focusedInput)}\n navPosition=\"navPositionTop\"\n numberOfMonths={1}\n navPrev={\n \n \n \n }\n navNext={\n \n \n \n }\n hideKeyboardShortcutsPanel\n customArrowIcon={null}\n screenReaderInputMessage={\" \"}\n small\n readOnly\n isOutsideRange={(day) =>\n filterKey === \"adStopDate\" ? false : moment().diff(day) < 0\n }\n />\n \n \n \n );\n}\n\nfunction NavigationWrapper(props) {\n const { classes } = props;\n return (\n
\n {props.children}\n
\n );\n}\n\nconst connectMetaAds = connect(\n (state) => ({\n partner: state.partner.partner,\n user: state.login.user,\n }),\n {\n fetchPartnerDetails,\n }\n)(MetaAds);\n\nexport default withStyles(styles)(\n withMediaQuery(\"(max-width:600px)\")(connectMetaAds)\n);\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n CircularProgress,\n Snackbar,\n} from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { fetchPartnerDetails } from \"../../store/partnerState\";\nimport Header from \"../../commons/Header/Header\";\nimport axios from \"axios\";\nimport { Alert } from \"@material-ui/lab\";\n\nconst { APIURL } = require(\"../../config/config\");\n\nclass SuperDashboard extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: false,\n totalClick: 0,\n totalLeadsGenerated: 0,\n totalConversions: 0,\n conversionRate: 0,\n termsDialogOpen: true,\n selectedLink: \"\",\n snackbarOpen: false,\n uniqueClicks: 0,\n analyticsDialog: false,\n data: [\n { name: \"Total Clicks\", value: 400 },\n { name: \"Unique Clicks\", value: 300 },\n ],\n totalFosCount: 0,\n totalBusiness: 0,\n totalSpentAmount: 0,\n totalAdCreditRecharged: 0,\n };\n }\n\n componentDidMount() {\n this.props.fetchPartnerDetails();\n this.fetchDashboardData();\n }\n\n fetchDashboardData = () => {\n axios\n .get(APIURL + \"/affiliates/dashboard-analytics-super-affiliate\")\n .then((response) => {\n const { data } = response;\n this.setState({\n totalFosCount: data.affiliateCount,\n totalBusiness: data.projectCount,\n totalSpentAmount: data.totalSpentAmount,\n totalAdCreditRecharged: data.totalAdCreditRecharged,\n });\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n render() {\n const { classes, isPartnerDetailLoading, partnerDetail } = this.props;\n\n const isPartnerDetailEmpty =\n !partnerDetail || Object.keys(partnerDetail).length === 0;\n\n if (isPartnerDetailLoading || isPartnerDetailEmpty) {\n return (\n \n \n \n );\n }\n\n return (\n
\n
\n \n \n \n \n \n \n \n \n \n Overview\n \n \n \n \n \n \n Total Business Onboarded\n \n \n {this.state.totalBusiness || 0}\n \n \n \n\n \n \n \n Total Ads Spend\n \n \n \n {this.state.totalSpentAmount > 0 &&\n `₹ ${this.state.totalSpentAmount}`}\n {this.state.totalSpentAmount === 0 && <>₹ 0.00}\n \n \n \n \n\n \n \n \n Total Revenue Generated\n \n \n \n {(partnerDetail.totalCommisionPaidINR ?? 0) > 0 &&\n `₹ ${(\n partnerDetail.totalCommisionPaidINR / 100000\n ).toFixed(2)}`}\n {\n (partnerDetail.totalCommisionPaidINR ?? 0) >\n 0 &&\n (partnerDetail.totalCommisionPaidUSD ?? 0) >\n 0 &&\n \" | \" // Display a bar only if both INR and USD have values\n }\n {(partnerDetail.totalCommisionPaidUSD ?? 0) > 0 &&\n `$ ${(\n partnerDetail.totalCommisionPaidUSD / 100000\n ).toFixed(2)}`}\n {(partnerDetail.totalCommisionPaidINR ?? 0) ===\n 0 &&\n (partnerDetail.totalCommisionPaidUSD ?? 0) ===\n 0 && <>₹ 0.00}\n \n \n \n \n \n \n \n \n \n Total Commission\n \n \n {this.state.totalLeadsGenerated || 0}\n \n \n \n \n \n \n Total FOS Agents\n \n \n {this.state.totalFosCount || 0}\n \n \n \n \n \n \n Total Ad Credit Recharge\n \n \n {this.state.totalAdCreditRecharged || 0}\n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.alertMsg}\n \n \n
\n
\n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n background: \"rgb(247,247,247)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n primaryBackground: {\n background: \"rgb(70 20 134 / 15%)\",\n },\n container: {\n // marginTop: 16,\n background: \"white\",\n borderRadius: 8,\n padding: \"24px 36px\",\n marginTop: 10,\n marginBottom: 10,\n },\n analyticsContainer: {\n background: \"white\",\n padding: 0,\n margin: 0,\n },\n snackbar: {\n top: theme.spacing(9),\n },\n viewOldButton: {\n \"&:hover\": {\n color: \"grey\",\n cursor: \"pointer\",\n },\n },\n textFieldRootAutocomplete: {\n display: \"flex\",\n width: \"100%\",\n maxWidth: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"10px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n\n helpLink: {\n cursor: \"pointer !important\",\n },\n\n textFieldRootAutocompleteDropDown: {\n display: \"flex\",\n width: \"100%\",\n maxWidth: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"7px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n chip: {\n margin: \"2px\",\n fontSize: \"0.5rem\",\n display: \"flex\",\n flexDirection: \"row\",\n },\n tagList: {\n display: \"flex\",\n flexWrap: \"wrap\",\n },\n});\n\nconst connectSuperDashboard = connect(\n (state) => ({\n isPartnerDetailLoading: state.partner.isLoading,\n partnerDetail: state.partner.partner,\n }),\n {\n fetchPartnerDetails,\n }\n)(SuperDashboard);\n\nexport default withStyles(styles)(connectSuperDashboard);\n","import React, { useState, useEffect } from \"react\";\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Grid,\n Typography,\n FormControl,\n Select,\n MenuItem,\n InputLabel,\n Box,\n IconButton,\n} from \"@material-ui/core\";\nimport { Close } from \"@material-ui/icons\";\n\nconst EditAgentDialog = ({ open, onClose, agent, onSave }) => {\n const [contact, setContact] = useState(\"\");\n const [status, setStatus] = useState(\"\");\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n useEffect(() => {\n if (agent) {\n setContact(agent.contact || \"\");\n setStatus(agent.status || \"ACTIVE\");\n }\n }, [agent]);\n\n const handleSubmit = () => {\n setIsSubmitting(true);\n\n onSave({\n ...agent,\n contact,\n status,\n })\n .then(() => {\n setIsSubmitting(false);\n onClose();\n })\n .catch((error) => {\n setIsSubmitting(false);\n // Handle error\n console.error(\"Error updating agent:\", error);\n });\n };\n\n if (!agent) return null;\n\n return (\n \n \n \n \n Edit Affiliate Agent\n \n \n \n \n \n \n \n \n \n \n \n Agent Name\n \n {agent.name || \"NA\"}\n \n\n \n \n Email\n \n {agent.email}\n \n\n \n setContact(e.target.value)}\n margin=\"normal\"\n />\n \n\n \n \n Status\n setStatus(e.target.value)}\n label=\"Status\"\n >\n Active\n Inactive\n \n \n \n \n \n \n \n \n Cancel\n \n \n {isSubmitting ? \"Saving...\" : \"Save Changes\"}\n \n \n \n );\n};\n\nexport default EditAgentDialog;\n","import axios from \"axios\";\nimport { APIURL, URL } from \"../../config/config\";\nimport { StaticRouter } from \"react-router\";\n\nconst initialState = {\n // \"business\": [],\n business: Array(10)\n .fill(0)\n .map((item) => ({ name: \"Loading\" })),\n skip: 0,\n totalBusinesses: 0,\n isLoading: true,\n error: null,\n page: 0,\n rowsPerPage: 10,\n allCount: 0,\n archivedCount: 0,\n};\n\nconst CREATE_CLIENT = \"Client/CREATE_CLIENT\";\nconst LOAD_START = \"Client/LOAD_START\";\nconst LOAD_SUCCESS = \"Client/LOAD_SUCCESS\";\nconst LOAD_MORE_SUCCESS = \"Client/LOAD_MORE_SUCCESS\";\nconst LOAD_FAILURE = \"Client/LOAD_FAILURE\";\nconst ADD_CLIENT = \"Client/ADD_CLIENT\";\nconst CHANGE_PAGE = \"Client/CHANGE_PAGE\";\nconst CHANGE_ROWS_PER_PAGE = \"Clients/CHANGE_ROWS_PER_PAGE\";\nconst CHANGE_QUERY = \"Clients/CHANGE_QUERY\";\nconst CHANGE_STATUS = \"Clients/CHANGE_STATUS\";\nconst EXIT_CLIENTS = \"TEMPLATE/EXIT_CLIENTS\";\nconst LOAD_DATE = \"LOAD_DATE/CLIENTS\";\nconst LOAD_APPLIED = \"LOAD_APPLIED/CLIENT\";\nconst LOAD_BUSINESS_COUNTS = \"LOAD_BUSINESS_COUNTS/CLIENT\";\n\nconst loadStart = () => ({\n type: LOAD_START,\n});\n\nconst loadSuccess = ({ business, skip, totalBusinesses }) => ({\n type: LOAD_SUCCESS,\n payload: { business, skip, totalBusinesses },\n});\n\nconst createClient = ({ business, totalBusinesses, createdAt }) => ({\n type: CREATE_CLIENT,\n payload: { business, totalBusinesses, createdAt },\n});\n\nconst loadmoresuccess = ({ business, newSkip }) => ({\n type: LOAD_MORE_SUCCESS,\n payload: { business, newSkip },\n});\n\nconst loadFailure = (error) => ({\n type: LOAD_FAILURE,\n payload: error,\n});\n\nconst loadBusinessCount = ({ all, archived }) => ({\n type: LOAD_BUSINESS_COUNTS,\n payload: {\n all,\n archived,\n },\n});\n\nexport const loadClient = (filters) => (dispatch, getState) => {\n const { rowsPerPage } = getState().client;\n const { user } = getState().login;\n const newFilter = { ...filters };\n console.log({ user });\n dispatch(loadStart);\n axios\n .post(APIURL + \"/affiliates/fetch-child-affiliates\", {\n skip: 0,\n rowsPerPage,\n ...newFilter,\n })\n .then((response) => {\n const { business, newSkip, totalBusinesses } = response.data;\n dispatch(\n loadSuccess({\n business: business,\n skip: newSkip,\n totalBusinesses: totalBusinesses,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport const loadSearch = (filter) => (dispatch, getState) => {\n const skip = 0;\n const rowsPerPage = 0;\n const clientSearch = true;\n const { user } = getState().login;\n dispatch(loadStart);\n axios\n .post(APIURL + `${`/affiliates/fetch-child-affiliates`}`, {\n ...(user.isReferral ? { partnerReferralId: user.id } : {}),\n skip,\n rowsPerPage,\n filter,\n clientSearch,\n })\n .then((response) => {\n const { business, newSkip, totalBusinesses } = response.data;\n dispatch(\n loadSuccess({\n business: business,\n skip: newSkip,\n totalBusinesses: totalBusinesses,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport const loadNext = (event, newPage, filters) => (dispatch, getState) => {\n const { rowsPerPage, skip, business } = getState().client;\n const { user } = getState().login;\n const sort = filters.sort;\n const newFilter = { ...filters };\n delete newFilter.sort;\n\n if (business.length > newPage * rowsPerPage) {\n dispatch({ type: CHANGE_PAGE, payload: newPage });\n } else {\n dispatch({ type: CHANGE_PAGE, payload: newPage });\n axios\n .post(APIURL + `${`/affiliates/fetch-child-affiliates`}?sort=${sort}`, {\n skip,\n rowsPerPage,\n ...(user.isReferral ? { partnerReferralId: user.id } : {}),\n ...newFilter,\n })\n .then((response) => {\n const { business, newSkip } = response.data;\n dispatch(loadmoresuccess({ business: business, newSkip: newSkip }));\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n }\n};\n\nexport const createnewClient = (business) => (dispatch, getState) => {\n const totalBusinesses = getState().client.totalBusinesses;\n dispatch(\n createClient({\n business: { ...business, _id: business.id },\n totalBusinesses: totalBusinesses,\n createdAt: Date.now(),\n })\n );\n};\n\nexport const addClient = (client) => (dispatch) => {\n dispatch({ type: ADD_CLIENT, payload: client });\n};\n\nexport const changeQuery = (nameQuery) => (dispatch) => {\n dispatch({ type: CHANGE_QUERY, payload: nameQuery });\n};\n\nexport const changeRowsPerPage = (rowsPerPage) => (dispatch) => {\n dispatch({ type: CHANGE_ROWS_PER_PAGE, payload: rowsPerPage });\n};\n\nexport const unfetchclients = () => (dispatch) => {\n dispatch({ type: EXIT_CLIENTS, payload: null });\n};\n\nexport const fetchChildAffiliateCount = () => (dispatch, getState) => {\n const { user } = getState().login;\n\n axios\n .get(APIURL + \"/affiliates/fetch-child-affiliates-count\")\n .then((response) => {\n const { allCount } = response.data;\n dispatch(\n loadBusinessCount({\n all: allCount || 0,\n })\n );\n })\n .catch((error) => {\n console.error(error);\n dispatch(loadFailure(error));\n });\n};\n\nexport default function ClientReducer(state = initialState, { type, payload }) {\n switch (type) {\n case LOAD_START:\n return { ...state, isLoading: true, error: null };\n\n case LOAD_SUCCESS:\n return {\n ...state,\n business: [...payload.business],\n skip: payload.skip,\n totalBusinesses: payload.totalBusinesses,\n page: 0,\n isLoading: false,\n error: null,\n };\n case LOAD_DATE:\n return {\n ...state,\n applied: {\n ...state.applied,\n createdAt: {\n ...state.applied.createdAt,\n startDate: payload.fromDate,\n endDate: payload.toDate,\n },\n },\n };\n case CREATE_CLIENT:\n const businessList = [...state.business];\n if (businessList.length > 9) {\n businessList.pop();\n }\n return {\n ...state,\n business: [\n {\n ...payload.business,\n displayName: payload.business.display_name,\n createdOn: payload.createdAt,\n },\n ...businessList,\n ],\n totalBusinesses: payload.totalBusinesses + 1,\n };\n\n case LOAD_MORE_SUCCESS:\n return {\n ...state,\n business: [...state.business, ...payload.business],\n skip: payload.newSkip,\n isLoading: false,\n };\n\n case CHANGE_ROWS_PER_PAGE:\n return { ...state, rowsPerPage: payload, page: 0 };\n\n case CHANGE_PAGE:\n return { ...state, page: payload };\n\n case LOAD_FAILURE:\n return { ...state, isLoading: true, error: payload };\n\n case ADD_CLIENT:\n return {\n ...state,\n business: { [payload.name]: payload, ...state.business },\n };\n\n case LOAD_APPLIED:\n return {\n ...state,\n applied: { ...state.applied, ...payload.applied },\n };\n\n case LOAD_BUSINESS_COUNTS:\n return {\n ...state,\n allCount: payload.all,\n archivedCount: payload.archived,\n };\n\n case CHANGE_QUERY:\n return {\n ...state,\n nameQuery: payload,\n };\n\n case EXIT_CLIENTS:\n return {\n ...initialState,\n };\n\n case CHANGE_STATUS:\n return {\n ...state,\n business: {\n ...state.business,\n [payload.displayName]: {\n ...state.business[payload.displayName],\n status: payload.status,\n },\n },\n };\n\n default:\n return state;\n }\n}\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n IconButton,\n Tooltip,\n} from \"@material-ui/core\";\nimport { withRouter } from \"react-router-dom\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { Edit } from \"@material-ui/icons\";\nimport EditAgentDialog from \"./EditAgentDialog\";\nimport axios from \"axios\";\nimport { APIURL } from \"../../config/config\";\nimport { loadClient } from \"./AffiliateAgentsStore\";\n\n// Updated fields with edit action column\nconst fields = [\n {\n name: \"Name\",\n size: 2,\n key: \"name\",\n },\n {\n name: \"Email\",\n size: 3,\n key: \"email\",\n },\n {\n name: \"Contact\",\n size: 1,\n key: \"contact\",\n },\n {\n name: \"Created On\",\n size: 2,\n key: \"createdAt\",\n },\n {\n name: \"Team\",\n size: 2,\n key: \"team\",\n },\n {\n name: \"Status\",\n size: 1,\n key: \"status\",\n },\n {\n name: \"Actions\",\n size: 1,\n key: \"actions\",\n },\n];\n\nclass SuperAffiliateAgentsTable extends Component {\n constructor(props) {\n super(props);\n this.state = {\n openDialog: false,\n selectedTemplate: null,\n editDialogOpen: false,\n selectedAgent: null,\n };\n }\n\n listScrolled = (event) => {\n if (!this.offsetPosition) {\n this.offsetPosition = this.rootEle?.current?.offsetTop;\n }\n const container = event.currentTarget;\n const currentPos = container.scrollTop;\n this.setState({\n sticky: currentPos > this.offsetPosition,\n });\n };\n\n toggleDialog = () => {\n this.setState({ openDialog: !this.state.openDialog });\n };\n\n openClient = (e) => {\n if (!e?._id) return;\n this.props.history.push(`/agents/meta-ads/projects/${e._id}`);\n };\n\n handleEditClick = (e, agent) => {\n e.stopPropagation(); // Prevent row click from triggering\n this.setState({\n editDialogOpen: true,\n selectedAgent: agent,\n });\n };\n\n handleCloseEditDialog = () => {\n this.setState({\n editDialogOpen: false,\n selectedAgent: null,\n });\n };\n\n handleSaveAgent = async (updatedAgent) => {\n axios\n .post(APIURL + \"/affiliates/edit-child-affiliate\", { ...updatedAgent })\n .then((response) => {\n this.props.loadClient({});\n this.setState({\n editDialogOpen: false,\n selectedAgent: null,\n });\n this.props.showSnackbar(\"success\", \"Updated successfully\");\n })\n .catch((error) => {\n this.setState({\n editDialogOpen: false,\n selectedAgent: null,\n });\n this.props.showSnackbar(\n \"error\",\n error?.response?.data?.message ||\n \"Error updating agent. Please try again.\"\n );\n });\n };\n\n render() {\n const { classes, business, isLoading } = this.props;\n const { editDialogOpen, selectedAgent } = this.state;\n\n return (\n
\n \n \n \n \n \n \n {fields.map((e) => (\n \n \n \n {e.name}\n \n \n \n ))}\n \n {business.map((agent) => (\n {\n this.openClient(agent);\n }}\n >\n {fields.map((field) => (\n \n \n \n ))}\n \n ))}\n \n \n \n \n \n\n {/* Edit Dialog */}\n \n
\n );\n }\n}\n\nfunction Cell({ classes, item, field, onEditClick, ...props }) {\n switch (field) {\n case \"displayName\":\n case \"name\":\n return (\n \n \n \n {item.name || item.displayName}\n \n \n \n );\n\n case \"email\":\n return (\n \n \n \n {item[field]?.startsWith(\"__archived__\")\n ? item[field].replace(\"__archived__\", \"\")\n : item[field]}\n \n \n \n );\n\n case \"createdAt\":\n return (\n \n \n \n {getFormattedDate(item[field])}\n \n \n \n );\n\n case \"contact\":\n return (\n \n \n \n {item[field]}\n \n \n \n );\n\n case \"status\":\n return (\n \n \n \n {item[field] || \"Active\"}\n \n \n \n );\n\n case \"actions\":\n return (\n \n \n \n onEditClick(e, item)}\n className={classes.editButton}\n size=\"small\"\n >\n \n \n \n \n \n );\n\n case \"Loading\":\n return (\n \n \n \n \n \n );\n\n default:\n return (\n \n \n \n {item[field]}\n \n \n \n );\n }\n}\n\nfunction getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n}\n\nfunction getStatusColor(status) {\n switch (status.toLowerCase()) {\n case \"active\":\n return \"#4caf50\"; // Green\n case \"inactive\":\n return \"#ff9800\"; // Orange\n case \"suspended\":\n return \"#f44336\"; // Red\n default:\n return \"inherit\";\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n },\n tableWrapper: {\n overflowX: \"auto\",\n width: \"100%\",\n },\n tableContainer: {\n marginTop: \"1.5em\",\n minWidth: 1100,\n },\n tableItem: {\n background: \"white\",\n marginBottom: \"1em\",\n padding: 4,\n borderRadius: 8,\n cursor: \"pointer\",\n \"&:hover\": {\n background: \"#efefef\",\n },\n },\n tableHeader: {\n background: \"white\",\n padding: 4,\n borderRadius: 8,\n marginBottom: \"1em\",\n },\n editButton: {\n padding: 8,\n \"&:hover\": {\n backgroundColor: \"rgba(0, 0, 0, 0.08)\",\n },\n },\n});\n\nconst SuperAffiliateAgentsTableConnect = connect(\n (state) => ({\n isLoading: state.client.isLoading,\n }),\n { loadClient }\n)(SuperAffiliateAgentsTable);\n\nexport default withStyles(styles)(withRouter(SuperAffiliateAgentsTableConnect));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport {\n withStyles,\n TextField,\n Grid,\n Typography,\n Box,\n} from \"@material-ui/core\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\nimport dialCodes, { countryMap, isoMap } from \"../../config/dialCodes\";\n\nclass AdDetailStep extends Component {\n handleInput = (e) => {\n this.props.updateState(e.target.name, e.target.value);\n };\n\n render() {\n const { classes } = this.props;\n\n const getflag = (langcode) => {\n var first = langcode.charCodeAt(0) + 127397;\n var second = langcode.charCodeAt(1) + 127397;\n var flag = `&#${first};&#${second};`;\n const x = document.createElement(\"p\");\n x.innerHTML = flag;\n return x.innerText;\n };\n\n return (\n \n \n \n Create Your FOS Here\n \n\n \n\n \n i.dialCode)}\n classes={{ popper: classes.textFieldPopper }}\n getOptionLabel={(option) => {\n return `${getflag(isoMap[option])} ${option}`;\n }}\n onChange={(e, value, reason) => {\n const countryCode = \"countryCode\";\n this.props.updateState(countryCode, value);\n }}\n value={this.props.countryCode}\n renderInput={(params) => (\n \n )}\n />\n\n \n \n\n \n\n \n \n \n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n padding: \"20px 10px\",\n display: \"flex\",\n },\n codeTextFieldRoot: {\n width: \"90px\",\n padding: \"0 0 0 14px\",\n position: \"absolute\",\n zIndex: 1,\n margin: \"10px 0 0 2px\",\n background: \"white\",\n \"& input\": {\n padding: \"10px 0 !important\",\n },\n \"& button\": {\n width: \"12px\",\n position: \"relative\",\n left: \"7px\",\n background: \"white\",\n borderRadius: 0,\n \"&:hover\": {\n background: \"white\",\n },\n },\n \"& div\": {\n paddingRight: \"0px !important\",\n },\n },\n bottomMargin: {\n marginBottom: theme.spacing(4),\n },\n TextFieldRoot: {\n width: \"100%\",\n padding: \"2px\",\n marginTop: \"4px\",\n // marginBottom: \"20px\",\n \"& input\": { width: \"calc(100% - 80px)\" },\n background: \"rgb(240,240,240)\",\n },\n textFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px 10px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& input\": {\n padding: \"6px 12px!important\",\n },\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n textFieldPopper: {\n [theme.breakpoints.down(\"md\")]: {\n left: \"12px !important\",\n minWidth: \"calc(100% - 35px)\",\n },\n [theme.breakpoints.up(\"md\")]: {\n left: \"calc(12.5vw - 16px) !important\",\n minWidth: \"calc(25vw + 54px)\",\n },\n },\n phoneTextFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n \"& input\": { width: \"calc(100% - 80px)\", marginLeft: \"80px\" },\n background: \"white\",\n border: \"2px solid grey\",\n },\n passwordIcon: {\n cursor: \"pointer\",\n fontSize: 20,\n },\n});\n\nconst Adsconnect = connect((state) => ({\n partner: state.partner.partner,\n}))(AdDetailStep);\n\nexport default withStyles(styles)(withRouter(Adsconnect));\n","import React from \"react\";\nimport { Button } from \"@material-ui/core\";\nimport { GetApp } from \"@material-ui/icons\";\n\nconst CSVTemplateDownloader = () => {\n const generateTemplate = () => {\n const headers = [\"Name\", \"Mobile No\", \"Email ID\", \"Team Name\"];\n const sampleData = [\n [\"John Doe\", \"9876543210\", \"john.doe@example.com\", \"Marketing\"],\n [\"Jane Smith\", \"8765432109\", \"jane.smith@example.com\", \"Sales\"],\n ];\n\n // Generate CSV content\n let csvContent = headers.join(\",\") + \"\\n\";\n sampleData.forEach((row) => {\n csvContent += row.join(\",\") + \"\\n\";\n });\n\n // Create a Blob and download\n const blob = new Blob([csvContent], { type: \"text/csv;charset=utf-8;\" });\n const url = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", \"affiliate_agents_template.csv\");\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n return (\n }\n variant=\"outlined\"\n color=\"primary\"\n onClick={generateTemplate}\n size=\"small\"\n >\n Download CSV Template\n \n );\n};\n\nexport default CSVTemplateDownloader;\n","import React, { useState } from \"react\";\nimport {\n Box,\n Typography,\n Paper,\n Divider,\n Chip,\n Grid,\n Button,\n List,\n ListItem,\n ListItemText,\n Collapse,\n} from \"@material-ui/core\";\nimport {\n ExpandMore,\n ExpandLess,\n GetApp,\n ArrowUpward,\n ArrowDownward,\n} from \"@material-ui/icons\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: theme.spacing(2),\n marginTop: theme.spacing(2),\n maxWidth: \"100%\",\n boxSizing: \"border-box\",\n },\n summaryContainer: {\n display: \"flex\",\n justifyContent: \"space-around\",\n marginBottom: theme.spacing(2),\n padding: theme.spacing(2),\n backgroundColor: \"#f5f5f5\",\n borderRadius: theme.shape.borderRadius,\n },\n statItem: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n },\n statValue: {\n fontSize: \"1.5rem\",\n fontWeight: \"bold\",\n },\n statLabel: {\n fontSize: \"0.875rem\",\n color: theme.palette.text.secondary,\n },\n successValue: {\n color: theme.palette.success.main,\n },\n errorValue: {\n color: theme.palette.error.main,\n },\n divider: {\n margin: theme.spacing(2, 0),\n },\n errorList: {\n maxHeight: \"300px\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n marginTop: theme.spacing(2),\n width: \"100%\",\n boxSizing: \"border-box\",\n },\n errorItem: {\n backgroundColor: \"#fff4f4\",\n marginBottom: theme.spacing(1),\n borderRadius: theme.shape.borderRadius,\n },\n errorSummary: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n width: \"100%\",\n },\n errorDetails: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n backgroundColor: \"#fff\",\n borderTop: `1px solid ${theme.palette.divider}`,\n },\n actionButton: {\n marginTop: theme.spacing(2),\n },\n chip: {\n marginRight: theme.spacing(1),\n },\n errorMessage: {\n color: theme.palette.error.main,\n fontWeight: \"bold\",\n },\n}));\n\nconst UploadResultsSummary = ({ stats, errors, onClose }) => {\n const classes = useStyles();\n const [expandedError, setExpandedError] = useState(null);\n const [sortOrder, setSortOrder] = useState(\"asc\"); // 'asc' or 'desc'\n\n const toggleErrorExpansion = (errorIndex) => {\n setExpandedError(expandedError === errorIndex ? null : errorIndex);\n };\n\n const toggleSortOrder = () => {\n setSortOrder(sortOrder === \"asc\" ? \"desc\" : \"asc\");\n };\n\n const sortedErrors = [...errors].sort((a, b) => {\n if (sortOrder === \"asc\") {\n return a.row - b.row;\n } else {\n return b.row - a.row;\n }\n });\n\n // Generate downloadable CSV with errors\n const downloadErrorsCSV = () => {\n // Create headers\n let csvContent = \"Row,Name,Email,Errors\\n\";\n\n // Add error data\n errors.forEach((error) => {\n const errorString = error.errors.join(\"; \").replace(/\"/g, '\"\"'); // Escape quotes\n csvContent += `${error.row},\"${error.name}\",\"${error.email}\",\"${errorString}\"\\n`;\n });\n\n // Create a blob and download\n const blob = new Blob([csvContent], { type: \"text/csv;charset=utf-8;\" });\n const url = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", \"affiliate_upload_errors.csv\");\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n return (\n \n \n Upload Results Summary\n \n\n \n \n \n Total Records\n \n {stats.total}\n \n\n \n \n Successfully Created\n \n \n {stats.success}\n \n \n\n \n \n Failed\n \n \n {stats.failed}\n \n \n \n\n {errors.length > 0 && (\n <>\n \n\n \n \n Errors Found ({errors.length})\n \n\n \n {/* : \n }\n size=\"small\"\n onClick={toggleSortOrder}\n >\n {sortOrder === \"asc\" ? \"Oldest First\" : \"Newest First\"}\n */}\n\n }\n variant=\"outlined\"\n size=\"small\"\n color=\"primary\"\n onClick={downloadErrorsCSV}\n style={{ marginLeft: 8 }}\n >\n Export Errors\n \n \n \n\n \n {sortedErrors.map((error, index) => (\n \n toggleErrorExpansion(index)}>\n \n \n \n Row {error.row}: {error.name}\n \n \n {error.email}\n \n \n\n \n \n {expandedError === index ? (\n \n ) : (\n \n )}\n \n \n \n\n \n \n \n {error.errors.map((err, errIndex) => (\n \n \n \n ))}\n \n \n \n \n ))}\n \n \n )}\n\n \n \n {stats.success > 0 ? \"Done\" : \"Close\"}\n \n \n \n );\n};\n\nexport default UploadResultsSummary;\n","import React, { useState } from \"react\";\nimport {\n withStyles,\n Button,\n Grid,\n Typography,\n Box,\n CircularProgress,\n IconButton,\n LinearProgress,\n Paper,\n} from \"@material-ui/core\";\nimport { CloudUpload, GetApp } from \"@material-ui/icons\";\nimport axios from \"axios\";\nimport Papa from \"papaparse\";\nimport { APIURL } from \"../../config/config\";\nimport CSVTemplateDownloader from \"./CSVTemplateDownloader\";\nimport UploadResultsSummary from \"./UploadResultSummary\";\n\nconst CSVUpload = (props) => {\n const {\n classes,\n toggleCreateAffiliateAgents,\n showSnackbar,\n fetchChildAffiliateCount,\n loadClient,\n partner,\n } = props;\n const [file, setFile] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [uploadStats, setUploadStats] = useState({\n total: 0,\n success: 0,\n failed: 0,\n });\n const [errors, setErrors] = useState([]);\n const [showResults, setShowResults] = useState(false);\n const [progress, setProgress] = useState(0);\n const [progressMessage, setProgressMessage] = useState(\"\");\n\n const handleFileChange = (e) => {\n const selectedFile = e.target.files[0];\n if (selectedFile && selectedFile.type === \"text/csv\") {\n setFile(selectedFile);\n setErrors([]);\n setShowResults(false);\n } else {\n showSnackbar(\"error\", \"Please upload a valid CSV file\");\n }\n };\n\n const validateRow = (row) => {\n const errors = [];\n\n if (!row[\"Name\"] || row[\"Name\"].trim() === \"\") {\n errors.push(\"Name is required\");\n }\n\n if (!row[\"Mobile No\"] || !/^\\d{10,}$/.test(row[\"Mobile No\"])) {\n errors.push(\"Valid Mobile No is required (at least 10 digits)\");\n }\n\n if (\n !row[\"Email ID\"] ||\n !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(row[\"Email ID\"])\n ) {\n errors.push(\"Valid Email ID is required\");\n }\n\n return errors;\n };\n\n const createAffiliateLink = async (affiliateId) => {\n try {\n await axios.post(APIURL + `/affiliates/create-new-affiliate-link`, {\n linkTitle: \"link1\",\n domain: \"app.aisensy.com\",\n affiliateId,\n });\n return true;\n } catch (error) {\n console.error(\"Error creating affiliate link:\", error);\n return false;\n }\n };\n\n const processCSV = async () => {\n if (!file) {\n showSnackbar(\"error\", \"Please select a CSV file first\");\n return;\n }\n\n setIsLoading(true);\n setShowResults(false);\n setErrors([]);\n setProgress(0);\n setProgressMessage(\"Preparing to process CSV...\");\n\n // Parse the CSV file\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n complete: async (results) => {\n const { data } = results;\n if (!data || data.length === 0) {\n setIsLoading(false);\n showSnackbar(\"error\", \"The CSV file is empty or has invalid format\");\n return;\n }\n\n // Check if required headers exist\n const requiredHeaders = [\"Name\", \"Mobile No\", \"Email ID\"];\n const headers = Object.keys(data[0]);\n const missingHeaders = requiredHeaders.filter(\n (header) => !headers.includes(header)\n );\n\n if (missingHeaders.length > 0) {\n setIsLoading(false);\n showSnackbar(\n \"error\",\n `Missing required headers: ${missingHeaders.join(\", \")}`\n );\n return;\n }\n\n // Process records\n const stats = {\n total: data.length,\n success: 0,\n failed: 0,\n };\n\n const errorList = [];\n\n // Get partner ID\n const superAffiliateId = partner?._id || \"67c29170603e6b0bf4f5849b\";\n\n for (let i = 0; i < data.length; i++) {\n // Update progress\n const percent = Math.floor((i / data.length) * 100);\n setProgress(percent);\n setProgressMessage(\n `Processing ${i + 1} of ${data.length} records (${percent}%)...`\n );\n\n const row = data[i];\n const rowErrors = validateRow(row);\n\n if (rowErrors.length > 0) {\n stats.failed++;\n errorList.push({\n row: i + 2, // +2 for header row and 1-indexing\n name: row[\"Name\"] || \"N/A\",\n email: row[\"Email ID\"] || \"N/A\",\n errors: rowErrors,\n });\n\n // Small delay to allow UI to update\n await new Promise((resolve) => setTimeout(resolve, 10));\n continue;\n }\n\n try {\n const response = await axios.post(\n APIURL + \"/affiliates/create-super-affiliate-agent\",\n {\n userName: row[\"Name\"],\n name: row[\"Name\"],\n team: row[\"Team Name\"] || \"\",\n companyName: \"\",\n contact: row[\"Mobile No\"],\n email: row[\"Email ID\"],\n loginPassword: null,\n isChildAffiliate: true,\n superAffiliateId: superAffiliateId,\n isAdsCommissionEnabled: true,\n }\n );\n\n await createAffiliateLink(response.data.affiliate._id);\n\n stats.success++;\n } catch (error) {\n stats.failed++;\n errorList.push({\n row: i + 2,\n name: row[\"Name\"] || \"N/A\",\n email: row[\"Email ID\"] || \"N/A\",\n errors: [\n error.response?.data?.message || \"Unknown error occurred\",\n ],\n });\n }\n\n // Small delay to allow UI to update\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n\n // Complete\n setProgress(100);\n setProgressMessage(\"Processing complete!\");\n setUploadStats(stats);\n setErrors(errorList);\n setIsLoading(false);\n setShowResults(true);\n\n // Refresh the list if any successful uploads\n if (stats.success > 0) {\n loadClient();\n fetchChildAffiliateCount();\n showSnackbar(\n \"success\",\n `Successfully created ${stats.success} affiliate agents`\n );\n } else if (stats.total > 0) {\n showSnackbar(\n \"error\",\n \"No records were successfully processed. Please check the errors and try again.\"\n );\n }\n },\n error: (error) => {\n setIsLoading(false);\n showSnackbar(\"error\", \"Error parsing CSV: \" + error.message);\n },\n });\n };\n\n return (\n
\n \n \n \n \n \n {file && (\n \n {file.name}\n \n )}\n \n \n\n \n \n \n The CSV should have these headers: \"Name\", \"Mobile No\", \"Email\n ID\", \"Team Name\"\n \n \n \n \n \n \n\n \n \n \n {isLoading ? (\n \n ) : (\n \"Upload and Process\"\n )}\n \n \n\n {isLoading && (\n \n \n {progressMessage}\n \n \n \n )}\n \n\n {showResults && (\n \n {\n if (uploadStats.success > 0) {\n // If we had successful uploads, close the dialog\n toggleCreateAffiliateAgents();\n } else {\n // Otherwise, just hide the results and let the user try again\n setShowResults(false);\n }\n }}\n />\n \n )}\n \n
\n );\n};\n\nconst styles = (theme) => ({\n root: {\n padding: theme.spacing(2),\n },\n input: {\n display: \"none\",\n },\n uploadBox: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: theme.spacing(3),\n border: \"2px dashed #ccc\",\n borderRadius: 8,\n backgroundColor: \"#f9f9f9\",\n },\n uploadButton: {\n marginBottom: theme.spacing(2),\n },\n fileName: {\n marginTop: theme.spacing(1),\n },\n processButton: {\n minWidth: 150,\n },\n progressBar: {\n height: 8,\n borderRadius: 4,\n },\n resultsPaper: {\n padding: theme.spacing(3),\n marginTop: theme.spacing(2),\n },\n errorList: {\n maxHeight: 200,\n overflowY: \"auto\",\n border: \"1px solid #ddd\",\n borderRadius: 4,\n padding: theme.spacing(1),\n },\n errorItem: {\n padding: theme.spacing(1),\n backgroundColor: \"#fff4f4\",\n borderRadius: 4,\n marginBottom: theme.spacing(1),\n },\n errorSubList: {\n margin: 0,\n paddingLeft: theme.spacing(2),\n },\n});\n\nexport default withStyles(styles)(CSVUpload);\n","import axios from \"axios\";\nimport { connect } from \"react-redux\";\nimport React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { APIURL, URL, partnerURL } from \"../../config/config\";\nimport { Clear } from \"@material-ui/icons\";\nimport {\n withStyles,\n Button,\n Grid,\n IconButton,\n Tooltip,\n Typography,\n Box,\n Tabs,\n Tab,\n} from \"@material-ui/core\";\nimport { isoToDialCode } from \"../../config/dialCodes\";\nimport CreateAgentForm from \"./CreateAgentForm\";\nimport {\n fetchChildAffiliateCount,\n loadClient,\n} from \"../../pages/SuperAffiliate/AffiliateAgentsStore\";\nimport CSVUpload from \"./CSVUpload\";\n\nclass CreateAffiliateAgent extends Component {\n constructor(props) {\n super(props);\n this.state = {\n activeStep: 0,\n error: null,\n snack: false,\n snackMessage: \"\",\n snackStatus: \"\",\n email: null,\n name: \"\",\n team: \"\",\n contact: \"\",\n company: \"\",\n currency: this.props?.partner?.currency || \"INR\",\n password: null,\n confirmPassword: null,\n buttonDisable: false,\n countryCode: isoToDialCode[this.props.partner?.isoCode] || \"+91\",\n showPassword: false,\n tabValue: 0,\n };\n }\n\n handleTabChange = (event, newValue) => {\n this.setState({ tabValue: newValue });\n };\n\n createAffiliateLink = (affiliateId) => {\n axios\n .post(APIURL + `/affiliates/create-new-affiliate-link`, {\n linkTitle: \"link1\",\n domain: \"app.aisensy.com\",\n affiliateId,\n })\n .then((response) => {})\n .catch((error) => {\n this.setState({ isLoading: false });\n const snackStatus = \"error\";\n const snackMessage = error?.response?.data?.message;\n this.props.businessSnackDialog(snackStatus, snackMessage);\n });\n };\n\n createChildAffiliate = () => {\n this.setState({ isLoading: true });\n const partnerId = this.props.partner._id;\n const { name, team, company, contact, email, password, confirmPassword } =\n this.state;\n axios\n .post(APIURL + \"/affiliates/create-super-affiliate-agent\", {\n userName: name,\n name,\n team,\n companyName: company,\n contact,\n email,\n loginPassword: password,\n isChildAffiliate: true,\n superAffiliateId: partnerId,\n isAdsCommissionEnabled: true,\n })\n .then((response) => {\n const snackStatus = \"success\";\n const snackMessage = \"Successfully created\";\n this.props.toggleCreateAffiliateAgents();\n this.props.loadClient();\n this.props.fetchChildAffiliateCount();\n this.props.showSnackbar(snackStatus, snackMessage);\n const { data } = response;\n const affiliateId = data?.affiliate?._id;\n\n this.createAffiliateLink(affiliateId);\n this.setState({\n countryCode: \"+91\",\n company: \"\",\n password: null,\n confirmPassword: null,\n isLoading: false,\n name: \"\",\n contact: \"\",\n email: \"\",\n team: \"\",\n });\n })\n .catch((error) => {\n this.setState({ isLoading: false });\n const snackStatus = \"error\";\n const snackMessage = error?.response?.data?.message;\n this.props.showSnackbar(snackStatus, snackMessage);\n });\n };\n\n updateState = (keys, value) => {\n const returnObj = {};\n returnObj[keys] = value;\n this.setState(returnObj);\n };\n\n render() {\n const { classes, tags, partner } = this.props;\n const { activeStep, snackStatus, tabValue } = this.state;\n\n return (\n
\n \n \n \n \n Add Affiliate Agents\n \n \n \n this.props.toggleCreateAffiliateAgents()}\n >\n \n \n \n \n \n\n \n \n \n \n\n {tabValue === 0 ? (\n \n \n \n {this.getStepContent(activeStep, tags)}\n \n\n \n \n \n \n \n {this.state.isLoading ? \"Creating...\" : \"Create\"}\n \n \n \n \n \n \n \n ) : (\n \n \n \n )}\n
\n );\n }\n\n getStepContent = (step, tags) => {\n const { partner } = this.props;\n const { type } = partner || {};\n\n switch (step) {\n case 0:\n return (\n \n );\n case 1:\n return <>;\n\n default:\n return <>;\n }\n };\n\n nextBtnDisableStatus = () => {\n const error = this.getValidationError();\n return !!error;\n };\n\n getValidationError = () => {\n const validateEmail = (email) => {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n };\n\n const validatePhone = (phone) => {\n const phoneRegex = /^\\d{10,}$/;\n return phoneRegex.test(phone);\n };\n\n const { email, name, team, company, contact, password, confirmPassword } =\n this.state;\n\n if (!name || name.trim() === \"\") return \"Name is required\";\n if (name.trim().length < 3) return \"Name should be at least 3 characters\";\n\n // if (!company || company.trim() === \"\") return \"Company name is required\";\n // if (company.trim().length < 2)\n // return \"Company name should be at least 2 characters\";\n\n if (!contact) return \"Phone number is required\";\n if (!validatePhone(contact))\n return \"Phone number should be at least 10 digits\";\n\n if (!email) return \"Email is required\";\n if (!validateEmail(email)) return \"Invalid email format\";\n\n // if (!password) return \"Password is required\";\n // if (password.length < 6) return \"Password should be at least 6 characters\";\n\n // if (!confirmPassword) return \"Confirm password is required\";\n // if (password !== confirmPassword) return \"Passwords do not match\";\n\n return null;\n };\n}\n\nconst styles = (theme) => ({\n root: {\n height: \"100%\",\n overflowY: \"auto\",\n overflowX: \"hidden\", \n width: \"100%\",\n boxSizing: \"border-box\",\n },\n\n formContainer: {\n borderRadius: \"8px\",\n // minHeight: 200,\n justifyContent: \"center\",\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"10px\",\n paddingRight: \"10px\",\n },\n },\n textFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px 10px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"disabled\",\n border: \"2px solid disabled\",\n \"& input\": {\n padding: \"6px 12px!important\",\n },\n \"& label\": {\n background: \"disabled\",\n // color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n\n formContainer1: {\n background: \"white\",\n borderRadius: \"8px\",\n // minHeight: 200,\n boxSizing: \"border-box\",\n paddingLeft: \"10px\",\n paddingRight: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"10px\",\n paddingRight: \"10px\",\n },\n marginBottom: \"20px\",\n },\n\n stepContainer: {\n overflow: \"auto\",\n marginBottom: \"1em\",\n display: \"block\",\n },\n\n buttonContainer: {\n // margin: \"0% 8%\",\n width: \"100%\",\n padding: \"1em 0em\",\n overflowX: \"none\",\n },\n\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n background: \"white\",\n marginBottom: \"20px\",\n },\n option: {\n // backgroundColor: \"white\",\n fontSize: 15,\n [theme.breakpoints.down(\"sm\")]: {\n width: \"95%\",\n },\n \"& > span\": {\n marginRight: 10,\n fontSize: 18,\n },\n myTextfield: {\n \"& MuiOutlinedInput-adornedEnd\": {\n paddingRight: 0,\n },\n },\n },\n myStateClass: {\n \"&::before\": {\n content: '\"some content\"',\n display: \"block\",\n height: 60,\n marginTop: -60,\n },\n \"&::after\": {\n content: '\"some content\"',\n display: \"block\",\n height: 60,\n marginTop: -60,\n },\n },\n tooltipError: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n fontSize: \"12px\",\n maxWidth: \"300px\",\n },\n csvUploadContainer: {\n padding: theme.spacing(2),\n border: `1px dashed ${theme.palette.grey[400]}`,\n borderRadius: theme.spacing(1),\n marginTop: theme.spacing(2),\n },\n fileInput: {\n display: \"none\",\n },\n uploadButton: {\n margin: theme.spacing(1),\n },\n progressContainer: {\n display: \"flex\",\n alignItems: \"center\",\n marginTop: theme.spacing(2),\n },\n progressText: {\n marginLeft: theme.spacing(2),\n },\n});\n\nconst CreateAffiliateAgentConnect = connect(\n (state) => ({\n user: state.login.user,\n partner: state.partner.partner,\n }),\n {\n loadClient,\n fetchChildAffiliateCount,\n }\n)(CreateAffiliateAgent);\n\nexport default withStyles(styles)(withRouter(CreateAffiliateAgentConnect));\n","/* eslint-disable no-undef */\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\nimport axios from \"axios\";\nimport { withRouter } from \"react-router-dom\";\nimport {\n withStyles,\n Button,\n Box,\n Typography,\n Grid,\n IconButton,\n TextField,\n Dialog,\n DialogContent,\n DialogActions,\n Snackbar,\n TablePagination,\n CircularProgress,\n Tabs,\n Tab,\n} from \"@material-ui/core\";\nimport { DateRangePicker } from \"react-dates\";\nimport { partnerURL } from \"../../config/config\";\nimport moment from \"moment\";\nimport { Add, Clear } from \"@material-ui/icons\";\nimport \"react-dates/initialize\";\nimport \"react-dates/lib/css/_datepicker.css\";\nimport \"../../react-dates-custom.css\";\nimport ClientsTable from \"./SuperAffiliateAgentsTable\";\nimport {\n loadNext,\n loadClient,\n unfetchclients,\n createnewClient,\n loadSearch,\n fetchChildAffiliateCount,\n} from \"./AffiliateAgentsStore\";\nimport Header from \"../../commons/Header/Header\";\nimport withMediaQuery from \"../../helpers/mediaQueryHelper\";\nimport { isoToDialCode } from \"../../config/dialCodes\";\nimport CreateAffiliateAgents from \"./CreateAffiliateAgents\";\nimport { fetchPartnerDetails } from \"../../store/partnerState\";\nclass SuperAffiliateAgents extends Component {\n constructor(props) {\n super(props);\n this.state = {\n openDialog: false,\n agentDialog: false,\n email: null,\n display_name: \"\",\n company: \"\",\n contact: \"\",\n currency: this.props.partner?.currency || \"INR\",\n password: null,\n timezone: \"Asia/Calcutta GMT+05:30\",\n countryCode: isoToDialCode[this.props.partner?.isoCode] || \"+91\",\n industry: \"\",\n snack: false,\n companySize: \"\",\n showPassword: false,\n showConfirmPassword: false,\n status: null,\n statusMessage: \"\",\n buttonDisable: false,\n filter: \"\",\n searchdone: false,\n applied: {\n createdAt: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n },\n clientFilter: {\n filter: \"All\",\n sort: \"dec\",\n },\n tab: \"All\",\n allCount: 0,\n archivedCount: 0,\n };\n }\n\n businessSnackDialog = (val, mess) => {\n this.setState({\n status: val,\n statusMessage: mess,\n snack: true,\n });\n };\n componentDidMount() {\n // Always fetch partner details on mount\n this.props\n .fetchPartnerDetails()\n .then(() => {\n // Only fetch other data after partner details are loaded\n this.props.fetchChildAffiliateCount();\n this.props.unfetchclients();\n this.props.loadClient(this.state.clientFilter);\n })\n .catch((error) => {\n console.error(\"Failed to fetch partner details:\", error);\n // Handle error - maybe show a snackbar\n this.setState({\n snack: true,\n status: \"error\",\n statusMessage: \"Failed to load data. Please refresh the page.\",\n });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.partner && this.props.partner) {\n // Partner data was loaded, update state that depends on partner\n this.setState({\n currency: this.props.partner.currency || \"INR\",\n countryCode: isoToDialCode[this.props.partner.isoCode] || \"+91\",\n });\n }\n }\n\n handleInput = (e) => {\n this.setState({ [e.target.name]: e.target.value });\n };\n\n clearDate = (filterKey) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = null;\n applied[filterKey].endDate = null;\n this.setState({ applied });\n };\n checkDateInput = (filterKey) => {\n const applied = { ...this.state.applied };\n const s = applied[filterKey];\n if (s.startDate && s.endDate) {\n return;\n } else {\n this.clearDate(filterKey);\n }\n };\n\n setFocus = (filterKey, focusedInput) => {\n const applied = { ...this.state.applied };\n applied[filterKey].focusedInput = focusedInput;\n this.setState({ applied });\n };\n setDate = (filterKey, startDate, endDate) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = startDate;\n applied[filterKey].endDate = endDate;\n this.setState({ applied });\n };\n\n applyFilter = () => {\n const { applied, clientFilter } = this.state;\n const filterObj = { ...clientFilter };\n if (applied.createdAt.startDate && applied.createdAt.endDate) {\n filterObj.fromDate = applied.createdAt.startDate._d;\n filterObj.toDate = applied.createdAt.endDate._d;\n } else {\n delete filterObj.fromDate;\n delete filterObj.toDate;\n }\n this.setState(\n {\n clientFilter: filterObj,\n openDialog: false,\n },\n () => {\n this.onTabChange();\n }\n );\n };\n onTabChange = () => {\n this.props.loadClient(this.state.clientFilter);\n };\n\n showSnackbar = (status, message) => {\n this.setState({\n status: status,\n statusMessage: message,\n snack: true,\n });\n };\n\n handlesearch = (e) => {\n this.setState({ filter: e.target.value });\n };\n onSnackbarClose = (event) => {\n this.setState({ snack: false });\n };\n\n handleClickShowConfirmPassword = () => {\n this.setState({ showConfirmPassword: !this.state.showConfirmPassword });\n };\n\n handleClickShowPassword = () => {\n this.setState({ showPassword: !this.state.showPassword });\n };\n\n toggleDialog = () => {\n this.setState({ openDialog: !this.state.openDialog });\n };\n toggleCreateAffiliateAgents = () => {\n this.setState({ agentDialog: !this.state.agentDialog });\n };\n buttondisbale = () => {\n this.setState({ buttonDisable: !this.state.buttonDisable });\n };\n\n handleEnter = (e) => {\n if (e.key === \"Enter\") {\n if (this.state.filter === \"\") {\n this.props.unfetchclients();\n this.props.loadClient(this.state.clientFilter);\n this.setState({\n searchdone: false,\n });\n }\n this.props.loadSearch(this.state.filter);\n if (this.state.filter !== \"\") {\n this.setState({\n searchdone: true,\n });\n }\n }\n };\n\n handleClear = () => {\n this.props.unfetchclients();\n this.setState({\n filter: \"\",\n });\n this.setState({\n searchdone: false,\n });\n this.props.loadClient(this.state.clientFilter);\n };\n\n render() {\n const {\n classes,\n business,\n skip,\n totalBusinesses,\n loadNext,\n loadClient,\n isLoading,\n page,\n unfetchclients,\n rowsPerPage,\n createnewClient,\n fetchChildAffiliateCount,\n user,\n loadSearch,\n } = this.props;\n\n const { clientFilter, applied, tab } = this.state;\n const { partnerPlanFamily, partnerWccFamily, mediaQuery, partner } =\n this.props;\n\n const passwordRegex = /^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$/;\n const isPasswordValid = passwordRegex.test(this.state.password);\n const clients = this.props.business.slice(\n page * rowsPerPage,\n page * rowsPerPage + rowsPerPage\n );\n const SIZE = [\n \"1 - 10 Employees\",\n \"10 - 20 Employees\",\n \"20 - 50 Employees\",\n \"50 - 200 Employees\",\n \"200 + Employees\",\n ];\n\n const SORT = [\"dec\", \"asc\"];\n const VERTICALS = [\n \"Ecommerce\",\n \"Education\",\n \"Automotive\",\n \"IT Services\",\n \"Real Estate\",\n \"SAAS/Apps\",\n \"Gaming\",\n \"Entertainment\",\n \"Finance and Banking\",\n \"Medical and Health\",\n \"Hotel and Lodging\",\n \"Beauty, Spa and Salon\",\n \"Clothing and Apparel\",\n \"Event Planning and Service\",\n \"Food and Grocery\",\n \"Professional Services\",\n \"Public Service\",\n \"Non-profit\",\n \"Shopping and Retail\",\n \"Travel and Transportation\",\n \"Restaurant\",\n \"Other\",\n ];\n\n const tabs = [\n {\n display: \"All\",\n state: \"allCount\",\n theme: \"#f4f4f4\",\n },\n // {\n // display: \"Archived\",\n // state: \"archivedCount\",\n // theme: \"#f2c14e3d\",\n // },\n ];\n\n const getflag = (langcode) => {\n var first = langcode.charCodeAt(0) + 127397;\n var second = langcode.charCodeAt(1) + 127397;\n var flag = `&#${first};&#${second};`;\n const x = document.createElement(\"p\");\n x.innerHTML = flag;\n return x.innerText;\n };\n\n return (\n
\n {/* Page name & description container */}\n \n \n \n }\n buttonTitle={\"Create New Agent\"}\n onButtonClick={this.toggleCreateAffiliateAgents}\n showSearch={true}\n searchPlaceholder={\"Search business name\"}\n handleSearch={this.handlesearch}\n handleEnter={this.handleEnter}\n handleClear={this.handleClear}\n searchDone={this.state.searchdone}\n filter={this.state.filter}\n toggleFilterDialog={this.toggleDialog}\n filterColor={\n !!applied.createdAt.endDate && !!applied.createdAt.startDate\n }\n section={\"All Businesses\"}\n />\n\n \n {\n if (this.state.tab === newValue) return;\n // const tab = tabs.find((i) => i.display === newValue);\n this.setState(\n {\n tab: newValue,\n // templates: tab.list,\n // totalCount: tab.list.length,\n clientFilter: {\n ...this.state.clientFilter,\n filter: newValue,\n },\n },\n this.onTabChange\n );\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n aria-label=\"scrollable auto tabs example\"\n TabIndicatorProps={{\n className: classes.tabIndicator,\n }}\n >\n {tabs.map((i) => (\n \n \n \n \n {this.props[i.state]}\n \n \n \n \n {`${i.display}`}\n \n \n }\n value={i.display}\n style={{\n textTransform: \"none\",\n alignItems: \"end\",\n minWidth: 190,\n marginLeft: 35,\n paddingBottom: 8,\n background: `linear-gradient(180deg, white, ${\n this.state.tab === i.display ? i.theme : \"white\"\n })`,\n }}\n />\n ))}\n \n \n \n \n \n \n {/* Layout */}\n \n \n {/* First section */}\n {/* Scrollable (x & y) table container */}\n\n
\n \n
\n
\n
{\" \"}\n {/* Table footer fixed at bottom */}\n
\n {\n this.props.loadNext(event, newPage, this.state.clientFilter);\n }}\n rowsPerPage={this.props.rowsPerPage}\n rowsPerPageOptions={[25]}\n />\n
{\" \"}\n {/* Create Affiliate Agents Dialog */}\n \n \n \n \n \n {/* Filter Dialog */}\n \n \n \n \n Filter\n \n \n \n \n \n \n \n\n \n Sort\n \n {\n const filterObj = {\n ...this.state.clientFilter,\n sort: value === \"Descending\" ? \"dec\" : \"asc\",\n };\n this.setState({ clientFilter: filterObj });\n }}\n name=\"sort\"\n options={[\"Descending\", \"Ascending\"]}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n this.clearDate(\"createdAt\")}\n style={{ marginRight: 8 }}\n >\n Clear Filter\n \n \n Apply\n \n \n \n \n \n \n {this.state.statusMessage}\n \n \n
\n );\n }\n}\n\nfunction DateFilter({\n filterKey,\n applied,\n setFocus,\n setDate,\n checkDateInput,\n clearDate,\n ...props\n}) {\n const { classes, filterName } = props;\n const A = applied[filterKey];\n return (\n \n \n {A.startDate && A.endDate ? (\n \n clearDate(filterKey)}\n >\n \n \n \n ) : (\n \"\"\n )}\n \n \n {filterName}\n \n \n \n checkDateInput(filterKey)}\n startDateId=\"startDate\"\n endDateId=\"endDate\"\n startDate={A.startDate}\n endDate={A.endDate}\n onDatesChange={({ startDate, endDate }) =>\n setDate(filterKey, startDate, endDate)\n }\n focusedInput={A.focusedInput}\n onFocusChange={(focusedInput) => setFocus(filterKey, focusedInput)}\n navPosition=\"navPositionTop\"\n numberOfMonths={1}\n hideKeyboardShortcutsPanel\n customArrowIcon={null}\n screenReaderInputMessage={\" \"}\n small\n readOnly\n isOutsideRange={(day) => moment().diff(day) < 0}\n />\n \n \n \n );\n\n // function setToday()\n}\n\n//\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // overflowY: \"scroll\"\n // paddingBottom: \"80px\"\n },\n pageTitleContainer: {\n // position: \"sticky\",\n // zIndex: 100,\n // top: 0,\n // height: 80,\n // boxSizing: \"border-box\",\n // [theme.breakpoints.down(\"md\")]: {\n // // paddingTop: \"40px\",\n // },\n // [theme.breakpoints.down(\"sm\")]: {\n // // paddingTop: \"20px\",\n // },\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n container: {\n background: \"white\",\n borderRadius: \"8px\",\n },\n attachTooltipPopper: {\n \"& .MuiTooltip-tooltip\": {\n padding: 0,\n backgroundColor: \"white\",\n color: \"#222\",\n boxShadow: \"0 0 11px rgb(230,230,230)\",\n },\n \"& .MuiTooltip-arrow\": {\n color: \"rgb(70 20 134 / 15%)\",\n filter: \"drop-shadow(0px -2px 1px #ddd)\",\n },\n },\n dialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"6px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"600px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n fixedBottomContainer: {\n position: \"fixed\",\n height: \"60px\",\n borderTop: \"1px solid lightgrey\",\n background: \"white\",\n bottom: \"0\",\n left: \"71px\",\n right: \"0\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n [theme.breakpoints.down(\"sm\")]: {\n left: \"0px\",\n height: \"50px\",\n },\n },\n tableContainer: {\n top: \"60px\",\n height: \"calc(100vh - 180px)\",\n width: \"100%\",\n overflow: \"hidden\",\n // background: \"red\",\n boxSizing: \"border-box\",\n position: \"sticky\",\n [theme.breakpoints.down(\"sm\")]: {\n // position top + bottombar height + bottom padding + navbar\n height: \"calc(100vh - 70px - 50px - 10px - 50px)\",\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n textFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px 10px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& input\": {\n padding: \"6px 12px!important\",\n },\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n phoneTextFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n \"& input\": { width: \"calc(100% - 80px)\", marginLeft: \"80px\" },\n background: \"white\",\n border: \"2px solid grey\",\n },\n sortFormControl: {\n width: 120,\n marginRight: 8,\n height: 32,\n borderRadius: \"4px\",\n border: \"1px solid lightgrey\",\n },\n\n codeTextFieldRoot: {\n width: \"90px\",\n padding: \"0 0 0 14px\",\n position: \"absolute\",\n zIndex: 1,\n margin: \"10px 0 0 2px\",\n background: \"white\",\n \"& input\": {\n padding: \"10px 0 !important\",\n },\n \"& button\": {\n width: \"12px\",\n position: \"relative\",\n left: \"7px\",\n background: \"white\",\n borderRadius: 0,\n \"&:hover\": {\n background: \"white\",\n },\n },\n \"& div\": {\n paddingRight: \"0px !important\",\n },\n },\n passwordIcon: {\n cursor: \"pointer\",\n fontSize: 20,\n },\n\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n\n textFieldSortAutocomplete: {\n width: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n textFieldPopper: {\n [theme.breakpoints.down(\"md\")]: {\n left: \"12px !important\",\n minWidth: \"calc(100% - 35px)\",\n },\n [theme.breakpoints.up(\"md\")]: {\n left: \"calc(12.5vw - 16px) !important\",\n minWidth: \"calc(25vw + 54px)\",\n },\n },\n textField: {\n width: 300,\n marginRight: 8,\n height: 42,\n },\n\n tabIndicator: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n },\n\n tabContainer: {\n background: \"white\",\n boxShadow: \"0 0 12px rgb(171 170 170)\",\n },\n\n textFieldSortAutocomplete: {\n width: \"120\",\n height: 32,\n marginTop: \"4px\",\n marginBottom: \"20px\",\n \"& input\": {\n padding: \"0px 12px!important\",\n },\n background: \"white\",\n borderRadius: \"4px\",\n border: \"1px solid #d3d3d3\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n});\n\nconst SuperAffiliateAgentsConnect = connect(\n (state) => ({\n user: state.login.user,\n business: state.client.business,\n skip: state.client.skip,\n totalBusinesses: state.client.totalBusinesses,\n allCount: state.client.allCount,\n archivedCount: state.client.archivedCount,\n isLoading: state.client.isLoading,\n error: state.client.error,\n page: state.client.page,\n rowsPerPage: state.client.rowsPerPage,\n partnerPlanFamily: state.planFamilies.allPlanFamilies,\n partnerWccFamily: state.wccPlans.allWccPlans,\n partner: state.partner.partner,\n }),\n {\n loadNext,\n loadClient,\n unfetchclients,\n createnewClient,\n loadSearch,\n fetchChildAffiliateCount,\n fetchPartnerDetails,\n }\n)(SuperAffiliateAgents);\nexport default withStyles(styles)(\n withMediaQuery(\"(max-width:600px)\")(withRouter(SuperAffiliateAgentsConnect))\n);\n","import React, { Component } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport ErrorPage from \"../../commons/ErrorPage/ErrorPage\";\nimport SuperAffiliateAgents from \"./SuperAffiliateAgents\";\nimport MetaAdsLayout from \"../../commons/ProjectsLayout/MetaAdsLayout\";\n\nclass SuperAffiliateRoute extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n render() {\n return (\n \n \n (\n \n )}\n />\n \n \n );\n }\n}\n\nexport default SuperAffiliateRoute;\n","import React from \"react\";\nimport { useHistory, useLocation, useParams, Link } from \"react-router-dom\";\nimport {\n Box,\n Typography,\n withStyles,\n Grid,\n ButtonBase,\n} from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { renderAgnetsMetaAdsRoute } from \"../Routes/ProjectRoutes\";\nimport AccountTreeOutlinedIcon from \"@material-ui/icons/AccountTreeOutlined\";\nimport BarChartOutlinedIcon from \"@material-ui/icons/BarChartOutlined\";\n\nfunction AgentsAdsNavBarDesktop(props) {\n const location = useLocation();\n const history = useHistory();\n const params = useParams();\n const { classes, agent, partner, agentId } = props;\n\n const getNavItems = () => [\n {\n name: \"Ads Setup\",\n path: `/agents/meta-ads/projects/${agentId}`,\n icon: ,\n },\n {\n name: \"Ads Overview\",\n path: `/agents/meta-ads/ads/${agentId}`,\n icon: ,\n },\n ];\n\n return (\n
\n \n \n Meta Ads\n \n {getNavItems().map((item, index) => {\n const isActive = location.pathname === item.path;\n return (\n history.push(item.path)}\n >\n \n \n \n {item.icon}\n \n \n \n \n {item.name}\n \n \n \n \n );\n })}\n \n
\n );\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"220px\",\n height: \"100vh\",\n background: \"rgb(255, 255, 255)\",\n borderRight: \"1px solid rgb(240,240,240)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n color: \"gray\",\n [theme.breakpoints.down(\"md\")]: {\n width: \"220px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n display: \"none\",\n },\n },\n logo: {\n height: 50,\n marginTop: 15,\n },\n link_inactive: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"35px\",\n width: \"35px\",\n margin: \"auto\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n transition: \"0.5s\",\n },\n link_active: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"35px\",\n width: \"35px\",\n margin: \"auto\",\n borderRadius: \"50%\",\n backgroundColor: \"white\",\n color: \"white\",\n cursor: \"pointer\",\n transition: \"0.5s\",\n },\n icon_active: {\n color: theme.palette.primary.main,\n },\n icon_inactive: {\n color: \"rgb(20,20,20)\",\n },\n name_active: {\n color: theme.palette.primary.main,\n },\n name_inactive: {\n color: \"rgb(20,20,20)\",\n },\n linkButton: {\n margin: \"3px 0em\",\n width: \"100%\",\n borderRadius: \"5px\",\n padding: \"10px\",\n },\n active: {\n backgroundColor: \"#002d621f\",\n },\n inactive: {\n backgroundColor: \"transparent\",\n },\n});\n\nconst connectedAgentsAdsNavBarDesktop = connect((state) => ({\n agent: state.login.user,\n partner: state.partner.partner,\n}))(AgentsAdsNavBarDesktop);\n\nexport default withStyles(styles)(connectedAgentsAdsNavBarDesktop);\n","import React, { Component } from \"react\";\nimport { withStyles, Grid, Typography, Box } from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { Redirect, Route, Switch } from \"react-router-dom\";\nimport { fetchPartnerDetails } from \"../../store/partnerState\";\nimport AgentsAdsNavBarDesktop from \"./Navbar/AgnetAdsNavBarDesktop\";\nimport MetaAds from \"../../pages/MetaAds/MetaAds\";\n\nclass AgentsMetaAdsLayout extends Component {\n constructor(props) {\n super(props);\n this.state = {\n agentId: props.match?.params?.id,\n view: props.location?.pathname?.includes(\"/ads/\") ? \"ads\" : \"projects\",\n };\n }\n componentDidMount() {\n this.props.fetchPartnerDetails();\n }\n\n render() {\n const { classes, agent, partner, user } = this.props;\n const { type } = partner || {};\n const { agentId } = this.state;\n const baseroute = `/agents/meta-ads`;\n\n return (\n \n \n \n \n \n
\n \n {/* Default route */}\n (\n \n )}\n />\n\n (\n \n )}\n />\n\n (\n \n )}\n />\n \n
\n
\n
\n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100vh\",\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n },\n routeWrapper: {\n height: \"100vh\",\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n background: \"white\",\n },\n routeContainer: {\n width: \"100%\",\n height: \"100vh\",\n transition: \"1s\",\n overflow: \"hidden\",\n [theme.breakpoints.down(\"sm\")]: {},\n },\n});\n\nconst connectedAgentsMetaAdsLayout = connect(\n (state) => ({\n user: state.login.user,\n agent: state.login.user,\n partner: state.partner.partner,\n }),\n { fetchPartnerDetails }\n)(AgentsMetaAdsLayout);\n\nexport default withStyles(styles)(connectedAgentsMetaAdsLayout);\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Checkbox,\n Typography,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Button,\n TextField,\n IconButton,\n CircularProgress,\n} from \"@material-ui/core\";\n\nimport clsx from \"clsx\";\n// import AssistantsDetails from \"./AssistantsDetails\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { Skeleton } from \"@material-ui/lab\";\n\nconst leads = [\n {\n name: \"Name\",\n size: 2,\n key: \"agentName\",\n },\n {\n name: \"Project Name\",\n size: 2,\n key: \"assistantName\",\n },\n {\n name: \"Aggregated Ad Recharge\",\n size: 2,\n key: \"aggAdCreditRecharged\",\n },\n {\n name: \"Phone Number\",\n size: 2,\n key: \"agentPhone\",\n },\n {\n name: \"Company Name\",\n size: 2,\n key: \"agentCompanyName\",\n },\n {\n name: \"Industry\",\n size: 2,\n key: \"agentIndustry\",\n },\n {\n name: \"Created At\",\n size: 2,\n key: \"createdAt\",\n },\n];\n\nconst wabaLive = [\n {\n name: \"Name\",\n size: 2,\n key: \"agentName\",\n },\n {\n name: \"Project Name\",\n size: 2,\n key: \"assistantName\",\n },\n {\n name: \"Phone Number\",\n size: 2,\n key: \"agentPhone\",\n },\n {\n name: \"WABA Number\",\n size: 2,\n key: \"whatsappNumber\",\n },\n {\n name: \"Company Name\",\n size: 2,\n key: \"agentCompanyName\",\n },\n {\n name: \"Industry\",\n size: 2,\n key: \"agentIndustry\",\n },\n {\n name: \"Created At\",\n size: 2,\n key: \"createdAt\",\n },\n];\n\nconst conversions = [\n {\n name: \"Project Name\",\n key: \"assistantName\",\n size: 3,\n },\n {\n name: \"Plan Purchased\",\n key: \"planPurchased\",\n size: 3,\n },\n {\n name: \"Currency\",\n key: \"currency\",\n size: 3,\n },\n // {\n // name: \"Amount\",\n // key: \"amountPaid\",\n // size: 2,\n // },\n // {\n // name: \"Commision Earned\",\n // key: \"commision\",\n // size: 2,\n // },\n // {\n // name: \"Commision Percentage\",\n // key: \"commisionPercent\",\n // size: 2,\n // },\n {\n name: \"Purchase Date\",\n key: \"createdAt\",\n size: 3,\n },\n];\n\nclass BusinessesTable extends Component {\n constructor(props) {\n super(props);\n this.state = {\n openDialog: false,\n selectedTemplate: null,\n };\n }\n\n listScrolled = (event) => {\n if (!this.offsetPosition) {\n this.offsetPosition = this.rootEle.current.offsetTop;\n }\n const container = event.currentTarget;\n const currentPos = container.scrollTop;\n this.setState({\n sticky: currentPos > this.offsetPosition,\n });\n };\n toggleDialog = () => {\n this.setState({ openDialog: !this.state.openDialog });\n };\n openTemplate = (e) => {\n const templates = [...this.props.templates];\n const foundIndex = templates.findIndex((x) => x._id == e._id);\n this.props.history.push(\"/assistants/\" + templates[foundIndex]._id);\n // this.setState({ openDialog: true, selectedTemplate: foundIndex });\n };\n render() {\n const { classes, templates, tab } = this.props;\n\n const fields =\n tab === \"Signups\" ? leads : tab === \"WABA Live\" ? wabaLive : conversions;\n\n return (\n <>\n
\n \n \n \n \n \n \n {fields.map((e) => (\n \n \n \n {e.name}\n \n \n \n ))}\n \n {templates.map((e) => (\n \n {fields.map((field) => (\n this.openTemplate(e)\n // }\n >\n \n \n ))}\n \n ))}\n \n \n \n \n \n
\n\n \n {/* Assistants Details */}\n {/* */}\n \n \n );\n }\n}\n\nfunction Cell({\n classes,\n item,\n field,\n allBusiness,\n openCampaign,\n partner,\n ...props\n}) {\n switch (field) {\n case \"commision\":\n return (\n \n \n \n {item.currency === \"USD\" ? \"$\" : \"₹\"}\n {(item[field] ? item[field] / 100000 : 0).toFixed(2)}\n \n \n \n );\n break;\n\n case \"amountPaid\":\n return (\n \n \n \n {item.currency === \"USD\" ? \"$\" : \"₹\"}\n {(item[field] ? item[field] / 100000 : 0).toFixed(2)}\n \n \n \n );\n break;\n\n case \"commisionPercent\":\n return (\n \n \n \n {item[field] ? item[field] / 100000 : 0}%\n \n \n \n );\n\n case \"displayNameVerified\":\n return (\n \n \n \n {item[field] ? \"Verified\" : \"Not Verified\"}\n \n \n \n );\n\n case \"assistantName\":\n return (\n \n \n {item[field]}\n \n \n );\n break;\n case \"createdAt\":\n return (\n \n \n \n {getFormattedDate(item[field])}\n \n \n \n );\n\n case \"aggAdCreditRecharged\":\n return (\n \n \n \n {item[field] ? item[field] / 100000 : 0}\n \n \n \n );\n\n case \"Loading\":\n return (\n \n \n {Array.from(Array(20).keys()).map((i) => {\n return (\n
\n \n
\n );\n })}\n
\n
\n );\n break;\n\n case \"agentPhone\":\n return (\n \n \n \n {partner?.isChildAffiliate\n ? maskPhoneNumber(item[field])\n : item[field]}\n \n \n \n );\n\n default:\n return (\n \n \n {item[field]}\n \n \n );\n }\n}\n\nexport function getFormattedDate(date) {\n const d = new Date(date);\n const options = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return d.toLocaleDateString(\"en-US\", options);\n}\n\nexport const maskPhoneNumber = (phone) => {\n if (phone) return phone?.replace(/.(?=.{4})/g, \"*\");\n};\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // marginBottom: \"5em\",\n // paddingBottom: \"80px\"\n },\n tableWrapper: {\n overflowX: \"auto\",\n width: \"100%\",\n },\n\n tableContainer: {\n marginTop: \"1.5em\",\n minWidth: 1800,\n },\n\n tableItem: {\n background: \"white\",\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n // cursor: \"pointer\",\n // \"&:hover\": {\n // background: \"#efefef\",\n // },\n },\n tableItemNoHover: {\n background: \"white\",\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n },\n tableItem1: {\n marginBottom: \"1em\",\n padding: 4,\n flexWrap: \"nowrap\",\n borderRadius: 8,\n },\n\n tableHeader: {\n background: \"white\",\n padding: 4,\n borderRadius: 8,\n marginBottom: \"1em\",\n flexWrap: \"nowrap\",\n },\n row: {\n background: \"white\",\n display: \"flex\",\n },\n alterRow: {\n background: \"rgb(246,246,246)\",\n },\n dataRow: {\n cursor: \"pointer\",\n transition: \"0.3s\",\n \"&:hover\": {\n background: \"rgb(70 20 134 / 15%)\",\n },\n },\n topbar: {\n background: \"rgb(252,252,252)\",\n position: \"sticky\",\n top: \"0\",\n zIndex: \"100\",\n },\n column: {\n // width: \"4400px\",\n fontWeight: \"normal\",\n height: \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n textAlign: \"center\",\n paddingRight: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n boxSizing: \"border-box\",\n },\n});\n\n// export default withStyles(styles)(withRouter(BusinessesTable));\n\nconst connectAssistantsTable = connect((state) => ({\n allBusiness: state.business.allBusiness,\n isLoading: state.assistants.isLoading,\n partner: state.partner.partner,\n}))(BusinessesTable);\n\nexport default withStyles(styles)(withRouter(connectAssistantsTable));\n","import React, { Component } from \"react\";\nimport { DateRangePicker } from \"react-dates\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport { withRouter } from \"react-router-dom\";\nimport {\n withStyles,\n Button,\n Box,\n Typography,\n Grid,\n IconButton,\n TextField,\n Tabs,\n Tab,\n DialogContent,\n Dialog,\n DialogActions,\n FormControl,\n Select,\n MenuItem,\n InputLabel,\n Snackbar,\n CircularProgress,\n Popper,\n InputAdornment,\n Tooltip,\n} from \"@material-ui/core\";\nimport {\n NavigateNext,\n NavigateBefore,\n Clear,\n FilterList,\n Add,\n Visibility,\n VisibilityOff,\n InfoOutlined,\n CheckCircleOutlined,\n GetApp,\n} from \"@material-ui/icons\";\nimport \"react-dates/initialize\";\nimport \"react-dates/lib/css/_datepicker.css\";\nimport \"../../react-dates-custom.css\";\n\nimport BusinessesTable, { fields, getFormattedDate } from \"./BusinessesTable\";\nimport { TablePagination } from \"@material-ui/core\";\n// import { assistants } from \"../../config/assistants\";\nimport { URL, partnerURL } from \"../../config/config\";\nimport axios from \"axios\";\nimport {\n fetchAssistants,\n loadNextAssistants,\n loadPrevAssistants,\n changeRowsPerPage,\n fetchAssistantsCounts,\n} from \"../../store/assistantState\";\nimport { fetchBusiness } from \"../../store/businessState\";\nimport { Alert, Autocomplete, Skeleton } from \"@material-ui/lab\";\nimport { timeZones } from \"../../config/timezone\";\nimport dialCodes, {\n countryMap,\n isoMap,\n isoToDialCode,\n} from \"../../config/dialCodes\";\nimport Header from \"../../commons/Header/Header\";\nimport CreateProjectDialog from \"../../commons/Dialog/CreateProjectDialog\";\nimport plansHelper from \"../../helpers/plansHelper\";\nimport withMediaQuery from \"../../helpers/mediaQueryHelper\";\n\nclass AllBusinesses extends Component {\n constructor(props) {\n super(props);\n this.state = {\n alertType: \"\",\n alertMsg: \"\",\n rowsPerPage: 15,\n totalCount: null,\n skip: 0,\n timeStamp: new Date(),\n search: \"\",\n searchDone: false,\n templates: [],\n backupTemplates: [],\n backupSearchTemplates: [],\n err: null,\n isLoading: false,\n page: 0,\n applied: {\n createdAt: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n planActivatedOn: {\n startDate: null,\n endDate: null,\n focus: null,\n },\n },\n tab: \"Signups\",\n openDialog: false,\n assistantFilter: {\n filter: \"Signups\",\n sort: \"dec\",\n },\n allCount: 0,\n wabaCount: 0,\n countryCode: isoToDialCode[this.props.partner?.isoCode] || \"+91\",\n liveCount: 0,\n draftCount: 0,\n trialPlanCount: 0,\n monthlyPlanCount: 0,\n yearlyPlanCount: 0,\n deletedCount: 0,\n stoppedCount: 0,\n openProjectDialog: false,\n selectBusiness: \"\",\n newProjectName: \"\",\n projectSubmitLoader: false,\n clientDialog: false,\n company: \"\",\n companySize: \"\",\n industry: \"\",\n display_name: \"\",\n contact: \"\",\n buttonDisable: false,\n timezone: \"Asia/Calcutta GMT+05:30\",\n currency: this.props.partner?.currency || \"INR\",\n };\n }\n componentDidMount() {\n const { partner } = this.props;\n const { isSuperAffiliate } = partner || {};\n this.props.fetchAssistantsCounts(isSuperAffiliate);\n this.props.fetchAssistants(this.state.assistantFilter, isSuperAffiliate);\n }\n\n toggleDialog = (event, reason) => {\n reason !== \"backdropClick\" &&\n this.setState({ openDialog: !this.state.openDialog });\n };\n\n handleChangePage = (event, newPage) => {\n const { page } = this.props;\n const { partner } = this.props;\n const { isSuperAffiliate } = partner || {};\n const step = newPage - page;\n if (step === -1) {\n this.props.loadPrevAssistants();\n } else if (step === 1) {\n this.props.loadNextAssistants(\n this.state.assistantFilter,\n isSuperAffiliate\n );\n }\n };\n\n handleChangeRowsPerPage = (event) => {\n const rowsPerPage = parseInt(event.target.value, 10);\n this.props.changeRowsPerPage(rowsPerPage);\n this.onTabChange();\n };\n\n setTemplate = (template) => {\n const templates = [...this.state.templates];\n const foundIndex = templates.findIndex((x) => x._id == template._id);\n // console.log({foundIndex})\n // if(foundIndex > -1) {\n templates[foundIndex] = template;\n this.setState({ templates });\n // } else {\n // }\n // templates.forEach\n };\n\n handleBusinessInput = (e) => {\n this.setState({ [e.target.name]: e.target.value });\n };\n\n handleInput = (e) => {\n this.setState({ [e.target.name]: e.target.value });\n };\n\n handleEnter = (e) => {\n // const { backupSearchTemplates, search } = this.state;\n if (e.key === \"Enter\") {\n const { assistantFilter } = this.state;\n const newObj = { ...assistantFilter };\n if (e.target.value) {\n newObj.assistantName = e.target.value;\n } else {\n delete newObj.assistantName;\n }\n this.setState(\n { assistantFilter: newObj, searchDone: true },\n this.onTabChange\n );\n }\n };\n handleSearch = (e) => {\n const { assistantFilter } = this.state;\n const newObj = { ...assistantFilter, assistantName: e.target.value };\n this.setState({\n assistantFilter: newObj,\n search: e.target.value,\n });\n };\n handleClear = () => {\n const { assistantFilter } = this.state;\n delete assistantFilter.assistantName;\n this.setState(\n {\n search: \"\",\n searchDone: false,\n assistantFilter,\n },\n this.onTabChange\n );\n };\n\n // methods for date filter\n clearDate = (filterKey) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = null;\n applied[filterKey].endDate = null;\n this.setState({ applied });\n };\n checkDateInput = (filterKey) => {\n const applied = { ...this.state.applied };\n const s = applied[filterKey];\n if (s.startDate && s.endDate) {\n return;\n } else {\n this.clearDate(filterKey);\n }\n };\n setFocus = (filterKey, focusedInput) => {\n const applied = { ...this.state.applied };\n applied[filterKey].focusedInput = focusedInput;\n this.setState({ applied });\n };\n setDate = (filterKey, startDate, endDate) => {\n const applied = { ...this.state.applied };\n applied[filterKey].startDate = startDate;\n applied[filterKey].endDate = endDate;\n this.setState({ applied });\n };\n applyFilter = () => {\n const { applied, assistantFilter } = this.state;\n const filterObj = { ...assistantFilter };\n if (applied.createdAt.startDate && applied.createdAt.endDate) {\n filterObj.fromDate = applied.createdAt.startDate._d;\n filterObj.toDate = applied.createdAt.endDate._d;\n } else {\n delete filterObj.fromDate;\n delete filterObj.toDate;\n }\n\n if (applied.planActivatedOn.startDate && applied.planActivatedOn.endDate) {\n filterObj.fromPlanActivatedDate = applied.planActivatedOn.startDate._d;\n filterObj.toPlanActivatedDate = applied.planActivatedOn.endDate._d;\n } else {\n delete filterObj.fromPlanActivatedDate;\n delete filterObj.toPlanActivatedDate;\n }\n this.setState(\n {\n assistantFilter: filterObj,\n openDialog: false,\n },\n () => {\n this.onTabChange();\n }\n );\n };\n\n onTabChange = () => {\n const { partner } = this.props;\n const { isSuperAffiliate } = partner || {};\n this.props.fetchAssistants(this.state.assistantFilter, isSuperAffiliate);\n };\n\n projectDialog = (event) => {\n this.setState({ openProjectDialog: !this.state.openProjectDialog });\n };\n\n toggleclientDialog = () => {\n this.setState({ clientDialog: !this.state.clientDialog });\n };\n\n buttondisbale = () => {\n this.setState({ buttonDisable: !this.state.buttonDisable });\n };\n\n createclient = async () => {\n try {\n const partnerId = this.props.user.id;\n const {\n email,\n display_name,\n company,\n contact,\n currency,\n timezone,\n password,\n } = this.state;\n const queryObj = {\n email,\n password,\n display_name,\n company,\n contact,\n timezone,\n currency,\n };\n\n let response = await axios.post(\n partnerURL + `/partner/${partnerId}/business/`,\n queryObj\n );\n // this.props.createnewClient(response.data)\n // this.props.fetchBusiness();\n this.setState({\n clientDialog: !this.state.clientDialog,\n openProjectDialog: true,\n });\n this.setState({\n status: \"success\",\n statusMessage: \"Business Created Succesfully\",\n });\n this.setState({\n email: null,\n display_name: null,\n company: null,\n contact: null,\n currency: this.props.partner?.currency || \"INR\",\n timezone: \"Asia/Calcutta GMT+05:30\",\n countryCode: isoToDialCode[this.props.partner?.isoCode] || \"+91\",\n industry: null,\n companySize: null,\n password: null,\n });\n } catch (error) {\n this.setState({\n buttonDisable: false,\n });\n const errorResponse = error.response;\n console.error(error);\n const errorMessage = errorResponse?.data?.message;\n this.setState({\n status: \"error\",\n statusMessage: errorMessage,\n });\n }\n };\n\n onSnackbarClose = () => {\n this.setState({\n alertType: \"\",\n alertMsg: \"\",\n });\n };\n\n selectBusiness = (e, value, reason) => {\n if (reason === \"select-option\") {\n const assistantValue = Object.keys(this.props.allBusiness).find(\n (key) => this.props.allBusiness[key].name === value.split(\" - \")[1]\n );\n this.setState({ selectBusiness: assistantValue });\n }\n };\n\n render() {\n const {\n classes,\n partner,\n partnerPlanFamily,\n partnerWccFamily,\n mediaQuery,\n partnerId,\n user,\n } = this.props;\n const { backupTemplates, tab, assistantFilter, applied } = this.state;\n const { assistants, page, rowsPerPage, totalAssistants } = this.props;\n\n const affiliateTabs = [\n {\n display: \"Businesses\",\n state: \"draftCount\",\n theme: \"#00b4bf59\",\n },\n // {\n // display: \"WABA Live\",\n // state: \"wabaCount\",\n // theme: \"#f2c14e3d\",\n // list: backupTemplates,\n // },\n // {\n // display: \"Conversions\",\n // state: \"liveCount\",\n // theme: \"#08cf6533\",\n // list: backupTemplates.filter((i) => !!i.isWhatsappVerified),\n // },\n ];\n\n const tabs = affiliateTabs;\n\n const passwordRegex = /^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$/;\n const isPasswordValid = passwordRegex.test(this.state.password);\n\n return (\n
\n {/* Page name & description container */}\n \n \n \n }\n // buttonTitle={user.isReferral ? \"\" : \"Create New Project\"}\n onButtonClick={this.projectDialog}\n showSearch={true}\n searchPlaceholder={\"Search business name\"}\n handleSearch={this.handleSearch}\n handleEnter={this.handleEnter}\n searchDone={this.state.searchDone}\n handleClear={this.handleClear}\n filter={this.state.search}\n toggleFilterDialog={this.toggleDialog}\n filterColor={\n (!!applied.createdAt.startDate &&\n !!applied.createdAt.endDate) ||\n (!!applied.planActivatedOn.endDate &&\n !!applied.planActivatedOn.startDate)\n }\n />\n \n {}}\n indicatorColor=\"primary\"\n textColor=\"#000\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n aria-label=\"scrollable auto tabs example\"\n TabIndicatorProps={{\n className: classes.tabIndicator,\n }}\n >\n {tabs.map((i) => (\n \n \n \n \n {totalAssistants}\n \n \n \n \n {`${i.display}`}\n \n \n }\n value={i.display}\n style={{\n textTransform: \"none\",\n alignItems: \"end\",\n minWidth: 190,\n // marginLeft: 16,\n paddingBottom: 8,\n // background: `linear-gradient(180deg, white, ${\"#00b4bf59\"})`,\n }}\n />\n ))}\n \n \n \n \n \n \n {/* Layout */}\n \n \n {/* First section */}\n {/* Scrollable (x & y) table container */}\n
\n \n
\n
\n
\n {/* Table footer fixed at bottom */}\n
\n \n
\n {/* Filter dialog */}\n \n \n \n \n Filter\n \n \n \n \n \n \n \n \n \n \n \n \n \n Apply\n \n \n \n \n\n {/* project dialog */}\n {this.state.openProjectDialog && (\n \n this.setState({ newProjectName: e.target.value })\n }\n createBusiness={() =>\n this.setState({\n openProjectDialog: false,\n clientDialog: true,\n })\n }\n onSubmit={this.projectSubmit}\n disableSubmit={this.state.projectSubmitLoader}\n planFamilies={partnerPlanFamily}\n defaultPlanFamily={partner?.defaultPlanFamily}\n defaultPlanName={partner?.defaultPlanName}\n wccPlans={partnerWccFamily}\n defaultWccPlan={partner?.defaultWccPlan}\n type={partner?.type}\n partner={partner}\n />\n )}\n\n \n \n {this.state.alertMsg}\n \n \n
\n );\n }\n}\n\n// Navigattion icons used in date fliters\nfunction NavigationWrapper(props) {\n const { classes } = props;\n return (\n
\n {props.children}\n
\n );\n}\n\nfunction DateFilter({\n filterKey,\n applied,\n setFocus,\n setDate,\n checkDateInput,\n clearDate,\n ...props\n}) {\n const { classes, filterName } = props;\n const A = applied[filterKey];\n return (\n \n \n {A.startDate && A.endDate ? (\n \n clearDate(filterKey)}\n >\n \n \n \n ) : (\n \"\"\n )}\n \n \n {filterName}\n \n \n \n checkDateInput(filterKey)}\n startDateId=\"startDate\"\n endDateId=\"endDate\"\n startDate={A.startDate}\n endDate={A.endDate}\n onDatesChange={({ startDate, endDate }) =>\n setDate(filterKey, startDate, endDate)\n }\n focusedInput={A.focusedInput}\n onFocusChange={(focusedInput) => setFocus(filterKey, focusedInput)}\n navPosition=\"navPositionTop\"\n numberOfMonths={1}\n navPrev={\n \n \n \n }\n navNext={\n \n \n \n }\n hideKeyboardShortcutsPanel\n customArrowIcon={null}\n screenReaderInputMessage={\" \"}\n small\n readOnly\n isOutsideRange={(day) => moment().diff(day) < 0}\n />\n \n \n \n );\n\n // function setToday()\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n // background: \"red\",\n // display: \"flex\",\n background: \"rgb(249,249,249)\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"relative\",\n // paddingBottom: \"80px\"\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 60,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n background: \"white\",\n },\n container: {\n background: \"white\",\n borderRadius: \"8px\",\n },\n fixedBottomContainer: {\n position: \"fixed\",\n height: \"60px\",\n borderTop: \"1px solid lightgrey\",\n background: \"white\",\n bottom: \"0\",\n left: \"71px\",\n right: \"0\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n [theme.breakpoints.down(\"sm\")]: {\n left: \"0px\",\n height: \"50px\",\n },\n },\n tableContainer: {\n top: \"60px\",\n height: \"calc(100vh - 260px)\",\n width: \"100%\",\n overflow: \"hidden\",\n // background: \"red\",\n boxSizing: \"border-box\",\n position: \"sticky\",\n [theme.breakpoints.down(\"xs\")]: {\n // position top + bottombar height + bottom padding + navbar\n marginTop: 48,\n height: \"calc(100vh - 70px - 50px - 10px - 50px)\",\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n boxSizing: \"border-box\",\n },\n },\n textField: {\n width: \"100%\",\n height: 42,\n },\n sortFormControl: {\n width: 120,\n marginRight: 8,\n height: 32,\n borderRadius: \"4px\",\n border: \"1px solid lightgrey\",\n },\n textFieldPopper: {\n [theme.breakpoints.down(\"md\")]: {\n left: \"12px !important\",\n minWidth: \"calc(100% - 35px)\",\n },\n [theme.breakpoints.up(\"md\")]: {\n left: \"calc(12.5vw - 16px) !important\",\n minWidth: \"calc(25vw + 54px)\",\n },\n },\n tabContainer: {\n background: \"white\",\n boxShadow: \"0 0 12px rgb(171 170 170)\",\n // padding: \"24px\",\n },\n tabIndicator: {\n borderRadius: \"3px 3px 0px 0px\",\n height: 3,\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n height: 32,\n background: \"white\",\n border: \"2px solid grey\",\n \"& input\": {\n padding: \"0px 12px!important\",\n },\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n dialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"600px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n projectdialogContainer: {\n // zIndex: \"3400 !important\",\n \"& .MuiPaper-root\": {\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n // height: \"100%\",\n // maxHeight: \"100%\",\n margin: \"0\",\n borderRadius: \"0px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"100%\",\n // height: \"unset\",\n // maxHeight: \"unset\",\n // minHeight: \"100px\",\n margin: \"unset\",\n borderRadius: \"6px\",\n },\n },\n },\n\n inputRoot: {\n '&[class*=\"MuiOutlinedInput-root\"].MuiAutocomplete-input': {\n padding: 12,\n },\n '&&[class*=\"MuiOutlinedInput-root\"]': {\n padding: 0,\n },\n },\n popper: {\n width: \"fit-content\",\n zIndex: 10000,\n height: \"10px\",\n },\n snackbar: {\n // marginTop:\"20px\",\n // [theme.breakpoints.down(\"sm\")]: {\n // marginTop:\"40px\",\n // },\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 8px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n phoneTextFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n \"& input\": { width: \"calc(100% - 80px)\", marginLeft: \"80px\" },\n background: \"white\",\n border: \"2px solid grey\",\n },\n codeTextFieldRoot: {\n width: \"90px\",\n padding: \"0 0 0 14px\",\n position: \"absolute\",\n zIndex: 1,\n margin: \"10px 0 0 2px\",\n background: \"white\",\n \"& input\": {\n padding: \"10px 0 !important\",\n },\n \"& button\": {\n width: \"12px\",\n position: \"relative\",\n left: \"7px\",\n background: \"white\",\n borderRadius: 0,\n \"&:hover\": {\n background: \"white\",\n },\n },\n \"& div\": {\n paddingRight: \"0px !important\",\n },\n },\n textFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px 10px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& input\": {\n padding: \"6px 12px!important\",\n },\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n});\n\nconst connectAssistants = connect(\n (state) => ({\n user: state.login.user,\n assistants: state.assistants.assistants,\n page: state.assistants.page,\n isAssistantsLoading: state.assistants.isLoading,\n assistantError: state.assistants.error,\n rowsPerPage: state.assistants.rowsPerPage,\n totalAssistants: state.assistants.total,\n allCount: state.assistants.allCount,\n liveCount: state.assistants.liveCount,\n wabaCount: state.assistants.wabaCount,\n draftCount: state.assistants.draftCount,\n trialPlanCount: state.assistants.trialPlanCount,\n monthlyPlanCount: state.assistants.monthlyPlanCount,\n yearlyPlanCount: state.assistants.yearlyPlanCount,\n deletedCount: state.assistants.deletedCount,\n stoppedCount: state.assistants.stoppedCount,\n allBusiness: state.business.allBusiness,\n partnerId: state.partner.partner._id,\n partner: state.partner.partner,\n partnerSecretHash: state.partner.partner.passwordHash,\n partnerPlanFamily: state.planFamilies.allPlanFamilies,\n partnerWccFamily: state.wccPlans.allWccPlans,\n }),\n {\n fetchAssistants,\n loadNextAssistants,\n loadPrevAssistants,\n changeRowsPerPage,\n fetchAssistantsCounts,\n fetchBusiness,\n }\n)(AllBusinesses);\n\nexport default withStyles(styles)(\n withMediaQuery(\"(max-width:600px)\")(withRouter(connectAssistants))\n);\n","import React from \"react\";\nimport {\n PersonOutlined,\n DashboardOutlined,\n Build,\n TuneOutlined,\n Facebook,\n} from \"@material-ui/icons\";\nimport AgentProfilePage from \"../../../pages/AgentProfile/AgentProfilePage\";\nimport DashboardPage from \"../../../pages/Dashboard/DashboardPage\";\nimport AssistantsRoute from \"../../../pages/Assistants/AssistantsRoute\";\nimport BillingRoute from \"../../../pages/BillingProfile/BillingRoute\";\nimport PlanFamilyPage from \"../../../pages/Manage/PlanFamilyPage\";\nimport DefaultsPage from \"../../../pages/Manage/DefaultsPage\";\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\nimport ContactlessIcon from \"@material-ui/icons/Contactless\";\nimport BlurOnIcon from \"@material-ui/icons/BlurOn\";\nimport MetaAdsLayout from \"../MetaAdsLayout\";\nimport MetaAds from \"../../../pages/MetaAds/MetaAds\";\nimport BarChartOutlinedIcon from \"@material-ui/icons/BarChartOutlined\";\nimport AccountTreeOutlinedIcon from \"@material-ui/icons/AccountTreeOutlined\";\nimport SuperDashboard from \"../../../pages/SuperAffiliate/SuperDashboard\";\nimport ViewQuiltIcon from \"@material-ui/icons/ViewQuilt\";\nimport BusinessIcon from \"@material-ui/icons/Business\";\nimport SuperAffiliateRoute from \"../../../pages/SuperAffiliate/SuperAffiliateRoute\";\nimport AgentsMetaAdsLayout from \"../agentsMetaAdLayout\";\nimport GroupIcon from '@material-ui/icons/Group';\nimport AssistantsPage from \"../../../pages/Assistants/AssistantsPage\";\nimport AllBusinessesPage from \"../../../pages/SuperAffiliate/AllBusinessesPage\";\n\nconst topRoutes = [\n {\n name: \"Dashboard\",\n to: \"/\",\n component: DashboardPage,\n icon: ,\n exact: true,\n },\n {\n name: \"Customers\",\n to: \"/customers\",\n component: AssistantsRoute,\n icon: ,\n },\n {\n name: \"Meta Ads\",\n to: \"/meta-ads\",\n component: MetaAdsLayout,\n icon: ,\n },\n {\n name: \"Payouts\",\n to: \"/payouts\",\n component: BillingRoute,\n icon: ,\n },\n];\n\nconst renderMetaAdsRoute = [\n {\n name: \"Ads Setup\",\n to: \"/project\",\n component: MetaAds,\n icon: ,\n },\n {\n name: \"Ads Overview\",\n to: \"/ads\",\n component: MetaAds,\n icon: ,\n },\n {\n name: \"Businesses\",\n to: \"/businesses\",\n component: AllBusinessesPage,\n icon: ,\n },\n];\n\nconst renderAgnetsMetaAdsRoute = [\n {\n name: \"Ads Setup\",\n to: \"/projects/:id\",\n component: MetaAds,\n icon: ,\n },\n {\n name: \"Ads Overview\",\n to: \"/ads/:id\",\n component: MetaAds,\n icon: ,\n },\n];\n\nconst renderSuperAffiliateRoute = [\n {\n name: \"Dashboard\",\n to: \"/\",\n component: SuperDashboard,\n icon: ,\n exact: true,\n },\n {\n name: \"Agents\",\n to: \"/agents\",\n component: SuperAffiliateRoute,\n icon: ,\n exact: true,\n },\n {\n name: \"Meta Ads\",\n to: \"/meta-ads\",\n component: MetaAdsLayout,\n icon: ,\n },\n {\n name: \"Agent Meta Ads\",\n to: \"/agents/meta-ads/projects/:id\",\n component: AgentsMetaAdsLayout,\n icon: ,\n exact: true,\n hidden: true,\n },\n {\n name: \"Agent Meta Ads\",\n to: \"/agents/meta-ads/ads/:id\",\n component: AgentsMetaAdsLayout,\n icon: ,\n exact: true,\n hidden: true,\n },\n];\n\nconst renderManageRoute = [\n {\n name: \"Configure Plan\",\n to: \"/config\",\n component: PlanFamilyPage,\n icon: ,\n },\n {\n name: \"Defaults\",\n to: \"/defaults\",\n component: DefaultsPage,\n icon: ,\n },\n];\n\nconst bottomRoutes = [\n {\n name: \"Profile\",\n to: \"/agentProfile\",\n component: AgentProfilePage,\n icon: ,\n },\n];\n\nexport {\n topRoutes,\n bottomRoutes,\n renderManageRoute,\n renderMetaAdsRoute,\n renderSuperAffiliateRoute,\n renderAgnetsMetaAdsRoute,\n};\n","import React from \"react\";\nimport { useHistory, useLocation, useParams, Link } from \"react-router-dom\";\nimport { Box, Typography, withStyles } from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport LOGO from \"../../../static/logo.jpg\";\nimport {\n topRoutes,\n bottomRoutes,\n renderSuperAffiliateRoute,\n} from \"../Routes/ProjectRoutes\";\n\nfunction NavBarDesktop(props) {\n const location = useLocation();\n const history = useHistory();\n const params = useParams();\n const { classes, partner } = props;\n const { isAdsCommissionEnabled, isSuperAffiliate, isChildAffiliate } =\n partner || {};\n\n const filteredRoutes = topRoutes.filter((route) => {\n if (route.to === \"/meta-ads\") {\n return isAdsCommissionEnabled;\n }\n\n if (route.to === \"/payouts\" && isChildAffiliate) {\n return false;\n }\n return true;\n });\n\n const routes = isSuperAffiliate\n ? renderSuperAffiliateRoute.filter((route) => !route.hidden)\n : filteredRoutes;\n\n return (\n
\n \n \n \"AI\n \n\n {routes.map((route, index) => {\n let className = \"inactive\";\n if (location.pathname.split(\"/\")[1] === route.to.split(\"/\")[1]) {\n className = \"active\";\n }\n\n return (\n {\n history.push(route.to);\n }}\n >\n \n \n {route.icon}\n \n \n \n {route.name}\n \n
\n );\n })}\n \n \n {bottomRoutes.map((route, index) => {\n let className = \"inactive\";\n if (location.pathname.includes(route.to)) {\n className = \"active\";\n }\n return (\n {\n history.push(route.to);\n }}\n >\n \n \n {route.icon}\n \n \n \n );\n })}\n \n \n );\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"70px\",\n height: \"100vh\",\n position: \"fixed\",\n // top: 0,\n left: 0,\n background: \"#002D62\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n color: \"gray\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"none\",\n },\n overflow: \"auto\",\n },\n logo: {\n height: 50,\n marginTop: 15,\n },\n link_inactive: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"35px\",\n width: \"35px\",\n margin: \"auto\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n transition: \"0.5s\",\n },\n link_active: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"35px\",\n width: \"35px\",\n margin: \"auto\",\n borderRadius: \"50%\",\n backgroundColor: \"white\",\n color: \"white\",\n cursor: \"pointer\",\n transition: \"0.5s\",\n },\n // profile_active: {\n\n // },\n // profile_inactive: {\n\n // }\n icon_active: {\n color: theme.palette.primary.main,\n },\n icon_inactive: {\n color: \"#fbfbfb\",\n },\n name_active: {\n color: \"white\",\n },\n name_inactive: {\n color: \"#fbfbfb\",\n },\n active: {\n margin: \"0.9em 0em\",\n borderLeft: \"2px solid\",\n borderColor: \"white\",\n },\n inactive: {\n margin: \"0.9em 0em\",\n borderLeft: \"2px solid\",\n borderColor: \"transparent\",\n },\n});\n\nconst connectedNavBarDesktop = connect((state) => ({\n agent: state.login.user,\n partner: state.partner.partner,\n}))(NavBarDesktop);\n\nexport default withStyles(styles)(connectedNavBarDesktop);\n","import React from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\nimport {\n Drawer,\n Box,\n Grid,\n Typography,\n ButtonBase,\n withStyles,\n Accordion,\n AccordionDetails,\n AccordionSummary,\n} from \"@material-ui/core\";\nimport { SettingsOutlined, ExpandMore } from \"@material-ui/icons\";\nimport { KeyboardArrowDown } from \"@material-ui/icons\";\nimport { connect } from \"react-redux\";\nimport LOGO from \"../../../static/logo.jpg\";\nimport {\n topRoutes,\n bottomRoutes,\n renderSuperAffiliateRoute,\n} from \"../Routes/ProjectRoutes\";\n\nconst NavDrawerMobile = (props) => {\n const location = useLocation();\n const history = useHistory();\n const params = useParams();\n const { classes, drawerOpen, onDrawerClose, partner } = props;\n const { type, isAdsCommissionEnabled } = partner || {};\n const openRoute = (route) => {\n history.push(route.to);\n onDrawerClose({});\n };\n const openMangeRoute = (route) => {\n history.push(\"/manage\" + route.to);\n onDrawerClose({});\n };\n\n const { isSuperAffiliate, isChildAffiliate } = partner || {};\n\n const filteredRoutes = topRoutes.filter((route) => {\n if (route.to === \"/meta-ads\") {\n return isAdsCommissionEnabled;\n }\n\n if (route.to === \"/payouts\" && isChildAffiliate) {\n return false;\n }\n\n return true;\n });\n\n const routes = isSuperAffiliate\n ? renderSuperAffiliateRoute.filter((route) => !route.hidden)\n : filteredRoutes;\n\n return (\n \n \n \n \n \"AI\n \n \n \n AiSensy\n \n \n \n {routes.map((route, index) => {\n let className = \"inactive\";\n if (location.pathname == route.to) {\n className = \"active\";\n }\n if (route.to == \"/manage\") {\n return;\n }\n return (\n openRoute(route)}\n >\n \n \n \n {route.icon}\n \n \n \n \n {route.name}\n \n \n \n \n );\n })}\n {/* {\n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n className={classes.accordianSummary}\n >\n
\n \n \n \n {}\n \n \n \n \n Manage\n \n \n \n
\n \n \n \n {[...renderFilteredManageRoutes].map((route, index) => {\n let className = \"inactive\";\n if (location.pathname.includes(route.to)) {\n className = \"active\";\n }\n return (\n !route.excludedTypes?.includes(type) && (\n openMangeRoute(route)}\n >\n \n \n \n {route.icon}\n \n \n \n \n {route.name}\n \n \n \n \n )\n );\n })}\n \n \n
\n } */}\n \n \n {bottomRoutes.map((route, index) => {\n return (\n openRoute(route)}>\n {route.icon}\n \n );\n })}\n \n \n );\n};\n\nconst styles = (theme) => ({\n container: {\n width: \"100%\",\n height: \"100%\",\n overflowY: \"auto\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n // minWidth: \"300px\",\n // flexGrow: 1,\n },\n drawerPaper: {\n width: \"calc(100vw - 70px)\",\n height: \"100%\",\n position: \"relative\",\n overflow: \"hidden\",\n },\n logo: {\n height: \"50px\",\n marginRight: \"10px\",\n },\n link_inactive: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"35px\",\n width: \"35px\",\n margin: \"auto\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n transition: \"0.5s\",\n },\n link_active: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"35px\",\n width: \"35px\",\n margin: \"auto\",\n borderRadius: \"50%\",\n backgroundColor: \"white\",\n color: \"white\",\n cursor: \"pointer\",\n transition: \"0.5s\",\n },\n // profile_active: {\n\n // },\n // profile_inactive: {\n\n // }\n icon_active: {\n color: theme.palette.primary.main,\n },\n icon_inactive: {\n color: \"rgb(20,20,20)\",\n },\n name_active: {\n color: theme.palette.primary.main,\n },\n name_inactive: {\n color: \"rgb(20,20,20)\",\n },\n linkButton: {\n margin: \"3px 0em\",\n width: \"100%\",\n borderRadius: \"5px\",\n padding: \"10px\",\n },\n active: {\n backgroundColor: \"rgb(70 20 134 / 15%)\",\n },\n inactive: {\n backgroundColor: \"transparent\",\n },\n fullWidth: {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"flex-start\",\n },\n profileWrapper: {\n position: \"absolute\",\n left: 0,\n bottom: 0,\n width: \"100%\",\n backgroundColor: \"white\",\n paddingTop: theme.spacing(2) * 1.5,\n paddingBottom: theme.spacing(2) * 1.5,\n },\n profileIcon: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: \"50%\",\n color: \"white\",\n width: \"40px\",\n height: \"40px\",\n margin: \"0px 10px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n});\n\nconst connectedNavDrawerMobile = connect((state) => ({\n agent: state.login.user,\n partner: state.partner.partner,\n}))(NavDrawerMobile);\n\nexport default withStyles(styles)(connectedNavDrawerMobile);\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport {\n withStyles,\n IconButton,\n Typography,\n Box,\n Hidden,\n} from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { FilterList, Search, Menu } from \"@material-ui/icons\";\nimport clsx from \"clsx\";\n\nimport NavDrawerMobile from \"./NavDrawerMobile\";\n\nclass NavBarMobile extends Component {\n state = {\n drawerOpen: false,\n };\n\n onDrawerClose = (event) => {\n if (\n event.type === \"keydown\" &&\n (event.key === \"Tab\" || event.key === \"Shift\")\n ) {\n return;\n }\n this.setState({ drawerOpen: false });\n };\n\n onDrawerOpen = () => {\n this.setState({ drawerOpen: true });\n };\n render() {\n const { drawerOpen } = this.state;\n const { classes, location, agent } = this.props;\n const livePage = false;\n\n return (\n \n \n \n \n \n \n \n AiSensy\n \n \n \n \n \n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n // position: \"sticky\",\n // top: \"0\",\n width: \"100%\",\n height: \"50px\",\n overflow: \"hidden\",\n transition: \"0.3s\",\n zIndex: 1000,\n },\n sticky: {\n position: \"sticky\",\n top: 0,\n },\n icon: {\n fontSize: \"1em\",\n // color: \"white\"\n },\n hideNavBar: {\n height: 0,\n },\n});\n\nconst connectedNavBarMobile = connect((state) => ({\n agent: state.login.user,\n}))(NavBarMobile);\n\nexport default withStyles(styles)(withRouter(connectedNavBarMobile));\n","import { Typography, useMediaQuery, useTheme } from \"@material-ui/core\";\nimport { Clock } from \"lucide-react\";\nexport default function WarningBanner({ text, backgroundColor }) {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n return (\n \n \n \n {text}\n \n \n );\n}\n","import React from \"react\";\nimport NavBarDesktop from \"./NavBarDesktop\";\nimport NavBarMobile from \"./NavBarMobile\";\nimport WarningBanner from \"../../WarningBanner/WarningBanner\";\nimport { connect } from \"react-redux\";\n\nfunction NavBar(props) {\n const ignoredId = props.partnerDetail._id;\n\n return (\n \n {ignoredId !== \"67c29170603e6b0bf4f5849b\" && (\n \n )}\n \n \n \n );\n}\n\nexport default connect((state) => ({\n isPartnerDetailLoading: state.partner.isLoading,\n partnerDetail: state.partner.partner,\n}))(NavBar);\n","import React, { Component } from \"react\";\n\nclass ErrorBoundary extends Component {\n state = { hasError: false };\n\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n console.error(error, errorInfo);\n this.setState({ errorInfo });\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return (\n \n

Something went wrong.

\n \n );\n }\n\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Snackbar,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport { Redirect, Route, Switch } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport NavBar from \"./Navbar/NavBar\";\nimport ErrorBoundary from \"../ErrorBoundary/ErrorBoundary\";\nimport {\n topRoutes,\n bottomRoutes,\n renderSuperAffiliateRoute,\n} from \"./Routes/ProjectRoutes\";\n\nclass ProjectsLayout extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: true,\n };\n }\n\n componentDidMount() {\n if (!this.props.partner?._id) {\n this.props\n .fetchPartnerDetails()\n .then(() => {\n this.setState({ isLoading: false });\n })\n .catch((error) => {\n console.error(\"Failed to fetch partner details:\", error);\n this.setState({ isLoading: false });\n });\n } else {\n this.setState({ isLoading: false });\n }\n }\n\n render() {\n const { classes, partner } = this.props;\n const { isLoading } = this.state;\n const { type, isSuperAffiliate } = partner || {};\n const routes = isSuperAffiliate ? renderSuperAffiliateRoute : topRoutes;\n\n if (isLoading) {\n return (\n
\n \n
\n );\n }\n\n return (\n
\n \n \n
\n \n {routes.map((route, index) => {\n if (!route.excludedTypes?.includes(type)) {\n return (\n \n );\n }\n })}\n {bottomRoutes.map((route) => {\n return (\n \n );\n })}\n } />\n \n
\n
\n
\n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100vw\",\n height: \"100vh\",\n overflow: \"hidden\",\n [theme.breakpoints.down(\"sm\")]: {\n overflowY: \"auto\",\n position: \"relative\",\n },\n },\n routeContainer: {\n width: \"calc(100% - 70px)\",\n height: \"100vh\",\n transition: \"1s\",\n overflow: \"hidden\",\n marginLeft: 70,\n // background: \"green\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n height: \"calc(100vh - 50px)\",\n // height: \"100vh\",\n marginLeft: 0,\n },\n },\n fullHeight: {\n [theme.breakpoints.down(\"sm\")]: {\n height: \"100vh\",\n },\n },\n preloader: {\n height: 150,\n },\n});\n\nconst connectedProjectslayout = connect((state) => ({\n agent: state.login.user,\n partner: state.partner.partner,\n isPartnerDetailLoading: state.partner.isLoading,\n tenantDetails: state.tenant.tenant,\n}))(ProjectsLayout);\n\nexport default withStyles(styles)(connectedProjectslayout);\n","import React from \"react\";\nimport { Alert } from \"@material-ui/lab\";\nimport { Snackbar } from \"@material-ui/core\";\n\nexport default function Toast(props) {\n const { open, closeSnackbar, severity, msg, vertical, horizontal, autoHideDuration } = props;\n return (\n \n \n {msg}\n \n \n );\n}\n","export default __webpack_public_path__ + \"static/media/partnerBG.439262e9.png\";","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport \"./pages.css\";\nimport { loginUser, loginWithToken } from \"./loginstate\";\nimport { createTheme } from \"@material-ui/core/styles\";\nimport {\n Grid,\n Container,\n TextField,\n ThemeProvider,\n Box,\n Typography,\n Button,\n Link,\n} from \"@material-ui/core\";\nimport { Redirect } from \"react-router-dom\";\nimport Toast from \"../../commons/Toast/Toast\";\nimport partnerBG from \"../../static/partnerBG.png\";\n\nclass Login extends Component {\n constructor(props) {\n super(props);\n this.state = {\n userName: \"\",\n password: \"\",\n status: \"\",\n statusMessage: \"\",\n showSnackbar: false,\n alertMsg: \"\",\n alertSeverity: \"\",\n };\n }\n\n componentDidMount() {\n this.tokenLogin();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props && this.props.error) {\n this.setAlert(\"Invalid login credentials!\", \"error\");\n }\n }\n\n handleChange = (event) => {\n this.setState({ [event.target.name]: event.target.value });\n };\n\n closeSnackbar = () => {\n this.setState({ showSnackbar: false });\n };\n\n setAlert = (msg, severity) => {\n this.setState({\n alertMsg: msg,\n alertSeverity: severity,\n showSnackbar: true,\n });\n };\n\n tokenLogin() {\n const search = this.props.location.search;\n const params = new URLSearchParams(search);\n const token = params.get(\"token\");\n if (!token) return;\n\n this.props.loginWithToken(token);\n }\n\n render() {\n const { userName, password } = this.state;\n const { isAuthenticated, loginUser } = this.props;\n if (isAuthenticated) {\n return ;\n } else {\n return (\n
\n \n \n \n \n Affiliate Dashboard\n \n \n \n \n Sign In\n \n \n {\n if (event.key === \"Enter\")\n loginUser(userName, password);\n }}\n style={{\n marginBottom: \"20px\",\n backgroundColor: \"#F1F1F1\",\n borderRadius: \"8px\",\n width: \"calc(100% - 16px)\",\n padding: \"8px\",\n }}\n />\n\n {\n loginUser(userName, password);\n }}\n >\n Continue\n \n \n \n \n \n \n \n Don't have an account?{\" \"}\n \n Let's SignUp\n \n \n \n \n\n \n
\n );\n }\n }\n}\n\nfunction Signup() {\n return (\n <>\n \n OR{\" \"}\n \n \n Continue With Google\n \n \n \n \n Sign up for new account\n \n \n \n \n );\n}\n\nconst theme = createTheme({\n palette: {\n gray: {\n main: \"#bdbdbd\",\n darker: \"#616161\",\n },\n black: {\n main: \"#212121\",\n contrastText: \"#424242\",\n },\n },\n});\n\nexport default connect(\n (state) => ({\n isAuthenticated: state.login.isAuthenticated,\n isLoading: state.login.isLoading,\n error: state.login.error,\n errmsg: state.login.errmsg,\n }),\n { loginUser, loginWithToken }\n)(Login);\n","export default __webpack_public_path__ + \"static/media/f0d373c302b5c689e4445a1c3a9691a3.f0d373c3.svg\";","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n Button,\n IconButton,\n Snackbar,\n TextField,\n Checkbox,\n FormControlLabel,\n CircularProgress,\n} from \"@material-ui/core\";\nimport {\n Close,\n Facebook,\n FiberManualRecord,\n FileCopyOutlined,\n FilterNone,\n Send,\n VisibilityOutlined,\n} from \"@material-ui/icons\";\nimport { Alert, Autocomplete } from \"@material-ui/lab\";\n// import CallhippoLogo from \"../../static/callhippo_logo.png\";\nimport LOGO from \"../../static/logo.jpg\";\nimport WhatsAppLogo from \"../../static/f0d373c302b5c689e4445a1c3a9691a3.svg\";\nimport dialCodes from \"../../config/dialCodes\";\nimport axios from \"axios\";\nimport { URL } from \"../../config/config\";\nimport { timeZones } from \"../../config/timezone\";\n\nclass Preview extends Component {\n constructor(props) {\n super(props);\n this.state = {\n alert: false,\n alertMsg: \"\",\n alertSeverity: \"\",\n step: 1,\n hasRead: false,\n countryCode: \"+91\",\n contact: \"\",\n otp: \"\",\n otpSent: false,\n fetchLoading: false,\n partnerLogos: {},\n name: \"\",\n company: \"\",\n contact: \"\",\n email: \"\",\n timezone: \"\",\n };\n }\n\n launchWhatsAppSignup = async () => {\n // const { showSnackbar, assistantId, startConfetti } = this.props;\n const assistantId = \"123\";\n const { company, contact, email, timezone } = this.state;\n this.setState({ fbLoading: true });\n // trackEvent({\n // event: \"went_for_whatsapp_signup\",\n // properties: {},\n // });\n window.launchWhatsAppSignup && window.launchWhatsAppSignup();\n window.FB?.login &&\n window.FB.login(\n (response) => {\n if (response.authResponse) {\n // trackEvent({\n // event: \"whatsapp_access_token_success\",\n // properties: {},\n // });\n const accessToken = response.authResponse.accessToken;\n axios\n .post(URL + \"/api/submit-facebook-access-token\", {\n assistantId,\n accessToken,\n })\n .then((data) => {\n if (data.data?.success) {\n // trackEvent({\n // event: \"whatsapp_verification_success\",\n // properties: {},\n // });\n this.setState({\n alertMsg: \"WABA is Live!\",\n alert: true,\n alertSeverity: \"success\",\n });\n // showSnackbar({\n // alertMsg: \"WABA is Live!\",\n // severity: \"success\",\n // alertOpen: true,\n // });\n // startConfetti(assistantId, \"v3\");\n } else {\n // trackEvent({\n // event: \"whatsapp_verification_pending\",\n // properties: {},\n // });\n this.setState({\n alertMsg: \"WABA in progress! Please Sync after 10 minutes\",\n alert: true,\n alertSeverity: \"info\",\n });\n // showSnackbar({\n // alertMsg: \"WABA in progress! Please Sync after 10 minutes\",\n // severity: \"info\",\n // alertOpen: true,\n // });\n }\n })\n .catch((err) => {\n console.log(err);\n this.setState({\n alertMsg: err?.response?.data || \"Something went wrong!\",\n alert: true,\n alertSeverity: \"error\",\n });\n // showSnackbar({\n // alertMsg: err?.response?.data || \"Something went wrong!\",\n // severity: \"error\",\n // alertOpen: true,\n // });\n })\n .finally(() => {\n this.setState({\n fbLoading: false,\n });\n });\n } else {\n // trackEvent({\n // event: \"whatsapp_access_token_failed\",\n // properties: {},\n // });\n this.setState({\n alert: false,\n alertMsg: \"Connection Failed!\",\n alertSeverity: \"error\",\n });\n // showSnackbar({\n // alertMsg: \"Connection Failed!\",\n // severity: \"error\",\n // alert: true,\n // });\n this.setState({\n fbLoading: false,\n });\n }\n },\n {\n scope:\n \"business_management,whatsapp_business_management,public_profile,email\",\n extras: {\n feature: \"whatsapp_embedded_signup\",\n setup: {\n business: {\n name: company || \"\",\n email: email || \"\",\n phone: {\n code: 91,\n number: contact || \"\",\n },\n website: \"\",\n address: {\n streetAddress1: \"\",\n city: \"\",\n state: \"\",\n zipPostal: \"\",\n country: \"\",\n },\n timezone: `UTC${\n timeZones.find((i) => i.label.includes(timezone))?.value ||\n \"+05:30\"\n }`,\n },\n phone: {\n displayName: company || \"\",\n category: \"\",\n description: \"\",\n },\n },\n },\n }\n );\n };\n\n fetchPartnerLogos = () => {\n this.setState({ fetchLoading: true });\n axios\n .get(URL + `/api/${this.props.match.params.partnerId}/get-partner-logos`)\n .then((response) => {\n this.setState({ fetchLoading: false, partnerLogos: response.data });\n })\n .catch((error) => {\n console.error(error);\n this.setState({ fetchLoading: false });\n });\n };\n\n handleInput = (e) => {\n this.setState({\n [e.target.name]: e.target.value,\n });\n };\n\n closeSnackbar = () => {\n this.setState({ alert: false, alertMsg: \"\", alertSeverity: \"\" });\n };\n\n componentDidMount = () => {\n this.fetchPartnerLogos();\n };\n\n render() {\n const { classes, match } = this.props;\n const { step, hasRead, countryCode, contact, otpSent, otp } = this.state;\n const assistantId = match.params.projectId;\n return (\n
\n {/* Page name & description container */}\n {this.state.fetchLoading ? (\n \n \n \n ) : (\n <>\n \n \n \n \n \n AiSensy is a verified WhatsApp Solution Provider and has\n been given the right by Facebook/WhatsApp to grant their\n clients access to the WhatsApp Business API.\n \n \n \n \n \n \n {/* Layout */}\n \n \n \n \n \n \n \n {`Step ${step} of 2`}\n \n {step === 1 && (\n <>\n \n \n \n WhatsApp Business API Account Submission\n \n \n Please provide information about the company and phone\n number that you would like to connect to the WhatsApp\n Business API. Please make sure that your company\n follows Facebook's compliance policy.\n \n\n \n \n PERSONAL INFORMATION\n \n \n \n \n \n \n BUSINESS INFORMATION\n \n \n\n \n \n Terms & Conditions\n \n {\n this.setState({\n hasRead: e.target.checked,\n });\n }}\n color=\"primary\"\n />\n }\n label={\n \n I agree to the{\" \"}\n \n AiSensy Terms of Service\n \n \n }\n />\n \n }\n onClick={() => {\n // let hubUrl = window.location.origin + \"/facebook-verify\";\n // console.log(hubUrl);\n // const redirect = window.open(hubUrl, \"_blank\");\n // redirect.focus();\n this.launchWhatsAppSignup();\n // this.setState({\n // step: 2,\n // });\n }}\n style={{\n margin: \"24px 0\",\n fontSize: 18,\n color: \"white\",\n background: hasRead ? \"#1877F2\" : \"lightgrey\",\n fontWeight: 600,\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Connect to Facebook\n \n \n )}\n {step === 2 && (\n <>\n \n \n \n Configure WhatsApp Number\n \n \n Please provide information about the company and phone\n number that you would like to connect to the WhatsApp\n Business API. Please make sure that your company\n follows Facebook's compliance policy.\n \n\n \n\n \n i.dialCode)}\n onChange={(e, value, reason) => {\n this.setState({\n countryCode: value,\n });\n }}\n value={countryCode}\n renderInput={(params) => (\n \n )}\n />\n\n {\n this.setState({\n contact: e.target.value,\n });\n }}\n className={classes.phoneTextFieldRoot}\n />\n \n \n \n\n {otpSent && (\n <>\n \n {[1, 2, 3, 4].map((i) => (\n \n \n \n ))}\n \n \n\n \n Didn't received code?{\" \"}\n {\n this.setState({\n alertMsg: \"OTP Resent Successfully!\",\n alert: true,\n alertSeverity: \"success\",\n });\n }}\n >\n Regenerate\n \n \n \n )}\n\n \n {\n this.setState({\n otpSent: true,\n step: otpSent ? 3 : 2,\n alertMsg: \"OTP Sent Successfully!\",\n alert: otpSent ? false : true,\n alertSeverity: \"success\",\n });\n }}\n style={{\n margin: \"24px 0\",\n // fontSize: 18,\n // fontWeight: 600,\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n {otpSent ? \"Submit OTP\" : \"Verify Phone Number\"}\n \n \n \n )}\n {step === 3 && (\n <>\n \n \n \n Setup Complete\n \n\n \n\n \n \n \n }\n disabled={!hasRead}\n onClick={() => {\n this.setState({\n alertMsg: \"Message Sent Successfully!\",\n alert: true,\n alertSeverity: \"success\",\n });\n }}\n style={{\n margin: \"24px 0\",\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Send Test Message\n \n \n \n )}\n \n \n \n\n \n \n Powered⚡ by\n \n \n \n \"\"\n \n \n AiSensy\n \n \n \n \n \n )}\n \n \n {this.state.alertMsg}\n \n \n
\n );\n }\n}\n\nconst styles = (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n background: \"#e8ece1\",\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n position: \"fixed\",\n left: 0,\n },\n pageTitleContainer: {\n position: \"sticky\",\n zIndex: 100,\n top: 0,\n height: 70,\n boxSizing: \"border-box\",\n [theme.breakpoints.down(\"md\")]: {\n // paddingTop: \"40px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n // paddingTop: \"20px\",\n },\n },\n fullWidth: {\n width: \"100%\",\n background: \"#0a474c\",\n },\n primaryBackground: {\n background: \"rgb(70 20 134 / 15%)\",\n },\n container: {\n marginTop: 16,\n background: \"white\",\n borderRadius: 8,\n padding: \"24px 40px\",\n },\n viewOldButton: {\n \"&:hover\": {\n color: \"grey\",\n cursor: \"pointer\",\n },\n },\n TextField: {\n marginTop: 12,\n },\n codeTextFieldRoot: {\n width: \"80px\",\n padding: \"0 0 0 8px\",\n position: \"absolute\",\n zIndex: 1,\n marginTop: 6,\n },\n phoneTextFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px\",\n marginTop: \"4px\",\n marginBottom: \"20px\",\n \"& input\": { width: \"75%\", marginLeft: \"15%\" },\n },\n otpInputField: {\n background: \"transparent\",\n margin: \"auto\",\n display: \"flex\",\n bottom: \"60px\",\n left: \"33px\",\n maxWidth: \"300px\",\n \"& input\": {\n fontSize: \"24px\",\n letterSpacing: \"50px\",\n },\n },\n otpFieldOverlay: {\n height: \"60px\",\n width: \"10px\",\n background: \"white\",\n position: \"absolute\",\n right: \"calc(50% - 160px)\",\n zIndex: 1,\n },\n logo: {\n height: 40,\n },\n});\n\nexport default withStyles(styles)(Preview);\n","export default __webpack_public_path__ + \"static/media/9978094-new.5cc2de71.png\";","export default __webpack_public_path__ + \"static/media/AiSensy_Logo_Dark_PNG.4a604bb0.png\";","import React, { Component } from \"react\";\nimport axios from \"axios\";\nimport {\n Grid,\n Typography,\n withStyles,\n Box,\n CircularProgress,\n TextField,\n Button,\n Link,\n Snackbar,\n Tooltip,\n IconButton,\n Fade,\n InputAdornment,\n} from \"@material-ui/core\";\nimport { Autocomplete, Alert } from \"@material-ui/lab\";\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\nimport { connect } from \"react-redux\";\nimport { Redirect } from \"react-router-dom\";\nimport { loginUser } from \"../Login/loginstate\";\nimport leftImage from \"../../static/9978094-new.png\";\nimport logo from \"../../static/AiSensy_Logo_Dark_PNG.png\";\nimport { APIURL as url } from \"../../config/config\";\nimport dialCodes, { countryMap, isoMap } from \"../../config/dialCodes\";\n\nconst getflag = (langcode) => {\n var first = langcode.charCodeAt(0) + 127397;\n var second = langcode.charCodeAt(1) + 127397;\n var flag = `&#${first};&#${second};`;\n const x = document.createElement(\"p\");\n x.innerHTML = flag;\n return x.innerText;\n};\n\nconst styles = (theme) => ({\n root: {\n height: \"100vh\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n loginContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n margin: 0,\n },\n leftContainer: {\n backgroundColor: \"#cbe7e6\",\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"center\",\n justifyContent: \"center\",\n position: \"relative\",\n width: \"40%\",\n height: \"100vh\",\n overflow: \"hidden\",\n padding: \"0 20px\",\n boxSizing: \"border-box\",\n [theme.breakpoints.down(960)]: {\n display: \"none\",\n },\n },\n logoLink: {\n position: \"absolute\",\n top: 20,\n left: 20,\n },\n rightLogoLink: {\n position: \"absolute\",\n top: \"-1.5%\",\n left: 5,\n [theme.breakpoints.up(960)]: {\n display: \"none\",\n },\n },\n logo: {\n width: 250,\n [theme.breakpoints.down(960)]: {\n width: 150,\n },\n },\n leftImageContainer: {\n width: \"100%\",\n height: \"auto\",\n overflow: \"hidden\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexGrow: 1,\n position: \"relative\",\n },\n leftImage: {\n width: \"60%\",\n maxWidth: \"100%\",\n height: \"auto\",\n marginTop: \"5%\",\n position: \"relative\",\n },\n centeredWrapper: {\n display: \"flex\",\n justifyContent: \"center\",\n margin: \"24px 0 0\",\n alignItems: \"center\",\n width: \"100%\",\n },\n rightContainer: {\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n overflowY: \"auto\",\n height: \"100vh\",\n position: \"relative\",\n padding: \"20px\",\n width: \"60%\",\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n height: \"auto\",\n padding: \"10px\",\n },\n },\n formContainer: {\n position: \"relative\",\n width: \"100%\",\n maxWidth: \"400px\",\n alignItems: \"center\",\n padding: \"0 50px 50px 50px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n },\n },\n nextButtonContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: \"7%\",\n width: \"100%\",\n },\n nextButton: {\n width: \"100%\",\n },\n googleSignInButton: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n backgroundColor: \"#0563fa\",\n color: \"white\",\n textTransform: \"none\",\n },\n signInButton: {\n marginTop: theme.spacing(2),\n textTransform: \"none\",\n \"&.disabled\": {\n backgroundColor: \"#ddd\",\n color: \"#888\",\n },\n \"&.enabled\": {\n color: \"#fff\",\n backgroundColor: \"#0a474c\",\n },\n },\n orDivider: {\n display: \"flex\",\n alignItems: \"center\",\n textAlign: \"center\",\n margin: theme.spacing(2, 0),\n \"& span\": {\n flex: 1,\n borderBottom: \"1px solid #ccc\",\n },\n \"& span:first-child\": {\n marginRight: theme.spacing(1),\n },\n \"& span:last-child\": {\n marginLeft: theme.spacing(1),\n },\n },\n signUpLink: {\n position: \"absolute\",\n top: 20,\n right: 20,\n [theme.breakpoints.down(960)]: {\n position: \"absolute\",\n top: \"9%\",\n right: 20,\n },\n [theme.breakpoints.down(538)]: {\n position: \"absolute\",\n top: \"7%\",\n right: 20,\n marginBottom: \"2%\",\n },\n },\n welcomeText: {\n marginBottom: theme.spacing(1),\n [theme.breakpoints.down(538)]: {\n marginBottom: theme.spacing(1),\n marginTop: \"18%\",\n },\n },\n forgotPassword: {\n marginTop: theme.spacing(2),\n textAlign: \"center\",\n },\n resendOtpButton: {\n marginTop: theme.spacing(2),\n display: \"flex\",\n justifyContent: \"center\",\n },\n errorText: {\n color: \"red\",\n textAlign: \"center\",\n },\n phoneTextFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px\",\n marginTop: \"4px\",\n \"& input\": { width: \"calc(100% - 80px)\", marginLeft: \"80px\" },\n background: \"white\",\n border: \"2px solid grey\",\n },\n otpInput: {\n width: \"60px\",\n height: \"60px\",\n background: \"white\",\n padding: \"4px 6px\",\n fontSize: \"24px\",\n textAlign: \"center\",\n margin: \"0 5px\",\n border: \"1px solid #ccc\",\n borderRadius: \"4px\",\n },\n otpContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: theme.spacing(2),\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 2px\",\n marginTop: \"4px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n codeTextFieldRoot: {\n width: \"80px\",\n padding: \"0 0 0 14px\",\n position: \"absolute\",\n zIndex: 1,\n margin: \"10px 0 0 2px\",\n background: \"white\",\n \"& input\": {\n padding: \"10px 0 !important\",\n },\n \"& button\": {\n width: \"12px\",\n position: \"relative\",\n left: \"7px\",\n background: \"white\",\n borderRadius: 0,\n \"&:hover\": {\n background: \"white\",\n },\n },\n \"& div\": {\n paddingRight: \"0px !important\",\n },\n },\n textFieldPopper: {\n [theme.breakpoints.down(\"md\")]: {\n left: \"12px !important\",\n minWidth: \"calc(100% - 35px)\",\n },\n [theme.breakpoints.up(\"md\")]: {\n left: \"calc(12.5vw - 16px) !important\",\n minWidth: \"calc(25vw + 54px)\",\n },\n },\n textFieldRoot: {\n backgroundColor: \"#f1f1f1\",\n outline: \"none\",\n border: \"none\",\n borderRadius: \"8px\",\n width: \"100%\",\n marginBottom: theme.spacing(3),\n padding: \"14px 15px\",\n boxShadow: \"none\",\n boxSizing: \"border-box\",\n fontFamily: \"Roboto, sans-serif\",\n fontSize: \"15px\",\n fontWeight: 500,\n },\n otpButtonContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: theme.spacing(3),\n },\n passwordFieldContainer: {\n alignItems: \"center\",\n position: \"relative\",\n width: \"100%\",\n },\n passwordTooltip: {\n position: \"absolute\",\n right: 10,\n },\n passwordField: {\n flex: 1,\n width: \"100%\",\n },\n passwordIcon: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"-30px\",\n top: \"20px\",\n },\n passwordIconEmail: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"2%\",\n top: \"48%\",\n },\n passwordIconName: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"2%\",\n top: \"11%\",\n },\n passwordIconCompanyName: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"2%\",\n top: \"23%\",\n },\n passwordIconContact: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"2%\",\n top: \"49%\",\n },\n errorSnackbar: {\n backgroundColor: theme.palette.error.main,\n },\n});\n\nclass AddAffiliatePage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n step: 1,\n alertType: \"\",\n alertMsg: \"\",\n formValues: {\n name: \"\",\n country: \"\",\n state: \"\",\n city: \"\",\n companyName: \"\",\n contact: \"\",\n email: \"\",\n userName: \"\",\n loginPassword: \"\",\n type: \"Affiliate\",\n planType: \"tier0\",\n timezone: \"\",\n currency: \"\",\n partnershipFee: \"0\",\n otp: [\"\", \"\", \"\", \"\"],\n facebookAds: \"\",\n companySize: \"\",\n industry: [],\n websiteURL: \"\",\n confirmPassword: \"\",\n },\n errors: {\n email: \"\",\n userName: \"\",\n loginPassword: \"\",\n otp: \"\",\n confirmPassword: \"\",\n name: \"\",\n contact: \"\",\n companyName: \"\",\n },\n passwordValidation: {\n length: false,\n lowercase: false,\n number: false,\n specialChar: false,\n },\n showPasswordTooltip: false,\n generatedOtp: \"\",\n isOtpVerified: false,\n otpResendTime: 30,\n canResendOtp: false,\n countryCode: \"+91\",\n contact: \"\",\n snackbarOpen: false,\n snackbarMessage: \"\",\n isLoading: false,\n snackbarError: false,\n showPassword: false,\n showConfirmPassword: false,\n };\n }\n\n handleChange = (event, value, name) => {\n const { formValues, errors, passwordValidation } = this.state;\n formValues[name] = value;\n errors[name] = \"\";\n\n if (name === \"loginPassword\" || name === \"confirmPassword\") {\n const length = formValues.loginPassword.length >= 8;\n const lowercase = /[a-z]/.test(formValues.loginPassword);\n const number = /\\d/.test(formValues.loginPassword);\n const specialChar = /[!@#$%^&*(),.?\":{}|<>]/.test(\n formValues.loginPassword\n );\n\n passwordValidation.length = length;\n passwordValidation.lowercase = lowercase;\n passwordValidation.number = number;\n passwordValidation.specialChar = specialChar;\n\n errors.loginPassword =\n !length || !lowercase || !number || !specialChar\n ? \"Password must be 8 characters long and include at least 1 lowercase letter, 1 number, and 1 special character\"\n : \"\";\n\n // Validate confirm password\n errors.confirmPassword =\n formValues.confirmPassword !== formValues.loginPassword\n ? \"Passwords do not match\"\n : \"\";\n }\n\n if (name === \"email\" && !this.validateEmail(value)) {\n errors.email = \"Enter a valid email address\";\n }\n\n if (name === \"name\" && !/^[A-Za-z\\s]+$/.test(value)) {\n errors.name = \"Name should contain only alphabets and spaces\";\n }\n\n if (name === \"contact\" && (!/^\\d+$/.test(value) || value.length <= 7)) {\n errors.contact = \"Contact number should be 7 to 10 digits long\";\n }\n if (name === \"companyName\" && value.length === 0) {\n errors.companyName = \"Company Name can't be empty\";\n }\n this.setState({ formValues, errors, passwordValidation });\n };\n\n handleInputChange = (event) => {\n const { name, value } = event.target;\n const { formValues, errors } = this.state;\n\n if (name === \"contact\") {\n if (/^\\d*$/.test(value)) {\n // Only allow digits\n formValues[name] = value;\n if (value.length <= 7) {\n errors.contact = \"Contact number should be 7 to 10 digits long\";\n } else {\n errors.contact = \"\";\n }\n }\n } else {\n formValues[name] = value;\n }\n\n this.setState({ formValues, errors });\n };\n\n handleOtpChange = (index, event) => {\n const otp = [...this.state.formValues.otp];\n otp[index] = event.target.value;\n if (event.target.value.length === 1 && index < 3) {\n this[`otpInput${index + 1}`].focus();\n }\n this.setState({ formValues: { ...this.state.formValues, otp } });\n };\n\n handleNext = () => {\n const { step } = this.state;\n if (this.isStepComplete()) {\n if (step === 1) {\n this.generateOtp();\n this.setState({ isLoading: true });\n }\n }\n };\n\n handleBack = () => {\n this.setState((prevState) => ({ step: prevState.step - 1 }));\n };\n\n handleSubmit = () => {\n const { formValues, countryCode } = this.state;\n const { userName, loginPassword, email, contact } = formValues;\n const updatedFormValues = { ...formValues, contact: countryCode + contact };\n\n axios\n .post(url + \"/affiliates/create-affiliate\", updatedFormValues)\n .then((response) => {\n if (response.status === 200) {\n this.props.loginUser(userName, loginPassword, email);\n }\n })\n .catch((error) => {\n if (error.response) {\n if (error.response.data.message === \"Email already in use\") {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage: \"Email already in use\",\n snackbarError: true,\n });\n } else if (error.response.data.message === \"User blocked\") {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage:\n \"You have tried too many times, please contact customer support\",\n snackbarError: true,\n });\n }\n } else {\n console.error(\"There was an error!\", error);\n }\n });\n };\n\n generateOtp = () => {\n const { email, name, contact } = this.state.formValues;\n axios\n .post(url + \"/affiliates/send-otp\", { email, fullName: name, contact })\n .then((response) => {\n if (response.data.success) {\n this.setState(\n {\n isLoading: false,\n generatedOtp: response.data.otp,\n isOtpVerified: false,\n otpResendTime: 30,\n canResendOtp: false,\n },\n () => {\n this.startOtpTimer();\n this.setState((prevState) => ({ step: prevState.step + 1 })); // Move to OTP step\n }\n );\n } else if (response.data.blocked) {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage:\n \"You have tried too many times, please contact customer support\",\n isLoading: false,\n snackbarError: true,\n });\n } else {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage: \"Error Generating OTP\",\n isLoading: false,\n snackbarError: true,\n });\n console.error(\"Error generating OTP\");\n }\n })\n .catch((error) => {\n if (error.response) {\n if (error.response?.data?.message === \"Email already in use!\") {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage: \"Email already in use\",\n isLoading: false,\n snackbarError: true,\n });\n } else if (error.response?.data?.message === \"blocked\") {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage:\n \"You have tried too many times, please contact customer support\",\n isLoading: false,\n snackbarError: true,\n });\n }\n } else {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage: \"There was an error generating otp\",\n isLoading: false,\n snackbarError: true,\n });\n console.error(\"There was an error generating the OTP!\", error);\n }\n });\n };\n\n generateResendOtp = () => {\n const { email, name, contact } = this.state.formValues;\n axios\n .post(url + \"/affiliates/send-otp\", { email, fullName: name, contact })\n .then((response) => {\n if (response.data.success) {\n this.setState(\n {\n isLoading: false,\n generatedOtp: response.data.otp,\n isOtpVerified: false,\n otpResendTime: 30,\n canResendOtp: false,\n },\n () => {\n this.startOtpTimer();\n }\n );\n } else if (response.data.blocked) {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage:\n \"You have tried too many times, please contact customer support\",\n isLoading: false,\n snackbarError: true,\n });\n } else {\n console.error(\"Error generating OTP\");\n }\n })\n .catch((error) => {\n if (error.response) {\n if (error.response.data === \"Email already in use!\") {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage: \"Email already in use\",\n isLoading: false,\n snackbarError: true,\n });\n } else if (error.response.data === \"blocked\") {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage:\n \"You have tried too many times, please contact customer support\",\n isLoading: false,\n snackbarError: true,\n });\n }\n } else {\n console.error(\"There was an error generating the OTP!\", error);\n }\n });\n };\n\n startOtpTimer = () => {\n this.otpTimer = setInterval(() => {\n this.setState((prevState) => {\n if (prevState.otpResendTime <= 1) {\n clearInterval(this.otpTimer);\n return { otpResendTime: 0, canResendOtp: true };\n }\n return { otpResendTime: prevState.otpResendTime - 1 };\n });\n }, 1000);\n };\n\n verifyOtp = () => {\n const { formValues } = this.state;\n const { email, otp } = formValues;\n axios\n .post(url + \"/affiliates/verify-otp\", {\n email,\n otp: formValues.otp.join(\"\"),\n })\n .then((response) => {\n if (response.data) {\n this.setState(\n { isOtpVerified: true, errors: { ...this.state.errors, otp: \"\" } },\n this.handleSubmit\n );\n } else {\n this.setState({\n isOtpVerified: false,\n errors: {\n ...this.state.errors,\n otp: \"Invalid OTP. Please try again.\",\n },\n });\n }\n })\n .catch((error) => {\n console.error(\"There was an error verifying the OTP!\", error);\n this.setState({\n isOtpVerified: false,\n errors: {\n ...this.state.errors,\n otp: \"An error occurred. Please try again.\",\n },\n });\n });\n };\n\n validateEmail = (email) => {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n };\n\n isStepComplete = () => {\n const { step, formValues, errors } = this.state;\n const stepFields = {\n 1: [\n \"name\",\n \"companyName\",\n \"contact\",\n \"email\",\n \"userName\",\n \"loginPassword\",\n ],\n 2: [\"otp\"],\n };\n\n const areFieldsFilled = stepFields[step]\n ? stepFields[step].every((field) => formValues[field])\n : true;\n const areFieldsValid = Object.values(errors).every((error) => !error);\n\n if (step === 1) {\n return areFieldsFilled && areFieldsValid;\n }\n\n return areFieldsFilled && areFieldsValid;\n };\n\n handleClickShowPassword = () => {\n this.setState((prevState) => ({\n showPassword: !prevState.showPassword,\n }));\n };\n\n handleClickShowConfirmPassword = () => {\n this.setState((prevState) => ({\n showConfirmPassword: !prevState.showConfirmPassword,\n }));\n };\n\n renderStep = () => {\n const {\n step,\n formValues,\n errors,\n passwordValidation,\n showPasswordTooltip,\n otpResendTime,\n canResendOtp,\n countryCode,\n showPassword,\n showConfirmPassword,\n } = this.state;\n const { classes } = this.props;\n\n const passwordTooltipContent = (\n
\n \n - Must be 8 characters long\n \n \n - At least 1 lowercase letter\n \n \n - At least 1 number\n \n \n - At least 1 special character\n \n
\n );\n\n switch (step) {\n case 1:\n return (\n \n \n \n \n this.handleChange(event, value, \"name\")\n }\n renderInput={(params) => (\n \n \n \n \n \n ),\n }}\n />\n )}\n />\n \n \n \n this.handleChange(event, value, \"companyName\")\n }\n renderInput={(params) => (\n \n \n \n \n \n ),\n }}\n />\n )}\n />\n \n \n
\n
\n i.dialCode)}\n classes={{ popper: classes.textFieldPopper }}\n getOptionLabel={(option) => {\n return `${getflag(isoMap[option])} ${option} ${\n countryMap[option.substring(1)]\n }`;\n }}\n onChange={(e, value, reason) => {\n this.setState({\n countryCode: value,\n });\n }}\n value={countryCode}\n renderInput={(params) => (\n \n )}\n />\n this.handleInputChange(e)}\n value={formValues.contact}\n className={classes.phoneTextFieldRoot}\n InputProps={{\n endAdornment: errors.contact && (\n \n \n \n \n \n ),\n }}\n />\n
\n
\n \n {\n this.handleChange(event, value, \"email\");\n this.handleChange(event, value, \"userName\"); // Set both email and username\n }}\n renderInput={(params) => (\n \n \n \n \n \n ),\n }}\n />\n )}\n />\n \n \n \n this.handleChange(event, value, \"loginPassword\")\n }\n renderInput={(params) => (\n \n {errors.loginPassword && (\n \n \n \n )}\n \n this.setState({ showPasswordTooltip: true })\n }\n onMouseLeave={() =>\n this.setState({ showPasswordTooltip: false })\n }\n onClick={this.handleClickShowPassword}\n >\n {showPassword ? (\n \n ) : (\n \n )}\n \n \n ),\n }}\n />\n )}\n />\n \n \n \n this.handleChange(event, value, \"confirmPassword\")\n }\n renderInput={(params) => (\n \n {errors.confirmPassword && (\n \n \n \n )}\n \n {showConfirmPassword ? (\n \n ) : (\n \n )}\n \n \n ),\n }}\n />\n )}\n />\n \n
\n
\n );\n case 2:\n return (\n \n \n \n {[0, 1, 2, 3].map((index) => (\n this.handleOtpChange(index, event)}\n className={classes.otpInput}\n inputRef={(input) => (this[`otpInput${index}`] = input)}\n />\n ))}\n \n \n \n OTP sent to {formValues.email} Resend OTP after{\" \"}\n {`00:${otpResendTime < 10 ? \"0\" : \"\"}${otpResendTime}`}\n \n {otpResendTime === 0 ? (\n \n Didn't receive the code?{\" \"}\n \n Resend OTP\n \n \n ) : null}\n \n \n \n );\n default:\n return null;\n }\n };\n\n handleSnackbarClose = () => {\n this.setState({ snackbarOpen: false, snackbarError: false });\n };\n\n render() {\n const { isAuthenticated, classes } = this.props;\n const { step, formValues, snackbarOpen, snackbarMessage, snackbarError } =\n this.state;\n\n if (isAuthenticated) {\n return ;\n } else {\n return (\n
\n \n \n \n \n \"AiSensy\n \n \n AiSensy Affiliate Dashboard\n \n \n Start with 20% commission and Grow More !!!\n \n \n \n \n\n \n Trusted by 50000 + Brands\n \n \n \n\n \n \n \"AiSensy\n \n
\n \n Already a member ?{\" \"}\n \n Log in\n \n \n
\n
\n \n Create Your AiSensy Affiliate Account\n \n \n Fill in the details below to complete your signup.\n \n
\n
\n \n \n
{this.renderStep()}
\n
\n \n {step > 1 && (\n \n Back\n \n )}\n {step === 2 ? (\n \n Verify OTP\n \n ) : (\n \n {this.state.isLoading ? (\n <>\n Sending OTP \n \n \n ) : (\n \"Next \"\n )}\n \n )}\n
\n
\n \n \n \n \n \n {this.state.snackbarMessage}\n \n \n \n );\n }\n }\n}\n\nconst mapDispatchToProps = {\n loginUser,\n};\n\nexport default connect(\n (state) => ({\n isAuthenticated: state.login.isAuthenticated,\n isLoading: state.login.isLoading,\n error: state.login.error,\n errmsg: state.login.errmsg,\n }),\n mapDispatchToProps\n)(withStyles(styles)(AddAffiliatePage));\n","import React, { Component } from \"react\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n Button,\n TextField,\n Link,\n InputAdornment,\n Tooltip,\n IconButton,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n CircularProgress,\n} from \"@material-ui/core\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\nimport axios from \"axios\";\nimport { APIURL as url } from \"../../config/config\";\n\nconst styles = (theme) => ({\n formContainer: {\n width: \"100%\",\n maxWidth: 400,\n padding: \"0 50px 50px 0\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n },\n },\n backToLoginContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginTop: theme.spacing(2),\n },\n nextButtonContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: theme.spacing(3),\n width: \"100%\",\n },\n nextButton: {\n width: \"100%\",\n },\n resetPasswordButton: {\n width: \"100%\",\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 2px\",\n marginTop: \"4px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n forgotPassword: {\n marginTop: theme.spacing(2),\n textAlign: \"center\",\n },\n otpInput: {\n width: \"60px\",\n height: \"60px\",\n background: \"white\",\n padding: \"4px 6px\",\n fontSize: \"24px\",\n textAlign: \"center\",\n margin: \"0 5px\",\n border: \"1px solid #ccc\",\n borderRadius: \"4px\",\n },\n otpContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: theme.spacing(2),\n },\n passwordFieldContainer: {\n alignItems: \"center\",\n position: \"relative\",\n width: \"100%\",\n },\n});\n\nclass ResetPassword extends Component {\n constructor(props) {\n super(props);\n this.state = {\n step: 1,\n formValues: {\n email: \"\",\n loginPassword: \"\",\n confirmPassword: \"\",\n otp: [\"\", \"\", \"\", \"\"],\n },\n errors: {\n email: \"\",\n loginPassword: \"\",\n confirmPassword: \"\",\n otp: \"\",\n },\n showPassword: false,\n showConfirmPassword: false,\n successDialogOpen: false,\n isSubmitting: false,\n };\n }\n\n handleInputChange = (event) => {\n const { name, value } = event.target;\n this.setState((prevState) => ({\n formValues: {\n ...prevState.formValues,\n [name]: value,\n },\n errors: {\n ...prevState.errors,\n [name]: \"\",\n },\n }));\n };\n\n handleOtpChange = (index, event) => {\n const otp = [...this.state.formValues.otp];\n otp[index] = event.target.value;\n if (event.target.value.length === 1 && index < 3) {\n this[`otpInput${index + 1}`].focus();\n }\n this.setState((prevState) => ({\n formValues: {\n ...prevState.formValues,\n otp,\n },\n }));\n };\n\n handleNext = () => {\n const { step } = this.state;\n if (step === 1) {\n this.searchAccount();\n } else {\n this.setState({ step: step + 1 });\n }\n };\n\n handleBack = () => {\n const { step } = this.state;\n this.setState({ step: step - 1 });\n };\n\n handleVerifyOtp = () => {\n const { formValues } = this.state;\n axios\n .post(url + \"/affiliates/verify-otp\", {\n email: formValues.email,\n otp: formValues.otp.join(\"\"),\n })\n .then((response) => {\n if (response.data) {\n this.setState({ step: 4 });\n } else {\n this.setState({\n showSnackbar: true,\n snackbarMessage: \"Invalid OTP. Please try again.\",\n });\n }\n })\n .catch((error) => {\n console.error(\"There was an error verifying the OTP!\", error);\n this.setState({\n showSnackbar: true,\n snackbarMessage: \"Invalid OTP. Please try again.\",\n });\n });\n };\n\n handleSubmit = () => {\n const { formValues } = this.state;\n this.setState({ isSubmitting: true });\n axios\n .post(url + \"/affiliates/reset-password\", formValues)\n .then((response) => {\n if (response.status === 200) {\n this.setState({ successDialogOpen: true });\n }\n })\n .finally(() => {\n this.setState({ isSubmitting: false });\n });\n };\n\n searchAccount = () => {\n const { formValues } = this.state;\n axios\n .post(url + \"/affiliates/search-account\", {\n forgottenDetail: formValues.email,\n })\n .then((response) => {\n if (response.data.email) {\n this.setState({ step: 2 });\n }\n })\n .catch((error) => {\n this.setState((prevState) => ({\n errors: {\n ...prevState.errors,\n email: \"Sorry! No account found. Please contact your project owner.\",\n },\n }));\n });\n };\n\n generateOtp = () => {\n const { formValues } = this.state;\n this.handleNext();\n axios\n .post(url + \"/affiliates/reset-password-otp\", { email: formValues.email })\n .then((response) => {\n if (response.data.success) {\n this.setState({ step: 3 });\n this.startOtpTimer();\n }\n })\n .catch((error) => {\n console.error(\"There was an error generating the OTP!\", error);\n });\n };\n\n generateResendOtp = () => {\n const { formValues } = this.state;\n axios\n .post(url + \"/affiliates/reset-password-otp\", { email: formValues.email })\n .then((response) => {\n if (response.data.success) {\n this.setState({ step: 3 });\n this.startOtpTimer();\n }\n })\n .catch((error) => {\n console.error(\"There was an error generating the OTP!\", error);\n });\n };\n\n handleCloseSuccessDialog = () => {\n window.location.href = \"/login\";\n };\n\n renderStep = () => {\n const { step, formValues, errors, isSubmitting } = this.state;\n const { classes } = this.props;\n\n switch (step) {\n case 1:\n return (\n \n \n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n Enter your email to help us find your account.\n \n\n \n \n Search Account\n \n \n \n \n Back to Login\n \n \n \n );\n case 2:\n return (\n \n \n \n Account Verification\n \n \n Yay! An account has been found. Please verify email for reset\n password. OTP will be sent over email.\n \n \n \n \n Send OTP\n \n \n \n \n Back to Login\n \n \n \n );\n case 3:\n return (\n \n \n \n OTP sent over email.\n \n \n \n {[0, 1, 2, 3].map((index) => (\n this.handleOtpChange(index, event)}\n className={classes.otpInput}\n inputRef={(input) => (this[`otpInput${index}`] = input)}\n />\n ))}\n \n \n \n Didn't receive code?{\" \"}\n Resend OTP\n \n \n \n otp !== \"\")}\n className={classes.nextButton}\n >\n Verify OTP\n \n \n \n \n Back to Login\n \n \n \n );\n case 4:\n return (\n \n \n \n \n this.setState({\n showPassword: !this.state.showPassword,\n })\n }\n >\n {this.state.showPassword ? (\n \n ) : (\n \n )}\n \n \n ),\n }}\n />\n \n \n \n \n this.setState({\n showConfirmPassword: !this.state.showConfirmPassword,\n })\n }\n >\n {this.state.showConfirmPassword ? (\n \n ) : (\n \n )}\n \n \n ),\n }}\n />\n \n \n \n {isSubmitting ? : \"Reset Password\"}\n \n \n \n \n Back to Login\n \n \n \n );\n default:\n return null;\n }\n };\n\n render() {\n const { successDialogOpen } = this.state;\n\n return (\n \n {this.renderStep()}\n \n Password Reset Successful\n \n \n Your password has been successfully reset. Please log in with your\n new password.\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default withStyles(styles)(ResetPassword);\n","import React from \"react\";\nimport { Box, Typography, withStyles } from \"@material-ui/core\";\n\nconst styles = (theme) => ({\n welcomeTextRightContainer: {\n marginBottom: \"5px\",\n width: \"100%\",\n textAlign: \"left\",\n },\n});\n\nconst WelcomeText = ({ classes }) => (\n \n \n \n WELCOME BACK\n \n \n Log in to AiSensy Affiliate Account\n \n \n \n);\n\nexport default withStyles(styles)(WelcomeText);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { loginUser, loginWithToken } from \"./loginstate\";\nimport {\n withStyles,\n Grid,\n Box,\n Typography,\n Button,\n Link,\n TextField,\n} from \"@material-ui/core\";\nimport { Redirect } from \"react-router-dom\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport Toast from \"../../commons/Toast/Toast\";\nimport leftImage from \"../../static/9978094-new.png\";\nimport logo from \"../../static/AiSensy_Logo_Dark_PNG.png\";\nimport WelcomeTextComponent from \"./welcomeTextComponent\";\nimport ResetPassword from \"../forgotPassword/forgotPassword\";\n\nconst styles = (theme) => ({\n root: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"100vh\",\n [theme.breakpoints.down(767)]: {\n padding: \"3%\",\n },\n },\n loginContainer: {\n display: \"flex\",\n flexWrap: \"wrap\",\n width: \"100%\",\n margin: 0,\n },\n leftContainer: {\n backgroundColor: \"#cbe7e6\",\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"center\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"40%\",\n height: \"100vh\",\n position: \"relative\",\n padding: \"0 20px\",\n boxSizing: \"border-box\",\n [theme.breakpoints.down(767)]: {\n display: \"none\",\n },\n },\n logoLink: {\n position: \"absolute\",\n top: 20,\n left: 20,\n },\n rightLogoLink: {\n width: \"100%\",\n position: \"absolute\",\n top: \"-1.5%\",\n left: \"-5%\",\n [theme.breakpoints.up(767)]: {\n display: \"none\",\n },\n },\n logo: {\n width: 250,\n [theme.breakpoints.down(767)]: {\n width: 150,\n },\n },\n leftImageContainer: {\n width: \"100%\",\n height: \"auto\",\n overflow: \"hidden\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexGrow: 1,\n position: \"relative\",\n },\n leftImage: {\n width: \"60%\",\n maxWidth: \"100%\",\n height: \"auto\",\n marginTop: \"5%\",\n position: \"relative\",\n },\n rightContainer: {\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n overflowY: \"auto\",\n height: \"100vh\",\n position: \"relative\",\n padding: \"20px\",\n width: \"60%\",\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n padding: \"10px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n padding: \"0px\",\n },\n },\n formContainer: {\n width: \"100%\",\n maxWidth: 400,\n padding: \"0 0 50px\",\n marginTop: \"5%\",\n height: \"50vh\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"0px\",\n },\n },\n signUpLink: {\n position: \"absolute\",\n top: 20,\n right: 20,\n [theme.breakpoints.down(767)]: {\n position: \"absolute\",\n top: \"9%\",\n right: 20,\n },\n },\n welcomeText: {\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(1),\n },\n welcomeTextContainer: {\n width: \"100%\",\n textAlign: \"center\",\n marginBottom: theme.spacing(4),\n [theme.breakpoints.down(767)]: {\n marginBottom: theme.spacing(2),\n },\n },\n nextButtonContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: theme.spacing(3),\n width: \"100%\",\n },\n nextButton: {\n width: \"100%\",\n },\n forgotPassword: {\n marginTop: theme.spacing(2),\n textAlign: \"center\",\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 2px\",\n marginTop: \"4px\",\n background: \"white\",\n marginBottom: \"10px\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n});\n\n\nclass newLogin extends Component {\n constructor(props) {\n super(props);\n this.state = {\n username: \"\",\n password: \"\",\n status: \"\",\n statusMessage: \"\",\n showSnackbar: false,\n alertMsg: \"\",\n alertSeverity: \"\",\n forgotPassword: false,\n };\n }\n\n componentDidMount() {\n this.tokenLogin();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props && this.props.error) {\n this.setAlert(\"Invalid login credentials!\", \"error\");\n }\n }\n\n handleChange = (event, value, name) => {\n this.setState({ [name]: value });\n };\n\n closeSnackbar = () => {\n this.setState({ showSnackbar: false });\n };\n\n setAlert = (msg, severity) => {\n this.setState({\n alertMsg: msg,\n alertSeverity: severity,\n showSnackbar: true,\n });\n };\n\n tokenLogin() {\n const search = this.props.location.search;\n const params = new URLSearchParams(search);\n const token = params.get(\"token\");\n if (!token) return;\n\n this.props.loginWithToken(token);\n }\n\n handleSubmit = (event) => {\n event.preventDefault();\n const { username, password } = this.state;\n this.props.loginUser(username, password);\n };\n\n handleForgotPassword = () => {\n this.setState({ forgotPassword: true });\n };\n\n handleBackToLogin = () => {\n this.setState({ forgotPassword: false });\n };\n\n render() {\n const { classes, isAuthenticated } = this.props;\n const {\n username,\n password,\n showSnackbar,\n alertMsg,\n alertSeverity,\n forgotPassword,\n } = this.state;\n const isFormValid = username && password;\n\n if (isAuthenticated) {\n return ;\n }\n\n return (\n
\n \n \n \n \n \"AiSensy\n \n \n AiSensy Affiliate Dashboard\n \n \n Start with 20% commission and Grow More !!!\n \n \n \n \n\n \n Trusted by 50000 + Brands\n \n \n \n \n \n \n \"AiSensy\n \n \n \n \n Not a member yet?{\" \"}\n \n Sign up\n \n \n \n\n \n \n \n \n {forgotPassword ? (\n \n ) : (\n \n \n this.handleChange(event, value, \"username\")\n }\n renderInput={(params) => (\n \n )}\n />\n \n this.handleChange(event, value, \"password\")\n }\n renderInput={(params) => (\n \n )}\n />\n \n Continue\n \n \n \n Forgot Password?\n \n \n \n )}\n \n \n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n isAuthenticated: state.login.isAuthenticated,\n error: state.login.error,\n});\n\nexport default connect(mapStateToProps, { loginUser, loginWithToken })(\n withStyles(styles)(newLogin)\n);\n","import React, { Component } from \"react\";\nimport axios from \"axios\";\nimport {\n Grid,\n Typography,\n withStyles,\n Box,\n CircularProgress,\n TextField,\n Button,\n Link,\n Snackbar,\n Tooltip,\n IconButton,\n Fade,\n InputAdornment,\n} from \"@material-ui/core\";\nimport { Autocomplete, Alert } from \"@material-ui/lab\";\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\nimport { connect } from \"react-redux\";\nimport { Redirect } from \"react-router-dom\";\nimport { loginUser } from \"../Login/loginstate\";\nimport leftImage from \"../../static/9978094-new.png\";\nimport logo from \"../../static/AiSensy_Logo_Dark_PNG.png\";\nimport { APIURL as url } from \"../../config/config\";\nimport dialCodes, { countryMap, isoMap } from \"../../config/dialCodes\";\n\nconst getflag = (langcode) => {\n var first = langcode.charCodeAt(0) + 127397;\n var second = langcode.charCodeAt(1) + 127397;\n var flag = `&#${first};&#${second};`;\n const x = document.createElement(\"p\");\n x.innerHTML = flag;\n return x.innerText;\n};\n\nconst styles = (theme) => ({\n root: {\n height: \"100vh\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n loginContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n margin: 0,\n },\n leftContainer: {\n backgroundColor: \"#cbe7e6\",\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"center\",\n justifyContent: \"center\",\n position: \"relative\",\n width: \"40%\",\n height: \"100vh\",\n overflow: \"hidden\",\n padding: \"0 20px\",\n boxSizing: \"border-box\",\n [theme.breakpoints.down(960)]: {\n display: \"none\",\n },\n },\n logoLink: {\n position: \"absolute\",\n top: 20,\n left: 20,\n },\n rightLogoLink: {\n position: \"absolute\",\n top: \"-1.5%\",\n left: 5,\n [theme.breakpoints.up(960)]: {\n display: \"none\",\n },\n },\n logo: {\n width: 250,\n [theme.breakpoints.down(960)]: {\n width: 150,\n },\n },\n leftImageContainer: {\n width: \"100%\",\n height: \"auto\",\n overflow: \"hidden\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexGrow: 1,\n position: \"relative\",\n },\n leftImage: {\n width: \"60%\",\n maxWidth: \"100%\",\n height: \"auto\",\n marginTop: \"5%\",\n position: \"relative\",\n },\n centeredWrapper: {\n display: \"flex\",\n justifyContent: \"center\",\n margin: \"24px 0 0\",\n alignItems: \"center\",\n width: \"100%\",\n },\n rightContainer: {\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n overflowY: \"auto\",\n height: \"100vh\",\n position: \"relative\",\n padding: \"20px\",\n width: \"60%\",\n [theme.breakpoints.down(\"md\")]: {\n width: \"100%\",\n height: \"auto\",\n padding: \"10px\",\n },\n },\n formContainer: {\n position: \"relative\",\n width: \"100%\",\n maxWidth: \"400px\",\n alignItems: \"center\",\n padding: \"0 50px 50px 50px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n },\n },\n nextButtonContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: \"7%\",\n width: \"100%\",\n },\n nextButton: {\n width: \"100%\",\n },\n googleSignInButton: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n backgroundColor: \"#0563fa\",\n color: \"white\",\n textTransform: \"none\",\n },\n signInButton: {\n marginTop: theme.spacing(2),\n textTransform: \"none\",\n \"&.disabled\": {\n backgroundColor: \"#ddd\",\n color: \"#888\",\n },\n \"&.enabled\": {\n color: \"#fff\",\n backgroundColor: \"#0a474c\",\n },\n },\n orDivider: {\n display: \"flex\",\n alignItems: \"center\",\n textAlign: \"center\",\n margin: theme.spacing(2, 0),\n \"& span\": {\n flex: 1,\n borderBottom: \"1px solid #ccc\",\n },\n \"& span:first-child\": {\n marginRight: theme.spacing(1),\n },\n \"& span:last-child\": {\n marginLeft: theme.spacing(1),\n },\n },\n signUpLink: {\n position: \"absolute\",\n top: 20,\n right: 20,\n [theme.breakpoints.down(960)]: {\n position: \"absolute\",\n top: \"9%\",\n right: 20,\n },\n [theme.breakpoints.down(538)]: {\n position: \"absolute\",\n top: \"7%\",\n right: 20,\n marginBottom: \"2%\",\n },\n },\n welcomeText: {\n marginBottom: theme.spacing(1),\n [theme.breakpoints.down(538)]: {\n marginBottom: theme.spacing(1),\n marginTop: \"18%\",\n },\n },\n forgotPassword: {\n marginTop: theme.spacing(2),\n textAlign: \"center\",\n },\n resendOtpButton: {\n marginTop: theme.spacing(2),\n display: \"flex\",\n justifyContent: \"center\",\n },\n errorText: {\n color: \"red\",\n textAlign: \"center\",\n },\n phoneTextFieldRoot: {\n width: \"100%\",\n padding: \"8px 20px\",\n marginTop: \"4px\",\n \"& input\": { width: \"calc(100% - 80px)\", marginLeft: \"80px\" },\n background: \"white\",\n border: \"2px solid grey\",\n },\n otpInput: {\n width: \"60px\",\n height: \"60px\",\n background: \"white\",\n padding: \"4px 6px\",\n fontSize: \"24px\",\n textAlign: \"center\",\n margin: \"0 5px\",\n border: \"1px solid #ccc\",\n borderRadius: \"4px\",\n },\n otpContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: theme.spacing(2),\n },\n textFieldRootAutocomplete: {\n width: \"100%\",\n padding: \"2px 2px\",\n marginTop: \"4px\",\n background: \"white\",\n border: \"2px solid grey\",\n \"& label\": {\n background: \"white\",\n color: \"#b2b3b3 !important\",\n padding: \"0 6px\",\n marginTop: -4,\n },\n },\n codeTextFieldRoot: {\n width: \"80px\",\n padding: \"0 0 0 14px\",\n position: \"absolute\",\n zIndex: 1,\n margin: \"10px 0 0 2px\",\n background: \"white\",\n \"& input\": {\n padding: \"10px 0 !important\",\n },\n \"& button\": {\n width: \"12px\",\n position: \"relative\",\n left: \"7px\",\n background: \"white\",\n borderRadius: 0,\n \"&:hover\": {\n background: \"white\",\n },\n },\n \"& div\": {\n paddingRight: \"0px !important\",\n },\n },\n textFieldPopper: {\n [theme.breakpoints.down(\"md\")]: {\n left: \"12px !important\",\n minWidth: \"calc(100% - 35px)\",\n },\n [theme.breakpoints.up(\"md\")]: {\n left: \"calc(12.5vw - 16px) !important\",\n minWidth: \"calc(25vw + 54px)\",\n },\n },\n textFieldRoot: {\n backgroundColor: \"#f1f1f1\",\n outline: \"none\",\n border: \"none\",\n borderRadius: \"8px\",\n width: \"100%\",\n marginBottom: theme.spacing(3),\n padding: \"14px 15px\",\n boxShadow: \"none\",\n boxSizing: \"border-box\",\n fontFamily: \"Roboto, sans-serif\",\n fontSize: \"15px\",\n fontWeight: 500,\n },\n otpButtonContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: theme.spacing(3),\n },\n passwordFieldContainer: {\n alignItems: \"center\",\n position: \"relative\",\n width: \"100%\",\n },\n passwordTooltip: {\n position: \"absolute\",\n right: 10,\n },\n passwordField: {\n flex: 1,\n width: \"100%\",\n },\n passwordIcon: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"-30px\",\n top: \"20px\",\n },\n passwordIconEmail: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"2%\",\n top: \"48%\",\n },\n passwordIconName: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"2%\",\n top: \"11%\",\n },\n passwordIconCompanyName: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"2%\",\n top: \"23%\",\n },\n passwordIconContact: {\n marginLeft: theme.spacing(1),\n position: \"absolute\",\n right: \"2%\",\n top: \"49%\",\n },\n errorSnackbar: {\n backgroundColor: theme.palette.error.main,\n },\n});\n\nclass AgentLoginPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n step: 1,\n alertType: \"\",\n alertMsg: \"\",\n formValues: {\n name: \"\",\n country: \"\",\n state: \"\",\n city: \"\",\n companyName: \"\",\n contact: \"\",\n email: \"\",\n userName: \"\",\n loginPassword: \"\",\n type: \"Affiliate\",\n planType: \"tier0\",\n timezone: \"\",\n currency: \"\",\n partnershipFee: \"0\",\n otp: [\"\", \"\", \"\", \"\"],\n facebookAds: \"\",\n companySize: \"\",\n industry: [],\n websiteURL: \"\",\n confirmPassword: \"\",\n },\n errors: {\n email: \"\",\n userName: \"\",\n loginPassword: \"\",\n otp: \"\",\n confirmPassword: \"\",\n name: \"\",\n contact: \"\",\n companyName: \"\",\n },\n passwordValidation: {\n length: false,\n lowercase: false,\n number: false,\n specialChar: false,\n },\n showPasswordTooltip: false,\n generatedOtp: \"\",\n isOtpVerified: false,\n otpResendTime: 30,\n canResendOtp: false,\n countryCode: \"+91\",\n contact: \"\",\n snackbarOpen: false,\n snackbarMessage: \"\",\n isLoading: false,\n snackbarError: false,\n showPassword: false,\n showConfirmPassword: false,\n };\n }\n\n handleInputChange = (event) => {\n const { name, value } = event.target;\n const { formValues, errors } = this.state;\n\n if (name === \"contact\") {\n if (/^\\d*$/.test(value)) {\n // Only allow digits\n formValues[name] = value;\n if (value.length < 10) {\n errors.contact = \"Contact number should be 7 to 10 digits long\";\n } else {\n errors.contact = \"\";\n }\n }\n } else {\n formValues[name] = value;\n }\n\n this.setState({ formValues, errors });\n };\n\n handleOtpChange = (index, event) => {\n const otp = [...this.state.formValues.otp];\n otp[index] = event.target.value;\n if (event.target.value.length === 1 && index < 3) {\n this[`otpInput${index + 1}`].focus();\n }\n this.setState({ formValues: { ...this.state.formValues, otp } });\n };\n\n handleNext = () => {\n const { step } = this.state;\n if (this.isStepComplete()) {\n if (step === 1) {\n this.generateOtp();\n this.setState({ isLoading: true });\n }\n }\n };\n\n handleBack = () => {\n this.setState((prevState) => ({ step: prevState.step - 1 }));\n };\n\n handleSubmit = () => {\n const { formValues, countryCode } = this.state;\n const { userName, loginPassword, email, contact } = formValues;\n const updatedFormValues = { ...formValues, contact: countryCode + contact };\n let isChildAffiliate = true;\n\n this.props.loginUser(userName, null, email, contact, isChildAffiliate);\n };\n\n generateOtp = () => {\n const { email, name, contact } = this.state.formValues;\n axios\n .post(url + \"/affiliates/send-agent-otp\", {\n email,\n fullName: name,\n contact,\n })\n .then((response) => {\n if (response.data.success) {\n this.setState(\n {\n isLoading: false,\n generatedOtp: response.data.otp,\n isOtpVerified: false,\n otpResendTime: 30,\n canResendOtp: false,\n snackbarOpen: true,\n alertType: \"success\",\n snackbarMessage:\n \"OTP has been sent to your registered mobile number\",\n snackbarError: false,\n },\n () => {\n this.startOtpTimer();\n this.setState((prevState) => ({ step: prevState.step + 1 })); // Move to OTP step\n }\n );\n } else {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage: \"Error Generating OTP\",\n isLoading: false,\n snackbarError: true,\n });\n console.error(\"Error generating OTP\");\n }\n })\n .catch((error) => {\n if (error.response) {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage: error?.response?.data?.message,\n isLoading: false,\n snackbarError: true,\n });\n console.error(\"There was an error generating the OTP!\", error);\n }\n });\n };\n\n generateResendOtp = () => {\n const { email, name, contact } = this.state.formValues;\n axios\n .post(url + \"/affiliates/send-agent-otp\", {\n email,\n fullName: name,\n contact,\n })\n .then((response) => {\n if (response.data.success) {\n this.setState(\n {\n isLoading: false,\n generatedOtp: response.data.otp,\n isOtpVerified: false,\n otpResendTime: 30,\n canResendOtp: false,\n snackbarOpen: true,\n alertType: \"success\",\n snackbarMessage:\n \"The OTP has been resent to your registered mobile number\",\n snackbarError: false,\n },\n () => {\n this.startOtpTimer();\n }\n );\n } else if (response.data.blocked) {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage:\n \"You have tried too many times, please contact customer support\",\n isLoading: false,\n snackbarError: true,\n });\n } else {\n console.error(\"Error generating OTP\");\n }\n })\n .catch((error) => {\n if (error.response) {\n if (error.response.data === \"Email already in use!\") {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage: \"Email already in use\",\n isLoading: false,\n snackbarError: true,\n });\n } else if (error.response.data === \"blocked\") {\n this.setState({\n snackbarOpen: true,\n alertType: \"error\",\n snackbarMessage:\n \"You have tried too many times, please contact customer support\",\n isLoading: false,\n snackbarError: true,\n });\n }\n } else {\n console.error(\"There was an error generating the OTP!\", error);\n }\n });\n };\n\n startOtpTimer = () => {\n this.otpTimer = setInterval(() => {\n this.setState((prevState) => {\n if (prevState.otpResendTime <= 1) {\n clearInterval(this.otpTimer);\n return { otpResendTime: 0, canResendOtp: true };\n }\n return { otpResendTime: prevState.otpResendTime - 1 };\n });\n }, 1000);\n };\n\n verifyOtp = () => {\n const { formValues } = this.state;\n const { contact, otp } = formValues;\n axios\n .post(url + \"/affiliates/verify-agent-otp\", {\n contact,\n otp: otp.join(\"\"),\n })\n .then((response) => {\n if (response.data) {\n this.setState(\n { isOtpVerified: true, errors: { ...this.state.errors, otp: \"\" } },\n this.handleSubmit\n );\n } else {\n this.setState({\n isOtpVerified: false,\n errors: {\n ...this.state.errors,\n otp: \"Invalid OTP. Please try again.\",\n },\n });\n }\n })\n .catch((error) => {\n console.error(\"There was an error verifying the OTP!\", error);\n this.setState({\n isOtpVerified: false,\n errors: {\n ...this.state.errors,\n otp: \"An error occurred. Please try again.\",\n },\n });\n });\n };\n\n validateEmail = (email) => {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n };\n\n isStepComplete = () => {\n const { step, formValues, errors } = this.state;\n const stepFields = {\n 1: [\"contact\"],\n 2: [\"otp\"],\n };\n\n const areFieldsFilled = stepFields[step]\n ? stepFields[step].every((field) => formValues[field])\n : true;\n const areFieldsValid = Object.values(errors).every((error) => !error);\n\n if (step === 1) {\n return areFieldsFilled && areFieldsValid;\n }\n\n return areFieldsFilled && areFieldsValid;\n };\n\n handleClickShowPassword = () => {\n this.setState((prevState) => ({\n showPassword: !prevState.showPassword,\n }));\n };\n\n handleClickShowConfirmPassword = () => {\n this.setState((prevState) => ({\n showConfirmPassword: !prevState.showConfirmPassword,\n }));\n };\n\n renderStep = () => {\n const {\n step,\n formValues,\n errors,\n passwordValidation,\n showPasswordTooltip,\n otpResendTime,\n canResendOtp,\n countryCode,\n showPassword,\n showConfirmPassword,\n } = this.state;\n const { classes } = this.props;\n\n switch (step) {\n case 1:\n return (\n \n \n \n
\n
\n i.dialCode)}\n classes={{ popper: classes.textFieldPopper }}\n getOptionLabel={(option) => {\n return `${getflag(isoMap[option])} ${option} ${\n countryMap[option.substring(1)]\n }`;\n }}\n onChange={(e, value, reason) => {\n this.setState({\n countryCode: value,\n });\n }}\n value={countryCode}\n renderInput={(params) => (\n \n )}\n />\n this.handleInputChange(e)}\n value={formValues.contact}\n className={classes.phoneTextFieldRoot}\n InputProps={{\n endAdornment: errors.contact && (\n \n \n \n \n \n ),\n }}\n />\n
\n
\n
\n
\n );\n case 2:\n return (\n \n \n \n {[0, 1, 2, 3].map((index) => (\n this.handleOtpChange(index, event)}\n className={classes.otpInput}\n inputRef={(input) => (this[`otpInput${index}`] = input)}\n />\n ))}\n \n \n \n OTP sent to {formValues.contact} Resend OTP after{\" \"}\n {`00:${otpResendTime < 10 ? \"0\" : \"\"}${otpResendTime}`}\n \n {otpResendTime === 0 ? (\n \n Didn't receive the code?{\" \"}\n \n Resend OTP\n \n \n ) : null}\n \n \n \n );\n default:\n return null;\n }\n };\n\n handleSnackbarClose = () => {\n this.setState({ snackbarOpen: false, snackbarError: false });\n };\n\n render() {\n const { isAuthenticated, classes } = this.props;\n const { step, formValues, snackbarOpen, snackbarMessage, snackbarError } =\n this.state;\n\n if (isAuthenticated) {\n return ;\n } else {\n return (\n
\n \n \n \n \n \"AiSensy\n \n \n AiSensy Affiliate Dashboard\n \n {/* \n Start with 20% commission and Grow More !!!\n */}\n \n \n \n\n \n Trusted by 50000 + Brands\n \n \n \n\n \n
\n \n Welcome! Sign in to continue.\n \n {/* \n Fill in the details below to complete your signup.\n */}\n
\n
\n \n \n
{this.renderStep()}
\n
\n \n {step > 1 && (\n \n Back\n \n )}\n {step === 2 ? (\n \n Verify OTP\n \n ) : (\n \n {this.state.isLoading ? (\n <>\n Sending OTP \n \n \n ) : (\n \"Next \"\n )}\n \n )}\n
\n
\n \n \n \n \n \n {this.state.snackbarMessage}\n \n \n \n );\n }\n }\n}\n\nconst mapDispatchToProps = {\n loginUser,\n};\n\nexport default connect(\n (state) => ({\n isAuthenticated: state.login.isAuthenticated,\n isLoading: state.login.isLoading,\n error: state.login.error,\n errmsg: state.login.errmsg,\n }),\n mapDispatchToProps\n)(withStyles(styles)(AgentLoginPage));\n","import React, { useEffect, useState } from \"react\";\nimport { BrowserRouter, Route, Redirect, Switch } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport ErrorPage from \"./commons/ErrorPage/ErrorPage\";\nimport ProjectsLayout from \"./commons/ProjectsLayout/ProjectsLayout\";\nimport Login from \"./pages/Login/Login\";\nimport Embad from \"./pages/Embed/EmbedSignup\";\nimport AffiliateSignUp from \"./pages/SignUp/AffiliateSignUp\";\nimport forgotPassword from \"./pages/forgotPassword/forgotPassword\";\n\nimport { fetchPartnerDetails } from \"./store/partnerState\";\nimport newLogin from \"./pages/Login/newLogin\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport AgentLoginPage from \"./pages/SignUp/agentLogin\";\n\nconst PrivateRoute = ({\n component,\n isAuthenticated,\n fetchPartnerDetails,\n ...rest\n}) => {\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n if (isAuthenticated) {\n fetchPartnerDetails()\n .then(() => setIsLoading(false))\n .catch(() => setIsLoading(false));\n } else {\n setIsLoading(false);\n }\n }, [isAuthenticated, fetchPartnerDetails]);\n\n document.title = \"Affiliate Dashboard\";\n return (\n {\n if (isLoading) {\n return (\n \n \n \n );\n }\n\n return !isAuthenticated ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\nconst PublicRoute = ({ component, isAuthenticated, ...rest }) => {\n document.title = \"Affiliate Dashboard\";\n return ;\n};\n\nconst App = (props) => {\n return (\n \n \n \n\n \n\n \n\n \n \n \n \n \n \n );\n};\n\nexport default connect(\n (state) => ({\n isAuthenticated: state.login.isAuthenticated,\n }),\n {\n fetchPartnerDetails,\n }\n)(App);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error?.response?.data?.message);\n });\n }\n}\n","const pending = \"#e65100\";\nconst resolved = \"#388e3c\";\nconst primary = \"#002D62\";\nconst secondary = \"#fec000\";\nconst warning = \"#FFC260\";\nconst success = \"#4caf50\";\nconst error = \"#f44336\";\nconst info = \"#9013FE\";\nconst backdrop = \"#f6f7ff\";\nconst lightenRate = 7.5;\nconst darkenRate = 15;\nconst queryText = \"#e0e0e0\";\n\nexport default {\n palette: {\n pending: {\n main: pending,\n },\n resolved: {\n main: resolved,\n },\n\n primary: {\n main: primary,\n },\n secondary: {\n main: secondary,\n },\n warning: {\n main: warning,\n },\n success: {\n main: success,\n },\n error: {\n main: error,\n },\n info: {\n main: info,\n },\n text: {\n primary: \"#4A4A4A\",\n secondary: \"#6E6E6E\",\n hint: \"#B9B9B9\",\n },\n background: {\n default: \"#F6F7FF\",\n light: \"#F3F5FF\",\n },\n backdrop: {\n default: \"#f6f7ff\",\n },\n },\n breakpoints: {\n values: {\n xs: 0,\n sm: 767,\n md: 959, // 1348\n lg: 1599, //1902\n xl: 1920,\n },\n },\n // shadows: [\"none\"],\n shape: {\n borderRadius: 6,\n },\n typography: {\n h2: {\n fontFamily: \"Roboto\",\n fontSize: 25,\n fontWeight: 600,\n letterSpacing: 2,\n wordSpacing: 5,\n \"@media (max-width:600px)\": {\n fontSize: 20,\n fontWeight: 700,\n wordSpacing: 5,\n letterSpacing: 1,\n },\n },\n\n h3: {\n fontFamily: \"Roboto\",\n fontSize: 20,\n \"@media (max-width:600px)\": {\n fontSize: 18,\n },\n },\n h4: {\n fontFamily: \"Roboto\",\n fontSize: 16,\n },\n h5: {\n fontFamily: \"Roboto\",\n fontSize: 14,\n fontWeight: 400,\n },\n h6: {\n fontFamily: \"Roboto\",\n fontSize: 12,\n fontWeight: 400,\n },\n body1: {\n fontFamily: \"Roboto\",\n fontSize: 14,\n },\n body2: {\n fontFamily: \"Roboto\",\n fontSize: 12,\n },\n },\n overrides: {\n MuiTextField: {\n root: {\n backgroundColor: \"rgb(240,240,240)\",\n borderRadius: \"8px\",\n boxSizing: \"border-box\",\n fontSize: \"15px\",\n fontWeight: 500,\n padding: \"6px 15px\",\n },\n \"&:focus\": {\n border: \"1px solid red\",\n },\n },\n MuiOutlinedInput: {\n root: {\n \"& $notchedOutline\": {\n border: \"none\",\n },\n \"&:hover $notchedOutline\": {\n border: \"none\",\n },\n \"&$focused $notchedOutline\": {\n border: \"none\",\n },\n \"&&& $input\": {\n padding: \"12px\",\n },\n \"&&& $input:first-child\": {\n padding: \"12px\",\n },\n },\n multiline: {\n padding: 0,\n },\n },\n MuiAutocomplete: {\n inputRoot: {\n '&[class*=\"MuiOutlinedInput-root\"].MuiAutocomplete-input': {\n padding: 12,\n },\n '&&[class*=\"MuiOutlinedInput-root\"]': {\n padding: 0,\n },\n },\n },\n MuiTooltip: {\n tooltip: {\n backgroundColor: \"white\",\n color: \"#222\",\n boxShadow: \"0 0 11px rgb(230,230,230)\",\n },\n },\n MuiButton: {\n root: {\n textTransform: \"none\",\n },\n contained: {\n boxShadow: \"none\",\n },\n containedPrimary: {\n color: \"white\",\n\n \"&:hover\": {\n cursor: \"pointer\",\n backgroundColor: \"#034694\",\n },\n },\n },\n MuiGrid: {\n container: {},\n },\n },\n props: {\n MuiInput: {\n disableUnderline: true,\n },\n },\n};\n","import defaultTheme from './default';\n\nexport default {\n default: defaultTheme\n}","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nimport themes from \"./themes\";\nimport { MuiThemeProvider, createTheme } from \"@material-ui/core/styles\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { Provider } from \"react-redux\";\nimport store from \"./store/store\";\nimport setAuthToken from \"./helpers/setAuthToken\";\nimport jwt_decode from \"jwt-decode\";\nimport { compose } from \"redux\";\nimport { fetchPartnerDetails } from \"./store/partnerState\";\n\nconst login = async () => {\n try {\n if (localStorage.getItem(\"jwtToken\")) {\n await setAuthToken(localStorage.getItem(\"jwtToken\"));\n const decoded = jwt_decode(localStorage.getItem(\"jwtToken\"));\n const currentTime = Date.now() / 1000;\n if (decoded.exp < currentTime) {\n localStorage.removeItem(\"jwtToken\");\n await store.dispatch({ type: \"Login/SIGN_OUT_SUCCESS\" });\n } else {\n await store.dispatch({ type: \"Login/LOGIN_SUCCESS\", payload: decoded });\n const newObj = {\n partnerData: {\n ...decoded,\n _id: decoded.id,\n },\n };\n await store.dispatch({ type: \"PARTNER/LOAD_SUCCESS\", payload: newObj });\n }\n }\n } catch (error) {\n console.error({ message: \"invalid JWT token\", jwtError: error });\n await store.dispatch({ type: \"Login/SIGN_OUT_SUCCESS\" });\n }\n};\n\nlogin().then(() => {\n const theme = createTheme({ ...themes.default });\n\n const renderApp = () => {\n ReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n );\n };\n\n // Initialize the app\n if (localStorage.getItem(\"jwtToken\")) {\n store.dispatch(fetchPartnerDetails()).then(renderApp).catch(renderApp);\n } else {\n renderApp();\n }\n\n // If you want your app to work offline and load faster, you can change\n // unregister() to register() below. Note this comes with some pitfalls.\n // Learn more about service workers: https://bit.ly/CRA-PWA\n serviceWorker.unregister();\n});\n"],"sourceRoot":""}