{"version":3,"sources":["images/i-icon.png","images/salesforce-logo.png","images/protiviti-logo.png","config.js","images/background.PNG","images/instagram-icon.svg","assets/ProConnect_Job_Aid.pdf","images/proconnect-logo.png","images/questionmark-icon.png","context/AppReducer.js","auth/authProvider.js","auth/authHeaders.js","components/OverlayTooltip.js","components/NotAvailable.js","components/Shared/Util.js","context/GlobalState.js","components/Shared/EmployeeLinks.js","components/Shared/DefaultPhoto.js","components/Shared/FilterMultiSelect.js","components/Prospect/NumberOfInteractions.js","components/Shared/ShowInternalConnection.js","components/Prospect/InternalConnections.js","components/Shared/PowerBI.js","components/PopoverStickOnHover.js","components/Shared/ExternalDetail.js","components/Prospect/ProspectBackground.js","components/Shared/EmployeeDetails.js","components/Shared/CompanyDescription.js","components/Shared/ProtivitiWork.js","components/Shared/ProtivitiWorkSolution.js","components/Shared/Opportunity.js","components/Shared/CompanyNews.js","components/Prospect/KeyBuyerHistory.js","components/Prospect/MarketingCampaigns.js","components/Shared/MarketingSolution.js","components/Shared/ScoopsIntents.js","components/Prospect/Overview.js","components/Header.js","components/SearchResult.js","components/Home/ProspectCards.js","components/Home/AccountCards.js","components/Unauthorized.js","components/Home/Home.js","components/Home/ViewMore.js","components/ScrollToTop.js","components/Account/KeyBuyer.js","components/Account/Competitors.js","components/Account/Alumni.js","components/Account/Funding.js","components/Account/CompanyTechnologies.js","components/Account/ConnectedColleagues.js","components/Account/CompanyOverview.js","components/Prospect/InternalConnectionsGraph.js","components/Account/OrgChartSearch.js","components/Account/OrgChart.js","ProtectedRoute.js","telemetry/TelemetryService.js","telemetry/telemetry-provider.js","App.js","TimerRoot.js","index.js"],"names":["module","exports","hostname","window","location","backendHost","config","azRedirectUri","supportEmail","supportMailSubject","supportMailBody","state","action","type","prospect","payload","newsFeed","searchSetting","searchFacet","following","followingAccounts","contactOwner","relationshipLead","account","authorized","updatedFollowing","updatedFollowingAccounts","isProspectPage","taggedRelationships","userEmail","scoops","intents","prospectValidations","accountValidations","auth","authority","clientId","postLogoutRedirectUri","origin","redirectUri","validateAuthority","navigateToLoginRequestUrl","cache","cacheLocation","storeAuthStateInCookie","options","loginType","LoginType","Redirect","authProvider","MsalAuthProvider","scopes","authHeaders","a","getCookie","cname","name","ca","decodeURIComponent","document","cookie","split","i","length","c","charAt","substring","indexOf","getAccessToken","token","headers","Authorization","accessToken","OverlayTooltip","props","imageType","OverlayTrigger","key","placement","overlay","Tooltip","id","className","src","questionMark","alt","infoIcon","tooltipText","hoverElement","NotAvailable","useState","setTooltipText","useEffect","text","notavailable","style","data-testid","linkUrl","Card","Link","href","target","rel","formatWebsite","website","includes","formatRevenue","x","Math","round","toFixed","formatDate","date","formatMonthYearDate","formatText","maxlength","mailSubject","path","pathname","subject","lastIndexOf","formatAccountName","index","getUrlLink","clientSideSettings","JSON","parse","localStorage","getItem","sfdcUrl","sfdcLightning","hubUrl","iManageUrl","iManageFilterList","provideLinkToCompanyPage","DoNotLinkCompanies","showModifiedDate","value","map","v","Object","assign","showLastModified","filterModifiedDate","data","priorDate","Date","setDate","getDate","filter","_","modifiedDate","sort","b","renderSortArrow","order","column","ExpandMore","ExpandLess","setUpLinkedinUrl","url","fromProspect","toLowerCase","startsWith","linkedinUrl","concat","LinkedIn","fontSize","marginLeft","width","height","renderOutlook","email","viewBox","xmlns","d","fill","opacity","triggerFilter","showFilters","setShowFilters","IconButton","onClick","border","outline","borderRadius","paddingLeft","paddingRight","handleOnFilterTable","filterArr","row","filterValue","find","val","projectStatus","formatSourceReverse","formatTypeReverse","formatEndYear","endedDate","formatType","formatSource","asteriskHoverover","nonProtivitiEmployee","cursor","getFormatCompanyLink","element","getOnStaticOptionsUpdate","staticColumn","filterKey","noFilters","staticOption","hasOwnProperty","getRelationshipStyle","relationship","color","formatLastContacted","monthShort","renderTaggedRelationship","relationShipStrength","backgroundColor","borderColor","renderLoadingSpinner","display","justifyContent","alignItems","Spinner","animation","role","mapValidationField","field","isAccountType","initialState","authentication","GlobalContext","createContext","GlobalProvider","useReducer","AppReducer","dispatch","getProspect","prospectUrl","axios","get","then","response","companyName","company","primaryKeyBuyerOf","opp","relProAccountId","getScoopsIntents","tickerSymbol","getCompanyNews","catch","err","getAccount","accountId","ticker","encodeURIComponent","yql","getCompanyNewsCall","news","feed","items","findIndex","splice","link","replace","RegExp","title","error","relProId","scoopUrl","intentUrl","Promise","all","post","responses","scoopsResponse","intentsResponse","getFollowing","res","followProspect","getContactOwner","header","getRelationshipLead","getFollowingAccounts","followAccount","getTaggedRelationships","getValidation","sfdcId","dispatchType","setValidation","body","Provider","setSearchSetting","settings","setSearchFacet","facet","setUpdatedFollowing","setUpdatedFollowingAccounts","setAuthorized","isAuthorized","authData","setIsProspectPage","prospectPage","setUserEmail","children","EmployeeLinks","emailAddress","external","cx","cy","r","isPeopleSearchLive","peopleSearchKey","Button","peopleSearchUrl","DefaultPhoto","format","strokeWidth","stroke","strokeLinecap","strokeLinejoin","FilterMultiSelect","selectRef","useRef","selected","setSelected","getFilter","filterVal","onFilter","onStaticOptionsUpdate","onClear","current","select","blur","sortingOptions","ascending","checkFormat","option","checkFormatText","from","selectStyles","menuPortal","base","zIndex","menu","provided","top","minWidth","container","position","control","boxShadow","valueContainer","overflow","whiteSpace","textOverflow","e","stopPropagation","styles","ref","isMulti","sourceOptions","keys","currentFilters","currFilters","reduce","acc","every","Array","Set","source","connectionType","formatOptions","self","getOptions","onChange","filters","filtersArr","staticOptions","filteredData","hideSelectedOptions","getOptionLabel","getLabel","getOptionValue","getValue","components","Menu","ValueContainer","IndicatorsContainer","placeholder","isSearchable","closeMenuOnSelect","passProps","values","valueLabel","firstValue","selectProps","slice","childsToRender","React","Children","child","SingleValue","MultiValue","inputValue","NumberOfInteractions","forwardRef","sourceFilter","typeFilter","contactedFilter","setType","setCurrentFilters","setStaticOption","setFilteredData","outlookMessagesCount","setOutlookMessagesCount","outlookEventCount","setOutlookEventCount","sfdcEventCount","setSfdcEventCount","sfdcTaskCount","setSfdcTaskCount","openModal","employeeId","emloyeeName","interactions","sourcefilter","typefilter","distinctSources","disctinctTypes","interactionGroups","interactionDetail","setInteractionDetail","InteractionTableColumns","dataField","hidden","sortCaret","formatter","headerStyle","fontWeight","customFilter","FILTER_TYPES","MULTISELECT","filterRenderer","useImperativeHandle","employeeid","employeename","openmodalwithitem","item1","item2","item3","item4","employeeName","summaryCount","summary","count","interationMessages","interactionEvents","forEach","Modal","show","onHide","openmodal","distinctTypes","dialogClassName","aria-labelledby","Header","closeButton","borderTopColor","Title","paddingBottom","visibility","Body","overflowY","overflowX","marginBottom","marginTop","keyField","columns","striped","bordered","pagination","paginationFactory","hover","filterFactory","afterFilter","newResult","newFilters","prevData","stringify","ShowInternalConnections","connections","childRef","ListGroup","connection","Item","flexWrap","marginRight","alignSelf","employee","photoUrl","background","flexGrow","Row","Col","isTerminated","city","lg","encodeURI","textAlign","lastContactTime","lastContactType","numberOfInteractions","InternalConnections","useContext","showMore","setShowMore","handleShowMore","to","transform","float","margin","variant","borderBottom","paddingTop","PowerBI","toolTipText","smaller","PopoverStickOnHover","delay","onMouseEnter","component","showPopover","setShowPopover","childNode","setTimeoutConst","clearTimeout","handleMouseEnter","setTimeout","handleMouseLeave","displayChild","cloneElement","onMouseLeave","node","Overlay","shouldUpdatePosition","defaultProps","ExternalDetail","validationState","setValidationState","validation","found","handleOnClick","ProspectBackground","showEducation","setShowEducation","showEmployment","setEmployment","showActivities","setShowActivities","showAwards","setShowAwards","activitiesShowMore","setActivitiesShowMore","load","setLoad","activities","renderExternal","setShowFunction","renderFunction","backgroundImage","followingId","isFollowing","isInSalesforce","isProtivitiAlumni","hasRoberthalfContact","powerBIUrlRobertHalfContact","emailAddressExternal","phoneExternal","relProContactId","placeContent","instagramUrl","instagram","facebookUrl","twitterUrl","youtubeUrl","phone","emailBounceback","employment","item","education","school","educationDegree","areaOfStudy","degree","institutionName","EndDate","certification","idx","description","awards","endDate","certificationDescription","EmployeeDetails","isPMO","CompanyDescription","urls","showMoreChild","setShowMoreChild","checkAccountType","accountType","renderChildParent","iconChoice","padding","companyPhotoUrl","lineHeight","accountParent","md","headQuarters","industry","subIndustry","ownership","ipoDate","numberOfEmployees","toString","annualRevenue","ranking","startYear","hubId","businessContextFrameworkUrl","accountPMO","accountExecutive","accountMDD","salesforce","socialMediaUrls","websiteUrl","accountChild","ProtivitiWork","nameFilter","yearEndedFilter","solutionFilter","emdFilter","emFilter","protivitiWork","setProtivitiWork","showFiltersModal","setShowFiltersModal","powerBILink","setPowerBILink","project","clientCodes","powerBIUrl","clientCode","join","ProjectsTableColumns","partitionKey","rowIndex","engagementManagingDirectorIsDeleted","engagementManagerIsDeleted","clearAllFilters","numberOfProject","page","sizePerPage","hideSizePerPage","hidePageListOnlyOnePage","ProtivitiWorkSolution","solutionPieChart","setPieChart","solutionTime","setSolutionTime","solutionColor","noSolution","projectCount","setProjectCount","getSolutionPieChart","time","solutions","counts","solutionNames1","solutionCounts1","solutionNames3","solutionCounts3","solutionNames5","solutionCounts5","solutionNamesA","solutionCountsA","pieChart","sortedSolutionObject","solution","solutionNames","solutionCounts","solutionNotAvailable","numberOfProjects","floor","random","push","CustomTooltip","active","onSolutionTimeChange","pieChartRender","right","left","bottom","dataKey","innerRadius","outerRadius","entry","content","protivitiLogo","flexDirection","maxWidth","DropdownButton","alignRight","Dropdown","eventKey","Opportunity","closeDateFilter","oppMdFilter","pkbFilter","serviceFilter","stageFilter","reasonFilter","explanationFilter","opportunityState","setOpportunityState","openOpportunities","setOpenOpportunities","allOpportunities","setAllOpportunities","allOpportunity","openOpportunity","OpportunityTableColumns","Fragment","opportunityKey","sfdcLightningOpportunity","opportunityManagingDirectorIsDeleted","currentUrl","pageUrl","pkbIsNotProspect","primaryKeyBuyerId","renderKeyBuyerLink","stage","oppStage","formatOppStage","opportunityStage","handleOpportunityStateChange","showMoreModal","minHeight","numberOfOpenOpportunity","numberOfAllOpportunity","fontFamily","CompanyNews","mostRecentFeed","setMostRecentFeed","isActive","showMoreNews","setShowMoreNews","handleShowMoreNews","view","pubDate","KeyBuyerHistory","companyFilter","dateFilter","mdFilter","tableColumns","VpnKeyOutlined","numberOfPrimaryKeyBuyerOf","MarketingCampaigns","subTypeFilter","sentFilter","statusFilter","campaigns","hyperLink","AssessmentOutlined","hasOptedOutOfEmail","MarketingSolution","graphData","setGraphData","actionTakenAll","setActionTakenAll","actionTaken","setActionTaken","marketingSolutionData","marketingSolutionA","marketingSolution1Year","campaignsActionsA","getMarketingSolution","getSolutionColor","flexFlow","onActionChange","onTimeChange","layout","barSize","tickCount","hide","ScoopsIntents","componentState","setComponentState","ScoopsTableColumns","IntentTableColumns","audienceStrengthMap","headerFormatter","renderHelpText","listStyleType","firstName","lastName","letter","handleComponentStateChange","Overview","withRouter","prevPathSearch","setPrevPathSearch","prevPathReturnHome","setPrevPathReturnHome","loaded","setLoaded","setMarketingSolutionData","history","useHistory","fetchData","prevPath","marketingSolution","params","match","prospectId","Container","fluid","search","returnbutton","goBack","setSearch","suggestions","setSuggestions","focusSearch","setFocusSearch","setCursor","followAccounts","user","setUser","useLocation","accountInfoUserName","timeOut","searchRecommendation","searchValue","selectResult","result","suggestion","getElementById","Navbar","collapseOnSelect","expand","Brand","ProConnectLogo","Form","inline","onSubmit","event","preventDefault","FormControl","onBlur","onFocus","onKeyDown","searchResults","keyCode","prevstate","onMouseDown","dangerouslySetInnerHTML","__html","Search","HelpPage","SearchResult","keyword","setKeyword","results","setResult","loading","setLoading","fromReturn","setFromReturn","skip","setSkip","totalCount","setTotalCount","sortBy","setSortBy","setFacet","setFilters","showCompany","setShowCompany","showPosition","setShowPosition","showFunction","showLevel","setShowLevel","showMoreCompany","setShowMoreCompany","showMorePosition","setShowMorePosition","showMoreFunction","setShowMoreFunction","showMoreLevel","setShowMoreLevel","locationValue","queryString","q","getResult","sortByValue","showMoreFilter","skipParam","filtersParam","sortParam","staticFilterArr","facetObj","CompanyName","Function","Level","prevState","changePage","scrollTo","filterResults","catagory","filtersDupe","sortResults","filterRender","titlePlural","Check","label","checked","renderFilter","CardDeck","flags","removeDuplicates","contactId","ceil","ProspectCards","triggerFollowProspect","cards","companyId","AccountCards","triggerFollow","Unauthorized","imageLoaded","setImageLoaded","img","Image","Welomebackground","onload","welcome","Home","setHistory","updatedFollowingState","setUpdatedFollowingState","showMoreFollowing","setShowMoreFollowing","showMoreUpdated","setShowMoreUpdated","updatedFollowingAccountsState","setUpdatedFollowingAccountsState","showMoreFollowingAccounts","setShowMoreFollowingAccounts","showMoreUpdatedAccounts","setShowMoreUpdatedAccounts","showMoreRelationshipLead","setShowMoreRelationshipLead","showMoreTaggedRelationships","setShowMoreTaggedRelationships","filtered","handleShowMoreFollowing","handleShowMoreUpdated","handleShowMoreFollowingAccounts","handleShowMoreUpdatedAccounts","handleShowMoreRelationshipLead","handleShowMoreTaggedRelationships","renderCards","icon","showFlag","cardSlice","cardAll","contactsUpdated","accountsUpdated","followHelpText","textAlignLast","ViewMore","setPage","searchTerm","setSearchTerm","filterParam","setFilterParam","setResults","allResults","setAllResults","setData","setTitle","iconElement","setIconElement","helpText","setHelpText","updatedFollowingDate","updatedFollowingAccountDate","newPage","term","lowerSearchTerm","searchResult","ToggleButtonGroup","defaultValue","ToggleButton","unlisten","listen","KeyBuyer","titleFilter","winsFilter","lastWonFilter","winNameFilter","dateWonFilter","keyBuyers","setKeyBuyers","rowData","setRowData","numberOfWins","setNumberOfWins","modalData","setModalData","showWins","setShowWins","showFiltersWins","setShowFiltersWins","currentFiltersWins","setCurrentFiltersWins","staticOptionWins","setStaticOptionWins","filteredDataWins","setFilteredDataWins","winData","closeWonOpps","opportunityCloseDate","prospectName","numOfWin","solutionTotal","clearAllFiltersPKB","clearAllFiltersWins","onStaticOptionsUpdateWins","afterFilterWins","tableColumn","isDeleted","handleNumberOfWins","keyBuyerColumn","Assignment","Grid","spacing","entries","xs","Competitors","companyCompetitors","setCompanyCompetitors","competitors","showCompetitors","model","competitor","logo","competitorSFDCAccountId","revenue","Alumni","alumni","setAlumni","protivitiAlumni","sortValue","defaultSorted","Funding","companyFunding","setCompanyFunding","companyFundingWithId","totalFundingAmount","CompanyTechnologies","companyTechnologies","setCompanyTechnologies","protivitiPartners","showcompanyTechnologies","protivitiPartner","sfdcAccountId","ConnectedColleagues","connectedColleagues","CompanyOverview","InternalConnectionsGraph","internalConnections","setInternalConnections","lineToKey","setLineToKey","renderCol","toClass","lineToClass","getBorderWidth","checkInternalConnections","toAnchor","borderWidth","OrgChartSearch","dontFetch","setDontFetch","clearSearch","getFullName","middleName","selectSearchResult","getHighlight","endIndex","formatted","InputGroup","disabled","fullName","department","formatResult","OrgChart","setRelProAccountId","setSfdcId","setDepartment","sfdcJobfunction","setSfdcJobfunction","employees","setEmployees","totalResult","setTotalResult","noNextTier","setNoNextTier","searched","setSearched","externalId","getOrgChart","dept","tiers","sfdcJobFunc","pg","deptUri","sfdcJobFuncUri","uri","responseEmployees","currentEmployeesIdSet","has","old","maxResults","idUri","partitionId","Infinity","tier","onDepartmentChange","jobFunction","onJobFunctionChange","borderLeft","sfdcJobFunction","orgChartTier","borderTop","borderLeftColor","borderTopWidth","borderLeftWidth","flex","picture","sfdcContactId","renderEmployee","ProtectedRoute","Component","rest","authorizedState","setAuthorizedState","getUser","render","authenticationState","reactPlugin","appInsights","ai","initialize","instrumentationKey","browserHistory","Error","ReactPlugin","ApplicationInsights","maxBatchInterval","disableFetchTracking","extensions","extensionConfig","identifier","loadAppInsights","setAuthenticatedUserContext","TelemetryProvider","initialized","this","appInsightsInstrumentationKey","Boolean","setState","after","withAITracking","App","showIdleWarning","setShowIdleWarning","applicationInsightKey","sessionWarningToLogoutSeconds","seconds","setSeconds","setIsActive","interval","setInterval","logout","clearInterval","useIdleTimer","timeout","sessionWarningMS","onIdle","onActive","onAction","arr","j","removeItem","cookies","eqPos","substr","trackEvent","open","exact","CircularProgress","LinearProgress","TimerRoot","setRender","setAuthData","ClientSideSettings","Parsed","now","getConfig","accountInfo","userName","configUrl","setItem","ReactDOM","provider","forceLogin"],"mappings":"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","file":"static/js/main.68198847.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","const hostname = window && window.location && window.location.hostname;\r\nvar mailBody = 'This issue occurred here: (url). Please describe your issue below: ' //this includes url so that it can be replaced with the url of current page in the header component\r\n\r\nvar backendHost = `https://${hostname}`;\r\nif (hostname === 'localhost') {\r\n backendHost = 'https://localhost:44356';\r\n}\r\n\r\nconst config = {\r\n azRedirectUri: backendHost,\r\n supportEmail: 'ProConnectSupport@Protiviti.com',\r\n supportMailSubject: 'ProConnect Issue- ',\r\n supportMailBody: mailBody\r\n}\r\n\r\nmodule.exports = config;","module.exports = __webpack_public_path__ + \"static/media/background.9e5b5ad1.PNG\";","module.exports = __webpack_public_path__ + \"static/media/instagram-icon.dad4c6e6.svg\";","module.exports = __webpack_public_path__ + \"static/media/ProConnect_Job_Aid.03081237.pdf\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAAmCAYAAABZNrIjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARBSURBVFhH7ZdZaBNRFIaDu9WkWh+0ImbihvpQsLUmLWJBXB/EBSMqLp20FYtFjU8KQl1I0ooi4kJfLVKtKIiKYhV8EEXRJ6mIu0j1waqtaJIumvE/d85kmdwuQWte8sHPnXvOmZl/7tx7J7H8TyLHJo0M+u0Hg37ldTBg7xQt+hTnkvSiVedmwdT9UEDRzKI45bk0fWDkDskMGkL+AJemD3q1MnOGkH/DpemD5qDMnCHKc2n66HMkA8pbLh0YsudXjrW43YO5KwWr+LDMnCFa5Vz6b7E51UqbS/1kc3k0q8vz3epSaywF24ZyOoG0rG4Y207mzLI61TouSeK/75M2p6dFZhIj+zsrvyKXy9JHdsnWMXKDuka71BIuHVgikUgetFDTtLEcioFFgvnXLjMoVLxlKlcKtOrZw0I1yjqs4Aa84nfGdoT2B2LPKR4KONxUx6f0DkxlwdwNtAIc/4DWcjoK5p5PatDpucYlAhhZDb0yLxaZqC7os6/hU3sGhvzsLwpiYTQTuESnpHoIVvQpmoMxk+p1a+HmcZTWLloG46a1MQPKM/S9HTX2WZET04ZTDbXUpzjl48zW0vlUIwVmnghnJmB0HZckMMpZNp7mYPa8cgeHBIZBvN4Qjit7vSkQD+V3VKHWmAq1nEoGZu6yrwQQX8YlfRL0OdbyjTrDAcciDveLcI1jcdQorsPhROBnlW4rBgw2o4lu0tai0mIsnNPYzD/Gz0fM069jitQLl3fObW3zTcEoOqr4lJQIBibvIJNQS4+LCaY2QA+gt1A9NJHi9PmDmaNRUy61ieflMfRPQFdyitQw5dwrV7RPWbBhurhgitCrD/mVZt2oYxOH+8bmKsuxOj2NbO78aKc6P7dgm+lTVj3opjf/zp6NS4yRfWQtLJ/ByZTAl2i3MOlXLnFIByOWA5VDd6BP0GeoGTqj7q+rpxtji6m1lGwdwackgfn0HitVK1rqPsAPdHl83qZRnO43HT77TDEvcT0OCYOzoSboN/QSotd9D3rc1f2rLdzZpZ1suPWscu+Z5M09DoxAB12cthfM2SP8YOs53W/EB0A3qf/OhJE5EI3cCywQN1qx1xms8R4/V9d4u5sX0Wk0gziVhD6PFI2O6cuDV/4NRm+IZIpEr0WGoKfQc0gsEDOYi69xo4ff2oNVqCF2wah034s3SRs+RvEsFBL9FIk3uYNHKJ9zScBgBHNLTGDUnYW+QMtF0kSCSYAFt49eOXdTIt7kQ+gqx6XQTTCaDXSM2mLoJ9QokibMJvFw3n9hsgvyclyKMIlth44x6ENRTyMp/U+SZNLp2fPXJvlVl3FcSrxJgk22cjeBgTRZznEpPZj8zN0EMiY5LiVjshcyJjMmeyJjshfMJis4LkU36bnAXTLZRka5m8CAmMTNfsJnKcel4KcW/reo9dylcz5AsV/McSSbVHfS+dxNCf1aivYHqR8ZMaOlWH0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABMCAYAAADHl1ErAAAACXBIWXMAABcSAAAXEgFnn9JSAAAAB3RJTUUH5AwdEhgwneJOnAAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAATEUlEQVR4nO1ceXRURb7+flW3t3TWTkICAQkCAVlFtgci8NRxAFlUCDqCvlEgiiIoAyiIY84MAg9QFHVQNpmjopJRRpSBGR0nLBplEXdWWbNAls7SnXSn+976vT86wSYGCaE7wXPed3JyTt+qW/Xdr+vWrf7dX33EzPh/NBxacxMAACIIYKhIf2y0aciATjGsm4UydCGkpkjzqe05h8qzlm/2A9mKGapZuTb1CJu+4o3oTz77NkVVG6kmq/n6wtKKvsow4gyFJEP3RRCRCQAYRIQAOYbwSZPwSNBZIWVpUmLsFz63O0dYLCdG/GZg7pJJY1xNxb9JBMvKyjK/sSe3x4GjJ9Pdlb5+irmDbqC1bhg1Nbj2r4YV/XRyDT86/x80KaFJyiXCUVuE7Ys+3TtkpXdP+DY9Pd0XzmsJq2DX3vVEqiM+ZsCBo6fmeqv9HUDSqhgEVgAzSBAAAkhASoJGpIRAqVKqUikYQkAKIeyKEacrCMNQACsAjADvwLmCwGDDYzWbjnbucNXCUmf5F1+9vfhEOK4pLILdM//FdnsOHJ9Q5vJM9umqrVK10w7V3GgMs0lWWjTtO8XqR5OQx3ysCpNbJJWmtUs6ZpdGSWWFX7dHm7RKQ8YfOV3QLu90YbzVJBP8hmoniDpW63o3v9+wo6a92vEphIBZkyej7dY113Zt9+bGBY8cD+W1hVSw6QvXJX781eEpxcWlD/sZrZRSIGawkJAEZRJ0zKTJvS2TEj+KjYvYGeflwi6veiozkak3tI9MZGo/PGCzl2sqsdzjuyGvoHiYz6f38ivV3mAIUgaYCEIImAj5CQlxL48Z3P/VRdNuLwnFNYZKMOr7u6dGlVS6H3e6qgaCFZgBAkFqgu1W8xaLxbx1Wvrwd2f87qazoegwGC+89e+kl/627Q6v1zu8yusbaRhMzAwigEjAER2xyxERuXTPW3/+AEFTZWNw2YJNXrgmacfeg3NLyt2TdV3ZCSowJwl4YqMjtsTHRq6dPPD2HRkZvasuq6MG4LmsLNvbH3w7uKTcNaWsonKEwbCBFZgENCEq4+MiVw/u1HnxmoWTG/2lXZZgw2cs6/v90VMvuTy+flzzxCMh4Ii0fdQmJWFh9ivzdwDNsm4SQycvGHy6qHius8JzC9fMoSQkEuOidl2b1nHCxsUZpxrVcGMZDZ66eOyXB068W15V3Y8NHUwEm8Vc0LFt8vRRN107PvuV+dloHrEAQGWvmZ+dMXHk+A5tkh62Wc15oMCl6j5/AaxxzsY23KgR1mP83IwCZ+kyn66iiBVISETazP/pkXbVzC3Pz/6qsWTChZEzn+v59aHjS60mszFhxNB7MjNGFVeuH38tu0930WMTDsZO/GA/Gji3XbJgfSbMm3SioOQF3VB2BiAFGa1bOFbe3L/D08/NnNzoby7ceGjxyrjcCp9588IZZ90bxtyM/B/XW8ifosOUp6JTHrRP+eeHDWnnkgTrMWFuRt4Z57O6riIJgJDCdU37lnM+XZ35SmMvpDlQtbzb2gh47vdWG7CaCD5r0t/NLf5wJxrwK6HBc9igB5+5veCsc6lRI5aU0ts6OWHmr00sAFBkdQIEKQCAoJPJifR042LnAQ0UbPhDy/oePZb7ks/P0QAgpKhok5Qw/ZsNz6xpPO3mg2qRtqpKxGzzS3tppYz/SJningPQIMEuekvOW5GV+Pq/dr3vcnsGgBWkEEaX9imP7Fzz9MpQkG8unMh+PjYuf3eaTLjuROQtswof+MOqhP3OM/emJtg2bFw6+8yFzrtoPOxv27+Y566qHoCap2FKi7iVv3axACB16KNlAHYDwP0L1yXmnDzyl6KyynHOsog2AB670Hm/eEteN/Gp0SWlrgfYMAASiLSa/3Nz/95Ph5Z68+PTrw5POlvqHuf3+1Fa7nqg78S5oy9U94KCZa7JcpS6Kmfpim0AYDNrBV3bJ896bmb6Fbt0aCxaxkV9bJFUQAB0xTZnZfWslRu2xNVX94JzWLc7583JK3T+LysdJAQ6tk2esXv9n1aEmmyvrTlDvNXqDsOvboLiVkx0jigT5ZMUP0iT7TWM6vXBQSBskdX+//PHaYdPnXmRVc3UkxQ357u3Fy+tW6/eEfb7zFdSz5YUT2cO3IqOaPs/x946+K+ho5fj6PburnVp7+xwul16tu5T05nRNVgsACDmVtCNmw2P+039nV15nf7+xYLOQFToePyEsYN7/zU+JmILSIBZ4Wyxc8bvM19JrVuvXsF27T8yQTeQAgakIFdKi/glj6ffXB4aap+ndnrH/2W1wffVFeiXQMRRyud7Us/K+SQcos2ZNMbVOiFhmRTkAgO6gZTP9h+cULfezwTrOX5+u0qv937FDBAhJipy247V8z8JGbMPjesVUdv6ipgonwjfE/EFIwnEep9wiZa9Zn52TGTEFhBBMcPl9d/fc/z8dsF1frascMRZ+50q0q8GM0wmiWSHfW2oidWCmVykiY+1qIF/PHALvqtb3mtrzpAqt/9FxdQ9+Dix3sf/3u7XcUe/20LNKTEx5jVXlecun1+H16dfHRdr6Q/gXJi77gjTDh3Pm8vMAAlEWCybx43oviOkjKTIJabTwmx+RrtzUMqRsQPvqE8sANg/fMD2Q+mDe0SasaBuGfl9N16zDQNCyg3AncO67oywWDYH5jLG4VP5T+zbt890rt/gp+SYx5b32fHVgU+U4ihNk3BERz10ZNPSK2KR2m3Tjo3VfkoPPqY0y/s/hmGUdRwz48FSl3el31AQgip+81+9bty4aOo+oM4IO3AybyyRiCIiSMbh2ffflRVqMo3Fd1bTy8RcGnyM/HrfzkCrUPc1+857/yaAw0QEIhH99aGjY2vLzgmWmZUV6a709lEqMNmbLOZ9GaN6F4eaTKMxfMB2sxkfn39QRdE21PsAuRxk3N272GTW9oIApRiuSm/fzKysSCBIsA837W+t2OjErAAGWrd0bAs1kcuFiehQ8OfAUgNtwtFX6+QW28AEZgVDqU4fbtrfGggSzOX1pvoV2oAZFjO5Y2Mtn4WDyOVgvyYONlVfsQ5zjsVMboChK7Rxeb2pQJBgURH2voauACKYNe27GHN8UVORuxIRY44vMkvTtyCCYShE2Gz9gSDBCkrKBgZyZgQUi8MbF2e4m49u82Pj4gw3Ew4TBADGmeLygUDNuyciEobfH4vABxCp42hgBLIp0UtXnYM/M5NLmHE6TN0ZknC8NpNIGXoMEdW8rMMQYTAlgxlSCuiKrsAQTo6j2s//ff4x4eJhOBmuHpVipyYFEMjiSwaGCAEA6emjTbqh2xmAidhITWlRGC4SjcZWdNcVugQfYpO25yCQH64uU1q1KtIIBgPQdSMiPX20SQDAkPROMcRsBghCUEmHlKQfw0WicchxdHH7n6kb3dC0fhvC2WtacvxRQSgGEYjZPCS9U4wGANWwSqZAap9hKI9N+EIUygkFchxdsvyb/UzXBx9l0vbSaGwNZ89SeMt1ZXgC/YEkrFIDAKvhOve0ZGbl01WzTfg9t+7pBQACenR1lTFN19VNdUcWM7lM0QOmHwhjBBYAfHazwfxTCoEyXEIDAK+MOpc0QkTCrAkZTiL1YmvOkLQK/6afBRWD811RI1bMoN8eGIaccFMSXiWIzmXWsmK7IQDAAq9BDAYDUgqbR5ljwk2mLnpV6zdfNAIr5SZT3KCBTSEWAFhlZIwmpBUAwIDfMFgDgO1Zh8qZyAdmKIX4o3ln2wPY0xSkLgYmypeaeFfYB666UNwsXPj2RF5HxUgEM5jIl7P5hzINALKyNvsTbrym0q/riTpD5uWfTWxKYvWBWeZrdw7sG85lw8WQl5+fqDMkAdA0WZWVtdlfM9lvV5L4DIigB4JmjuYieSVBCHLohqrdqnIG2K4EEHgykjQFlhLM0BVdDaBJJ/6mjEQ0EFJXdHXtxgpN08qZmc8tJxLjYz4HAGYFQSpt/BOrIpuJaACC8hHmZcMvYfwTqyIFuGNgaxOhZaJjJ4CfBKv2Vn0upQTA8Ol6t3JXSbPPY80JV1V5gs/Qu9X+vna5K86P6dvNppMmgdMAodrHkWXu6oHNR7f54ayoGljtU1EAQRM4HWWLOA4ECTZ6bJ/TQshDRAIgRm5h8bDmo9v8yC0s+i0oEB+UQhwaeXuvXCD4JUh6ujvSbt0rBAUWadV671Uf7EtoMoZS5Aa/FSIpvg9n8skvYdWGfQl+r94XDAhBiLJb92Smp7uBOm++u12d/N5/9h1+mJmjDELa0nVvjcsY1btpcliHD9h+GLgiljPLNr4+VoHTmBnMqqJnpw7v1pad917yyd/N+spm0Y5RzXrM5/cPW5+dbW16ys2H9dnZ1mqdh/lVYIurzSxOPD6u3ze15ecJ1rs3/GntWi8O3JYKHq9vzOrXswc3Pe3mw8rXsgd7vL7bwApEhLS2Vy3q3bu3v7b8Z8kozgrXbotJHq8yVDufbqCgsGwSgH+FnemHn05IqzRerP0BziQPaekDb2zqn0ZFpeX3+XQDIILVJE84K127g8t/lu70zZuLjkVFWNcFRhmjvNIzfOjkBUPDSzPH0cVjTA2OVhAbnfzv7f5LePs9H4MmLxha5q66FcwQRIiOMK375s1Fx4Lr1JtQN7Bn2huaRB4IMBRH5RYVz16y9v2wZP4FQNGGQuvwtX9xzFn7flRBcfEspTgKBGgSeQOuveb1uvXqFWx95oMnEhPinycSACuUVFSNyMrec2/4aTcftmd/ea+z3HNrYO4SSExMWLE+88ETdetdMIv6kdGD1jqi7TuZBFgxcgtL5t08fXGv8NDlCimQG562L47h0xf3OlVYNI9VYDOqI9q+85GJI1bXV/eCgk29+9bSuEjbs5ogDwB4fEarQ0dzlzz6/PrY0FMe4PzBJlcGL1yZ5CHTHf0eCn1f5+PR59fHfnckd4nHp7cCAE2SJy7G9uzUWweV1lf/oltn0sbOWl5U6n6UDR0kJFq3cLzw7TuLHg0D92ZB97vmLc89W/IoKwMkNSTGRr5w+L1lF7y+i27OGjeky8KoCOunIAmlDOSdLZl2w5Q/Z4SWdvPghil/zsg7U/yIUoH0+iibJWfc0C7P/NI5DdovOWLakj5fHjz2vtevWjEYmpTlbZIcs796a2G99/mvAV3Hz5tSUFyyzDBUNBHBosn869Kuum3rX+b+4ruMBm3/+8dLc/Z2aNdmmslEFQTAMIyY02edK3pNmD8pJOybGN3Sn5xcUOJcoQwVTQBMklyd27d65GJiAZewwXTX6ic3tUxyzJaacDMAQxnWkwVFy39tt+f1k56ekldc9KzSDSsDkFJUOuKjH9/+6lPvNeT8S97zfd098+87mV+4wtA5MtAh6SktHC+NHNLjT4um3l3vk+VKwOKVW+LeyP70T/mFxVMNxRIANCkq2yTFP3YpU0ujXAW6jn98SqGz/NnzXQVMH/fsfPWsD5+b+fUlNxhm3DRjaY/DR08vd1dV38g1VjOaJHdidPTsg5uWXVL4qtFGH0MfWnLbwSMnV3j9ehtmA0QCNospr01ywjPj7rjujTljms7T60J4YtXHMR9/uuOevILieR6f3rLWJcVq1vLatm45c/e6pzZeapuX54zy0LK+35869aKrytc/2BklLtr2j1bJLRftevXxz9BczigPLhh8Kt85t9TlvoVVwP2JpIYIi/nLLqlJD3+08snPG9PwZXvvTF32eot/f/b1vJIy12Td4HPeO4K4KjbKvjkxLva1O0d23TkzPd1zWR01AM9lZdne/ODbwaXllZPKXa6Rhqr13iFoQlQ5YqLWXt+z3cL1mQ9fcE/3xRA6d6eJT41yutyznRWeQcxGwN2JCFIjFWkxb7FZTFtm3jfh3XBslpi3ZnPSxg92jqvWvcMqvb5bVZC7EyDhiInIcditS/ZuWLgZlzniQ+ofNnNNluNfH+2dXFhSNt1vIEWpgBMdhIBGZGgajmomubdNcottMTbL52Xl1YXDO6AqM/MS/MMyof1QsMpebncnOktcN+QXFv3G5/P1NRRdbTAEsQFGjX+YQH5CXPzLw2/pturZjLtD8kWFxaFuwoKX2+7Zd2RieaVvis9vtGX+yaEu8LUzLJpwmTXTd0w4LAnHlWJnSkpKYVqS40dWeplfGhyl2aQutJhvjuWl5eadSbCYyGEw2glCx2q/3t3nN+xU16GOBEwmeSrSbl7du2v7K9uhri6uve2J1Jhke7/Dxwvmeqt9nX7ugShQK6ImBTQBnYASQxmeQIYRCU1Km6E4QVcQhgryQKzZExXkgei1WsxHr0ltuzivoCjn0OZlIRWqFk3msvnOntwe3xw5Nc5VVd2HFXfSGa39ulHjmRnsskm1RpqoLQL4Zy6bUkqYBOWSwFGr1byvS7vUrN9fn7L/V+2yWR8ys7IiP3x7f2sXe1MjIiL6FRaXXa8bRqxSnKz7/REk6vFxVezXTJpHSHFWkCxLcMR+4auu2mVi08kbe3bPW5E5saKp+De5YPWSIBLAkAY4BW9X/NOE2Cz4PxEFyQqD59R7AAAAAElFTkSuQmCC\"","export default (state, action) => {\r\n switch (action.type) {\r\n case 'GET_PROSPECT':\r\n return {\r\n ...state,\r\n prospect: action.payload\r\n }\r\n case 'GET_NEWSFEED':\r\n return {\r\n ...state,\r\n newsFeed: action.payload\r\n }\r\n case 'SET_SEARCH_SETTING':\r\n return {\r\n ...state,\r\n searchSetting: action.payload\r\n }\r\n case 'SET_FACET':\r\n return {\r\n ...state,\r\n searchFacet: action.payload\r\n }\r\n case 'GET_FOLLOWING':\r\n return {\r\n ...state,\r\n following: action.payload\r\n }\r\n case 'GET_FOLLOWING_ACCOUNTS':\r\n return {\r\n ...state,\r\n followingAccounts: action.payload\r\n }\r\n case 'GET_CONTACTOWNER':\r\n return {\r\n ...state,\r\n contactOwner: action.payload\r\n }\r\n case 'GET_RELATIONSHIPLEAD':\r\n return {\r\n ...state,\r\n relationshipLead: action.payload\r\n }\r\n case 'GET_ACCOUNT':\r\n return {\r\n ...state,\r\n account: action.payload\r\n }\r\n case 'SET_AUTHORIZED':\r\n return {\r\n ...state,\r\n authorized: action.payload\r\n }\r\n case 'SET_UPDATED_FOLLOWING':\r\n return {\r\n ...state,\r\n updatedFollowing: action.payload\r\n }\r\n case 'SET_UPDATED_FOLLOWING_ACCOUNTS':\r\n return {\r\n ...state,\r\n updatedFollowingAccounts: action.payload\r\n }\r\n case 'SET_PROSPECT_PAGE':\r\n return {\r\n ...state,\r\n isProspectPage: action.payload\r\n }\r\n case 'GET_TAGGEDRELATIONSHIPS':\r\n return {\r\n ...state,\r\n taggedRelationships: action.payload\r\n }\r\n case 'SET_USER_EMAIL':\r\n return {\r\n ...state,\r\n userEmail: action.payload\r\n }\r\n case 'GET_SCOOPS':\r\n return {\r\n ...state,\r\n scoops: action.payload\r\n }\r\n case 'GET_INTENTS':\r\n return {\r\n ...state,\r\n intents: action.payload\r\n }\r\n case 'GET_PROSPECT_VALIDATIONS':\r\n return {\r\n ...state,\r\n prospectValidations: action.payload\r\n }\r\n case 'GET_ACCOUNT_VALIDATIONS':\r\n return {\r\n ...state,\r\n accountValidations: action.payload\r\n }\r\n default:\r\n return state;\r\n }\r\n}","import { MsalAuthProvider, LoginType } from 'react-aad-msal';\r\nimport \"regenerator-runtime/runtime\";\r\n\r\n// Msal Configurations\r\nconst config = {\r\n auth: {\r\n authority: 'https://login.microsoftonline.com/16532572-d567-4d67-8727-f12f7bb6aed3',\r\n clientId: '8f9b2257-a7cd-4bd5-b02c-32ed0d035d37',\r\n postLogoutRedirectUri: window.location.origin, \r\n redirectUri: window.location.origin,\r\n validateAuthority: true,\r\n navigateToLoginRequestUrl: true\r\n },\r\n cache: {\r\n cacheLocation: \"localStorage\",\r\n storeAuthStateInCookie: true\r\n }\r\n};\r\n\r\n// Authentication Parameters\r\nconst authenticationParameters = {\r\n scopes: [\"8f9b2257-a7cd-4bd5-b02c-32ed0d035d37/.default\"]\r\n}\r\n\r\n// Options\r\nconst options = {\r\n loginType: LoginType.Redirect\r\n}\r\n\r\nexport const authProvider = new MsalAuthProvider(config, authenticationParameters, options)","import { authProvider } from './authProvider';\r\n\r\nexport const authHeaders = async () => {\r\n let getCookie = cname => {\r\n var name = cname + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n let token = await authProvider.getAccessToken();\r\n let headers = { headers: { Authorization: `Bearer ${token.accessToken}`, 'Content-Type': 'application/json', 'X-XSRF-TOKEN': getCookie(\"X-REQUEST-TOKEN\") } };\r\n\r\n return headers;\r\n}","import React from 'react';\r\nimport './OverlayTooltip.css';\r\nimport Tooltip from 'react-bootstrap/Tooltip';\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\r\nimport infoIcon from '../images/i-icon.png'\r\nimport questionMark from '../images/questionmark-icon.png'\r\n\r\n// this component needs to be refactored - simon\r\nexport const OverlayTooltip = (props) => {\r\n const image = (imageType) => {\r\n if (imageType && imageType === 'question') {\r\n return (\r\n \"Question\"\r\n )\r\n }\r\n else {\r\n return (\r\n \"Information\"\r\n )\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n props.imageType && props.imageType === 'none' ? null:\r\n \r\n {image(props.imageType)}\r\n \r\n }\r\n \r\n {props.tooltipText}\r\n \r\n \r\n \r\n }\r\n >\r\n {props.hoverElement}\r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport './Prospect/Overview.css';\r\nimport { OverlayTooltip } from './OverlayTooltip';\r\nimport Card from 'react-bootstrap/Card';\r\nimport infoIcon from '../images/i-icon.png'\r\n\r\nexport const NotAvailable = (props) => {\r\n const [tooltipText, setTooltipText] = useState('');\r\n\r\n useEffect(() => {\r\n let text = '';\r\n if (props.notavailable === 'companynews') {\r\n text = 'No news articles were found for this company at this time.';\r\n }\r\n else if (props.notavailable === 'external') {\r\n text = 'This information is not available in the vendor database.';\r\n }\r\n else if (props.notavailable === 'title') {\r\n text = 'There is no data currently stored within our internal Protiviti data for this section. If you know this information, please update within the system (e.g., SalesForce, iManage, etc.)';\r\n }\r\n else if (props.notavailable === 'solution') {\r\n text = 'There are no projects with incurred fees for this client in the given time period selected.'\r\n }\r\n else if (props.notavailable === 'field') {\r\n text = 'This information is not available within our internal Protiviti data. If you know the information, please update in the internal system. Note: ProConnect follows the same security protocols as our other Protiviti internal applications. Therefore, your access to update may be restricted based on your role and region.'\r\n }\r\n else if (props.notavailable === 'no-update') {\r\n text = 'This information is not available within our internal Protiviti data.'\r\n }\r\n else if (props.notavailable === 'marketingCampaign')\r\n {\r\n text = 'This information is not available within our internal Protiviti data.'\r\n }\r\n else if (props.notavailable === 'deck') {\r\n text = 'There is no account deck stored in our internal systems for this account.'\r\n }\r\n else if (props.notavailable === 'ownership')\r\n text = 'If this information is not accurate, please update in the internal system. Note: ProConnect follows the same security protocols as our other Protiviti internal applications. Therefore, your access to update may be restricted based on your role and region.'\r\n else {\r\n text = 'This data point is not currently stored within our internal Protiviti data. If you know this information, please update within the system (e.g., SalesForce, iManage, etc.)';\r\n }\r\n setTooltipText(text);\r\n }, [props]);\r\n return (\r\n \r\n {((props.notavailable !== \"title\" && props.notavailable !== \"companynews\" && props.notavailable !== \"solution\" && props.notavailable !== \"ownership\" && props.notavailable !== 'marketingCampaign' && props.notavailable !== 'external') || props.notavailable === \"noResult\") ?\r\n Not Available \r\n : null\r\n }\r\n {(props.notavailable !== \"section\" && props.linkUrl === '') ?\r\n } />\r\n : null\r\n }\r\n {(props.linkUrl !== '' && props.notavailable !== \"noResult\") ?\r\n } />\r\n : null\r\n }\r\n \r\n \r\n );\r\n};","import React from 'react';\r\nimport { ExpandMore, ExpandLess } from '@material-ui/icons';\r\nimport Card from 'react-bootstrap/Card';\r\nimport { LinkedIn } from '@material-ui/icons';\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\r\nimport Tooltip from 'react-bootstrap/Tooltip';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\nimport { Link } from 'react-router-dom';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { Spinner } from 'react-bootstrap/';\r\n\r\nexport const formatWebsite = (website) => {\r\n if (website.includes('http://') || website.includes('https://')) {\r\n return website;\r\n }\r\n else {\r\n return `//${website}`;\r\n }\r\n}\r\n\r\nexport const formatRevenue = (x) => {\r\n if (x < 9999) {\r\n return \"$\" + x;\r\n }\r\n else if (x < 1000000) {\r\n return \"$\" + Math.round(x / 1000) + \"K\";\r\n }\r\n else if (x < 10000000) {\r\n return \"$\" + (x / 1000000).toFixed(2) + \"M\";\r\n }\r\n else if (x < 1000000000) {\r\n return \"$\" + Math.round((x / 1000000)) + \"M\";\r\n }\r\n else if (x < 10000000000) {\r\n return \"$\" + (x / 1000000000).toFixed(2) + \"B\";\r\n }\r\n else if (x < 1000000000000) {\r\n return \"$\" + Math.round(x / 1000000000) + \"B\";\r\n }\r\n else {\r\n return \"$\" + Math.round((x / 1000000000000)) + \"T\";\r\n }\r\n}\r\n\r\nexport const formatNumber = (num) => {\r\n return num.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\r\n}\r\n\r\nexport const formatDate = (date) => {\r\n let shortMonth = {\r\n '01': 'Jan', //'January',\r\n '02': 'Feb', //'February',\r\n '03': 'Mar', //'March',\r\n '04': 'Apr', //'April',\r\n '05': 'May', //'May',\r\n '06': 'Jun', //'June',\r\n '07': 'Jul', //'July',\r\n '08': 'Aug', //'August',\r\n '09': 'Sep', //'September',\r\n '10': 'Oct', //'October',\r\n '11': 'Nov', //'November',\r\n '12': 'Dec' //'December'\r\n };\r\n\r\n if (!date || date.substring(0, 4) === '0001')\r\n return null;\r\n return `${shortMonth[date.substring(5, 7)]} ${date.substring(8, 10)}, ${date.substring(0, 4)}`;\r\n}\r\n\r\nexport const formatMonthYearDate = (date) => {\r\n let shortMonth = {\r\n '01': 'Jan', //'January',\r\n '02': 'Feb', //'February',\r\n '03': 'Mar', //'March',\r\n '04': 'Apr', //'April',\r\n '05': 'May', //'May',\r\n '06': 'Jun', //'June',\r\n '07': 'Jul', //'July',\r\n '08': 'Aug', //'August',\r\n '09': 'Sep', //'September',\r\n '10': 'Oct', //'October',\r\n '11': 'Nov', //'November',\r\n '12': 'Dec' //'December'\r\n };\r\n\r\n if (!date || date.substring(0, 4) === '0001')\r\n return null;\r\n return `${shortMonth[date.substring(5, 7)]} ${date.substring(0, 4)}`;\r\n}\r\n\r\nexport const formatYear = (date) => {\r\n if (!date || date.substring(0, 4) === '0001')\r\n return null;\r\n return date.substring(0, 4);\r\n}\r\n\r\nexport const formatText = (text, maxlength) => {\r\n if (text.length > maxlength) {\r\n return text.substring(0, maxlength) + '...';\r\n }\r\n else {\r\n return text;\r\n }\r\n}\r\n\r\nexport const mailSubject = () => {\r\n let path = window.location.pathname\r\n let subject = '';\r\n if (path.includes('/prospect/') || path.includes('/company/')) {\r\n subject = path.substring(path.lastIndexOf('/') + 1, path.length)\r\n\r\n }\r\n else if (path.includes('/search')) {\r\n subject = 'Search Page'\r\n }\r\n else {\r\n if (path.lastIndexOf('/') === path.length - 1)\r\n subject = 'Homepage'\r\n }\r\n return subject\r\n}\r\n\r\nexport const formatAccountName = (name) => {\r\n let index = name.indexOf(' - (') > 0 ? name.indexOf(' - (') : name.indexOf(' (');\r\n let companyName = (index > 0) ? name.substring(0, index) : name;\r\n return companyName;\r\n}\r\n\r\nexport const getUrlLink = (type, id) => {\r\n var clientSideSettings = JSON.parse(localStorage.getItem('ClientSideSettings'));\r\n if (!clientSideSettings) {\r\n clientSideSettings = {\r\n sfdcUrl: \"https://protiviti.my.salesforce.com/\",\r\n sfdcLightning: \"https://protiviti.lightning.force.com/lightning/r/\",\r\n hubUrl: \"https://dev.hub-tst.protiviti.com/client/\",\r\n iManageUrl: \"https://dev.imanage-tst.protiviti.com/engagements/shellEdit/\",\r\n iManageFilterList: \"https://dev.imanage-tst.protiviti.com/engagements/shellFilter/\"\r\n }\r\n }\r\n if (id !== '' && id !== null) {\r\n if (type === 'sfdc') {\r\n return id !== null ? clientSideSettings.sfdcUrl + id : null;\r\n }\r\n if (type === 'sfdclightningAcc') {\r\n return id !== null ? clientSideSettings.sfdcLightning + 'Account/' + id + '/view' : null\r\n }\r\n if (type === 'sfdclightningOpp') {\r\n return id !== null ? clientSideSettings.sfdcLightning + 'Opportunity/' + id + '/view' : null\r\n }\r\n if (type === 'sfdclightningCon') {\r\n return id !== null ? clientSideSettings.sfdcLightning + 'Contact/' + id + '/view' : null\r\n }\r\n if (type === 'hub') {\r\n return id !== null ? clientSideSettings.hubUrl + id : null;\r\n }\r\n if (type === 'imanage') {\r\n return id !== null ? clientSideSettings.iManageUrl + id : null;\r\n }\r\n if (type === 'imanageFilter') {\r\n return id !== null ? clientSideSettings.iManageFilterList : null;\r\n }\r\n if (type === 'sfdcopplist') {\r\n return 'https://protiviti.lightning.force.com/lightning/o/Opportunity/list?filterName=Recent'\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport const provideLinkToCompanyPage = (id) => {\r\n //protiviti alumni accounts\r\n let DoNotLinkCompanies = [\r\n '0018000000Q7Bu1AAF',\r\n '0018000001YXtm3AAD',\r\n '0013000000H902aAAB',\r\n '0013000000KQyZpAAL'\r\n ]\r\n\r\n for (let i = 0; i < DoNotLinkCompanies.length; i++) {\r\n if (DoNotLinkCompanies[i] === id)\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport const showModifiedDate = (value) => {\r\n return value.map((v) => {\r\n let a = Object.assign({}, v);\r\n a.showLastModified = true;\r\n return a;\r\n });\r\n}\r\n\r\nexport const filterModifiedDate = (data) => {\r\n let priorDate = new Date(new Date().setDate(new Date().getDate() - 30)); //30 days prior to current date\r\n\r\n return data.filter(_ => {\r\n let date = new Date(_.modifiedDate);\r\n return date >= priorDate\r\n }).sort((a, b) => {\r\n return new Date(b.modifiedDate) - new Date(a.modifiedDate)\r\n });\r\n}\r\n\r\nexport const renderSortArrow = (order, column) => {\r\n if (!order) return null;\r\n else if (order === 'asc') return ;\r\n else if (order === 'desc') return ;\r\n}\r\n\r\nexport const setUpLinkedinUrl = (url, fromProspect) => {\r\n if (url) {\r\n url = url.toLowerCase();\r\n if (url.includes('linkedin.com')) {\r\n if (!url.startsWith('https://'))\r\n var linkedinUrl = 'https://'.concat(url);\r\n else linkedinUrl = url;\r\n }\r\n else if (url.startsWith('/in/')) {\r\n linkedinUrl = 'https://linkedin.com/'.concat(url);\r\n }\r\n else linkedinUrl = null;\r\n }\r\n else linkedinUrl = null;\r\n\r\n if (linkedinUrl)\r\n return (\r\n \r\n )\r\n else return null;\r\n}\r\n\r\nexport const renderOutlook = (email) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const triggerFilter = (showFilters, setShowFilters) => {\r\n return (\r\n {showFilters ? 'Hide Filters' : 'Show Filters'}}>\r\n setShowFilters(!showFilters)} style={{ border: 'none', outline: 'none', borderRadius: '0', paddingLeft: '20px', paddingRight: '20px' }}>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const handleOnFilterTable = (filterArr, data, key) => {\r\n // custom filter logic for react-bootstrap-table2 -> accounts for Not Available\r\n if (filterArr.length !== 0) {\r\n return data.filter(row => {\r\n\r\n // for Project Year Ended\r\n if (key === 'endedDate') {\r\n let value = row['endedDate'];\r\n let filterValue = filterArr.find(val => {\r\n if (val === 'Ongoing' || val === 'On Hold' || val === 'Hold' || val === 'SIP') {\r\n value = (row.projectStatus !== 'Closed') ? row.projectStatus : value;\r\n value = value === 'Active' ? 'Ongoing' : value; // if Active, value = 'Ongoing'\r\n }\r\n return (val === value || value.includes(val))\r\n });\r\n return (value === filterValue || value.includes(filterValue));\r\n }\r\n else if (key === 'source') {\r\n // for Interaction source\r\n let filterValue = filterArr.find(val => {\r\n return formatSourceReverse(val) === row[key]\r\n });\r\n return row[key] === formatSourceReverse(filterValue);\r\n }\r\n else if (key === 'connectionType') {\r\n // for Interaction type\r\n let filterValue = filterArr.find(val => {\r\n return formatTypeReverse(val) === row[key]\r\n });\r\n return row[key] === formatTypeReverse(filterValue);\r\n }\r\n else {\r\n // all other cases\r\n let filterValue = filterArr.find(val => {\r\n return val === row[key]\r\n });\r\n return row[key] === filterValue;\r\n }\r\n });\r\n }\r\n return data;\r\n}\r\n\r\nexport const formatEndYear = (row) => {\r\n if (row.projectStatus === 'Closed' && row.endedDate.substring(0, 4) !== '0001') {\r\n return row.endedDate.substring(0, 4);\r\n }\r\n else if (row.projectStatus === 'Active' || row.projectStatus === 'Open') {\r\n return 'Ongoing';\r\n }\r\n else if (row.projectStatus !== null && row.projectStatus !== 'Closed') { // SIP, On Hold, Hold\r\n return row.projectStatus;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nexport const formatType = (value) => {\r\n // Microsoft Outlook\r\n if (value === 'Message')\r\n return 'Outlook Message';\r\n if (value === 'EventMessage')\r\n return 'Outlook Event';\r\n if (!value)\r\n return 'Not Available';\r\n return value;\r\n}\r\n\r\nexport const formatSource = (value) => {\r\n if (value === '#Microsoft.Outlook')\r\n return 'Microsoft Outlook';\r\n if (value === 'Task' || value === 'Event')\r\n return 'Salesforce ' + value;\r\n\r\n return value;\r\n}\r\n\r\nexport const formatTypeReverse = (value) => {\r\n if (value === 'Outlook Message')\r\n return 'Message';\r\n else if (value === 'Outlook Event')\r\n return 'EventMessage';\r\n else if (value === 'Not Available')\r\n return null;\r\n else\r\n return value;\r\n}\r\n\r\nexport const formatSourceReverse = (value) => {\r\n if (value === 'Microsoft Outlook') \r\n return '#Microsoft.Outlook';\r\n else if (value === 'Salesforce Event') \r\n return 'Event';\r\n else if (value === 'Salesforce Task') \r\n return 'Task';\r\n else \r\n return value;\r\n}\r\n\r\nexport const asteriskHoverover = (value, nonProtivitiEmployee) => {\r\n // nonProtivitiEmployee === true -> Non Protiviti Employees, nonProtivitiEmployee === false -> Protiviti Employee\r\n let tooltipText = nonProtivitiEmployee ? '* indicates \"This user is an inactive contact within the Protiviti systems\"' : '* indicates \"This user is no longer with Protiviti\"';\r\n return {value}} imageType='none' />;\r\n}\r\n\r\nexport const getFormatCompanyLink = (id, name) => {\r\n let element =
{formatText(name, 40)}
;\r\n\r\n return (formatText(name, 40).length > 40 ?\r\n \r\n :\r\n element\r\n );\r\n}\r\n\r\nexport const getOnStaticOptionsUpdate = (staticColumn, filterKey, noFilters, staticOption) => {\r\n if (noFilters) {\r\n let options = { ...staticOption };\r\n delete options[filterKey];\r\n return options;\r\n }\r\n else if (!staticOption.hasOwnProperty(filterKey)) {\r\n return { ...staticOption, ...{ [filterKey]: staticColumn } };\r\n }\r\n}\r\n\r\nexport const getRelationshipStyle = (relationship) => {\r\n let color = '#00acc4';\r\n switch (relationship) {\r\n case 'A-List':\r\n color = '#329A3D';\r\n break;\r\n case 'QBR':\r\n color = '#CFA915';\r\n break;\r\n case 'RBC':\r\n color = '#E77B1B';\r\n break;\r\n case 'NR':\r\n color = '#D44622'\r\n break;\r\n case 'TR':\r\n color = '#2DA8B5'\r\n break;\r\n default:\r\n color = '#00acc4';\r\n }\r\n return color;\r\n}\r\n\r\nexport const formatLastContacted = (date, type) => {\r\n //2020-02-07 00:00:00.0000000 -> Feb 2020 format\r\n const monthShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // for LastContacted date\r\n if (date && type) {\r\n return `${formatType(type)}, ${monthShort[date.substring(5, 7) - 1]} ${date.substring(0, 4)}`;\r\n }\r\n else if (date && !type) {\r\n return `${monthShort[date.substring(5, 7) - 1]} ${date.substring(0, 4)}`;\r\n }\r\n else {\r\n return ;\r\n }\r\n}\r\n\r\nexport const renderTaggedRelationship = (relationShipStrength) => {\r\n return (\r\n
\r\n {relationShipStrength}\r\n
\r\n );\r\n}\r\n\r\nexport const renderLoadingSpinner = () => {\r\n return (\r\n
\r\n \r\n Loading...\r\n \r\n
\r\n );\r\n}\r\n\r\nexport const mapValidationField = (field, isAccountType) => {\r\n let prospectMapping = {\r\n 'emailAddressExternal': 0,\r\n 'phoneExternal': 1\r\n };\r\n\r\n let accountMapping = {};\r\n\r\n if (isAccountType) return accountMapping[field];\r\n return prospectMapping[field];\r\n}","import React, { createContext, useReducer } from 'react';\r\nimport AppReducer from './AppReducer';\r\nimport axios from 'axios';\r\nimport config from '../config';\r\nimport { authHeaders } from '../auth/authHeaders';\r\nimport { formatAccountName } from '../../src/components/Shared/Util';\r\n\r\n// Initial state\r\nconst initialState = {\r\n prospect: null,\r\n newsFeed: [],\r\n searchSetting: {},\r\n searchFacet: null,\r\n following: [],\r\n followingAccounts: [],\r\n updatedFollowing: [],\r\n updatedFollowingAccounts: [],\r\n contactOwner: [],\r\n relationshipLead: [],\r\n account: null,\r\n authorized: false,\r\n authentication: null,\r\n isProspectPage: false,\r\n taggedRelationships: [],\r\n userEmail: null,\r\n scoops: null,\r\n intents: null,\r\n prospectValidations: [],\r\n accountValidations: []\r\n}\r\n\r\n// Create context\r\nexport const GlobalContext = createContext(initialState);\r\n\r\n// Provider component\r\nexport const GlobalProvider = (props) => {\r\n const [state, dispatch] = useReducer(AppReducer, initialState);\r\n\r\n // Actions\r\n const getProspect = async (id) => {\r\n let headers = await authHeaders();\r\n let prospectUrl = config.azRedirectUri + '/api/prospects/' + id;\r\n\r\n await axios.get(prospectUrl, headers).then((response) => {\r\n let companyName = null;\r\n\r\n if (response && response.data && response.data.company && response.data.company.name) {\r\n companyName = formatAccountName(response.data.company.name);\r\n response.data.company.name = companyName;\r\n\r\n dispatch({\r\n type: 'GET_ACCOUNT',\r\n payload: response.data.company\r\n });\r\n }\r\n\r\n if (response && response.data && response.data.primaryKeyBuyerOf && response.data.primaryKeyBuyerOf.length > 0) {\r\n response.data.primaryKeyBuyerOf.map((opp) => {\r\n opp.companyName = formatAccountName(opp.companyName);\r\n });\r\n }\r\n\r\n dispatch({\r\n type: 'GET_PROSPECT',\r\n payload: response.data\r\n });\r\n if (response.data.company.relProAccountId)\r\n getScoopsIntents(response.data.company.relProAccountId);\r\n if (response.data.company && response.data.company.tickerSymbol)\r\n getCompanyNews(response.data.company.tickerSymbol, companyName);\r\n\r\n }).catch((err) => {\r\n dispatch({\r\n type: 'GET_PROSPECT',\r\n payload: null\r\n });\r\n dispatch({\r\n type: 'GET_ACCOUNT',\r\n payload: null\r\n });\r\n });\r\n }\r\n\r\n const getAccount = async (accountId) => {\r\n let headers = await authHeaders();\r\n let url = config.azRedirectUri + '/api/accounts/' + accountId;\r\n\r\n await axios.get(url, headers).then((response) => {\r\n let companyName = null;\r\n\r\n if (response && response.data && response.data.name) {\r\n companyName = formatAccountName(response.data.name);\r\n response.data.name = companyName;\r\n }\r\n\r\n dispatch({\r\n type: 'GET_ACCOUNT',\r\n payload: response.data\r\n });\r\n if (response.data.relProAccountId)\r\n getScoopsIntents(response.data.relProAccountId);\r\n if (response.data.tickerSymbol)\r\n getCompanyNews(response.data.tickerSymbol, companyName);\r\n }).catch((err) => {\r\n dispatch({\r\n type: 'GET_ACCOUNT',\r\n payload: null\r\n });\r\n });\r\n }\r\n\r\n const getCompanyNews = async (tickerSymbol, companyName) => {\r\n if (tickerSymbol) {\r\n let ticker = tickerSymbol ? '%20' + encodeURIComponent(tickerSymbol) : '';\r\n let url = 'https://www.bing.com/news/search?q=' + encodeURIComponent('\"' + companyName + '\"') + ticker + '&format=RSS';\r\n var yql = 'https://api.rss2json.com/v1/api.json?rss_url=' + encodeURIComponent(url);\r\n\r\n let news = await getCompanyNewsCall(yql);\r\n\r\n if (news.length === 0) {\r\n ticker = tickerSymbol ? '%20' + encodeURIComponent('\"' + tickerSymbol + '\"') : '';\r\n url = 'https://www.bing.com/news/search?q=' + encodeURIComponent(companyName) + ticker + '&format=RSS';\r\n yql = 'https://api.rss2json.com/v1/api.json?rss_url=' + encodeURIComponent(url);\r\n news = await getCompanyNewsCall(yql);\r\n }\r\n\r\n dispatch({\r\n type: 'GET_NEWSFEED',\r\n payload: news\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: 'GET_NEWSFEED',\r\n payload: []\r\n });\r\n }\r\n }\r\n\r\n const getCompanyNewsCall = async (yql) => {\r\n return await axios.get(yql)\r\n .then(function (response) {\r\n let data = response.data;\r\n let feed = [];\r\n feed = data.items.sort(function (a, b) {\r\n if (a[\"pubDate\"] > b[\"pubDate\"])\r\n return -1;\r\n else if (a[\"pubDate\"] < b[\"pubDate\"])\r\n return 1;\r\n return 0;\r\n })\r\n feed = feed.filter((v, i, a) => a.findIndex(a => (a[\"title\"] === v[\"title\"])) === i).splice(0, 10);\r\n if (feed.length > 0) {\r\n for (let i = 0; i < feed.length; i++) {\r\n feed[i].link = feed[i].link.replace(new RegExp('amp;', 'g'), '');\r\n feed[i].title = feed[i].title.replace(new RegExp('amp;', 'g'), '');\r\n }\r\n }\r\n\r\n return feed;\r\n })\r\n .catch(error => {\r\n dispatch({\r\n type: 'GET_NEWSFEED',\r\n payload: []\r\n });\r\n return [];\r\n });\r\n }\r\n\r\n const getScoopsIntents = async (relProAccountId) => {\r\n\r\n let relProId = relProAccountId ? relProAccountId.replace('/', '%2F') : null\r\n let headers = await authHeaders();\r\n let scoopUrl = config.azRedirectUri + '/api/Scoop';\r\n let intentUrl = config.azRedirectUri + '/api/Intent';\r\n await Promise.all([axios.post(scoopUrl, { accountId: relProId }, headers), axios.post(intentUrl, { accountId: relProId }, headers)])\r\n .then((responses) => {\r\n const [scoopsResponse, intentsResponse] = responses;\r\n if (scoopsResponse.data.length > 0) {\r\n dispatch({\r\n type: 'GET_SCOOPS',\r\n payload: scoopsResponse.data\r\n })\r\n }\r\n if (intentsResponse.data.length > 0) {\r\n dispatch({\r\n type: 'GET_INTENTS',\r\n payload: intentsResponse.data\r\n })\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: 'GET_SCOOPS',\r\n payload: null\r\n });\r\n dispatch({\r\n type: 'GET_INTENTS',\r\n payload: null\r\n })\r\n });\r\n }\r\n\r\n const getFollowing = async () => {\r\n let headers = await authHeaders();\r\n let url = config.azRedirectUri + '/api/user/followedprospects';\r\n\r\n await axios.get(url, headers)\r\n .then((res) => {\r\n dispatch({\r\n type: 'GET_FOLLOWING',\r\n payload: res.data\r\n });\r\n })\r\n }\r\n\r\n const followProspect = async (id) => {\r\n let headers = await authHeaders();\r\n let url = config.azRedirectUri + '/api/user/followprospect/' + id;\r\n\r\n await axios.post(url, null, headers)\r\n .then((res) => {\r\n getFollowing();\r\n })\r\n }\r\n\r\n const getContactOwner = async () => {\r\n let header = await authHeaders();\r\n let url = config.azRedirectUri + '/api/user/contactowner';\r\n\r\n await axios.get(url, header)\r\n .then((res) => {\r\n dispatch({\r\n type: 'GET_CONTACTOWNER',\r\n payload: res.data\r\n })\r\n })\r\n }\r\n\r\n const getRelationshipLead = async () => {\r\n let header = await authHeaders();\r\n let url = config.azRedirectUri + '/api/user/relationshiplead';\r\n\r\n await axios.get(url, header)\r\n .then((res) => {\r\n dispatch({\r\n type: 'GET_RELATIONSHIPLEAD',\r\n payload: res.data\r\n })\r\n })\r\n }\r\n\r\n const getFollowingAccounts = async () => {\r\n let headers = await authHeaders();\r\n let url = config.azRedirectUri + '/api/user/followedaccounts';\r\n\r\n await axios.get(url, headers)\r\n .then((res) => {\r\n dispatch({\r\n type: 'GET_FOLLOWING_ACCOUNTS',\r\n payload: res.data\r\n });\r\n })\r\n }\r\n\r\n const followAccount = async (id) => {\r\n let headers = await authHeaders();\r\n let url = config.azRedirectUri + '/api/user/followaccount/' + id;\r\n\r\n await axios.post(url, null, headers)\r\n .then((res) => {\r\n getFollowingAccounts();\r\n })\r\n }\r\n\r\n const setSearchSetting = (settings) => {\r\n dispatch({\r\n type: 'SET_SEARCH_SETTING',\r\n payload: settings\r\n });\r\n }\r\n\r\n const setSearchFacet = (facet) => {\r\n dispatch({\r\n type: 'SET_FACET',\r\n payload: facet\r\n });\r\n }\r\n\r\n const setAuthorized = (isAuthorized) => {\r\n dispatch({\r\n type: 'SET_AUTHORIZED',\r\n payload: isAuthorized\r\n });\r\n }\r\n\r\n const setUpdatedFollowing = (data) => {\r\n dispatch({\r\n type: 'SET_UPDATED_FOLLOWING',\r\n payload: data\r\n });\r\n }\r\n\r\n const setUpdatedFollowingAccounts = (data) => {\r\n dispatch({\r\n type: 'SET_UPDATED_FOLLOWING_ACCOUNTS',\r\n payload: data\r\n });\r\n }\r\n\r\n const setIsProspectPage = (prospectPage) => {\r\n dispatch({\r\n type: 'SET_PROSPECT_PAGE',\r\n payload: prospectPage\r\n });\r\n }\r\n\r\n const getTaggedRelationships = async () => {\r\n let header = await authHeaders();\r\n let url = config.azRedirectUri + '/api/user/taggedrelationships';\r\n\r\n await axios.get(url, header)\r\n .then((res) => {\r\n dispatch({\r\n type: 'GET_TAGGEDRELATIONSHIPS',\r\n payload: res.data\r\n });\r\n });\r\n }\r\n\r\n const setUserEmail = (data) => {\r\n dispatch({\r\n type: 'SET_USER_EMAIL',\r\n payload: data\r\n });\r\n }\r\n\r\n const getValidation = async (sfdcId, relProId, type) => {\r\n let header = await authHeaders();\r\n let url = `${config.azRedirectUri}/api/user/validation?sfdcId=${sfdcId}&relProId=${relProId}&type=${type}`;\r\n let dispatchType = type === 0 ? 'GET_PROSPECT_VALIDATIONS' : 'GET_ACCOUNT_VALIDATIONS';\r\n\r\n await axios.get(url, header)\r\n .then((res) => {\r\n dispatch({\r\n type: dispatchType,\r\n payload: res.data\r\n });\r\n });\r\n }\r\n\r\n const setValidation = async (sfdcId, relProId, type, state, field) => {\r\n let header = await authHeaders();\r\n let url = `${config.azRedirectUri}/api/user/validation/validate`;\r\n\r\n let body = {\r\n sfdcId,\r\n relProId,\r\n type,\r\n state,\r\n field\r\n };\r\n\r\n await axios.post(url, body, header)\r\n .then((res) => {\r\n let dispatchType = body.type === 0 ? 'GET_PROSPECT_VALIDATIONS' : 'GET_ACCOUNT_VALIDATIONS';\r\n dispatch({\r\n type: dispatchType,\r\n payload: res.data\r\n });\r\n });\r\n }\r\n\r\n return (\r\n {props.children}\r\n );\r\n};","import React from 'react';\r\nimport '../Prospect/Overview.css';\r\nimport Button from 'react-bootstrap/Button';\r\nimport { setUpLinkedinUrl, renderOutlook } from '../Shared/Util';\r\n\r\nexport const EmployeeLinks = (props) => {\r\n return (\r\n
\r\n {props.data.emailAddress ?\r\n <>\r\n {renderOutlook(props.data.emailAddress)}\r\n {!props.external ?\r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n :\r\n null\r\n }\r\n {setUpLinkedinUrl(props.data.linkedinUrl)}\r\n {props.isPeopleSearchLive === \"True\" && !props.external && props.data.peopleSearchKey ?\r\n \r\n :\r\n null\r\n }\r\n
\r\n );\r\n};","import React from \"react\";\r\n\r\nconst DefaultPhoto = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default DefaultPhoto;","import React, { useState, useRef, useEffect } from 'react';\r\nimport '../Prospect/Overview.css';\r\nimport Select, { components } from 'react-select';\r\nimport { formatDate, formatMonthYearDate, formatEndYear, formatType, formatSource } from '../Shared/Util';\r\n\r\nexport const FilterMultiSelect = (props) => {\r\n const selectRef = useRef(null);\r\n const [selected, setSelected] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.column.filter.props.getFilter) {\r\n props.column.filter.props.getFilter((filterVal) => {\r\n if (filterVal.length === 0) {\r\n setSelected([]);\r\n props.onFilter([]);\r\n props.onStaticOptionsUpdate([], props.filterKey, true);\r\n }\r\n else {\r\n props.onFilter(filterVal);\r\n }\r\n });\r\n }\r\n });\r\n\r\n\r\n const onFilterChange = (filters) => {\r\n let filtersArr = filters ? [...new Set(filters.map(x => x[props.filterKey]))] : [];\r\n\r\n setSelected(filters);\r\n props.onFilter(filtersArr);\r\n\r\n // set static when first option has been selected from this column\r\n if (filtersArr.length === 0 || ((!selected || selected.length === 0) && filtersArr.length > 0)) {\r\n let staticOptions = [...new Set(props.filteredData.map(_ => checkFormat(_, props.filterKey)))]; // new set -> removes duplicates\r\n props.onStaticOptionsUpdate(staticOptions, props.filterKey, filtersArr.length === 0);\r\n }\r\n }\r\n\r\n const Menu = (props) => {\r\n return (\r\n \r\n
\r\n
{props.children}
\r\n
Clear
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const onClear = () => {\r\n setSelected([]);\r\n props.onFilter([]);\r\n props.onStaticOptionsUpdate([], props.filterKey, true);\r\n selectRef.current.select.blur();\r\n }\r\n\r\n const getLabel = (option) => {\r\n // if props.format === 'date' -> formatDate\r\n // if props.format === 'date-month-year' -> formatMonthYearDate\r\n\r\n let value = option[props.filterKey]; // Bracket notation for variable key\r\n\r\n if (props.format && props.format === 'date') {\r\n let date = formatDate(value);\r\n return date ? date : 'Not Available';\r\n }\r\n else if (props.format && props.format === 'date-month-year') {\r\n let date = formatMonthYearDate(value);\r\n return date ? date : 'Not Available';\r\n }\r\n else {\r\n return value === null ? 'Not Available' : value; // label as Not Available if null\r\n }\r\n }\r\n\r\n const getValue = (option) => {\r\n //if (props.format && props.format === 'date-month-year') {\r\n // let date = formatMonthYearDate(option[props.filterKey]);\r\n // return date ? date : 'Not Available';\r\n //}\r\n //else {\r\n // return option[props.filterKey];\r\n //}\r\n return option[props.filterKey];\r\n }\r\n\r\n const formatOptions = (a) => {\r\n if (props.format && props.format === 'date-year') { // Project Year Ended -> if format === 'date-year', value = formatEndYear\r\n return ({ [props.filterKey]: formatEndYear(a) })\r\n }\r\n else if (props.format && props.format === 'interaction-source') {\r\n return ({ [props.filterKey]: formatSource(a.source) })\r\n }\r\n else if (props.format && props.format === 'interaction-type') {\r\n return ({ [props.filterKey]: formatType(a.connectionType) })\r\n }\r\n else {\r\n return ({ [props.filterKey]: a[props.filterKey] });\r\n }\r\n }\r\n\r\n const getOptions = () => {\r\n let sourceOptions = [...props.options];\r\n\r\n // dynamic filtering, selected column stay static, non-selected dynamically changes\r\n if (Object.keys(props.currentFilters).length > 0) {\r\n let currFilters = Object.keys(props.currentFilters).reduce((acc, key) => {\r\n acc[key] = props.currentFilters[key]['filterVal'].map(_ => checkFormatText(_, key));\r\n return acc;\r\n }, {});\r\n\r\n sourceOptions = props.options.filter(option => {\r\n if (Object.keys(props.staticOption).length > 0 && props.staticOption.hasOwnProperty(props.filterKey)) {\r\n let value = checkFormat(option, props.filterKey);\r\n return props.staticOption[props.filterKey].includes(value);\r\n }\r\n else {\r\n return (\r\n Object.keys(currFilters).every(key => {\r\n let value = checkFormat(option, key);\r\n return currFilters[key].includes(value);\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n // reformat options for React Select options & remove duplicates\r\n let options = Array.from(new Set(sourceOptions.map(a => formatOptions(a))))\r\n .filter((key, index, self) => self.findIndex(a => (a[props.filterKey] === key[props.filterKey])) === index); // remove duplicates\r\n\r\n // sort options\r\n if (props.format && (props.format === 'date-year' || props.format === 'date' || props.format === 'date-month-year' || props.format === 'number')) {\r\n // desc order\r\n return options.sort(sortingOptions(false));\r\n }\r\n\r\n // asc order\r\n return options.sort(sortingOptions(true));\r\n }\r\n\r\n const sortingOptions = (ascending) => {\r\n return (a, b) => {\r\n // equal items sort equally\r\n if (a[props.filterKey] === b[props.filterKey]) {\r\n return 0;\r\n }\r\n // nulls sort after anything else\r\n else if (a[props.filterKey] === null) {\r\n return 1;\r\n }\r\n else if (b[props.filterKey] === null) {\r\n return -1;\r\n }\r\n // otherwise, if we're ascending, lowest sorts first\r\n else if (ascending) {\r\n return a[props.filterKey] < b[props.filterKey] ? -1 : 1;\r\n }\r\n // if descending, highest sorts first\r\n else {\r\n return a[props.filterKey] < b[props.filterKey] ? 1 : -1;\r\n }\r\n }\r\n }\r\n\r\n const checkFormat = (option, key) => {\r\n if (key === 'endedDate') {\r\n return formatEndYear(option);\r\n }\r\n else {\r\n return checkFormatText(option[key], key);\r\n }\r\n }\r\n\r\n const checkFormatText = (text, key) => {\r\n if (key === 'opportunityCloseDate' && props.from === 'key-buyer') {\r\n return formatMonthYearDate(text);\r\n }\r\n else if (key === 'opportunityCloseDate' || key === 'campaignDateSent' || key === 'lastContacted' || key === 'lastOpportunityWonDate') {\r\n return formatDate(text);\r\n }\r\n else if (key === 'source') {\r\n return formatSource(text);\r\n }\r\n else if (key === 'formatType') {\r\n return formatType(text);\r\n }\r\n else {\r\n return text;\r\n }\r\n }\r\n\r\n const selectStyles = {\r\n menuPortal: base => ({ ...base, zIndex: 9999 }),\r\n menu: provided => ({ ...provided, zIndex: '9999 !important', top: 'auto', width: 'auto', minWidth: '100px' }),\r\n container: base => ({ ...base, position: 'auto' }),\r\n control: base => ({ ...base, border: 0, boxShadow: 'none' }), // disable blue border \r\n valueContainer: (base) => ({\r\n ...base,\r\n display: 'block',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis'\r\n })\r\n };\r\n\r\n if (!props.showFilters) {\r\n return null;\r\n }\r\n\r\n return (\r\n
e.stopPropagation()}>\r\n getLabel(option)}\r\n getOptionValue={(option) => getValue(option)}\r\n components={{\r\n Menu,\r\n ValueContainer,\r\n IndicatorsContainer\r\n }}\r\n placeholder='All'\r\n isSearchable={false}\r\n closeMenuOnSelect={false}\r\n passProps={{ \r\n // passes data to ValueContainer via selectProps\r\n format: props.format \r\n }}\r\n />\r\n
\r\n );\r\n}\r\n\r\n// Custom component must be declared outside of render due to closeMenuOnSelect props\r\nconst ValueContainer = ({ children, getValue, ...props }) => {\r\n // Changes to custom label for input textbox\r\n let values = getValue();\r\n let valueLabel = \"\";\r\n\r\n if (values.length > 0) {\r\n let firstValue = 'Not Available';\r\n\r\n let value = values[0][Object.keys(values[0])[0]];\r\n if (value) {\r\n // no need to deal with Year Ended\r\n if (props.selectProps.passProps.format && props.selectProps.passProps.format === 'date') {\r\n firstValue = formatDate(value);\r\n }\r\n else if (props.selectProps.passProps.format && props.selectProps.passProps.format === 'date-month-year') {\r\n firstValue = formatMonthYearDate(value);\r\n }\r\n else if (props.selectProps.passProps.format && props.selectProps.passProps.format === 'interaction-source') {\r\n firstValue = formatSource(value);\r\n }\r\n else if (props.selectProps.passProps.format && props.selectProps.passProps.format === 'interaction-type') {\r\n firstValue = formatType(value);\r\n }\r\n else if (props.selectProps.passProps.format && props.selectProps.passProps.format === 'number') {\r\n firstValue = value;\r\n }\r\n else {\r\n // limit 30 since input not long enough -> fixes text positioning issue for long filter options\r\n firstValue = value.slice(0, 30);\r\n }\r\n }\r\n\r\n valueLabel = `${firstValue}`;\r\n }\r\n\r\n // Keep standard placeholder and input from react-select\r\n\r\n // Doesn't work due to minification, trying reverse filtering as shown below\r\n //let childsToRender = React.Children.toArray(children).filter(child => [\"Input\", \"DummyInput\", \"Placeholder\"].indexOf(child.type.name) >= 0);\r\n\r\n // Reverse filtering\r\n let childsToRender = React.Children.map(children, (child) => (child && [components.SingleValue, components.MultiValue].indexOf(child.type) === -1) ? child : null);\r\n\r\n return (\r\n \r\n {!props.selectProps.inputValue && valueLabel}\r\n {childsToRender}\r\n \r\n );\r\n};\r\n\r\n// for the +number of filters\r\nconst IndicatorsContainer = (props) => {\r\n let values = props.getValue();\r\n let valueLabel = \"\";\r\n\r\n if (values.length > 1)\r\n valueLabel = `(+${values.length - 1})`;\r\n\r\n return (\r\n components.IndicatorsContainer && (\r\n \r\n {valueLabel} {props.children}\r\n \r\n )\r\n );\r\n}","import React, { useState, forwardRef, useImperativeHandle } from 'react';\r\nimport './Overview.css';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport ForumOutlinedIcon from '@material-ui/icons/ForumOutlined';\r\nimport { authHeaders } from '../../auth/authHeaders';\r\nimport axios from 'axios';\r\nimport config from '../../config';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport 'react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { formatDate, renderSortArrow, triggerFilter, handleOnFilterTable, formatType, formatSource, getOnStaticOptionsUpdate } from '../Shared/Util';\r\nimport { FilterMultiSelect } from '../Shared/FilterMultiSelect';\r\nimport filterFactory, { customFilter, FILTER_TYPES } from 'react-bootstrap-table2-filter';\r\n\r\nexport const NumberOfInteractions = forwardRef((props, ref) => {\r\n let sourceFilter, typeFilter, contactedFilter;\r\n const [type, setType] = useState();\r\n const [showFilters, setShowFilters] = useState(true);\r\n const [currentFilters, setCurrentFilters] = useState({});\r\n const [staticOption, setStaticOption] = useState({});\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [outlookMessagesCount, setOutlookMessagesCount] = useState(0);\r\n const [outlookEventCount, setOutlookEventCount] = useState(0);\r\n const [sfdcEventCount, setSfdcEventCount] = useState(0);\r\n const [sfdcTaskCount, setSfdcTaskCount] = useState(0);\r\n const [interactionDetail, setInteractionDetail] = useState({\r\n openModal: false,\r\n id: null,\r\n employeeId: null,\r\n emloyeeName: null,\r\n interactions: [],\r\n sourcefilter: null,\r\n typefilter: null,\r\n distinctSources: [],\r\n disctinctTypes: [],\r\n interactionGroups: []\r\n });\r\n\r\n const clearAllFilters = () => {\r\n sourceFilter([]);\r\n typeFilter([]);\r\n contactedFilter([]);\r\n\r\n setCurrentFilters({});\r\n setStaticOption({});\r\n }\r\n\r\n const onStaticOptionsUpdate = (staticColumn, filterKey, noFilters) => {\r\n if (noFilters || !staticOption.hasOwnProperty(filterKey))\r\n setStaticOption(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOption));\r\n }\r\n\r\n const afterFilter = (newResult, newFilters) => {\r\n setCurrentFilters(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n return newFilters\r\n }\r\n return prevData\r\n });\r\n\r\n setFilteredData(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n return newResult\r\n }\r\n return prevData\r\n });\r\n }\r\n\r\n const InteractionTableColumns = [\r\n {\r\n dataField: 'id',\r\n text: 'key',\r\n hidden: true\r\n },\r\n {\r\n dataField: 'source',\r\n text: 'Source',\r\n hidden: false,\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? formatSource(value) : ),\r\n headerStyle: { fontWeight: '500', width: '140px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n sourceFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'source')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'connectionType',\r\n text: 'Type',\r\n hidden: false,\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? formatType(value) : ),\r\n headerStyle: { fontWeight: '500', width: '140px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n typeFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'connectionType')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'lastContacted',\r\n text: 'Last Contacted',\r\n hidden: false,\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value) => ((value && value.substring(0, 4) !== '0001') ? formatDate(value) : ),\r\n headerStyle: { fontWeight: '500', width: '180px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n contactedFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'lastContacted')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n ];\r\n\r\n useImperativeHandle(ref, () => ({\r\n openModal(id, type, employeeid, employeename, sourcefilter, typefilter) {\r\n openmodalwithitem(id, type, employeeid, employeename, sourcefilter, typefilter);\r\n }\r\n }));\r\n\r\n\r\n const openmodalwithitem = async (id, type, employeeid, employeename, sourcefilter, typefilter) => {\r\n let headers = await authHeaders();\r\n var interactions = [];\r\n var distinctSources = null;\r\n var disctinctTypes = null;\r\n var interactionGroups = null;\r\n let url = '';\r\n setType(type);\r\n if(type === 'prospect')\r\n url = config.azRedirectUri + '/api/prospects/intereactions/' + id + '/' + employeeid + '?sourcefilter=' + sourcefilter + '&typefilter=' + typefilter;\r\n else if (type === 'account')\r\n url = config.azRedirectUri + '/api/accounts/intereactions/' + id + '/' + employeeid + '?sourcefilter=' + sourcefilter + '&typefilter=' + typefilter;\r\n await axios.get(url, headers)\r\n .then(function (response) {\r\n interactions = response.data.item1;\r\n interactionGroups = response.data.item2;\r\n distinctSources = response.data.item3;\r\n disctinctTypes = response.data.item4;\r\n if (interactions.length < 2) {\r\n setShowFilters(false);\r\n }\r\n else {\r\n setShowFilters(true);\r\n }\r\n });\r\n\r\n setInteractionDetail({\r\n openModal: true,\r\n id: id,\r\n employeeid: employeeid,\r\n employeeName: employeename,\r\n interactions: interactions,\r\n sourcefilter: sourcefilter,\r\n typefilter: typefilter,\r\n distinctSources: distinctSources,\r\n disctinctTypes: disctinctTypes,\r\n interactionGroups: interactionGroups\r\n });\r\n\r\n setFilteredData(interactions);\r\n\r\n setOutlookMessagesCount(summaryCount('outlook-messages', interactionGroups));\r\n setOutlookEventCount(summaryCount('outlook-events', interactionGroups));\r\n setSfdcEventCount(summaryCount('sfdc-events', interactionGroups));\r\n setSfdcTaskCount(summaryCount('sfdc-tasks', interactionGroups));\r\n };\r\n\r\n const summaryCount = (summary, interactionGroups) => {\r\n let count = 0;\r\n switch (summary) {\r\n case 'outlook-messages':\r\n let interationMessages = interactionGroups.find(x => (x.source === '#Microsoft.Outlook' && x.connectionType === 'Message'));\r\n if (interationMessages)\r\n count = interationMessages.count;\r\n break;\r\n case 'outlook-events':\r\n var interactionEvents = interactionGroups.find(x => (x.source === '#Microsoft.Outlook' && x.connectionType === 'EventMessage'));\r\n if (interactionEvents)\r\n count = interactionEvents.count;\r\n break;\r\n case 'sfdc-events':\r\n interactionGroups.forEach(x => {\r\n if (x.source === 'Event')\r\n count += x.count;\r\n })\r\n break;\r\n case 'sfdc-tasks':\r\n interactionGroups.forEach(x => {\r\n if (x.source === 'Task')\r\n count += x.count;\r\n })\r\n break;\r\n default:\r\n count = 0;\r\n }\r\n return count;\r\n }\r\n\r\n return (\r\n {\r\n setInteractionDetail({\r\n openmodal: false, id: '', employeeid: '', interactions: [], sourcefilter: '', typefilter: '', distinctSources: [], distinctTypes: [], interactionGroups: []\r\n });\r\n }}\r\n dialogClassName=\"modal-90w\"\r\n aria-labelledby=\"example-custom-modal-styling-title\">\r\n \r\n \r\n

{type === 'prospect' ? 'Interactions' : 'Connected Colleagues'}

\r\n {\r\n type === 'account' ? \r\n
Based on Salesforce events from the previous week
\r\n :\r\n null\r\n }\r\n
\r\n {interactionDetail.interactions.length > 1 ?\r\n
\r\n
\r\n
\r\n {triggerFilter(showFilters, setShowFilters)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n : null\r\n }\r\n
\r\n 0) ? 'auto' : 'none' }}>\r\n
Summary
\r\n {\r\n interactionDetail.interactionGroups.length > 0 ?\r\n <>\r\n
    \r\n
  • Employee Name: {interactionDetail.employeeName}
  • \r\n {outlookMessagesCount > 0 ?
  • Outlook Messages: {outlookMessagesCount}
  • : null}\r\n {outlookEventCount > 0 ?
  • Outlook Events: {outlookEventCount}
  • : null}\r\n {sfdcEventCount > 0 ?
  • Salesforce Events: {sfdcEventCount}
  • : null}\r\n {sfdcTaskCount > 0 ?
  • Salesforce Tasks: {sfdcTaskCount}
  • : null}\r\n
\r\n \r\n : null\r\n }\r\n {\r\n 10 ? paginationFactory() : null}\r\n hover={true}\r\n filter={filterFactory({ afterFilter })}\r\n />\r\n }\r\n
\r\n \r\n );\r\n})","import React, { useState, useRef } from 'react';\r\nimport ListGroup from 'react-bootstrap/ListGroup';\r\nimport Row from 'react-bootstrap/Row';\r\nimport Col from 'react-bootstrap/Col';\r\nimport DefaultPhoto from '../Shared/DefaultPhoto';\r\nimport { asteriskHoverover, getRelationshipStyle, formatLastContacted } from '../Shared/Util';\r\nimport { EmployeeLinks } from '../Shared/EmployeeLinks';\r\nimport { NumberOfInteractions } from '../Prospect/NumberOfInteractions';\r\n\r\n\r\nexport const ShowInternalConnections = (connections, type, id) => {\r\n const childRef = useRef();\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n\r\n\r\n return (\r\n <>\r\n \r\n {connections.map((connection, i) => (\r\n \r\n
\r\n
\r\n {connection.employee.photoUrl ?\r\n :\r\n \r\n }\r\n {connection.relationShipStrength}\r\n
\r\n
\r\n \r\n \r\n

{connection.employee.isTerminated ? asteriskHoverover(connection.employee.name, false) : connection.employee.name}{(connection.employee.company ? \", \" + connection.employee.company : '')}

\r\n
\r\n {\r\n ((connection.employee.title && connection.employee.title.indexOf(' (') > 0) ? connection.employee.title.substring(0, connection.employee.title.indexOf(' (')) : connection.employee.title) +\r\n ((connection.employee.title && connection.employee.city) ? ', ' : '') +\r\n (connection.employee.city ? connection.employee.city + ' Office' : '')\r\n }\r\n
\r\n \r\n
\r\n \r\n {!connection.employee.isTerminated ?\r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n {connection.lastContactTime ?\r\n
\r\n Last Connected: \r\n {formatLastContacted(connection.lastContactTime, connection.lastContactType)}\r\n
\r\n :\r\n null\r\n }\r\n {connection.numberOfInteractions ?\r\n \r\n :\r\n
This contact is tagged as a Relationship within Salesforce
\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n \r\n );\r\n};","import React, { useContext, useState, useRef } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport './Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport PeopleOutlineIcon from '@material-ui/icons/PeopleOutline';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { EmployeeLinks } from '../Shared/EmployeeLinks';\r\nimport questionMark from '../../images/questionmark-icon.png'\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\nimport { getUrlLink, asteriskHoverover } from '../Shared/Util';\r\nimport UnfoldMoreIcon from '@material-ui/icons/UnfoldMore';\r\nimport { Link } from 'react-router-dom';\r\nimport { ShowInternalConnections } from '../Shared/ShowInternalConnection'; \r\n\r\n\r\nexport const InternalConnections = () => {\r\n\r\n const { prospect } = useContext(GlobalContext);\r\n const [showMore, setShowMore] = useState(false);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n\r\n const handleShowMore = () => setShowMore(!showMore);\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n

Internal Connections

\r\n
\r\n
\r\n \r\n
\r\n {ShowInternalConnections(prospect.connections, 'prospect', prospect.id)}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n

\r\n Internal Connections {(prospect.connections && prospect.connections.length > 0) ? null : }\r\n
These are colleagues who have connected with this contact most recently based on logged Salesforce events. Note, Tagged relationships (A-List, QBR, RBC, TR, NR) are listed first regardless of the date of interaction.
\r\n {(prospect.connections && prospect.connections.length > 0) ?\r\n
\r\n Connection Map View\r\n
\r\n :\r\n null\r\n }\r\n

\r\n {\r\n
\r\n
Relationship Lead } imageType={'question'} />
\r\n {\r\n prospect.relationshipLead ?\r\n
\r\n
{prospect.relationshipLead.isTerminated ? asteriskHoverover(prospect.relationshipLead.name, false) : prospect.relationshipLead.name}{prospect.relationshipLead.company ? ', ' + prospect.relationshipLead.company : null}
\r\n
\r\n {\r\n ((prospect.relationshipLead.title && prospect.relationshipLead.title.indexOf(' (') > 0) ? prospect.relationshipLead.title.substring(0, prospect.relationshipLead.title.indexOf(' (')) : prospect.relationshipLead.title) +\r\n ((prospect.relationshipLead.title && prospect.relationshipLead.city) ? ', ' : '') +\r\n (prospect.relationshipLead.city ? prospect.relationshipLead.city + ' Office' : '')\r\n }\r\n
\r\n {!prospect.relationshipLead.isTerminated ? : null}\r\n
\r\n\r\n :\r\n \r\n }\r\n
\r\n }\r\n
\r\n {(prospect.connections && prospect.connections.length > 0) ?\r\n
\r\n {ShowInternalConnections(prospect.connections.slice(0, 3), 'prospect', prospect.id)}\r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n};","import React from 'react';\r\nimport '../Prospect/Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\n\r\nexport const PowerBI = (props) => {\r\n return (\r\n
\r\n \r\n \r\n }>\r\n \r\n
\r\n );\r\n};","import React, { useRef, useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Overlay, Tooltip } from 'react-bootstrap';\r\nimport './OverlayTooltip.css';\r\n\r\n// Component found from Github - modified\r\nfunction PopoverStickOnHover({ delay, onMouseEnter, children, component, placement }) {\r\n const [showPopover, setShowPopover] = useState(false);\r\n const childNode = useRef(null);\r\n let setTimeoutConst = null;\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (setTimeoutConst) {\r\n clearTimeout(setTimeoutConst);\r\n }\r\n };\r\n });\r\n\r\n const handleMouseEnter = () => {\r\n setTimeoutConst = setTimeout(() => {\r\n setShowPopover(true);\r\n onMouseEnter();\r\n }, delay);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n clearTimeout(setTimeoutConst);\r\n setShowPopover(false);\r\n };\r\n\r\n const displayChild = React.Children.map(children, child =>\r\n React.cloneElement(child, {\r\n onMouseEnter: handleMouseEnter,\r\n onMouseLeave: handleMouseLeave,\r\n ref: node => {\r\n childNode.current = node;\r\n const { ref } = child;\r\n if (typeof ref === 'function') {\r\n ref(node);\r\n }\r\n }\r\n })\r\n )[0];\r\n\r\n return (\r\n <>\r\n {displayChild}\r\n \r\n {\r\n setShowPopover(true);\r\n }}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n \r\n {component}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nPopoverStickOnHover.propTypes = {\r\n children: PropTypes.element.isRequired,\r\n delay: PropTypes.number,\r\n onMouseEnter: PropTypes.func,\r\n component: PropTypes.node.isRequired,\r\n placement: PropTypes.string.isRequired\r\n};\r\n\r\nPopoverStickOnHover.defaultProps = {\r\n delay: 0,\r\n onMouseEnter: () => {}\r\n};\r\n\r\nexport default PopoverStickOnHover;","import React, { useContext, useState, useEffect } from 'react';\r\nimport '../Prospect/Overview.css';\r\nimport questionMark from '../../images/questionmark-icon.png'; // temp icon for testing\r\nimport PopoverStickOnHover from '../PopoverStickOnHover';\r\nimport ThumbUpIcon from '@material-ui/icons/ThumbUp';\r\nimport ThumbDownIcon from '@material-ui/icons/ThumbDown';\r\nimport ThumbUpOutlinedIcon from '@material-ui/icons/ThumbUpOutlined';\r\nimport ThumbDownOutlinedIcon from '@material-ui/icons/ThumbDownOutlined';\r\nimport { mapValidationField } from '../Shared/Util';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\n\r\nexport const ExternalDetail = (props) => {\r\n const { prospectValidations, accountValidations, setValidation } = useContext(GlobalContext);\r\n const [validationState, setValidationState] = useState(null); // thumbsup = 0, thumbsdown = 1\r\n\r\n useEffect(() => {\r\n let validation = null;\r\n if (props.type === 0) validation = prospectValidations;\r\n else if (props.type === 1) validation = accountValidations;\r\n\r\n if (validation !== null && validation.length > 0) {\r\n let found = validation.find(_ => _.field === mapValidationField(props.field, false));\r\n if (found && (found.state === 0 || found.state === 1))\r\n setValidationState(found.state);\r\n else\r\n setValidationState(null);\r\n }\r\n else {\r\n setValidationState(null);\r\n }\r\n }, [prospectValidations, accountValidations]);\r\n\r\n const handleOnClick = (state) => {\r\n setValidation(props.sfdcId, props.relProId, props.type, state, mapValidationField(props.field, false));\r\n };\r\n\r\n const renderThumbs = () => {\r\n return (\r\n \r\n {validationState === 0 ?\r\n handleOnClick(0)} />\r\n :\r\n handleOnClick(0)} />\r\n }\r\n {validationState === 1 ?\r\n handleOnClick(1)} />\r\n :\r\n handleOnClick(1)} />\r\n }\r\n \r\n );\r\n };\r\n\r\n return (\r\n { } }\r\n delay={200}\r\n component={\r\n
\r\n
{props.data}
\r\n
\r\n {renderThumbs()}\r\n
\r\n
\r\n }\r\n >\r\n Question\r\n \r\n );\r\n}","import React, { useContext, useState, useEffect } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport './Overview.css';\r\nimport { Link } from 'react-router-dom';\r\nimport Card from 'react-bootstrap/Card';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport Button from 'react-bootstrap/Button';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\nimport HelpOutlineIcon from '@material-ui/icons/HelpOutline';\r\nimport { getUrlLink, provideLinkToCompanyPage, setUpLinkedinUrl, formatDate, formatWebsite } from '../Shared/Util'; \r\nimport DefaultPhoto from '../Shared/DefaultPhoto';\r\nimport questionMark from '../../images/questionmark-icon.png';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';\r\nimport FacebookIcon from '@material-ui/icons/Facebook';\r\nimport TwitterIcon from '@material-ui/icons/Twitter';\r\nimport YouTubeIcon from '@material-ui/icons/YouTube';\r\nimport instagram from '../../images/instagram-icon.svg';\r\nimport { PowerBI } from '../Shared/PowerBI';\r\nimport { ExternalDetail } from '../Shared/ExternalDetail';\r\n\r\nexport const ProspectBackground = () => {\r\n const { prospect, following, followProspect } = useContext(GlobalContext);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n const [showEducation, setShowEducation] = useState(false);\r\n const [showEmployment, setEmployment] = useState(false);\r\n const [showActivities, setShowActivities] = useState(false);\r\n const [showAwards, setShowAwards] = useState(false);\r\n\r\n const [activitiesShowMore, setActivitiesShowMore] = useState(false);\r\n const [load, setLoad] = useState(5);\r\n\r\n const isFollowing = (id) => {\r\n const followingId = following.map(_ => _.id);\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n const getPKBStatus = () => {\r\n if (prospect.isPrimaryKeyBuyer === true) {\r\n if (prospect.primaryKeyBuyerOf.length > 0) {\r\n if (prospect.primaryKeyBuyerOf[0].companyId === prospect.company.id) {\r\n return (Yes);\r\n }\r\n else {\r\n let companyName = prospect.primaryKeyBuyerOf[0].companyName.length > 10 ? 'Yes, ' + prospect.primaryKeyBuyerOf[0].companyName.substring(0, 10) + '...' : 'Yes, ' + prospect.primaryKeyBuyerOf[0].companyName;\r\n\r\n return (\r\n {companyName}} />\r\n } />\r\n );\r\n }\r\n } else {\r\n return (Yes);\r\n }\r\n }\r\n\r\n return 'No';\r\n }\r\n\r\n const renderAwards = () => {\r\n return (\r\n
\r\n {\r\n prospect && prospect.awards && prospect.awards.length !== 0 ?\r\n prospect.awards.map((item) => {\r\n return (\r\n
\r\n
{item.institutionName}
\r\n
{item.certification} {item.endDate ? '- ' + formatDate(item.endDate) : null}
\r\n
{item.certificationDescription}
\r\n
\r\n );\r\n })\r\n : Not Available \r\n }\r\n
\r\n )\r\n }\r\n\r\n const renderEmployment = () => {\r\n return (\r\n
\r\n {\r\n prospect && prospect.employment && prospect.employment.length !== 0 ?\r\n prospect.employment.map((item, i) => {\r\n return (\r\n
\r\n
{item.companyName}
\r\n
{item.title}
\r\n
\r\n );\r\n })\r\n : Not Available \r\n }\r\n
\r\n )\r\n }\r\n\r\n const handleShowMore = () => {\r\n setActivitiesShowMore(!activitiesShowMore)\r\n if (activitiesShowMore) {\r\n setLoad(prospect.activities.length);\r\n }\r\n else {\r\n setLoad(5);\r\n }\r\n }\r\n\r\n const renderActivities = () => {\r\n return (\r\n
\r\n {\r\n prospect && prospect.activities && prospect.activities.length !== 0 ?\r\n
\r\n {\r\n prospect.activities.filter((item, idx) => idx < load).map((item) => {\r\n return (\r\n
\r\n
{item.companyName}
\r\n
{item.title} {item.EndDate ? '- ' + formatDate(item.EndDate) : null}
\r\n
{item.description}
\r\n\r\n
\r\n );\r\n })}\r\n \r\n {load < prospect.activities.length? 'View More' : 'View Less'}\r\n \r\n
\r\n\r\n : Not Available \r\n } \r\n
\r\n )\r\n }\r\n\r\n const renderEducation = () => {\r\n return (\r\n
\r\n {\r\n prospect && prospect.education && prospect.education.length !== 0 ?\r\n prospect.education.map((item) => {\r\n return (\r\n
\r\n
{item.school}
\r\n
{item.educationDegree ? item.educationDegree.areaOfStudy : null}
\r\n
{item.educationDegree ? item.educationDegree.degree : null}
\r\n
{item.institutionName} {item.EndDate ? '- ' + formatDate(item.EndDate) : null}
\r\n
{item.certification}
\r\n
\r\n );\r\n })\r\n : Not Available \r\n }\r\n
\r\n );\r\n }\r\n\r\n const renderExternal = (title, setShowFunction, show, renderFunction) => {\r\n return (\r\n
\r\n
\r\n setShowFunction(!show)} > {title} {show ? : }\r\n
\r\n
\r\n {renderFunction()}\r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n {/*{prospect.photoUrl ?\r\n \r\n :\r\n \r\n }*/}\r\n {prospect.photoUrl ?\r\n
\r\n :\r\n \r\n }\r\n {isFollowing(prospect.id)}\r\n
\r\n

{prospect.name}

\r\n
{prospect.title}
\r\n {provideLinkToCompanyPage(prospect.company.id) ?\r\n
{prospect.company.name}
: \r\n
{prospect.company.name}
\r\n }\r\n
\r\n Location: \r\n {prospect.location || }\r\n
\r\n
\r\n In Salesforce?: \r\n {prospect.isInSalesforce ? Yes : 'No'}\r\n
\r\n
\r\n Protiviti Alumni?: \r\n {prospect.isProtivitiAlumni ? 'Yes' : 'No'}\r\n
\r\n {/*
\r\n Key Buyer?: \r\n {getPKBStatus()}\r\n
*/}\r\n
\r\n Contact at Robert Half?: \r\n {prospect.hasRoberthalfContact ? prospect.hasRoberthalfContact : \"No\"}\r\n {prospect.hasRoberthalfContact && prospect.hasRoberthalfContact === \"Yes\" ? : null}\r\n
\r\n\r\n {/* Display External data - not actual implementation - created to test Thumbs up & down */}\r\n {prospect.emailAddressExternal ? \r\n
\r\n Phone (External): \r\n {prospect.phoneExternal} \r\n
\r\n :\r\n null\r\n }\r\n {prospect.phoneExternal ?\r\n
\r\n Email (External): \r\n {prospect.emailAddressExternal} \r\n
\r\n :\r\n null\r\n }\r\n\r\n
\r\n {prospect.instagramUrl ? : null}\r\n {prospect.facebookUrl ? : null}\r\n {prospect.twitterUrl ? : null}\r\n {prospect.youtubeUrl ? : null} \r\n {setUpLinkedinUrl(prospect.linkedinUrl, true)}\r\n {prospect.emailAddress ? \r\n \r\n : null}\r\n
\r\n {prospect.phone ?\r\n
\r\n Work - {prospect.phone}\r\n
: null\r\n }\r\n {prospect.emailAddress ?\r\n
\r\n {prospect.emailAddress} \r\n {prospect.emailBounceback ?\r\n \r\n Question\r\n \r\n }\r\n imageType={'question'}\r\n /> : null\r\n }\r\n
: null\r\n }\r\n
\r\n
\r\n {renderExternal('Past Job Experience', setEmployment, showEmployment, renderEmployment)}\r\n {renderExternal('Education', setShowEducation, showEducation, renderEducation)}\r\n {renderExternal('Activities', setShowActivities, showActivities, renderActivities)}\r\n {renderExternal('Awards', setShowAwards, showAwards, renderAwards)}\r\n
\r\n
\r\n
\r\n );\r\n};","import React from 'react';\r\nimport '../Prospect/Overview.css';\r\nimport { getUrlLink, asteriskHoverover } from '../Shared/Util';\r\nimport { EmployeeLinks } from '../Shared/EmployeeLinks';\r\nimport { NotAvailable } from '../NotAvailable';\r\n\r\nexport const EmployeeDetails = (props) => {\r\n return (\r\n \r\n {\r\n props.data && props.data.name ?\r\n \r\n {!props.data.isTerminated ?\r\n \r\n {props.data.name}\r\n {\r\n ((props.data.title && props.data.title.indexOf(' (') > 0) ? ', ' + props.data.title.substring(0, props.data.title.indexOf(' (')) : props.data.title) +\r\n ((props.data.title && props.data.city) ? ', ' : '') +\r\n (props.data.city ? props.data.city + ' Office' : '')\r\n }\r\n
\r\n
\r\n :\r\n {asteriskHoverover(props.data.name, false)}\r\n }\r\n
\r\n :\r\n props.isPMO ?\r\n \r\n :\r\n \r\n }\r\n
\r\n );\r\n}\r\n\r\n","import React, { useContext, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport { Link } from 'react-router-dom';\r\nimport Row from 'react-bootstrap/Row';\r\nimport Col from 'react-bootstrap/Col';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { getUrlLink, formatWebsite, formatRevenue, formatNumber, formatDate, provideLinkToCompanyPage, formatText, asteriskHoverover } from './Util';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\nimport questionMark from '../../images/questionmark-icon.png';\r\nimport salesforce from '../../images/salesforce-logo.png';\r\nimport { EmployeeDetails } from './EmployeeDetails';\r\nimport SupervisedUserCircleOutlinedIcon from '@material-ui/icons/SupervisedUserCircleOutlined';\r\nimport FacebookIcon from '@material-ui/icons/Facebook';\r\nimport TwitterIcon from '@material-ui/icons/Twitter';\r\nimport YouTubeIcon from '@material-ui/icons/YouTube';\r\nimport LinkedInIcon from '@material-ui/icons/LinkedIn';\r\n\r\nexport const CompanyDescription = () => {\r\n const { account, followingAccounts, followAccount, isProspectPage } = useContext(GlobalContext);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n const [showMoreChild, setShowMoreChild] = useState(false);\r\n\r\n const isFollowing = (id) => {\r\n const followingId = followingAccounts.map(_ => _.id);\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n const checkAccountType = (accountType) => {\r\n return accountType && (accountType === 'Key' || accountType === 'Strategic');\r\n }\r\n\r\n const renderChildParent = (id, name) => {\r\n return (\r\n provideLinkToCompanyPage(id) ?\r\n {name}\r\n :\r\n {name} \r\n );\r\n }\r\n\r\n const iconChoice = (item) => {\r\n if (item.substring(0, item.indexOf('.com')).includes('linkedin')) {\r\n return \r\n }\r\n else if (item.substring(0, item.indexOf('.com')).includes('twitter')) {\r\n return \r\n }\r\n else if (item.substring(0, item.indexOf('.com')).includes('youtube')) {\r\n return \r\n }\r\n else if (item.substring(0, item.indexOf('.com')).includes('facebook')) {\r\n return \r\n }\r\n else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n const urlMap = (urls) => {\r\n return (\r\n \r\n {\r\n urls && urls.length !== 0 ?\r\n urls.map((item, i) => {\r\n if (iconChoice(item) != null) {\r\n return (\r\n \r\n );\r\n }\r\n })\r\n : null\r\n }\r\n \r\n )\r\n }\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {provideLinkToCompanyPage(account.id) && isProspectPage ?\r\n

{account.name}

:\r\n

\r\n {account.name}\r\n

\r\n }\r\n {isFollowing(account.id)}\r\n
\r\n {account.companyPhotoUrl ?
: null}\r\n {checkAccountType(account.accountType) ?\r\n
\r\n {account.accountType} Account\r\n
\r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n Parent Company: \r\n {account.accountParent ?\r\n \r\n :\r\n \"Not Available/Not Applicable\"\r\n }\r\n
\r\n
\r\n
\r\n\r\n

\r\n {\r\n (account.description && account.description.length > 1200) ?\r\n {formatText(account.description, 1200)}} imageType='none' />\r\n :\r\n account.description\r\n }\r\n

\r\n
\r\n \r\n \r\n
Headquarters: {account.headQuarters ? account.headQuarters : }
\r\n
Industry: {account.industry ? account.industry : }
\r\n
Sub Industry: {account.subIndustry ? account.subIndustry : }
\r\n {account.ownership === 'Public' || account.ownership === null ?\r\n
\r\n
Ticker: {account.tickerSymbol ? account.tickerSymbol : }
\r\n
IPO Date: {(account.ipoDate && account.ipoDate.substring(0, 4) !== '0001') ? formatDate(account.ipoDate) : }
\r\n
\r\n :\r\n
Privately Held Company
\r\n\r\n }\r\n {!account.id ? \r\n
\r\n In Salesforce?: No\r\n
\r\n :\r\n null\r\n }\r\n \r\n \r\n
Number of Employees: {account.numberOfEmployees ? formatNumber(account.numberOfEmployees) : }
\r\n
Annual Revenue: {account.annualRevenue ? formatRevenue(account.annualRevenue) : }
\r\n
Fortune Ranking: {account.ranking ? account.ranking : }
\r\n
Company Created Date: {account.startYear ? account.startYear : }
\r\n
\r\n Account Deck: \r\n {account.hubId && account.businessContextFrameworkUrl && account.businessContextFrameworkUrl.includes('.pdf') ?\r\n Business Context Framework\r\n :\r\n \r\n }\r\n
\r\n \r\n \r\n {checkAccountType(account.accountType) ?\r\n
\r\n
\r\n Account PMO: \r\n \r\n
\r\n
\r\n Account Leader: } imageType={'question'} /> \r\n \r\n
\r\n
\r\n :\r\n
\r\n Account MD/D } imageType={'question'} />: \r\n \r\n
\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {account.relProAccountId ?\r\n
\r\n Organizational Chart\r\n
\r\n :\r\n null\r\n }\r\n
\r\n {account.hubId ? : null}\r\n \r\n {urlMap(account.socialMediaUrls)}\r\n
\r\n
\r\n Website: \r\n {account.websiteUrl ?\r\n {account.websiteUrl}\r\n :\r\n \r\n }\r\n
\r\n
\r\n Child Company: \r\n {account.accountChild && account.accountChild.length > 0 ?\r\n \r\n {(showMoreChild ? account.accountChild : account.accountChild.slice(0, 5)).map((child, index) => (\r\n \r\n {renderChildParent(child.id, child.name)}\r\n \r\n ))}\r\n {account.accountChild.length > 5 ? setShowMoreChild(!showMoreChild)}>{showMoreChild ? 'View Less' : `View More (${account.accountChild.length})`} : null}\r\n \r\n :\r\n \"Not Available/Not Applicable\"\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};","import React, { useContext, useState, useEffect } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport WorkOutlineIcon from '@material-ui/icons/WorkOutline';\r\nimport config from '../../config';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\nimport { getUrlLink, renderSortArrow, formatText, triggerFilter, handleOnFilterTable, formatEndYear, asteriskHoverover, getFormatCompanyLink, getOnStaticOptionsUpdate } from '../Shared/Util';\r\nimport { FilterMultiSelect } from '../Shared/FilterMultiSelect';\r\nimport filterFactory, { customFilter, FILTER_TYPES } from 'react-bootstrap-table2-filter';\r\nimport { PowerBI } from '../Shared/PowerBI';\r\n\r\nexport const ProtivitiWork = () => {\r\n const { account, prospect } = useContext(GlobalContext);\r\n const [showMore, setShowMore] = useState(false);\r\n const [protivitiWork, setProtivitiWork] = useState([]);\r\n const [showFilters, setShowFilters] = useState(true);\r\n const [showFiltersModal, setShowFiltersModal] = useState(true);\r\n const [powerBILink, setPowerBILink] = useState(null);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n const [currentFilters, setCurrentFilters] = useState({});\r\n const [staticOption, setStaticOption] = useState({});\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n let nameFilter, yearEndedFilter, solutionFilter, emdFilter, emFilter;\r\n\r\n useEffect(() => {\r\n if (account.project.length < 2) {\r\n setShowFilters(!showFilters)\r\n }\r\n }, [account]);\r\n\r\n useEffect(() => {\r\n if (account && account.project) {\r\n setProtivitiWork(account.project);\r\n setFilteredData(account.project);\r\n }\r\n if (account && account.clientCodes && account.clientCodes.length > 0) {\r\n let powerBILink = clientSideSettings.powerBIUrl;\r\n let clientCodes = account.clientCodes.map((clientCode, i) => {\r\n return `'${clientCode}'${i !== account.clientCodes.length-1 ? ',' : ''}` \r\n }).join(''); \r\n powerBILink += encodeURIComponent(`${clientCodes})`).replace(/\\)/g, \"%29\"); \r\n\r\n setPowerBILink(powerBILink);\r\n }\r\n }, [account]);\r\n\r\n //const renderKeyBuyerLink = (value, row) => {\r\n // if (row.pkbIsNotProspect || (prospect && row.primaryKeyBuyerId === prospect.id)) return row.pkbIsNotProspect ? asteriskHoverover(value, true) : value;\r\n // else return {value}\r\n //}\r\n\r\n const onStaticOptionsUpdate = (staticColumn, filterKey, noFilters) => {\r\n if (noFilters || !staticOption.hasOwnProperty(filterKey))\r\n setStaticOption(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOption));\r\n }\r\n\r\n const afterFilter = (newResult, newFilters) => {\r\n setCurrentFilters(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n return newFilters\r\n }\r\n return prevData\r\n });\r\n\r\n setFilteredData(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n return newResult\r\n }\r\n return prevData\r\n });\r\n }\r\n\r\n const ProjectsTableColumns = [\r\n {\r\n dataField: 'name',\r\n text: 'Project',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ?\r\n formatText(value, 30).length > 30 ?\r\n {formatText(value, 30)}\r\n } />\r\n :\r\n formatText(value, 30)\r\n : ),\r\n headerStyle: { fontWeight: '500', width: '200px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n nameFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'name')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'endedDate',\r\n text: 'Year Ended',\r\n formatter: (value, row, rowIndex) => formatEndYear(row) || ,\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '120px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n yearEndedFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'endedDate')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'solution',\r\n text: 'Solution',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : ),\r\n headerStyle: { fontWeight: '500', width: '120px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n solutionFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'solution')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'engagementManagingDirector',\r\n text: 'EMD',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? (row.engagementManagingDirectorIsDeleted ? asteriskHoverover(value, false) : value) : ),\r\n headerStyle: { fontWeight: '500', width: '120px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n emdFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'engagementManagingDirector')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'engagementManager',\r\n text: 'EM',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? (row.engagementManagerIsDeleted ? asteriskHoverover(value, false) : value) : ),\r\n headerStyle: { fontWeight: '500', width: '120px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n emFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'engagementManager')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'id',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const clearAllFilters = () => {\r\n nameFilter([]);\r\n yearEndedFilter([]);\r\n solutionFilter([]);\r\n emdFilter([]);\r\n emFilter([]);\r\n setCurrentFilters({});\r\n setStaticOption({});\r\n }\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n clearAllFilters();\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n {account && account.name ?\r\n

\r\n Protiviti Projects \r\n {account.project.length > 0 ? null : }\r\n
These represent any projects that have been tagged to this account (not dependent on incurred fees)
\r\n

\r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {triggerFilter(showFiltersModal, setShowFiltersModal)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n {getFormatCompanyLink(account.id, account.name)}\r\n
Total # of Projects: {account.numberOfProject}
\r\n
\r\n
\r\n
\r\n \r\n {\r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n \r\n return (\r\n \r\n 0) ? 'auto' : 'none' }}>\r\n
\r\n {account && account.name ?\r\n

\r\n Protiviti Projects \r\n {account.project.length > 0 ? null : }\r\n
These represent any projects that have been tagged to this account (not dependent on incurred fees)
\r\n

\r\n :\r\n null\r\n }\r\n
\r\n {powerBILink ?\r\n
\r\n \r\n
Account Financial Data
\r\n
\r\n : null\r\n }\r\n {account.project.length > 1 ?\r\n
\r\n
\r\n {triggerFilter(showFilters, setShowFilters)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n :\r\n null\r\n }\r\n
\r\n {getFormatCompanyLink(account.id, account.name)}\r\n
Total # of Projects: {account.numberOfProject}
\r\n
\r\n
\r\n
\r\n {\r\n account.project.length > 0 ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n};","import React, { useContext, useEffect, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport protivitiLogo from '../../images/protiviti-logo.png';\r\nimport { PieChart, Pie, Cell, Tooltip, ResponsiveContainer } from 'recharts';\r\nimport DonutSmallOutlinedIcon from '@material-ui/icons/DonutSmallOutlined';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport { DropdownButton, Dropdown } from 'react-bootstrap/';\r\nimport { getUrlLink } from '../Shared/Util';\r\n\r\nexport const ProtivitiWorkSolution = () => {\r\n const { account } = useContext(GlobalContext);\r\n const [solutionPieChart, setPieChart] = useState([]);\r\n const [solutionTime, setSolutionTime] = useState('All');\r\n const solutionColor = ['#00ACC4', '#F6871F', '#00A28F', '#D74B29', '#3C3D3F', '#004068']; // first 6 colors predetermined\r\n const [noSolution] = useState([{\r\n name: 'noSolution',\r\n value: 1,\r\n color: '#c8c9c7'\r\n }]);\r\n const [projectCount, setProjectCount] = useState(0);\r\n\r\n useEffect(() => {\r\n if (account) {\r\n getSolutionPieChart('All');\r\n }\r\n }, [account]);\r\n\r\n const getSolutionPieChart = (time) => {\r\n let solutions = [];\r\n let counts = [];\r\n\r\n switch (time) {\r\n case 'Rolling 12 Months':\r\n solutions = account.solutionNames1;\r\n counts = account.solutionCounts1;\r\n break;\r\n case 'Past 3 Years':\r\n solutions = account.solutionNames3;\r\n counts = account.solutionCounts3;\r\n break;\r\n case 'Past 5 Years':\r\n solutions = account.solutionNames5;\r\n counts = account.solutionCounts5;\r\n break;\r\n default:\r\n solutions = account.solutionNamesA;\r\n counts = account.solutionCountsA;\r\n }\r\n\r\n let pieChart = [];\r\n\r\n if (solutions.length > 0 && counts.length > 0) {\r\n const sortedSolutionObject = solutions.map((solution, index) => ({ solutionNames: solution, solutionCounts: counts[index] }))\r\n .sort((a, b) => { return b.solutionCounts - a.solutionCounts });\r\n\r\n let solutionNotAvailable = null;\r\n let numberOfProjects = 0;\r\n\r\n for (let i = 0; i < sortedSolutionObject.length; i++) {\r\n if (sortedSolutionObject[i].solutionNames === 'Solution Not Available') {\r\n solutionNotAvailable = {\r\n name: 'Solution Not Available',\r\n value: sortedSolutionObject[i].solutionCounts,\r\n color: '#c8c9c7'\r\n }\r\n }\r\n else {\r\n let data = {\r\n name: sortedSolutionObject[i].solutionNames,\r\n value: sortedSolutionObject[i].solutionCounts,\r\n color: (i < 6 ? solutionColor[i] : 'rgb(' + (Math.floor(Math.random() * 255) + 1) + ',' + (Math.floor(Math.random() * 255) + 1) + ',' + (Math.floor(Math.random() * 255) + 1) + ')')\r\n }\r\n pieChart.push(data);\r\n }\r\n numberOfProjects += sortedSolutionObject[i].solutionCounts;\r\n }\r\n\r\n setProjectCount(numberOfProjects);\r\n\r\n // Solution Not Available last\r\n if (solutionNotAvailable) {\r\n pieChart.push(solutionNotAvailable);\r\n }\r\n }\r\n\r\n setPieChart(pieChart);\r\n }\r\n\r\n const CustomTooltip = e => {\r\n if (!e.active) {\r\n return null\r\n }\r\n return (\r\n
\r\n {e.payload[0].value}\r\n
\r\n );\r\n }\r\n\r\n const onSolutionTimeChange = (time) => {\r\n setSolutionTime(time);\r\n getSolutionPieChart(time);\r\n }\r\n\r\n const pieChartRender = (data) => {\r\n return (\r\n \r\n \r\n \r\n {\r\n data.map((entry, i) => )\r\n }\r\n \r\n {data[0].name === 'noSolution' ? null : }\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n

Protiviti Work by Solution {(account.solutionNamesA.length > 0 && solutionPieChart.length > 0) ? null : }

\r\n {account.solutionNamesA.length > 0 ?\r\n
\r\n
These are projects that have incurred fees over the given time period.
\r\n
\r\n
Total # of Projects: {projectCount}
\r\n
\r\n
\r\n {solutionPieChart.length > 0 ? pieChartRender(solutionPieChart) : pieChartRender(noSolution)}\r\n
\r\n \"Protiviti\"\r\n
\r\n
\r\n {solutionPieChart.length > 0 ?\r\n
\r\n {\r\n solutionPieChart.map((solution, i) => (\r\n
\r\n
\r\n
{solution.name}
\r\n
\r\n ))\r\n }\r\n
\r\n : null\r\n }\r\n
\r\n
\r\n Time Period\r\n
\r\n
\r\n {solutionTime || 'All'} } id=\"dropdown-menu-align-right\" className='sortby-dropdown'>\r\n onSolutionTimeChange('All')}>All\r\n onSolutionTimeChange('Rolling 12 Months')}>Rolling 12 Months\r\n onSolutionTimeChange('Past 3 Years')}>Past 3 Years\r\n onSolutionTimeChange('Past 5 Years')}>Past 5 Years\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n};","import React, { useContext, useState, useEffect } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport AssignmentOutlinedIcon from '@material-ui/icons/AssignmentOutlined';\r\nimport config from '../../config';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\nimport { getUrlLink, formatDate, renderSortArrow, formatText, triggerFilter, handleOnFilterTable, asteriskHoverover, getFormatCompanyLink, getOnStaticOptionsUpdate } from './Util';\r\nimport { FilterMultiSelect } from '../Shared/FilterMultiSelect';\r\nimport filterFactory, { customFilter, FILTER_TYPES } from 'react-bootstrap-table2-filter';\r\nimport salesforce from '../../images/salesforce-logo.png';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport const Opportunity = () => {\r\n const { account, prospect } = useContext(GlobalContext);\r\n const [opportunityState, setOpportunityState] = useState('open');\r\n\r\n const [openOpportunities, setOpenOpportunities] = useState([]);\r\n const [allOpportunities, setAllOpportunities] = useState([]);\r\n const [showMore, setShowMore] = useState(false);\r\n\r\n const [showFilters, setShowFilters] = useState(true);\r\n const [showFiltersModal, setShowFiltersModal] = useState(true);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n const [currentFilters, setCurrentFilters] = useState({});\r\n const [staticOption, setStaticOption] = useState({});\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n // needed for getFilter to clear when switching between all & open\r\n let nameFilter, closeDateFilter, oppMdFilter, pkbFilter, solutionFilter, serviceFilter, stageFilter, reasonFilter, explanationFilter, emFilter;\r\n\r\n useEffect(() => {\r\n if ((allOpportunities && opportunityState === 'all' && account.allOpportunity.length > 2) || (openOpportunities && opportunityState === 'open' && account.openOpportunity.length > 2)) {\r\n setShowFilters(true)\r\n }\r\n else {\r\n setShowFilters(false)\r\n }\r\n \r\n }, [opportunityState]);\r\n\r\n useEffect(() => {\r\n if (account) {\r\n if (account.openOpportunity)\r\n {\r\n setOpenOpportunities(account.openOpportunity);\r\n }\r\n if (account.allOpportunity)\r\n {\r\n setAllOpportunities(account.allOpportunity);\r\n }\r\n setFilteredData(account.openOpportunity);\r\n }\r\n }, [account]);\r\n\r\n useEffect(() => {\r\n if ((opportunityState === 'open' && openOpportunities && openOpportunities.length > 0) || (opportunityState === 'all' && allOpportunities && allOpportunities.length > 0)) {\r\n clearAllFilters();\r\n }\r\n }, [opportunityState]);\r\n\r\n const onStaticOptionsUpdate = (staticColumn, filterKey, noFilters) => {\r\n if (noFilters || !staticOption.hasOwnProperty(filterKey))\r\n setStaticOption(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOption));\r\n }\r\n\r\n const afterFilter = (newResult, newFilters) => {\r\n setCurrentFilters(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n return newFilters\r\n }\r\n return prevData\r\n });\r\n\r\n setFilteredData(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n return newResult\r\n }\r\n return prevData\r\n });\r\n }\r\n\r\n const formatOppStage = (stage) => {\r\n let oppStage = stage;\r\n switch (stage) {\r\n case 'Opportunity Qualified':\r\n oppStage = 'Opp. Qual.';\r\n break;\r\n case 'Potential Opportunity Identified':\r\n oppStage = 'Pot. Opp. Id.';\r\n break;\r\n case 'Proposed Approach / Pricing':\r\n oppStage = 'Prop. Appr.';\r\n break;\r\n case 'Client Negotiation / Review':\r\n oppStage = 'Client Neg.';\r\n break;\r\n default:\r\n oppStage = stage;\r\n }\r\n return oppStage;\r\n }\r\n\r\n\r\n const renderKeyBuyerLink = (value, row, currentUrl) => {\r\n let pageUrl = currentUrl ? currentUrl : window.location.pathname;\r\n if (!row.pkbIsNotProspect) {\r\n //if (pageUrl.startsWith('/company/'))\r\n // return {value};\r\n //else if (prospect && row.primaryKeyBuyerId === prospect.id)\r\n // return value;\r\n //else\r\n // return {value};\r\n\r\n if ((prospect && row.primaryKeyBuyerId !== prospect.id) || pageUrl.startsWith('/company/'))\r\n return {value};\r\n else\r\n return value;\r\n }\r\n else\r\n return asteriskHoverover(value, true);\r\n }\r\n\r\n const OpportunityTableColumns = [\r\n {\r\n dataField: 'name',\r\n text: 'Opportunity',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n \r\n {formatText(value, 30).length > 30 ?\r\n {formatText(value, 30)}\r\n : \r\n {formatText(value, 30)}\r\n } />\r\n :\r\n \r\n {row.opportunityKey ?\r\n {formatText(value, 30)}\r\n :\r\n {formatText(value, 30)}\r\n }\r\n \r\n }\r\n \r\n ),\r\n headerStyle: { fontWeight: '500', width: '110px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n nameFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'name')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'opportunityCloseDate',\r\n text: 'Opportunity Close Date',\r\n formatter: (value, row) => ((value && value.substring(0, 4) !== '0001') ? formatDate(value) : ),\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n closeDateFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'opportunityCloseDate')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'opportunityManagingDirector',\r\n text: 'Opportunity MD/D',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? (row.opportunityManagingDirectorIsDeleted ? asteriskHoverover(value, false) : value) : ),\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n oppMdFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'opportunityManagingDirector')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'primaryKeyBuyer',\r\n text: 'Primary Key Buyer',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? renderKeyBuyerLink(value, row) : ),\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n pkbFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'primaryKeyBuyer')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'solution',\r\n text: 'Solution',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : ),\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n solutionFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'solution')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'serviceOffering',\r\n text: 'Service Name',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : ),\r\n headerStyle: { fontWeight: '500', width: '120px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n serviceFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'serviceOffering')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'opportunityStage',\r\n text: 'Stage',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? formatOppStage(value) : ),\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n stageFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'opportunityStage')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'reasonForLoss',\r\n text: 'Reason',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (row.opportunityStage === 'Closed - Lost' ? value ? value : < NotAvailable notavailable='field' linkUrl={getUrlLink(row.opportunityKey ? 'iManage' : 'sfdclightningOpp', row.opportunityKey ? row.opportunityKey : row.id) } /> : \"Not Applicable\"),\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n hidden: opportunityState === 'open' ? true : false,\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n reasonFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'reasonForLoss')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'winLossExplanation',\r\n text: 'Reason Explanation',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (row.opportunityStage === 'Closed - Lost' ? value ? value : < NotAvailable notavailable='field' linkUrl={getUrlLink(row.opportunityKey ? 'iManage' : 'sfdclightningOpp', row.opportunityKey ? row.opportunityKey : row.id)} /> : \"Not Applicable\"),\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n hidden: opportunityState === 'open' ? true : false,\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n explanationFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'winLossExplanation')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'engagementManager',\r\n text: 'EM',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? (row.engagementManagerIsDeleted ? asteriskHoverover(value, false) : value) : ),\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n emFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'engagementManager')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'id',\r\n text: 'key',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n clearAllFilters();\r\n }\r\n\r\n const handleOpportunityStateChange = (from) => {\r\n if (opportunityState !== from) {\r\n if (opportunityState === 'open') {\r\n setOpportunityState('all');\r\n setOpenOpportunities(account.openOpportunity);\r\n }\r\n else {\r\n setOpportunityState('open');\r\n setAllOpportunities(account.allOpportunity);\r\n }\r\n }\r\n }\r\n\r\n const clearAllFilters = () => {\r\n if (opportunityState !== 'open') {\r\n // reason & explanation only exist from all -> open\r\n reasonFilter([]);\r\n explanationFilter([]);\r\n }\r\n\r\n // clear filters when switching between all & open\r\n nameFilter([]);\r\n closeDateFilter([]);\r\n oppMdFilter([]);\r\n pkbFilter([]);\r\n solutionFilter([]);\r\n serviceFilter([]);\r\n stageFilter([]);\r\n emFilter([]);\r\n\r\n setCurrentFilters({});\r\n setStaticOption({});\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n {\r\n opportunityState === 'open'?\r\n\r\n account && account.name ?\r\n

\r\n Open Opportunities \r\n {account.openOpportunity.length > 0 ? null : }\r\n

\r\n :\r\n null\r\n :\r\n account && account.name ?\r\n

\r\n All Opportunities \r\n {account.allOpportunity.length > 0 ? null : }\r\n

\r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {triggerFilter(showFiltersModal, setShowFiltersModal)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {getFormatCompanyLink(account.id, account.name)}\r\n
Total Open Opps: {account.numberOfOpenOpportunity}
\r\n
Total Opps: {account.numberOfAllOpportunity}
\r\n
\r\n
\r\n \r\n \r\n {((opportunityState === 'open' && account.numberOfOpenOpportunity > 25) || (opportunityState === 'all' && account.numberOfAllOpportunity > 25)) ?\r\n
\r\n For additional opportunities, see Salesforce.\r\n \r\n
\r\n :\r\n null\r\n }\r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n 0 || account.allOpportunity && account.allOpportunity) ? 'auto' : 'none' }} >\r\n {account && account.name ?\r\n <>\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {opportunityState === 'open' ?\r\n ((account.openOpportunity.length > 1) ? triggerFilter(showFilters, setShowFilters) : null)\r\n :\r\n ((account.allOpportunity.length > 1) ? triggerFilter(showFilters, setShowFilters) : null)\r\n }\r\n
\r\n
\r\n
0) || (opportunityState === 'all' && account.allOpportunity && account.allOpportunity.length > 0)) && showFilters) ? 'visible' : 'hidden' }}>\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n {getFormatCompanyLink(account.id, account.name)}\r\n
Total # of Open Opps: {account.numberOfOpenOpportunity}
\r\n
Total # of Opps: {account.numberOfAllOpportunity}
\r\n
\r\n\r\n
\r\n
\r\n \r\n :\r\n null\r\n }\r\n {\r\n opportunityState === 'open' ?\r\n account.openOpportunity.length > 0 ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n :\r\n account.allOpportunity.length > 0 ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n};","import React, { useContext, useState, useEffect } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport AnnouncementOutlinedIcon from '@material-ui/icons/AnnouncementOutlined';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport { formatDate } from '../Shared/Util';\r\n\r\nexport const CompanyNews = (props) => {\r\n const { newsFeed } = useContext(GlobalContext);\r\n const [mostRecentFeed, setMostRecentFeed] = useState([]);\r\n //const [isActive, setActive] = useState(true);\r\n const [isActive] = useState(true);\r\n const [showMoreNews, setShowMoreNews] = useState(false);\r\n\r\n useEffect(() => {\r\n setMostRecentFeed(newsFeed.slice(0, 5));\r\n }, [newsFeed])\r\n\r\n //const toggleNews = (e) => {\r\n // var cardHeadings = document.getElementsByClassName('card-title');\r\n // for (let ele of cardHeadings) {\r\n // if (ele === e.currentTarget && !e.currentTarget.children[0].classList.contains('card-title-active'))\r\n // setActive(!isActive);\r\n // }\r\n //}\r\n\r\n const handleShowMoreNews = () => setShowMoreNews(!showMoreNews);\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n

Company News

\r\n
\r\n \r\n
\r\n \r\n
    \r\n {newsFeed.map((item, i) =>\r\n
  • \r\n

    {item.title}

    \r\n

    {formatDate(item.pubDate)}

    \r\n
  • \r\n )}\r\n
\r\n
\r\n
\r\n\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n props.view.toLowerCase() === \"account\" ?\r\n <>\r\n
\r\n
Company News {newsFeed.length > 0 ? null : }
\r\n
\r\n \r\n :\r\n <>\r\n

Company News {newsFeed.length > 0 ? null : }

\r\n \r\n }\r\n\r\n {\r\n newsFeed.length > 0 ?\r\n <>\r\n
    \r\n {mostRecentFeed.map((item, i) =>\r\n
  • \r\n

    {item.title}

    \r\n

    {formatDate(item.pubDate)}

    \r\n
  • \r\n )}\r\n
\r\n \r\n :\r\n <>\r\n
\r\n
\r\n \r\n }\r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n
\r\n );\r\n};","import React, { useEffect, useContext, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport './Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport filterFactory, { customFilter, FILTER_TYPES } from 'react-bootstrap-table2-filter';\r\nimport { VpnKeyOutlined } from '@material-ui/icons';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\nimport { getUrlLink, formatDate, formatText, renderSortArrow, triggerFilter, handleOnFilterTable, asteriskHoverover, getOnStaticOptionsUpdate } from '../Shared/Util';\r\nimport { FilterMultiSelect } from '../Shared/FilterMultiSelect';\r\n\r\nexport const KeyBuyerHistory = () => {\r\n const { prospect } = useContext(GlobalContext);\r\n const [showMore, setShowMore] = useState(false);\r\n const [showFilters, setShowFilters] = useState(true);\r\n const [showFiltersModal, setShowFiltersModal] = useState(true);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n const [currentFilters, setCurrentFilters] = useState({});\r\n const [staticOption, setStaticOption] = useState({});\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n let nameFilter, companyFilter, dateFilter, solutionFilter, mdFilter, stageFilter;\r\n\r\n useEffect(() => {\r\n if (prospect) {\r\n setFilteredData(prospect.primaryKeyBuyerOf);\r\n if (prospect.primaryKeyBuyerOf && prospect.primaryKeyBuyerOf.length < 2) {\r\n setShowFilters(!showFilters)\r\n }\r\n }\r\n }, [prospect]);\r\n\r\n const clearAllFilters = () => {\r\n nameFilter([]);\r\n companyFilter([]);\r\n dateFilter([]);\r\n solutionFilter([]);\r\n mdFilter([]);\r\n stageFilter([]);\r\n\r\n setCurrentFilters({});\r\n setStaticOption({});\r\n }\r\n\r\n const onStaticOptionsUpdate = (staticColumn, filterKey, noFilters) => {\r\n if (noFilters || !staticOption.hasOwnProperty(filterKey))\r\n setStaticOption(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOption));\r\n }\r\n\r\n const afterFilter = (newResult, newFilters) => {\r\n setCurrentFilters(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n return newFilters\r\n }\r\n return prevData\r\n });\r\n\r\n setFilteredData(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n return newResult\r\n }\r\n return prevData\r\n });\r\n }\r\n\r\n const tableColumns = [\r\n {\r\n dataField: 'name',\r\n text: 'Opportunity',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n \r\n {formatText(value, 30).length > 30 ?\r\n {formatText(value, 30)}\r\n } />\r\n :\r\n {formatText(value, 30)}\r\n }\r\n \r\n ),\r\n headerStyle: { fontWeight: '500', width: '180px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n nameFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'name')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'companyName',\r\n text: 'Company Name',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ?\r\n formatText(value, 30).length > 30 ?\r\n {formatText(value, 30)}\r\n } />\r\n :\r\n formatText(value, 30)\r\n : ),\r\n headerStyle: { fontWeight: '500', width: '180px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n companyFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'companyName')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'opportunityCloseDate',\r\n text: 'Closed Date',\r\n formatter: (value, row, rowIndex) => ((value && value.substring(0, 4) !== '0001') ? formatDate(value) : ),\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '130px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n dateFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'opportunityCloseDate')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'solution',\r\n text: 'Solution',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : ),\r\n headerStyle: { fontWeight: '500', width: '130px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n solutionFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'solution')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'opportunityManagingDirector',\r\n text: 'Opportunity MD/D',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? (row.opportunityManagingDirectorIsDeleted ? asteriskHoverover(value, false) : value) : ),\r\n headerStyle: { fontWeight: '500', width: '130px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n mdFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'opportunityManagingDirector')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'opportunityStage',\r\n text: 'Stage',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : ),\r\n headerStyle: { fontWeight: '500', width: '130px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n stageFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'opportunityStage')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'id',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n clearAllFilters();\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n

\r\n
{prospect.name}
\r\n Key Buyer History\r\n {prospect.primaryKeyBuyerOf && prospect.primaryKeyBuyerOf.length > 0 ? null : }\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {triggerFilter(showFiltersModal, setShowFiltersModal)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Total # of Opps: {prospect.numberOfPrimaryKeyBuyerOf}
\r\n
\r\n
\r\n \r\n {\r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n \r\n return (\r\n \r\n 0) ? 'auto' : 'none' }}>\r\n
\r\n

\r\n
{prospect.name}
\r\n Key Buyer History \r\n {prospect.primaryKeyBuyerOf && prospect.primaryKeyBuyerOf.length > 0 ? null : }\r\n

\r\n
\r\n {prospect.primaryKeyBuyerOf && prospect.primaryKeyBuyerOf.length > 1 ?\r\n
\r\n
\r\n {triggerFilter(showFilters, setShowFilters)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n :\r\n null\r\n }\r\n
\r\n
Total # of Opps: {prospect.numberOfPrimaryKeyBuyerOf}
\r\n
\r\n
\r\n
\r\n {\r\n prospect.primaryKeyBuyerOf && prospect.primaryKeyBuyerOf.length > 0 ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
This person has not been a key buyer with Protiviti
\r\n \r\n }\r\n
\r\n
\r\n );\r\n};","import React, { useEffect, useContext, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport './Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport { AssessmentOutlined } from '@material-ui/icons';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { formatDate, renderSortArrow, triggerFilter, handleOnFilterTable, getOnStaticOptionsUpdate } from '../Shared/Util';\r\nimport { FilterMultiSelect } from '../Shared/FilterMultiSelect';\r\nimport filterFactory, { customFilter, FILTER_TYPES } from 'react-bootstrap-table2-filter';\r\n\r\nexport const MarketingCampaigns = () => {\r\n const { prospect } = useContext(GlobalContext);\r\n const [showMore, setShowMore] = useState(false);\r\n const [showFilters, setShowFilters] = useState(true);\r\n const [showFiltersModal, setShowFiltersModal] = useState(true);\r\n const [currentFilters, setCurrentFilters] = useState({});\r\n const [staticOption, setStaticOption] = useState({});\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n let typeFilter, subTypeFilter, nameFilter, sentFilter, statusFilter;\r\n\r\n useEffect(() => {\r\n if (prospect) {\r\n setFilteredData(prospect.campaigns);\r\n if (prospect.campaigns && prospect.campaigns.length < 2) {\r\n setShowFilters(!showFilters)\r\n }\r\n }\r\n }, [prospect]);\r\n\r\n const clearAllFilters = () => {\r\n typeFilter([]);\r\n subTypeFilter([]);\r\n nameFilter([]);\r\n sentFilter([]);\r\n statusFilter([]);\r\n\r\n setCurrentFilters({});\r\n setStaticOption({});\r\n }\r\n\r\n const onStaticOptionsUpdate = (staticColumn, filterKey, noFilters) => {\r\n if (noFilters || !staticOption.hasOwnProperty(filterKey))\r\n setStaticOption(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOption));\r\n }\r\n\r\n const afterFilter = (newResult, newFilters) => {\r\n setCurrentFilters(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n return newFilters\r\n }\r\n return prevData\r\n });\r\n\r\n setFilteredData(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n return newResult\r\n }\r\n return prevData\r\n });\r\n }\r\n\r\n const tableColumns = [\r\n {\r\n dataField: 'campaignType',\r\n text: 'Campaign Type',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : ),\r\n headerStyle: { fontWeight: '500', width: '105px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n typeFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'campaignType')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'campaignSubType',\r\n text: 'Campaign Sub-Type',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : ),\r\n headerStyle: { fontWeight: '500', width: '110px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n subTypeFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'campaignSubType')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'campaignName',\r\n text: 'Campaign Name',\r\n formatter: (value, row) => (value ?\r\n row.hyperLink ?\r\n {value}\r\n : value\r\n : ),\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '300px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n nameFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'campaignName')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'campaignDateSent',\r\n text: 'Date Campaign Was Sent',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row, rowIndex) => ((value && value.substring(0, 4) !== '0001') ? formatDate(value) : ),\r\n headerStyle: { fontWeight: '500', width: '130px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n sentFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'campaignDateSent')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'status',\r\n text: 'Status',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : ),\r\n headerStyle: { fontWeight: '500', width: '160px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n statusFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'status')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'id',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n clearAllFilters();\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n

\r\n
{prospect.name}
\r\n Marketing Campaigns \r\n
These are marketing campaigns where the Prospect took action. This data is based on a rolling 12 months.
\r\n {prospect.campaigns && prospect.campaigns.length > 0 ? null : }\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {triggerFilter(showFiltersModal, setShowFiltersModal)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n 0) ? 'auto' : 'none' }}>\r\n
\r\n

\r\n
{prospect.name}
\r\n Marketing Campaigns {prospect.campaigns && prospect.campaigns.length > 0 ? null : }\r\n
These are marketing campaigns where the Prospect took action. This data is based on a rolling 12 months.
\r\n {prospect.hasOptedOutOfEmail ? This prospect has opted out for receiving marketing materials at this time. : null}\r\n

\r\n {prospect.campaigns && prospect.campaigns.length > 1 ?\r\n
\r\n
\r\n {triggerFilter(showFilters, setShowFilters)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n :\r\n null\r\n }\r\n
\r\n {\r\n prospect.campaigns && prospect.campaigns.length > 0 ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport '../Prospect/Overview.css';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport VerticalSplitOutlinedIcon from '@material-ui/icons/VerticalSplitOutlined';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport { Card, DropdownButton, Dropdown } from 'react-bootstrap/';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { BarChart, Bar, Cell, XAxis, YAxis, Tooltip, ResponsiveContainer } from 'recharts';\r\nimport axios from 'axios';\r\nimport config from '../../config';\r\nimport { authHeaders } from '../../auth/authHeaders';\r\n\r\nexport const MarketingSolution = (props) => {\r\n const solutionColor = ['#004068', '#00ACC4', '#F6871F', '#00A28F', '#D74B29', '#3C3D3F']; // first 6 colors predetermined\r\n const solutionTimeAll = ['All', '7 Days', '30 Days', '60 Days', '180 Days', 'Rolling 12 Months'];\r\n const { isProspectPage } = useContext(GlobalContext);\r\n const [graphData, setGraphData] = useState([]);\r\n const [actionTakenAll, setActionTakenAll] = useState(['All']);\r\n const [solutionTime, setSolutionTime] = useState('All');\r\n const [actionTaken, setActionTaken] = useState('All');\r\n\r\n useEffect(() => {\r\n if (props.marketingSolutionData && props.marketingSolutionData.marketingSolutionA) {\r\n if (props.marketingSolutionData.marketingSolution1Year && props.marketingSolutionData.marketingSolution1Year.length > 0) {\r\n setGraphData(props.marketingSolutionData.marketingSolution1Year);\r\n setSolutionTime('Rolling 12 Months');\r\n }\r\n else {\r\n setGraphData(props.marketingSolutionData.marketingSolutionA);\r\n }\r\n setActionTakenAll([...actionTakenAll, ...props.marketingSolutionData.campaignsActionsA]);\r\n }\r\n }, [props.marketingSolutionData]);\r\n\r\n const getMarketingSolution = async (time, action) => {\r\n time = (time === 'All') ? '' : time;\r\n action = (action === 'All') ? '' : encodeURIComponent(action);\r\n\r\n let headers = await authHeaders();\r\n let url = `${config.azRedirectUri}/api/prospects/marketingsolution/${props.marketingSolutionData.id}?time=${time}&action=${action}&account=${!isProspectPage}`;\r\n\r\n await axios.get(url, headers)\r\n .then((res) => {\r\n setGraphData(res.data);\r\n })\r\n .catch(() => {\r\n setGraphData([]);\r\n });\r\n }\r\n\r\n const onActionChange = (action) => {\r\n setActionTaken(action);\r\n getMarketingSolution(solutionTime, action);\r\n }\r\n\r\n const onTimeChange = (time) => {\r\n setSolutionTime(time);\r\n getMarketingSolution(time, actionTaken);\r\n }\r\n\r\n const getSolutionColor = (i) => {\r\n if (i < 6) {\r\n return solutionColor[i];\r\n }\r\n return 'rgb(' + (Math.floor(Math.random() * 255) + 1) + ',' + (Math.floor(Math.random() * 255) + 1) + ',' + (Math.floor(Math.random() * 255) + 1) + ')';\r\n }\r\n\r\n const CustomTooltip = e => {\r\n if (!e.active) {\r\n return null\r\n }\r\n return (\r\n
\r\n {e.payload[0].value}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n

Marketing Campaigns by Solution

\r\n {!isProspectPage ?\r\n
Protiviti marketing topics that employees from this account have interacted with.
\r\n :\r\n
Protiviti marketing topics that this prospect interacted with.
\r\n }\r\n {(props && props.marketingSolutionData && props.marketingSolutionData.marketingSolutionA && props.marketingSolutionData.marketingSolutionA.length > 0) ?\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n Action Taken\r\n
\r\n
\r\n {actionTaken} } id='dropdown-menu-align-right' className='sortby-dropdown'>\r\n {actionTakenAll.map((action, i) => (\r\n onActionChange(action)}>{action}\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Time Period\r\n
\r\n
\r\n {solutionTime} } id='dropdown-menu-align-right' className='sortby-dropdown'>\r\n {solutionTimeAll.map((time, i) => (\r\n onTimeChange(time)}>{time}\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {(graphData.length > 0) ?\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {graphData.map((x, i) => )}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {graphData.map((x, i) => (\r\n
{x.solution}
\r\n ))}\r\n
\r\n
\r\n :\r\n <>\r\n
\r\n
{`There are no marketing campaigns that this ${isProspectPage ? 'prospect' : 'account'} has taken action on for the time period selected.`}
\r\n \r\n }\r\n \r\n :\r\n <>\r\n
\r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n}","import React, { useContext, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport SpeakerNotesOutlinedIcon from '@material-ui/icons/SpeakerNotesOutlined';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { getUrlLink, renderSortArrow, formatDate, getFormatCompanyLink } from './Util';\r\nimport infoIcon from '../../images/i-icon.png';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\n\r\nexport const ScoopsIntents = () => {\r\n const { account, scoops, intents } = useContext(GlobalContext);\r\n //const [loading, setLoading] = useState(true);\r\n const [showMore, setShowMore] = useState(false);\r\n //const [showFilters, setShowFilters] = useState(true);\r\n //const [showFiltersModal, setShowFiltersModal] = useState(true);\r\n //const [currentFilters, setCurrentFilters] = useState({});\r\n //const [staticOption, setStaticOption] = useState({});\r\n //const [filteredData, setFilteredData] = useState([]);\r\n const [componentState, setComponentState] = useState('scoops');\r\n\r\n //let publishedDateFilter, origPublishedDateFilter, linkTextFilter, descriptionFilter, topicsFitler, typesFilter, contactsFilter;\r\n //let signalDateFilter, categoryFilter, intentTopicFilter, signalScoreFilter, audienceFilter;\r\n\r\n //const clearScoopFilters = () => {\r\n // publishedDateFilter([]);\r\n // origPublishedDateFilter([]);\r\n // linkTextFilter([]);\r\n // descriptionFilter([]);\r\n // topicsFitler([]);\r\n // typesFilter([]);\r\n // contactsFilter([]);\r\n\r\n // setCurrentFilters({});\r\n // setStaticOption({});\r\n //}\r\n\r\n //const clearIntentFilters = () => {\r\n\r\n // signalDateFilter([]);\r\n // categoryFilter([]);\r\n // intentTopicFilter([]);\r\n // signalScoreFilter([]);\r\n // audienceFilter([]);\r\n \r\n // setCurrentFilters({});\r\n // setStaticOption({});\r\n\r\n //}\r\n\r\n //const onStaticOptionsUpdate = (staticColumn, filterKey, noFilters) => {\r\n // if (noFilters || !staticOption.hasOwnProperty(filterKey))\r\n // setStaticOption(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOption));\r\n //}\r\n\r\n //const afterFilter = (newResult, newFilters) => {\r\n // setCurrentFilters(prevData => {\r\n // if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n // return newFilters\r\n // }\r\n // return prevData\r\n // });\r\n\r\n // setFilteredData(prevData => {\r\n // if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n // return newResult\r\n // }\r\n // return prevData\r\n // });\r\n //}\r\n\r\n const ScoopsTableColumns = [\r\n {\r\n dataField: 'publishedDate',\r\n text: 'Published Date',\r\n formatter: (value, row) => (\r\n (value && value.substring(0, 4) !== '0001') ? formatDate(value) : 'Not Available'\r\n ),\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // publishedDateFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'publishedDate')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n //{\r\n // dataField: 'originalPublishedDate',\r\n // text: 'Orig Published Date',\r\n // formatter: (value, row) => (\r\n // (value && value.substring(0, 4) !== '0001') ? formatDate(value) : \r\n // ),\r\n // sort: true,\r\n // sortCaret: renderSortArrow,\r\n // headerStyle: { fontWeight: '500', width: '100px' },\r\n // filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // origPublishedDateFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'originalPublishedDate')\r\n // }),\r\n // filterRenderer: (onFilter, column) => \r\n //},\r\n //{\r\n // dataField: 'linkText',\r\n // text: 'Link Text',\r\n // sort: false,\r\n // sortCaret: renderSortArrow,\r\n // formatter: (value, row) => (value ? value : ),\r\n // headerStyle: { fontWeight: '500', width: '150px' },\r\n // filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // linkTextFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'linkText')\r\n // }),\r\n // filterRenderer: (onFilter, column) => \r\n //},\r\n {\r\n dataField: 'description',\r\n text: 'Description',\r\n sort: false,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : 'Not Available'),\r\n headerStyle: { fontWeight: '500', width: '500px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // descriptionFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'description')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'topic',\r\n text: 'Topic',\r\n sort: false,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : 'Not Available'),\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // topicsFitler = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'topic')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'type',\r\n text: 'Types',\r\n sort: false,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : 'Not Available'),\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // typesFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'type')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'contact',\r\n text: 'Contacts',\r\n sort: false,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : 'Not Available'),\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // contactsFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'contact')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'id',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const IntentTableColumns = [\r\n {\r\n dataField: 'signalDate',\r\n text: 'Signal Dates',\r\n formatter: (value, row) => (\r\n (value && value.substring(0, 4) !== '0001') ? formatDate(value) : 'Not Available'\r\n ),\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // signalDateFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'signalDate')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'category',\r\n text: 'Category',\r\n formatter: (value, row) => (value ? value : 'Not Available'),\r\n sort: false,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // categoryFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'category')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'topic',\r\n text: 'Topic',\r\n sort: false,\r\n sortCaret: renderSortArrow, \r\n formatter: (value, row) => (value ? value : 'Not Available'),\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // intentTopicFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'topic')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'signalScore',\r\n text: 'Score',\r\n sort: false,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? value : 'Not Available'),\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n hidden: true\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // signalScoreFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'signalScore')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'audienceStrength',\r\n text: 'Audience Strength',\r\n sort: false,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (value ? audienceStrengthMap(value) : 'Not Available'),\r\n headerStyle: { fontWeight: '500', width: '100px' },\r\n headerFormatter: column => {column.text} {renderHelpText('intents-audience')}\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // audienceFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'audienceStrength')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'recommendedContacts',\r\n text: 'Recommended Contacts',\r\n sort: false,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n
    \r\n {value.map(element =>
  • {element.firstName + ' ' + element.lastName}
  • )}\r\n
\r\n ),\r\n headerStyle: { fontWeight: '500', width: '150px' },\r\n //filter: customFilter({\r\n // type: FILTER_TYPES.MULTISELECT,\r\n // getFilter: (filter) => {\r\n // intentscontactsFilter = filter;\r\n // },\r\n // onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'recommendedContacts')\r\n //}),\r\n //filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'intentId',\r\n hidden: true\r\n }\r\n \r\n ];\r\n\r\n const renderHelpText = (from) => {\r\n let tooltipText = '';\r\n\r\n if (from === 'scoops') tooltipText = \"Proprietary surveys and phone interviews that are conducted by ZoomInfo's research team, as well as news from the general web.\";\r\n if (from === 'intents') tooltipText = \"Topics that companies are actively researching, beyond two standards of deviation of standard research activity by the company.\";\r\n if (from === 'intents-audience') tooltipText = \"How large the audience was that conducted the research, with a larger group represented by a 5.\";\r\n\r\n return (\r\n } />\r\n );\r\n }\r\n\r\n const audienceStrengthMap = (letter) => {\r\n // A=5, B=4, C=3\r\n if (letter === 'A') return '5';\r\n else if (letter === 'B') return '4';\r\n else if (letter === 'C') return '3';\r\n else return 'Not Available';\r\n }\r\n\r\n const handleComponentStateChange = (from) => {\r\n if (componentState !== from) {\r\n if (componentState === 'scoops') {\r\n //clearScoopFilters();\r\n setComponentState('intents');\r\n }\r\n else {\r\n //clearIntentFilters();\r\n setComponentState('scoops');\r\n }\r\n }\r\n }\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n //clearAllFilters();\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n {componentState === 'scoops' ?\r\n scoops && scoops.length > 0 ?\r\n

\r\n Scoops \r\n {(scoops && scoops.length > 0) ? {renderHelpText('scoops')} : null}\r\n

\r\n :\r\n null\r\n :\r\n intents && intents.length > 0 ?\r\n

\r\n Intents \r\n {(intents && intents.length > 0) ? {renderHelpText('intents')} : null}\r\n

\r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n {getFormatCompanyLink(account.id, account.name)}\r\n
\r\n
\r\n\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/* {triggerFilter(showFiltersModal, setShowFiltersModal)}*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/* Clear Filters*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n \r\n {\r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n 0) || (intents && intents.length > 0)) ? 'auto' : 'none' }}>\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {componentState === 'scoops' && scoops && scoops.length > 0 ? renderHelpText('scoops') : null}\r\n {componentState === 'intents' && intents && intents.length > 0 ? renderHelpText('intents') : null}\r\n \r\n
\r\n\r\n
\r\n {getFormatCompanyLink(account.id, account.name)}\r\n
\r\n\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/* {componentState === 'scoops' ?*/}\r\n {/* ((scoops && scoops.length > 1) ? triggerFilter(showFilters, setShowFilters) : null)*/}\r\n {/* :*/}\r\n {/* ((intents && intents.length > 1) ? triggerFilter(showFilters, setShowFilters) : null)*/}\r\n {/* }*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
0) || (componentState === 'intents' && intents && intents.length > 0)) && showFilters) ? 'visible' : 'hidden' }}>*/}\r\n {/* Clear Filters*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n {componentState === 'scoops' ?\r\n (scoops && scoops.length > 0) ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n :\r\n (intents && intents.length > 0) ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n}","import React, { useContext, useEffect, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport './Overview.css';\r\nimport Container from 'react-bootstrap/Container';\r\nimport Row from 'react-bootstrap/Row';\r\nimport Col from 'react-bootstrap/Col';\r\nimport { withRouter, useHistory } from 'react-router-dom';\r\nimport { InternalConnections } from './InternalConnections';\r\nimport { ProspectBackground } from './ProspectBackground';\r\nimport { CompanyDescription } from '../Shared/CompanyDescription';\r\nimport { ProtivitiWork } from '../Shared/ProtivitiWork';\r\nimport { ProtivitiWorkSolution } from '../Shared/ProtivitiWorkSolution';\r\nimport { Opportunity } from '../Shared/Opportunity';\r\nimport { CompanyNews } from '../Shared/CompanyNews';\r\nimport { KeyBuyerHistory } from './KeyBuyerHistory';\r\nimport { MarketingCampaigns } from './MarketingCampaigns';\r\nimport { MarketingSolution } from '../Shared/MarketingSolution';\r\nimport { ScoopsIntents } from '../Shared/ScoopsIntents';\r\nimport DoubleArrowIcon from '@material-ui/icons/DoubleArrow';\r\n\r\nexport const Overview = withRouter((props) => {\r\n const { prospect, getProspect, getValidation } = useContext(GlobalContext);\r\n const [prevPathSearch, setPrevPathSearch] = useState(false);\r\n const [prevPathReturnHome, setPrevPathReturnHome] = useState(false);\r\n const [loaded, setLoaded] = useState(false);\r\n const [marketingSolutionData, setMarketingSolutionData] = useState(null);\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n setLoaded(false);\r\n fetchData();\r\n\r\n if (props.location.state && props.location.state.prevPath.pathname === '/search') {\r\n setPrevPathSearch(true);\r\n setPrevPathReturnHome(false);\r\n }\r\n else if (props.location.state && props.location.state.prevPath.pathname.includes('/connections')) {\r\n setPrevPathReturnHome(true);\r\n setPrevPathSearch(false);\r\n }\r\n else {\r\n setPrevPathSearch(false);\r\n setPrevPathReturnHome(false);\r\n }\r\n }, [props.location]);\r\n\r\n useEffect(() => {\r\n if (prospect) {\r\n let marketingSolution = {\r\n id: prospect.id,\r\n marketingSolutionA: prospect.marketingSolutionA,\r\n marketingSolution1Year: prospect.marketingSolution1Year,\r\n campaignsActionsA: prospect.campaignsActionsA\r\n };\r\n setMarketingSolutionData(marketingSolution);\r\n\r\n if (prospect.id && prospect.relProContactId) {\r\n getValidation(prospect.id, prospect.relProContactId, 0);\r\n }\r\n }\r\n }, [prospect]);\r\n\r\n const fetchData = async () => {\r\n const { match: { params } } = props; //get params\r\n await getProspect(params.prospectId);\r\n setLoaded(true);\r\n }\r\n\r\n const goBackPrevSearch = () => {\r\n props.history.push({\r\n pathname: props.location.state.prevPath.pathname,\r\n search: props.location.state.prevPath.search,\r\n state: { returnbutton: true }\r\n });\r\n }\r\n\r\n const goBackHome = () => {\r\n props.history.push({\r\n pathname: '/'\r\n });\r\n }\r\n\r\n if (!prospect && loaded) {\r\n return (\r\n \r\n \r\n
This record does not exist or has since been removed from the ProConnect system. Please visit Salesforce to add this record back into the system.
\r\n
\r\n
\r\n \r\n );\r\n }\r\n // renders nothing until data is loaded\r\n if (!loaded) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {history && history.length > 1 && history.action !== 'POP' ?\r\n prevPathSearch ?\r\n
\r\n \r\n Return to Search\r\n
\r\n :\r\n
\r\n \r\n Return to Previous Page\r\n
\r\n :\r\n null\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n});","import React, { useState, useEffect, useContext } from 'react';\r\nimport './Header.css';\r\nimport Navbar from 'react-bootstrap/Navbar';\r\nimport Form from 'react-bootstrap/Form';\r\nimport FormControl from 'react-bootstrap/FormControl';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Container from 'react-bootstrap/Container';\r\nimport DropdownButton from 'react-bootstrap/DropdownButton';\r\nimport { Search, Subject } from '@material-ui/icons';\r\nimport { withRouter, useLocation } from 'react-router-dom';\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport axios from 'axios';\r\nimport config from '../config';\r\nimport { authHeaders } from '../auth/authHeaders';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport HelpPage from '../assets/ProConnect_Job_Aid.pdf';\r\nimport ProConnectLogo from '../images/proconnect-logo.png';\r\nimport { GlobalContext } from '../context/GlobalState';\r\nimport { mailSubject } from './Shared/Util';\r\n\r\n\r\nexport const Header = withRouter((props) => {\r\n const [search, setSearch] = useState('');\r\n const [suggestions, setSuggestions] = useState([]);\r\n const [focusSearch, setFocusSearch] = useState(false);\r\n const [cursor, setCursor] = useState(null);\r\n const { following, getFollowing, followAccounts, getFollowingAccounts, authorized, userEmail } = useContext(GlobalContext);\r\n const [user, setUser] = useState(null);\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (location && location.state && location.state.authData && location.state.authData.accountInfoUserName) {\r\n setUser(location.state.authData.accountInfoUserName);\r\n }\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n if (!following || following.length === 0) {\r\n getFollowing();\r\n }\r\n }, [JSON.stringify(following)])\r\n\r\n useEffect(() => {\r\n if (!followAccounts || followAccounts.length === 0) {\r\n getFollowingAccounts();\r\n }\r\n }, [JSON.stringify(followAccounts)])\r\n\r\n useEffect(() => {\r\n const timeOut = setTimeout(() => { // delay recommendation results until user stops typing\r\n searchRecommendation(search);\r\n }, 400);\r\n return () => clearTimeout(timeOut);\r\n }, [search]);\r\n\r\n \r\n const searchRecommendation = async (searchValue) => {\r\n if (searchValue === '') {\r\n setSuggestions([]);\r\n }\r\n else {\r\n let headers = await authHeaders();\r\n let url = config.azRedirectUri + '/api/Prospects/suggest?highlights=true&fuzzy=true&term=' + searchValue;\r\n await axios.get(url, headers)\r\n .then(function (response) {\r\n setSuggestions(response.data);\r\n })\r\n .catch(function (error) {\r\n setSuggestions([]);\r\n });\r\n }\r\n }\r\n\r\n const handleSearchSubmit = (event) => {\r\n event.preventDefault();\r\n if (search !== '') {\r\n props.history.push('/search?q=' + search);\r\n document.getElementById('header-searchbar-id').blur();\r\n setCursor(null);\r\n }\r\n };\r\n\r\n const selectResult = (result) => {\r\n let suggestion = result.replace(\"\", \"\").replace(\"\", \"\");\r\n setSearch(suggestion);\r\n props.history.push('/search?q=' + suggestion);\r\n document.getElementById('header-searchbar-id').blur();\r\n setCursor(null);\r\n }\r\n\r\n const onBlur = () => {\r\n setFocusSearch(false);\r\n setCursor(null);\r\n }\r\n\r\n const onFocus = () => {\r\n setFocusSearch(true);\r\n }\r\n\r\n const handleKeyDown = (e, searchResults) => {\r\n //13 = enter, 38 = up, 40 = down\r\n if (e.keyCode === 40 || e.keyCode === 38 || (e.keyCode === 13 && cursor !== null)) {\r\n e.preventDefault();\r\n }\r\n\r\n if (e.keyCode === 13 && cursor !== null) {\r\n selectResult(searchResults[cursor]);\r\n }\r\n\r\n if (e.keyCode === 40 && cursor === null) {\r\n setCursor(0);\r\n }\r\n else if (e.keyCode === 38 && cursor > 0) {\r\n setCursor(prevstate => prevstate - 1);\r\n }\r\n else if (e.keyCode === 40 && cursor < searchResults.length - 1) {\r\n setCursor(prevstate => prevstate + 1);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

ProConnect

\r\n
\r\n {authorized ?\r\n
\r\n
\r\n
\r\n 0) && focusSearch) ? ' header-searchbar-radius' : '')} type=\"text\" placeholder='Search for a person or company. Use quotes (\"\") or \"+\" to refine your search results' onChange={e => setSearch(e.target.value)} value={search} onBlur={onBlur} onFocus={onFocus} onKeyDown={(event) => handleKeyDown(event, suggestions.slice(0, 5))} />\r\n
0) && focusSearch) ? 'block' : 'none' }}>\r\n {suggestions.slice(0, 5).map((result, index) => {\r\n return selectResult(result)}>
// string to jsx - dangerouslySetInnerHTML is dangerous to use, but is okay in this situation because result is from backend response\r\n })}\r\n
\r\n
\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n \r\n
\r\n } id=\"dropdown-menu-align-right\">\r\n Help\r\n Email Support\r\n \r\n
\r\n \r\n );\r\n});","import React, { useState, useEffect, useContext } from 'react';\r\nimport { GlobalContext } from '../context/GlobalState';\r\nimport './SearchResult.css';\r\nimport Container from 'react-bootstrap/Container';\r\nimport { withRouter, useLocation, Link } from 'react-router-dom';\r\nimport axios from 'axios';\r\nimport config from '../config';\r\nimport { Card, CardDeck, Button, Col, Row, Form, DropdownButton, Dropdown } from 'react-bootstrap/';\r\nimport queryString from 'query-string';\r\nimport { authHeaders } from '../auth/authHeaders';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport KeyboardArrowRightIcon from '@material-ui/icons/KeyboardArrowRight';\r\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';\r\nimport { formatAccountName, provideLinkToCompanyPage } from '../../src/components/Shared/Util';\r\nimport DefaultPhoto from './Shared/DefaultPhoto';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\n\r\nexport const SearchResult = withRouter((props) => {\r\n const { searchSetting, setSearchSetting, searchFacet, setSearchFacet } = useContext(GlobalContext);\r\n const [keyword, setKeyword] = useState('');\r\n const [results, setResult] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n\r\n // Return to Search\r\n const location = useLocation();\r\n const [fromReturn, setFromReturn] = useState(false);\r\n\r\n // paging\r\n const top = 12;\r\n const [skip, setSkip] = useState(0);\r\n const [totalCount, setTotalCount] = useState(0);\r\n\r\n // sort\r\n const [sortBy, setSortBy] = useState(null);\r\n const sortOptions = { 'FirstName': 'First Name', 'LastName': 'Last Name', 'CompanyName': 'Company', 'Title': 'Position' };\r\n\r\n // filters\r\n const [facet, setFacet] = useState(null);\r\n const [filters, setFilters] = useState({});\r\n\r\n // filter show/hide fields\r\n const [showCompany, setShowCompany] = useState(false);\r\n const [showPosition, setShowPosition] = useState(false);\r\n const [showFunction, setShowFunction] = useState(false);\r\n const [showLevel, setShowLevel] = useState(false);\r\n const [showMoreCompany, setShowMoreCompany] = useState(false);\r\n const [showMorePosition, setShowMorePosition] = useState(false);\r\n const [showMoreFunction, setShowMoreFunction] = useState(false);\r\n const [showMoreLevel, setShowMoreLevel] = useState(false);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n let locationValue = queryString.parse(location.search);\r\n setKeyword(locationValue.q);\r\n setSkip(0);\r\n setTotalCount(0);\r\n setFacet(null);\r\n\r\n if (location.state && location.state.returnbutton && Object.keys(searchSetting).length !== 0) {\r\n setFromReturn(true);\r\n }\r\n else {\r\n setFilters({});\r\n setSortBy(null);\r\n getResult(locationValue.q, 0, {}, null);\r\n }\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n if (fromReturn) {\r\n let locationValue = queryString.parse(location.search);\r\n let filterValue = searchSetting.filter ? searchSetting.filter : {};\r\n let sortByValue = searchSetting.sortBy ? searchSetting.sortBy : null;\r\n setFilters(filterValue);\r\n setSortBy(sortByValue);\r\n getResult(locationValue.q, 0, filterValue, sortByValue);\r\n\r\n // to expand the filter options\r\n if (Object.keys(filterValue).length !== 0) {\r\n if (filterValue.hasOwnProperty('CompanyName')) {\r\n setShowCompany(true);\r\n if (searchSetting.showMoreFilter && searchSetting.showMoreFilter.showMoreCompany) {\r\n setShowMoreCompany(true);\r\n }\r\n }\r\n if (filterValue.hasOwnProperty('Title')) {\r\n setShowPosition(true);\r\n if (searchSetting.showMoreFilter && searchSetting.showMoreFilter.showMorePosition) {\r\n setShowMorePosition(true);\r\n }\r\n }\r\n if (filterValue.hasOwnProperty('Level')) {\r\n setShowLevel(true);\r\n if (searchSetting.showMoreFilter && searchSetting.showMoreFilter.showMoreLevel) {\r\n setShowMoreLevel(true);\r\n }\r\n }\r\n if (filterValue.hasOwnProperty('Function')) {\r\n setShowFunction(true);\r\n if (searchSetting.showMoreFilter && searchSetting.showMoreFilter.showMoreFunction) {\r\n setShowMoreFunction(true);\r\n }\r\n }\r\n }\r\n }\r\n }, [fromReturn]);\r\n\r\n useEffect(() => {\r\n if (facet) {\r\n setSearchFacet(facet);\r\n }\r\n }, [facet]);\r\n\r\n const getResult = async (keyword, skipParam, filtersParam, sortParam) => {\r\n let staticFilterArr = [];\r\n\r\n if (keyword === '') {\r\n setResult(null);\r\n setLoading(false);\r\n setSkip(0);\r\n setTotalCount(0);\r\n setFacet(null);\r\n setFilters({});\r\n setSortBy(null);\r\n setSearchSetting({});\r\n setSearchFacet(null);\r\n }\r\n else {\r\n let url = config.azRedirectUri + '/api/prospects?search=' + keyword + '&top=' + top + '&skip=' + skipParam; \r\n\r\n if (Object.keys(filtersParam).length !== 0) {\r\n staticFilterArr = Object.keys(filtersParam); // get currently filtered catagory keys -> for static facet after selected -> for multiselect\r\n\r\n url += '&filter=';\r\n let count = 0;\r\n for (let key in filtersParam) {\r\n if ((count !== 0) && filtersParam[key].length > 0) url += ' and ';\r\n\r\n if (filtersParam[key].length === 1) {\r\n url += key + ' eq ' + '\\'' + encodeURIComponent(filtersParam[key][0]) + '\\'';\r\n count++;\r\n }\r\n if (filtersParam[key].length > 1) {\r\n url += '(';\r\n for (let filterKey of filtersParam[key]) {\r\n url += key + ' eq ' + '\\'' + encodeURIComponent(filterKey) + '\\'';\r\n if (filterKey !== filtersParam[key][filtersParam[key].length - 1]) {\r\n url += ' or ';\r\n }\r\n }\r\n url += ')';\r\n count++;\r\n }\r\n }\r\n }\r\n\r\n if (sortParam) {\r\n url += '&orderby=' + sortParam;\r\n }\r\n\r\n let headers = await authHeaders();\r\n await axios.get(url, headers)\r\n .then(function (response) {\r\n setResult(response.data.value);\r\n setTotalCount(response.data['@odata.count']);\r\n setLoading(false);\r\n\r\n if (fromReturn) {\r\n setFacet(searchFacet);\r\n setFromReturn(false);\r\n }\r\n else {\r\n if (Object.keys(filtersParam).length === 0) {\r\n let facetObj = {\r\n 'CompanyName': response.data['@search.facets'].CompanyName,\r\n 'Title': response.data['@search.facets'].Title,\r\n 'Function': response.data['@search.facets'].Function,\r\n 'Level': response.data['@search.facets'].Level\r\n }\r\n setFacet(facetObj);\r\n }\r\n else {\r\n // based on currently filtered catagory keys -> static facet after selected -> for multiselect\r\n setFacet(prevState => ({\r\n 'CompanyName': (prevState && staticFilterArr.includes('CompanyName')) ? prevState.CompanyName : response.data['@search.facets'].CompanyName,\r\n 'Title': (prevState && staticFilterArr.includes('Title')) ? prevState.Title : response.data['@search.facets'].Title,\r\n 'Function': (prevState && staticFilterArr.includes('Function')) ? prevState.Function : response.data['@search.facets'].Function,\r\n 'Level': (prevState && staticFilterArr.includes('Level')) ? prevState.Level : response.data['@search.facets'].Level,\r\n }));\r\n }\r\n\r\n setSearchSetting({\r\n filter: filtersParam,\r\n sortBy: sortParam,\r\n showMoreFilter: {\r\n showMoreCompany,\r\n showMorePosition,\r\n showMoreLevel,\r\n showMoreFunction\r\n }\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n setResult(null);\r\n setLoading(false);\r\n setTotalCount(0);\r\n setSkip(0);\r\n\r\n if (staticFilterArr.length === 0) {\r\n setFacet(null);\r\n setFilters({});\r\n setSearchSetting({});\r\n setSearchFacet(null)\r\n }\r\n });\r\n }\r\n }\r\n\r\n const changePage = (action) => {\r\n if (action === 'previous') {\r\n getResult(keyword, skip - top, filters, sortBy);\r\n setSkip(prevState => { return prevState - top });\r\n }\r\n else {\r\n getResult(keyword, skip + top, filters, sortBy);\r\n setSkip(prevState => { return prevState + top });\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n const renderFilter = (facet, catagory) => {\r\n return (\r\n
\r\n {facet.map((option, index) => (\r\n option.value ? {option.value} {!filters.hasOwnProperty(catagory) ? ({option.count}) : null}}\r\n onChange={() => filterResults(option.value, catagory)}\r\n value={option.value}\r\n checked={typeof filters[catagory] !== 'undefined' ? (filters[catagory].find(element => element === option.value) ? true : false) : false}\r\n /> : null\r\n ))}\r\n
\r\n )\r\n }\r\n\r\n const filterResults = (value, catagory) => {\r\n let filtersDupe = filters;\r\n \r\n if (filtersDupe[catagory]) {\r\n let index = filtersDupe[catagory].indexOf(value); // check if catagory has already been checked\r\n if (index >= 0) { // uncheck\r\n filtersDupe[catagory].splice(index, 1); // removes index that was checked\r\n if (filtersDupe[catagory].length === 0) {\r\n delete filtersDupe[catagory]; // delete object when empty\r\n }\r\n }\r\n else { // check\r\n filtersDupe[catagory].push(value);\r\n }\r\n }\r\n else { // first time filtering/checking catagory\r\n filtersDupe = { ...filtersDupe, [catagory]: [value] };\r\n }\r\n\r\n setFilters(filtersDupe);\r\n setSkip(0);\r\n setTotalCount(0);\r\n getResult(keyword, 0, filtersDupe, sortBy);\r\n }\r\n\r\n const clearFilters = () => {\r\n setFilters({});\r\n setSortBy(null);\r\n setSkip(0);\r\n setTotalCount(0);\r\n getResult(keyword, 0, {}, null);\r\n }\r\n\r\n const sortResults = (value) => {\r\n setSortBy(value);\r\n setSkip(0);\r\n setTotalCount(0);\r\n getResult(keyword, 0, filters, value);\r\n }\r\n\r\n const filterRender = (field, title, setShowFunction, show, setShowMoreFunction, showMore, titlePlural) => {\r\n return (\r\n facet[field] && facet[field].length > 0 ?\r\n
\r\n
setShowFunction(!show)}>\r\n {title} {filters[field] ? ({filters[field].length}) : null}\r\n \r\n {show ? : }\r\n \r\n
\r\n
\r\n {renderFilter((showMore ? facet[field] : facet[field].slice(0, 10)), field)}\r\n {facet[field].length > 10 ?\r\n
{ setShowMoreFunction(!showMore) }}>\r\n \r\n {showMore ? : }\r\n \r\n {`${showMore ? 'Show Less' : 'Show More'} ${titlePlural}`}\r\n
\r\n :\r\n null\r\n }\r\n
\r\n
: null\r\n )\r\n }\r\n\r\n const removeDuplicates = (results) => {\r\n let flags = {};\r\n let newResults = results.filter(function (entry) {\r\n if (flags[entry.document.companyName]) {\r\n return false;\r\n }\r\n flags[entry.document.companyName] = true;\r\n return true;\r\n });\r\n return newResults;\r\n }\r\n\r\n //return nothing while fetching data\r\n if (loading) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n

Search Results

\r\n \r\n {facet ?\r\n <>\r\n \r\n

Filter

\r\n

Filtering removes unwanted data from the results displayed

\r\n
clearFilters()}>\r\n {Object.keys(filters).length === 0 ? 'Default' : 'Clear All Filters'}\r\n
\r\n {filterRender('CompanyName', 'Company', setShowCompany, showCompany, setShowMoreCompany, showMoreCompany, 'Companies')}\r\n {filterRender('Title', 'Position', setShowPosition, showPosition, setShowMorePosition, showMorePosition, 'Positions')}\r\n {filterRender('Function', 'Function', setShowFunction, showFunction, setShowMoreFunction, showMoreFunction, 'Functions')}\r\n {filterRender('Level', 'Level', setShowLevel, showLevel, setShowMoreLevel, showMoreLevel, 'Levels')}\r\n\r\n \r\n {results ? \r\n \r\n
\r\n
Showing {skip + 1} - {(top * ((skip / top) + 1) >= totalCount) ? totalCount : top * ((skip / top) + 1)} of {totalCount} results
\r\n
\r\n
Sort by
\r\n {(sortOptions[sortBy] || 'Default')} } id=\"dropdown-menu-align-right\" className='sortby-dropdown'>\r\n sortResults(null)}>Default\r\n sortResults('FirstName')}>First Name\r\n sortResults('LastName')}>Last Name\r\n sortResults('CompanyName')}>Company\r\n sortResults('Title')}>Position\r\n \r\n
\r\n
\r\n
Accounts
\r\n \r\n {removeDuplicates(results).map((result, index) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n {result.document.companyPhotoUrl ?\r\n
\r\n :\r\n \r\n }\r\n
\r\n {\r\n provideLinkToCompanyPage(result.document.contactId) ?\r\n {result.document.companyName ? formatAccountName(result.document.companyName) : null} :\r\n

{result.document.companyName ? formatAccountName(result.document.companyName) : null}

\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n })}\r\n
\r\n
Contacts
\r\n \r\n {results.map((result, index) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n {/*{result.document.photoUrl ?\r\n \r\n :\r\n \r\n }*/}\r\n {result.document.photoUrl ?\r\n
\r\n :\r\n \r\n }\r\n
\r\n {result.document.name}\r\n
\r\n
\r\n {result.document.title}\r\n
\r\n {\r\n provideLinkToCompanyPage(result.document.contactId) ?\r\n {result.document.companyName ? formatAccountName(result.document.companyName) : null} :\r\n\t\t\t\t\t\t\t\t\t\t\t

{result.document.companyName ? formatAccountName(result.document.companyName) : null}

\r\n\t\t\t\t\t\t\t\t\t\t }\r\n
\r\n
\r\n
\r\n
\r\n )\r\n })\r\n }\r\n
\r\n
\r\n {((totalCount !== 0) && (skip !== 0)) ? :
}\r\n {((totalCount !== 0) && (Math.ceil(totalCount / top) !== (skip + top) / top)) ? :
}\r\n
\r\n \r\n :\r\n
\r\n Search for \"{keyword}\"\r\n
\r\n Sorry, there are no records found for this person or company based on the filters selected.\r\n
\r\n }\r\n \r\n :\r\n
\r\n Search for \"{keyword}\"\r\n
\r\n Sorry, there are no records found for this person or company.\r\n
\r\n }\r\n
\r\n
\r\n );\r\n});","import React, { useContext } from 'react';\r\nimport './Home.css';\r\nimport { Link } from 'react-router-dom';\r\nimport { CardDeck, Card, Button } from 'react-bootstrap/';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport { formatAccountName, provideLinkToCompanyPage, formatDate, renderTaggedRelationship } from '../Shared/Util';\r\nimport DefaultPhoto from '../Shared/DefaultPhoto';\r\n\r\nexport const ProspectCards = (props) => {\r\n\tconst { following, followProspect } = useContext(GlobalContext);\r\n\r\n\tconst isFollowing = (id) => {\r\n\t\tconst followingId = following.map(_ => _.id);\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\r\n\tconst triggerFollowProspect = (id, e) => {\r\n\t\te.preventDefault();\r\n\t\tfollowProspect(id);\r\n\t}\r\n\t\r\n return (\r\n\t\t\r\n\t\t\t{props.cards.map((result, index) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{/*{result.photoUrl ?\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}*/}\r\n\t\t\t\t\t\t\t\t\t\t{result.photoUrl ?\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t{isFollowing(result.id)}\r\n\t\t\t\t\t\t\t\t\t\t\t{result.showLastModified ? formatDate(result.modifiedDate) : null}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t {result.name}\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t{result.relationShipStrength ? renderTaggedRelationship(result.relationShipStrength) : null}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t{result.title}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tprovideLinkToCompanyPage(result.companyId) ? \r\n\t\t\t\t\t\t\t\t\t\t\t{result.companyName ? formatAccountName(result.companyName) : null} :\r\n\t\t\t\t\t\t\t\t\t\t\t

{result.companyName ? formatAccountName(result.companyName) : null}

\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t
\r\n );\r\n}","import React, { useContext } from 'react';\r\nimport './Home.css';\r\nimport { Link } from 'react-router-dom';\r\nimport { CardDeck, Card, Button } from 'react-bootstrap/';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport { formatAccountName, formatDate } from '../Shared/Util';\r\n\r\nexport const AccountCards = (props) => {\r\n\tconst { followingAccounts, followAccount } = useContext(GlobalContext);\r\n\r\n\tconst isFollowing = (id) => {\r\n\t\tconst followingId = followingAccounts.map(_ => _.id);\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\tconst triggerFollow = (id, e) => {\r\n\t\te.preventDefault();\r\n\t\tfollowAccount(id);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{props.cards.map((result, index) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{result.companyPhotoUrl ?\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\tnull\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t{result.name ? formatAccountName(result.name) : null}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t{isFollowing(result.id)}\r\n\t\t\t\t\t\t\t\t\t\t\t{result.showLastModified ? formatDate(result.modifiedDate) : null}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t
\r\n\t);\r\n}","import React, { useEffect, useState } from 'react';\r\nimport './Unauthorized.css';\r\nimport { Container } from 'react-bootstrap/';\r\nimport protivitiLogo from '../images/protiviti-logo.png';\r\nimport Welomebackground from '../images/background.PNG';\r\nimport { useLocation} from 'react-router-dom';\r\n\r\n// Component used as Unauthorized page and Welcome page w/ no user history\r\n\r\nexport const Unauthorized = (props) => {\r\n const [user, setUser] = useState(null);\r\n const [imageLoaded, setImageLoaded] = useState(false);\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n let img = new Image();\r\n img.src = Welomebackground;\r\n\r\n img.onload = () => {\r\n setImageLoaded(true);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (location && location.state && location.state.authData && location.state.authData.accountInfoUserName) {\r\n setUser(location.state.authData.accountInfoUserName);\r\n }\r\n }, [location]);\r\n\r\n const mailToSupport = () => {\r\n // To: ProConnectSupport@Protiviti.com\r\n // Subject: ProConnect Access Issue - {PrincipalName}\r\n\r\n return `mailto:ProConnectSupport@Protiviti.com?cc= ${user}&subject=ProConnect Access Issue - ${user}`;\r\n }\r\n\r\n if (!imageLoaded) return null;\r\n\r\n return (\r\n
\r\n \r\n
\r\n

Welcome to the ProConnect Application

\r\n {props && props.welcome ? \r\n
\r\n

ProConnect is a web application dashboard that aggregates important and relevant information about our clients and their companies to develop meaningful client relationships

\r\n

Please search a client or company

\r\n

Quotation marks, \" \", should ideally be used if you want the search engine to only look for sites with exact phrasing.

\r\n
\r\n :\r\n

Unfortunately you do not have access to this application. If you should have access to this site or would like access, please contact the ProConnect Support Team.

\r\n }\r\n
\r\n
\r\n \"Protiviti\"\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect, useContext } from 'react';\r\nimport './Home.css';\r\nimport { Container, Row, Col, Button, Modal } from 'react-bootstrap/';\r\n//import defaultPicture from '../images/defaultprofilepicture.PNG';\r\nimport axios from 'axios';\r\nimport config from '../../config';\r\nimport { Link } from 'react-router-dom';\r\nimport { authHeaders } from '../../auth/authHeaders';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport { ProspectCards } from './ProspectCards';\r\nimport { AccountCards } from './AccountCards';\r\nimport PersonAddIcon from '@material-ui/icons/PersonAdd';\r\nimport PageviewIcon from '@material-ui/icons/Pageview';\r\nimport UpdateIcon from '@material-ui/icons/Update';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport PeopleIcon from '@material-ui/icons/People';\r\nimport { Unauthorized } from '../Unauthorized';\r\nimport { showModifiedDate, filterModifiedDate } from '../Shared/Util';\r\n\r\nexport const Home = () => {\r\n\tconst { following, followingAccounts, relationshipLead, getRelationshipLead, setUpdatedFollowing, setUpdatedFollowingAccounts, taggedRelationships, getTaggedRelationships } = useContext(GlobalContext);\r\n\tconst [loading, setLoading] = useState(true);\r\n\tconst [history, setHistory] = useState(null);\r\n\tconst [updatedFollowingState, setUpdatedFollowingState] = useState([]);\r\n\tconst [showMoreFollowing, setShowMoreFollowing] = useState(false);\r\n\tconst [showMoreUpdated, setShowMoreUpdated] = useState(false);\r\n\tconst [updatedFollowingAccountsState, setUpdatedFollowingAccountsState] = useState([]);\r\n\tconst [showMoreFollowingAccounts, setShowMoreFollowingAccounts] = useState(false);\r\n\tconst [showMoreUpdatedAccounts, setShowMoreUpdatedAccounts] = useState(false);\r\n\tconst [showMoreRelationshipLead, setShowMoreRelationshipLead] = useState(false);\r\n\tconst [showMoreTaggedRelationships, setShowMoreTaggedRelationships] = useState(false);\r\n\r\n\tuseEffect(() => {\r\n\t\tfetchData();\r\n\t\tgetRelationshipLead();\r\n\t\tgetTaggedRelationships();\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (following.length !== 0) {\r\n\t\t\tlet filtered = filterModifiedDate(following);\r\n\t\t\tsetUpdatedFollowingState(filtered);\r\n\t\t\tsetUpdatedFollowing(filtered);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsetUpdatedFollowingState([]);\r\n\t\t\tsetUpdatedFollowing([]);\r\n\t\t}\r\n\t}, [following]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (followingAccounts.length !== 0) {\r\n\t\t\tlet filtered = filterModifiedDate(followingAccounts);\r\n\t\t\tsetUpdatedFollowingAccountsState(filtered);\r\n\t\t\tsetUpdatedFollowingAccounts(filtered);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsetUpdatedFollowingAccountsState([]);\r\n\t\t\tsetUpdatedFollowingAccounts([]);\r\n\t\t}\r\n\t}, [followingAccounts])\r\n\r\n\tconst fetchData = async () => {\r\n\t\tlet headers = await authHeaders();\r\n\t\tlet url = config.azRedirectUri + '/api/user/userHistory';\r\n\t\tawait axios.get(url, headers)\r\n\t\t\t.then(function (response) {\r\n\t\t\t\tsetLoading(false);\r\n\t\t\t\tif (response.data.length === 0) {\r\n\t\t\t\t\tsetHistory(null);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tsetHistory(response.data);\r\n }\r\n\t\t\t})\r\n\t\t\t.catch(function (error) {\r\n\t\t\t\tsetLoading(false);\r\n\t\t\t\tsetHistory(null);\r\n\t\t\t});\r\n\t}\r\n\r\n\tconst handleShowMoreFollowing = () => setShowMoreFollowing(!showMoreFollowing);\r\n\tconst handleShowMoreUpdated = () => setShowMoreUpdated(!showMoreUpdated);\r\n\tconst handleShowMoreFollowingAccounts = () => setShowMoreFollowingAccounts(!showMoreFollowingAccounts);\r\n\tconst handleShowMoreUpdatedAccounts = () => setShowMoreUpdatedAccounts(!showMoreUpdatedAccounts);\r\n\tconst handleShowMoreRelationshipLead = () => setShowMoreRelationshipLead(!showMoreRelationshipLead);\r\n\tconst handleShowMoreTaggedRelationships = () => setShowMoreTaggedRelationships(!showMoreTaggedRelationships);\r\n\r\n\tconst renderCards = (field, value) => {\r\n\t\tif (value && value.length !== 0) {\r\n\t\t\tlet title = null;\r\n\t\t\tlet icon = null;\r\n\t\t\tlet showFlag = null;\r\n\t\t\tlet handleShowMore = null;\r\n\t\t\tlet cardSlice = null;\r\n\t\t\tlet cardAll = null;\r\n\t\t\tlet contactsUpdated = null;\r\n\t\t\tlet accountsUpdated = null;\r\n\t\t\tlet followHelpText = null;\r\n\r\n\t\t\tswitch (field) {\r\n\t\t\t\tcase 'history':\r\n\t\t\t\t\ttitle = 'Profiles you have recently viewed';\r\n\t\t\t\t\ticon = ;\r\n\t\t\t\t\tcardSlice = ; //show all history\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'contacts':\r\n\t\t\t\t\ttitle = 'Contacts You Follow';\r\n\t\t\t\t\ticon = ;\r\n\t\t\t\t\tcardSlice = ;\r\n\t\t\t\t\tcardAll = ;\r\n\t\t\t\t\tshowFlag = showMoreFollowing;\r\n\t\t\t\t\thandleShowMore = handleShowMoreFollowing;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'contacts-updated':\r\n\t\t\t\t\ttitle = 'Recently Updated Contacts You Follow';\r\n\t\t\t\t\tfollowHelpText = 'This is the most recent date that a field within this page has been updated with new information from our systems.';\r\n\t\t\t\t\ticon = ;\r\n\t\t\t\t\tcontactsUpdated = showModifiedDate(value);\r\n\t\t\t\t\tcardSlice = \r\n\t\t\t\t\tcardAll = ;\r\n\t\t\t\t\tshowFlag = showMoreUpdated;\r\n\t\t\t\t\thandleShowMore = handleShowMoreUpdated;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'accounts':\r\n\t\t\t\t\ttitle = 'Accounts You Follow';\r\n\t\t\t\t\ticon = ;\r\n\t\t\t\t\tcardSlice = ;\r\n\t\t\t\t\tcardAll = ;\r\n\t\t\t\t\tshowFlag = showMoreFollowingAccounts;\r\n\t\t\t\t\thandleShowMore = handleShowMoreFollowingAccounts;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'accounts-updated':\r\n\t\t\t\t\ttitle = 'Recently Updated Accounts You Follow';\r\n\t\t\t\t\tfollowHelpText = 'This is the most recent date that a field within this page has been updated with new information from our systems.';\r\n\t\t\t\t\ticon = ;\r\n\t\t\t\t\taccountsUpdated = showModifiedDate(value);\r\n\t\t\t\t\tcardSlice = ;\r\n\t\t\t\t\tcardAll = ;\r\n\t\t\t\t\tshowFlag = showMoreUpdatedAccounts;\r\n\t\t\t\t\thandleShowMore = handleShowMoreUpdatedAccounts;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'relationshipLead':\r\n\t\t\t\t\ttitle = 'Contacts You Lead In Salesforce';\r\n\t\t\t\t\tfollowHelpText = 'These are contacts that you are tagged as the relationship lead for in Salesforce';\r\n\t\t\t\t\ticon = ;\r\n\t\t\t\t\tcardSlice = ;\r\n\t\t\t\t\tcardAll = ;\r\n\t\t\t\t\tshowFlag = showMoreRelationshipLead;\r\n\t\t\t\t\thandleShowMore = handleShowMoreRelationshipLead;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'taggedRelationships':\r\n\t\t\t\t\ttitle = 'My Relationships';\r\n\t\t\t\t\tfollowHelpText = 'These are Salesforce contacts that you have a tagged relationship with.';\r\n\t\t\t\t\ticon = ;\r\n\t\t\t\t\tcardSlice = ;\r\n\t\t\t\t\tcardAll = ;\r\n\t\t\t\t\tshowFlag = showMoreTaggedRelationships;\r\n\t\t\t\t\thandleShowMore = handleShowMoreTaggedRelationships;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\ttitle = null;\r\n\t\t\t\t\ticon = null;\r\n\t\t\t\t\tcardSlice = null;\r\n\t\t\t\t\tcardAll = null;\r\n\t\t\t\t\tshowFlag = null;\r\n\t\t\t\t\thandleShowMore = null;\r\n\t\t\t\t\tfollowHelpText = null;\r\n\t\t\t}\r\n\r\n\t\t\tif (title !== null) {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
{icon} {title}
\r\n\t\t\t\t\t\t{field === 'relationshipLead' ?\r\n\t\t\t\t\t\t\t
{followHelpText}
\r\n\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t
{followHelpText}
\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{cardSlice}\r\n\t\t\t\t\t\t{field === 'history' ?\r\n\t\t\t\t\t\t\tnull\r\n\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{'View More'}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t

{icon} {title}

\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{cardAll}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t
\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn null;\r\n }\r\n\t\t\t\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn null;\r\n }\r\n }\r\n\r\n\tif (loading) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{history || following.length !== 0 || followingAccounts.length !== 0 || relationshipLead.length !== 0 ?\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{(following.length !== 0 || followingAccounts.length !== 0 || relationshipLead.length !== 0) ?\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{renderCards('contacts', following)}\r\n\t\t\t\t\t\t\t\t{renderCards('accounts', followingAccounts)}\r\n\t\t\t\t\t\t\t\t{renderCards('relationshipLead', relationshipLead)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{(history || updatedFollowingState.length !== 0 || updatedFollowingAccountsState.length !== 0 || taggedRelationships.length !== 0) ?\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{renderCards('history', history)}\r\n\t\t\t\t\t\t\t\t{renderCards('contacts-updated', updatedFollowingState)}\r\n\t\t\t\t\t\t\t\t{renderCards('accounts-updated', updatedFollowingAccountsState)}\r\n\t\t\t\t\t\t\t\t{renderCards('taggedRelationships', taggedRelationships)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t:\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t
\r\n );\r\n}","import React, { useContext, useEffect, useState } from 'react';\r\nimport './Home.css';\r\nimport '../SearchResult.css';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, CardDeck, Button, Form, FormControl, ToggleButtonGroup, ToggleButton } from 'react-bootstrap/';\r\nimport DoubleArrowIcon from '@material-ui/icons/DoubleArrow';\r\nimport { Search } from '@material-ui/icons';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport { ProspectCards } from './ProspectCards';\r\nimport { AccountCards } from './AccountCards';\r\nimport PersonAddIcon from '@material-ui/icons/PersonAdd';\r\nimport UpdateIcon from '@material-ui/icons/Update';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport PeopleIcon from '@material-ui/icons/People';\r\nimport { showModifiedDate, filterModifiedDate, getRelationshipStyle } from '../Shared/Util';\r\n\r\nexport const ViewMore = (props) => {\r\n const { match: { params } } = props; //get params\r\n\r\n const { following, followingAccounts, relationshipLead, updatedFollowing, updatedFollowingAccounts, setUpdatedFollowing, setUpdatedFollowingAccounts, getRelationshipLead, taggedRelationships, getTaggedRelationships } = useContext(GlobalContext);\r\n const [page, setPage] = useState(0);\r\n const [search, setSearch] = useState('');\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const [filterParam, setFilterParam] = useState('All');\r\n const [results, setResults] = useState([]); // cards shown on current page\r\n const [allResults, setAllResults] = useState([]); // all cards returned within all pages, changes based on what is being searched\r\n const [data, setData] = useState([]); // all cards, everything, initial data\r\n const [type, setType] = useState(null);\r\n const [title, setTitle] = useState('')\r\n const [iconElement, setIconElement] = useState(null)\r\n const [helpText, setHelpText] = useState('');\r\n\r\n useEffect(() => {\r\n if (props && props.match && props.match.params) {\r\n switch (params.field) {\r\n case 'contacts':\r\n setType('contact');\r\n setTitle('Contacts You Follow');\r\n setIconElement();\r\n break;\r\n case 'contacts-updated':\r\n setType('contact');\r\n setTitle('Recently Updated Contacts You Follow');\r\n setHelpText('This is the most recent date that a field within this page has been updated with new information from our systems.')\r\n setIconElement();\r\n break;\r\n case 'accounts':\r\n setType('account');\r\n setTitle('Accounts You Follow');\r\n setIconElement();\r\n break;\r\n case 'accounts-updated':\r\n setType('account');\r\n setTitle('Recently Updated Accounts You Follow');\r\n setHelpText('This is the most recent date that a field within this page has been updated with new information from our systems.')\r\n setIconElement();\r\n break;\r\n case 'relationshipLead':\r\n setType('contact');\r\n setTitle('Contacts You Lead In Salesforce');\r\n setHelpText('These are contacts that you are tagged as the relationship lead for in Salesforce');\r\n setIconElement();\r\n break;\r\n case 'taggedRelationships':\r\n setType('contact');\r\n setTitle('My Relationships');\r\n setHelpText('These are Salesforce contacts that you have a tagged relationship with.');\r\n setIconElement();\r\n break;\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props && props.match && props.match.params) {\r\n if (params.field === 'contacts' && following.length !== 0) {\r\n setData(following);\r\n }\r\n if (params.field === 'contacts-updated' && following.length !== 0 && updatedFollowing.length === 0) {\r\n let filtered = filterModifiedDate(following);\r\n setUpdatedFollowing(filtered);\r\n }\r\n }\r\n }, [following]);\r\n\r\n useEffect(() => {\r\n if (props && props.match && props.match.params) {\r\n if (params.field === 'contacts-updated' && updatedFollowing.length !== 0) {\r\n let updatedFollowingDate = showModifiedDate(updatedFollowing);\r\n setData(updatedFollowingDate);\r\n }\r\n }\r\n }, [updatedFollowing]);\r\n\r\n useEffect(() => {\r\n if (props && props.match && props.match.params) {\r\n if (params.field === 'accounts' && followingAccounts.length !== 0) {\r\n setData(followingAccounts);\r\n }\r\n if (params.field === 'accounts-updated' && followingAccounts.length !== 0 && updatedFollowingAccounts.length === 0) {\r\n let filtered = filterModifiedDate(followingAccounts);\r\n setUpdatedFollowingAccounts(filtered);\r\n }\r\n }\r\n }, [followingAccounts]);\r\n\r\n useEffect(() => {\r\n if (props && props.match && props.match.params) {\r\n if (params.field === 'accounts-updated' && updatedFollowingAccounts.length !== 0) {\r\n let updatedFollowingAccountDate = showModifiedDate(updatedFollowingAccounts);\r\n setData(updatedFollowingAccountDate);\r\n }\r\n }\r\n }, [updatedFollowingAccounts]);\r\n\r\n useEffect(() => {\r\n if (props && props.match && props.match.params) {\r\n if (params.field === 'relationshipLead' && relationshipLead.length !== 0) {\r\n setData(relationshipLead);\r\n }\r\n if (params.field === 'relationshipLead' && relationshipLead.length === 0) {\r\n getRelationshipLead();\r\n }\r\n }\r\n }, [relationshipLead]);\r\n\r\n useEffect(() => {\r\n if (props && props.match && props.match.params) {\r\n if (params.field === 'taggedRelationships' && taggedRelationships.length !== 0) {\r\n setData(taggedRelationships);\r\n }\r\n if (params.field === 'taggedRelationships' && taggedRelationships.length === 0) {\r\n getTaggedRelationships();\r\n }\r\n }\r\n }, [taggedRelationships]);\r\n\r\n useEffect(() => {\r\n if (data.length !== 0) {\r\n setAllResults(data);\r\n let cards = data.slice(0, 18);\r\n setResults(cards);\r\n setPage(0);\r\n setSearch('');\r\n setSearchTerm('');\r\n }\r\n }, [data]);\r\n\r\n const changePage = (action) => {\r\n let newPage = 0;\r\n if (action === 'previous') {\r\n newPage = page - 1;\r\n }\r\n else {\r\n newPage = page + 1;\r\n }\r\n let cards = allResults.slice(newPage * 18, (newPage * 18 + 18));\r\n setResults(cards);\r\n setPage(newPage);\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n if (search) {\r\n searchResults(search);\r\n }\r\n }\r\n\r\n const clearSearch = () => {\r\n if (search) {\r\n setSearch('');\r\n searchResults('');\r\n }\r\n }\r\n\r\n const searchResults = (term) => {\r\n setSearchTerm(term);\r\n let lowerSearchTerm = term.toLowerCase();\r\n let searchResult = []\r\n if (type) {\r\n if (type === 'contact') {\r\n // search contacts\r\n searchResult = data.filter(result => {\r\n if (result.relationShipStrength === filterParam) {\r\n return (\r\n (result.companyName && result.companyName.toLowerCase().includes(lowerSearchTerm)) ||\r\n (result.name && result.name.toLowerCase().includes(lowerSearchTerm)) ||\r\n (result.title && result.title.toLowerCase().includes(lowerSearchTerm))\r\n );\r\n }\r\n else if (filterParam === 'All') {\r\n return (\r\n (result.companyName && result.companyName.toLowerCase().includes(lowerSearchTerm)) ||\r\n (result.name && result.name.toLowerCase().includes(lowerSearchTerm)) ||\r\n (result.title && result.title.toLowerCase().includes(lowerSearchTerm))\r\n );\r\n }\r\n });\r\n }\r\n else {\r\n // search accounts\r\n searchResult = data.filter(result => {\r\n return (\r\n (result.name && result.name.toLowerCase().includes(lowerSearchTerm))\r\n )\r\n });\r\n }\r\n }\r\n setAllResults(searchResult);\r\n let cards = searchResult.slice(0, 18);\r\n setResults(cards);\r\n setPage(0);\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n const filterResults = (term, e) => {\r\n setFilterParam(term);\r\n searchResults(search);\r\n }\r\n\r\n if (!data || data.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Return to Homepage\r\n \r\n
\r\n
\r\n

\r\n {iconElement} {title}\r\n

\r\n
{helpText}
\r\n
\r\n Search {title}\r\n
\r\n
\r\n
\r\n
\r\n setSearch(e.target.value)} value={search} data-testid='view-more-search-bar' />\r\n
\r\n \r\n X Clear Search\r\n
\r\n {\r\n title === 'My Relationships' ?\r\n \r\n filterResults(\"All\", e)}>All\r\n filterResults(\"A-List\", e)}>A-List\r\n filterResults(\"QBR\", e)}>QBR\r\n filterResults(\"RBC\", e)}>RBC\r\n filterResults(\"TR\", e)}>TR\r\n filterResults(\"NR\", e)}>NR\r\n \r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n {results.length !== 0 ? \r\n
\r\n
\r\n {search ? `${results.length} records found.` : `You have ${allResults.length} ${title}.`}\r\n
\r\n \r\n {(type && type === 'account') ? : }\r\n \r\n
\r\n {(allResults.length > 18 && page !== 0) ? :
}\r\n {(allResults.length > 18 && (Math.ceil(allResults.length / 18) !== (page * 18 + 18) / 18)) ? :
}\r\n
\r\n
\r\n :\r\n
\r\n {\r\n searchTerm !== \"\" ?\r\n Search for \"{searchTerm}\" \r\n :\r\n null\r\n }\r\n
\r\n Sorry, there are no records found.\r\n
\r\n }\r\n
\r\n
\r\n );\r\n}","import { useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nfunction ScrollToTop({ history }) {\r\n useEffect(() => {\r\n const unlisten = history.listen(() => {\r\n window.scrollTo(0, 0);\r\n });\r\n return () => {\r\n unlisten();\r\n }\r\n }, [history]);\r\n\r\n return (null);\r\n}\r\n\r\nexport default withRouter(ScrollToTop);","import React, { useContext, useEffect, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport './CompanyOverview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport { Grid } from '@material-ui/core';\r\nimport { VpnKeyOutlined, Assignment } from '@material-ui/icons';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport DefaultPhoto from '../Shared/DefaultPhoto';\r\nimport { Link } from 'react-router-dom';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport { EmployeeLinks } from '../Shared/EmployeeLinks';\r\nimport filterFactory, { customFilter, FILTER_TYPES } from 'react-bootstrap-table2-filter';\r\nimport { getUrlLink, formatDate, formatMonthYearDate, renderSortArrow, triggerFilter, handleOnFilterTable, asteriskHoverover, getOnStaticOptionsUpdate } from '../Shared/Util';\r\nimport { FilterMultiSelect } from '../Shared/FilterMultiSelect';\r\n\r\nexport const KeyBuyer = () => {\r\n const { account } = useContext(GlobalContext);\r\n const [keyBuyers, setKeyBuyers] = useState([]);\r\n const [showMore, setShowMore] = useState(false);\r\n const [showFilters, setShowFilters] = useState(true);\r\n const [showFiltersModal, setShowFiltersModal] = useState(true);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n const [currentFilters, setCurrentFilters] = useState({});\r\n const [staticOption, setStaticOption] = useState({});\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n let nameFilter, titleFilter, winsFilter, lastWonFilter;\r\n\r\n // # of Wins\r\n const [rowData, setRowData] = useState(null);\r\n const [numberOfWins, setNumberOfWins] = useState([]);\r\n const [modalData, setModalData] = useState(null);\r\n const [showWins, setShowWins] = useState(false);\r\n const [showFiltersWins, setShowFiltersWins] = useState(true);\r\n const [currentFiltersWins, setCurrentFiltersWins] = useState({});\r\n const [staticOptionWins, setStaticOptionWins] = useState({});\r\n const [filteredDataWins, setFilteredDataWins] = useState([]);\r\n\r\n let winNameFilter, solutionFilter, dateWonFilter;\r\n\r\n useEffect(() => {\r\n if (account && account.keyBuyers && account.keyBuyers.length !== 0) {\r\n setKeyBuyers(account.keyBuyers);\r\n setFilteredData(account.keyBuyers);\r\n\r\n if (account.keyBuyers.length < 2) {\r\n setShowFilters(!showFilters)\r\n }\r\n }\r\n }, [account]);\r\n\r\n useEffect(() => {\r\n if (rowData) {\r\n let winData = rowData.closeWonOpps ? rowData.closeWonOpps.sort((a, b) => a.opportunityCloseDate < b.opportunityCloseDate ? 1 : -1) : [];\r\n setNumberOfWins(winData);\r\n\r\n let data = {\r\n prospectName: rowData.name || '',\r\n numOfWin: rowData.numberOfWins || 0,\r\n solutionTotal: winData && winData.length > 0 ? winData.reduce((map, d) => ({ ...map, [d.solution]: (map[d.solution] || 0) + 1, }), {}) : null\r\n };\r\n setModalData(data);\r\n }\r\n else {\r\n setNumberOfWins([]);\r\n setModalData(null);\r\n }\r\n }, [rowData]);\r\n\r\n const clearAllFiltersPKB = () => {\r\n nameFilter([]);\r\n titleFilter([]);\r\n winsFilter([]);\r\n lastWonFilter([]);\r\n setCurrentFilters({});\r\n setStaticOption({});\r\n }\r\n\r\n const clearAllFiltersWins = () => {\r\n winNameFilter([]);\r\n solutionFilter([]);\r\n dateWonFilter([]);\r\n setCurrentFiltersWins({});\r\n setStaticOptionWins({});\r\n }\r\n\r\n const onStaticOptionsUpdate = (staticColumn, filterKey, noFilters) => {\r\n if (noFilters || !staticOption.hasOwnProperty(filterKey))\r\n setStaticOption(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOption));\r\n }\r\n\r\n const afterFilter = (newResult, newFilters) => {\r\n setCurrentFilters(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n return newFilters\r\n }\r\n return prevData\r\n });\r\n\r\n setFilteredData(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n return newResult\r\n }\r\n return prevData\r\n });\r\n }\r\n\r\n const onStaticOptionsUpdateWins = (staticColumn, filterKey, noFilters) => {\r\n if (noFilters || !staticOptionWins.hasOwnProperty(filterKey))\r\n setStaticOptionWins(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOptionWins));\r\n }\r\n\r\n const afterFilterWins = (newResult, newFilters) => {\r\n setCurrentFiltersWins(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n return newFilters\r\n }\r\n return prevData\r\n });\r\n\r\n setFilteredDataWins(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n return newResult\r\n }\r\n return prevData\r\n });\r\n }\r\n\r\n const tableColumn = [\r\n {\r\n dataField: 'photoUrl',\r\n text: '',\r\n sort: false,\r\n formatter: (value, row) => (\r\n value ?\r\n \r\n :\r\n \r\n ),\r\n headerStyle: { fontWeight: '500', width: '90px' }\r\n },\r\n {\r\n dataField: 'name',\r\n text: 'Name',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n
\r\n
\r\n {row.pkbIsNotProspect ? asteriskHoverover(value, true) : {value}}\r\n
\r\n {!row.isDeleted ? : null}\r\n
\r\n ),\r\n headerStyle: { fontWeight: '500', width: '190px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n nameFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'name')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'title',\r\n text: 'Title',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n value ? value : \r\n ),\r\n headerStyle: { fontWeight: '500', width: '250px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n titleFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'title')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'numberOfWins',\r\n text: '# of Wins',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n
handleNumberOfWins(row)}>{value}
\r\n ),\r\n headerStyle: { fontWeight: '500', width: '150px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n winsFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'numberOfWins')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'lastOpportunityWonDate',\r\n text: 'Last Opportunity Won Date',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n (value && value.substring(0, 4) !== '0001') ? formatDate(value) : \r\n ),\r\n headerStyle: { fontWeight: '500', width: '250px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n lastWonFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'lastOpportunityWonDate')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'id',\r\n text: 'key',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const keyBuyerColumn = [\r\n {\r\n dataField: 'name',\r\n text: 'Win Name',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '350px' },\r\n formatter: (value, row) => (\r\n \r\n {row.opportunityKey ?\r\n {value}\r\n :\r\n {value}\r\n }\r\n \r\n ),\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n winNameFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'name')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'solution',\r\n text: 'Solution',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '150px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n solutionFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'solution')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'opportunityCloseDate',\r\n text: 'Date Won',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n value ? formatMonthYearDate(value.substring(0, 10)) : \r\n ),\r\n headerStyle: { fontWeight: '500', width: '150px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n dateWonFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'opportunityCloseDate')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'id',\r\n text: 'key',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const padZero = (e) => {\r\n return (e < 10) ? (\"0\" + e) : e;\r\n }\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n clearAllFiltersPKB();\r\n }\r\n\r\n const handleNumberOfWins = (e) => {\r\n setShowWins(!showWins);\r\n setShowMore(false);\r\n\r\n setCurrentFiltersWins({});\r\n setStaticOptionWins({});\r\n\r\n setFilteredDataWins(e ? e.closeWonOpps : []);\r\n setRowData(e ? e : null);\r\n }\r\n\r\n const showNumberOfWins = () => {\r\n if (!numberOfWins || numberOfWins.length === 0 || !modalData) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n

\r\n {modalData.numOfWin} Wins for {modalData.prospectName}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {triggerFilter(showFiltersWins, setShowFiltersWins)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {modalData.solutionTotal ?\r\n
\r\n \r\n {Object.entries(modalData.solutionTotal).map(([key, value]) => (\r\n \r\n
{key}
\r\n
{padZero(value)}
\r\n
\r\n ))}\r\n
\r\n
\r\n :\r\n null\r\n }\r\n {\r\n \r\n }\r\n
\r\n
\r\n )\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n

Key Buyers {(keyBuyers.length > 0) ? null : }

\r\n
Based on Won opportunities over a rolling 5 years.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {triggerFilter(showFiltersModal, setShowFiltersModal)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n 0) ? 'auto' : 'none' }}>\r\n
\r\n
\r\n

Key Buyers {(keyBuyers.length > 0) ? null : }

\r\n
Based on Won opportunities over a rolling 5 years.
\r\n
\r\n {keyBuyers.length > 1 ? \r\n
\r\n
\r\n {triggerFilter(showFilters, setShowFilters)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n : null}\r\n
\r\n {(keyBuyers.length > 0) ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n {showNumberOfWins()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n}","import React, { useContext, useEffect, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport './CompanyOverview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport { getUrlLink, formatWebsite, formatText, provideLinkToCompanyPage, formatRevenue } from '../Shared/Util';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport { OverlayTooltip } from '../OverlayTooltip';\r\nimport AccountTreeIcon from '@material-ui/icons/AccountTree';\r\nimport ListGroup from 'react-bootstrap/ListGroup';\r\n\r\nexport const Competitors = () => {\r\n const { account } = useContext(GlobalContext);\r\n const [companyCompetitors, setCompanyCompetitors] = useState([]);\r\n const [showMore, setShowMore] = useState(false);\r\n\r\n \r\n useEffect(() => {\r\n if (account && account.competitors && account.competitors.length !== 0) {\r\n setCompanyCompetitors(account.competitors);\r\n }\r\n }, [account]);\r\n\r\n const showCompetitors = (competitors, model) => {\r\n return (\r\n \r\n {competitors.map((competitor, i) => (\r\n \r\n
\r\n
\r\n {competitor.logo ?\r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n {competitor.competitorSFDCAccountId && provideLinkToCompanyPage(competitor.competitorSFDCAccountId) ?\r\n \r\n

\r\n {competitor.name}\r\n

\r\n
\r\n :\r\n

\r\n {competitor.name}\r\n

\r\n }\r\n
\r\n Website: \r\n {competitor.website ?\r\n {competitor.website}\r\n :\r\n \r\n }\r\n
\r\n {competitor.revenue ?\r\n
\r\n Company Revenue: \r\n {formatRevenue(competitor.revenue)}\r\n
\r\n :\r\n null\r\n }\r\n {competitor.description ? \r\n

\r\n {(competitor.description.length > 100 && model === false) ?\r\n {formatText(competitor.description, 100)}} imageType='none' />\r\n :\r\n competitor.description\r\n }\r\n

\r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n }\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n

Competitors {(companyCompetitors.length > 0) ? null : }

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {showCompetitors(companyCompetitors, true)}\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n 0) ? 'auto' : 'none' }}>\r\n
\r\n
\r\n

Competitors {(companyCompetitors.length > 0) ? null : }

\r\n
\r\n
\r\n {(companyCompetitors.length > 0) ?\r\n
\r\n {showCompetitors(companyCompetitors.slice(0, 5), false)}\r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\n\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport './CompanyOverview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport DefaultPhoto from '../Shared/DefaultPhoto';\r\nimport { Link } from 'react-router-dom';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport { EmployeeLinks } from '../Shared/EmployeeLinks';\r\nimport filterFactory, { customFilter, FILTER_TYPES } from 'react-bootstrap-table2-filter';\r\nimport { getUrlLink, formatDate, formatMonthYearDate, renderSortArrow, triggerFilter, handleOnFilterTable, asteriskHoverover, getOnStaticOptionsUpdate } from '../Shared/Util';\r\nimport { FilterMultiSelect } from '../Shared/FilterMultiSelect';\r\nimport PeopleAltIcon from '@material-ui/icons/PeopleAlt';\r\n\r\nexport const Alumni = () => {\r\n const { account } = useContext(GlobalContext);\r\n const [alumni, setAlumni] = useState([]);\r\n const [showMore, setShowMore] = useState(false);\r\n const [showFilters, setShowFilters] = useState(true);\r\n const [showFiltersModal, setShowFiltersModal] = useState(true);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n const [currentFilters, setCurrentFilters] = useState({});\r\n const [staticOption, setStaticOption] = useState({});\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n\r\n let nameFilter, titleFilter;\r\n\r\n\r\n const clearAllFiltersPKB = () => {\r\n nameFilter([]);\r\n titleFilter([]);\r\n setCurrentFilters({});\r\n setStaticOption({});\r\n }\r\n\r\n useEffect(() => {\r\n if (account && account.protivitiAlumni && account.protivitiAlumni.length !== 0) {\r\n setAlumni(account.protivitiAlumni);\r\n setFilteredData(account.protivitiAlumni);\r\n\r\n if (account.protivitiAlumni.length < 2) {\r\n setShowFilters(!showFilters)\r\n }\r\n }\r\n }, [account]);\r\n\r\n const onStaticOptionsUpdate = (staticColumn, filterKey, noFilters) => {\r\n if (noFilters || !staticOption.hasOwnProperty(filterKey))\r\n setStaticOption(getOnStaticOptionsUpdate(staticColumn, filterKey, noFilters, staticOption));\r\n }\r\n\r\n const afterFilter = (newResult, newFilters) => {\r\n setCurrentFilters(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newFilters)) {\r\n return newFilters\r\n }\r\n return prevData\r\n });\r\n\r\n setFilteredData(prevData => {\r\n if (JSON.stringify(prevData) !== JSON.stringify(newResult)) {\r\n return newResult\r\n }\r\n return prevData\r\n });\r\n }\r\n\r\n\r\n const tableColumn = [\r\n {\r\n dataField: 'photoUrl',\r\n text: '',\r\n sort: false,\r\n formatter: (value, row) => (\r\n value ?\r\n \r\n :\r\n \r\n ),\r\n headerStyle: { fontWeight: '500', width: '40px' }\r\n },\r\n {\r\n dataField: 'name',\r\n text: 'Name',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n sortValue: (value, row) => value.split(\" \")[1],\r\n formatter: (value, row) => (\r\n
\r\n
\r\n {value}\r\n
\r\n {!row.isDeleted ? : null}\r\n
\r\n ),\r\n headerStyle: { fontWeight: '500', width: '190px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n nameFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'name')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'title',\r\n text: 'Title',\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n formatter: (value, row) => (\r\n value ? value : \r\n ),\r\n headerStyle: { fontWeight: '500', width: '250px' },\r\n filter: customFilter({\r\n type: FILTER_TYPES.MULTISELECT,\r\n getFilter: (filter) => {\r\n titleFilter = filter;\r\n },\r\n onFilter: (filterArr, data) => handleOnFilterTable(filterArr, data, 'title')\r\n }),\r\n filterRenderer: (onFilter, column) => \r\n },\r\n {\r\n dataField: 'id',\r\n text: 'key',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const padZero = (e) => {\r\n return (e < 10) ? (\"0\" + e) : e;\r\n }\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n clearAllFiltersPKB();\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n

Protiviti Alumni {(alumni.length > 0) ? null : }

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {triggerFilter(showFiltersModal, setShowFiltersModal)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n\r\n \r\n\r\n return (\r\n \r\n 0) ? 'auto' : 'none' }}>\r\n
\r\n
\r\n

Protiviti Alumni

\r\n
\r\n {alumni.length > 1 ?\r\n
\r\n
\r\n {triggerFilter(showFilters, setShowFilters)}\r\n
\r\n
\r\n
\r\n Clear Filters\r\n
\r\n
\r\n
\r\n : null}\r\n
\r\n {(alumni.length > 0) ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
There are no Protiviti alumni tagged to this account.
\r\n \r\n }\r\n
\r\n
\r\n );\r\n}","import React, { useContext, useState, useEffect } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport MonetizationOnIcon from '@material-ui/icons/MonetizationOn';\r\nimport { formatRevenue, renderSortArrow, formatYear } from '../Shared/Util';\r\n\r\nexport const Funding = () => {\r\n const { account } = useContext(GlobalContext);\r\n const [showMore, setShowMore] = useState(false);\r\n const [companyFunding, setCompanyFunding] = useState([]);\r\n\r\n useEffect(() => {\r\n if (account && account.companyFunding && account.companyFunding.length > 0) {\r\n let companyFundingWithId = account.companyFunding.map((_, i) => {\r\n _.id = i;\r\n return _;\r\n });\r\n setCompanyFunding(companyFundingWithId);\r\n }\r\n }, [account]);\r\n\r\n const tableColumns = [\r\n {\r\n dataField: 'date',\r\n text: 'Funding Date',\r\n formatter: (value, row) => (\r\n (value && value.substring(0, 4) !== '0001') ? formatYear(value) : 'Not Available'\r\n ),\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '150px' },\r\n },\r\n {\r\n dataField: 'type',\r\n text: 'Round',\r\n formatter: (value, row) => (\r\n value ? value : 'Not Available'\r\n ),\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '300px' },\r\n },\r\n {\r\n dataField: 'amount',\r\n text: 'Amount',\r\n formatter: (value, row) => (\r\n value ? formatRevenue(value) : 'Not Available'\r\n ),\r\n sort: true,\r\n sortCaret: renderSortArrow,\r\n headerStyle: { fontWeight: '500', width: '200px' },\r\n },\r\n {\r\n dataField: 'id',\r\n text: 'key',\r\n hidden: true\r\n }\r\n ];\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n }\r\n\r\n if (!account) return null;\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n

\r\n {account.name} Funding History\r\n
These represent any funding history associated to this account
\r\n

\r\n
\r\n
\r\n
\r\n {account.totalFundingAmount ?
Total Funding Amount: {formatRevenue(account.totalFundingAmount)}
: null}\r\n
\r\n
\r\n
\r\n \r\n {\r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n 0) ? 'auto' : 'none' }}>\r\n
\r\n

\r\n {account.name} Funding History\r\n
These represent any funding history associated to this account
\r\n

\r\n
\r\n {account.totalFundingAmount ?
Total Funding Amount: {formatRevenue(account.totalFundingAmount)}
: null}\r\n
\r\n
\r\n {companyFunding && companyFunding.length > 0 ?\r\n
\r\n \r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
Not Available
\r\n \r\n }\r\n
\r\n
\r\n );\r\n}","import React, { useContext, useEffect, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport './CompanyOverview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport { getUrlLink, formatWebsite, provideLinkToCompanyPage } from '../Shared/Util';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport WebIcon from '@material-ui/icons/Web';\r\nimport ListGroup from 'react-bootstrap/ListGroup';\r\n\r\n\r\nexport const CompanyTechnologies = () => {\r\n const { account } = useContext(GlobalContext);\r\n const [companyTechnologies, setCompanyTechnologies] = useState([]);\r\n const [showMore, setShowMore] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n if (account && account.protivitiPartners && account.protivitiPartners.length !== 0) {\r\n setCompanyTechnologies(account.protivitiPartners);\r\n }\r\n }, [account]);\r\n\r\n const showcompanyTechnologies = (protivitiPartners, model) => {\r\n return (\r\n \r\n {protivitiPartners.map((protivitiPartner, i) => (\r\n \r\n
\r\n
\r\n {protivitiPartner.companyPhotoUrl ?\r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n {protivitiPartner.sfdcAccountId && provideLinkToCompanyPage(protivitiPartner.sfdcAccountId) ?\r\n \r\n

\r\n {protivitiPartner.name}\r\n

\r\n
\r\n :\r\n

\r\n {protivitiPartner.name}\r\n

\r\n }\r\n
\r\n Website: \r\n {protivitiPartner.website ?\r\n {protivitiPartner.website}\r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n }\r\n\r\n const handleShowMore = () => {\r\n setShowMore(!showMore);\r\n }\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n

Technologies {(companyTechnologies.length > 0) ? null : }

\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {showcompanyTechnologies(companyTechnologies, true)}\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n 0) ? 'auto' : 'none' }}>\r\n
\r\n
\r\n

Technologies {(companyTechnologies.length > 0) ? null : }

\r\n
\r\n
\r\n {(companyTechnologies.length > 0) ?\r\n
\r\n {showcompanyTechnologies(companyTechnologies.slice(0, 5), false)}\r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n","import React, { useContext, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport '../Prospect/Overview.css';\r\nimport Card from 'react-bootstrap/Card';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport PeopleOutlineIcon from '@material-ui/icons/PeopleOutline';\r\nimport { NotAvailable } from '../NotAvailable';\r\nimport { getUrlLink } from '../Shared/Util';\r\nimport { ShowInternalConnections } from '../Shared/ShowInternalConnection';\r\n\r\n\r\nexport const ConnectedColleagues = () => {\r\n\r\n const { account } = useContext(GlobalContext);\r\n const [showMore, setShowMore] = useState(false);\r\n\r\n const handleShowMore = () => setShowMore(!showMore);\r\n\r\n const showMoreModal = () => {\r\n return (\r\n \r\n \r\n \r\n

Connected Colleagues

\r\n
\r\n
\r\n \r\n
\r\n {ShowInternalConnections(account.connectedColleagues, 'account', account.id)}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n

\r\n Connected Colleagues {(account.connectedColleagues && account.connectedColleagues.length > 0) ? null : }\r\n
Based on Salesforce events from the previous week
\r\n

\r\n \r\n
\r\n {(account.connectedColleagues && account.connectedColleagues.length > 0) ?\r\n
\r\n {ShowInternalConnections(account.connectedColleagues.slice(0, 3), 'account', account.id)}\r\n \r\n {'View More'}\r\n \r\n {showMoreModal()}\r\n
\r\n :\r\n <>\r\n
\r\n
Based on our input, no one from your company has been connecting with contacts from this company.
\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n};","import React, { useContext, useEffect, useState } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport { withRouter, useHistory } from 'react-router-dom';\r\nimport '../Prospect/Overview.css';\r\nimport './CompanyOverview.css';\r\nimport Container from 'react-bootstrap/Container';\r\nimport Row from 'react-bootstrap/Row';\r\nimport Col from 'react-bootstrap/Col';\r\nimport DoubleArrowIcon from '@material-ui/icons/DoubleArrow';\r\nimport { CompanyDescription } from '../Shared/CompanyDescription'\r\nimport { ProtivitiWork } from '../Shared/ProtivitiWork';\r\nimport { Opportunity } from '../Shared/Opportunity';\r\nimport { CompanyNews } from '../Shared/CompanyNews';\r\nimport { ProtivitiWorkSolution } from '../Shared/ProtivitiWorkSolution';\r\nimport { MarketingSolution } from '../Shared/MarketingSolution';\r\nimport { KeyBuyer } from './KeyBuyer';\r\nimport { ScoopsIntents } from '../Shared/ScoopsIntents';\r\nimport { Competitors } from './Competitors';\r\nimport { Alumni } from './Alumni';\r\nimport { Funding } from './Funding';\r\nimport { CompanyTechnologies } from './CompanyTechnologies';\r\nimport { ConnectedColleagues } from './ConnectedColleagues';\r\n\r\nexport const CompanyOverview = withRouter((props) => {\r\n const { account, getAccount, getValidation } = useContext(GlobalContext);\r\n const [prevPathSearch, setPrevPathSearch] = useState(false);\r\n const [loaded, setLoaded] = useState(false);\r\n const [marketingSolutionData, setMarketingSolutionData] = useState(null);\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n setLoaded(false);\r\n fetchData();\r\n\r\n if (props.location && props.location.state && props.location.state.prevPath.pathname === '/search') {\r\n setPrevPathSearch(true);\r\n }\r\n else {\r\n setPrevPathSearch(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (account) {\r\n let marketingSolution = {\r\n id: account.id,\r\n marketingSolutionA: account.marketingSolutionA,\r\n marketingSolution1Year: account.marketingSolution1Year,\r\n campaignsActionsA: account.campaignsActionsA\r\n };\r\n setMarketingSolutionData(marketingSolution);\r\n\r\n if (account.id && account.relProAccountId) {\r\n getValidation(account.id, account.relProAccountId, 1);\r\n }\r\n }\r\n }, [account]);\r\n\r\n const fetchData = async () => {\r\n const { match: { params } } = props; //get params\r\n await getAccount(params.accountId);\r\n setLoaded(true);\r\n }\r\n\r\n const goBackPrev = () => {\r\n props.history.push({\r\n pathname: props.location.state.prevPath.pathname,\r\n search: props.location.state.prevPath.search,\r\n state: { returnbutton: true }\r\n });\r\n }\r\n\r\n if (!account && loaded) {\r\n return (\r\n \r\n \r\n
This record does not exist or has since been removed from the ProConnect system. Please visit Salesforce to add this record back into the system.
\r\n
\r\n
\r\n\r\n );\r\n }\r\n\r\n // renders nothing until data is loaded\r\n if (!loaded) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {history && history.length > 1 && history.action !== 'POP' ?\r\n prevPathSearch ?\r\n
\r\n \r\n Return to Search\r\n
\r\n :\r\n
\r\n \r\n Return to Previous Page\r\n
\r\n :\r\n null\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n})","import React, { useContext, useState, useEffect, useRef } from 'react';\r\nimport { GlobalContext } from '../../context/GlobalState';\r\nimport './Overview.css';\r\nimport '../Home/Home.css';\r\nimport '../SearchResult.css';\r\nimport { Link } from 'react-router-dom';\r\nimport { Card, Button, Row, Col, Container } from 'react-bootstrap/';\r\nimport DefaultPhoto from '../Shared/DefaultPhoto';\r\nimport LineTo from 'react-lineto';\r\nimport { getRelationshipStyle, asteriskHoverover, formatLastContacted, renderTaggedRelationship } from '../Shared/Util';\r\nimport DoubleArrowIcon from '@material-ui/icons/DoubleArrow';\r\nimport PeopleOutlineIcon from '@material-ui/icons/PeopleOutline';\r\nimport { NumberOfInteractions } from './NumberOfInteractions';\r\n\r\nexport const InternalConnectionsGraph = (props) => {\r\n const childRef = useRef();\r\n\r\n let { prospect, getProspect } = useContext(GlobalContext);\r\n let [internalConnections, setInternalConnections] = useState([]);\r\n let [lineToKey, setLineToKey] = useState(null);\r\n const [page, setPage] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!prospect) {\r\n const { match: { params } } = props; //get params\r\n getProspect(params.prospectId);\r\n }\r\n if (prospect && prospect.connections) {\r\n setInternalConnections(prospect.connections.slice(0, 10)); // get first 10\r\n setPage(0);\r\n }\r\n }, [prospect]);\r\n\r\n useEffect(() => {\r\n // rerenders LineTo\r\n setLineToKey(Math.random());\r\n }, [internalConnections])\r\n\r\n const changePage = (action) => {\r\n let newPage = 0;\r\n if (action === 'previous') {\r\n newPage = page - 1;\r\n }\r\n else {\r\n newPage = page + 1;\r\n }\r\n let cards = prospect.connections.slice(newPage * 10, (newPage * 10 + 10));\r\n setInternalConnections(cards);\r\n setPage(newPage);\r\n }\r\n\r\n let renderEmployeeCard = (employee, lineToClass) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n {employee.employee.photoUrl ?\r\n
\r\n :\r\n \r\n }\r\n {employee.relationShipStrength ?
{renderTaggedRelationship(employee.relationShipStrength)}
: null}\r\n
\r\n
\r\n {employee.employee.isTerminated ? asteriskHoverover(employee.employee.name, false) : employee.employee.name}\r\n
\r\n
\r\n {\r\n ((employee.employee.title && employee.employee.title.indexOf(' (') > 0) ? employee.employee.title.substring(0, employee.employee.title.indexOf(' (')) : employee.employee.title) +\r\n ((employee.employee.title && employee.employee.city) ? ', ' : '') +\r\n (employee.employee.city ? employee.employee.city + ' Office' : '')\r\n }\r\n
\r\n {employee.lastContactTime ? \r\n
\r\n Last Connected: \r\n {formatLastContacted(employee.lastContactTime, employee.lastContactType)}\r\n
\r\n :\r\n null\r\n }\r\n
\r\n Number of Interactions: \r\n {employee.numberOfInteractions ?\r\n childRef.current.openModal(prospect.id, employee.employeeId, employee.employee.name, '', '')}>{employee.numberOfInteractions}\r\n :\r\n 0\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n let renderProspectCard = () => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n {prospect.photoUrl ?\r\n \r\n :\r\n \r\n }\r\n
\r\n {prospect.name}\r\n
\r\n
\r\n {prospect.title}\r\n
\r\n
\r\n {prospect.company.name}\r\n
\r\n {prospect.phone ? \r\n
\r\n Work - {prospect.phone}\r\n
\r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n let renderCol = (order, toClass) => {\r\n if (internalConnections.length >= order + 1) {\r\n return {renderEmployeeCard(internalConnections[order], toClass)};\r\n }\r\n else {\r\n if (order === 4 || order === 5) {\r\n return ;\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n let getBorderWidth = (connection) => {\r\n let width = 1;\r\n if (!connection) return width;\r\n switch (true) {\r\n case (connection.numberOfInteractions > 50):\r\n width = 10;\r\n break;\r\n case (connection.numberOfInteractions >= 25 && connection.numberOfInteractions <= 50):\r\n width = 5;\r\n break;\r\n default:\r\n width = 1;\r\n }\r\n return width;\r\n }\r\n\r\n let checkInternalConnections = (connection) => {\r\n if (!connection) return null;\r\n return connection.relationShipStrength;\r\n }\r\n\r\n let getPrevPage = () => {\r\n if (!prospect) return '/';\r\n return `/prospect/${prospect.id}`;\r\n }\r\n\r\n if (!internalConnections || internalConnections.length === 0) return null;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n Return to Prospect Page\r\n \r\n
\r\n\r\n
\r\n
\r\n

\r\n
Internal Connections
\r\n
Note: This connection map only shows internal employees with a contact relationship strength indicated in Salesforce
\r\n

\r\n
\r\n
Number of Interactions
\r\n
\r\n
\r\n
\r\n
0 - 24
\r\n
\r\n
\r\n
\r\n
25 - 50
\r\n
\r\n
\r\n
\r\n
51+
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {renderCol(0, 'A')}\r\n {renderCol(1, 'B')}\r\n {renderCol(6, 'C')}\r\n {renderCol(8, 'D')}\r\n \r\n \r\n {renderCol(4, 'E')}\r\n {renderProspectCard()}\r\n {renderCol(5, 'F')}\r\n \r\n \r\n {renderCol(2, 'G')}\r\n {renderCol(3, 'H')}\r\n {renderCol(7, 'I')}\r\n {renderCol(9, 'J')}\r\n \r\n\r\n
\r\n {(prospect.connections.length > 10 && page !== 0) ? :
}\r\n {(prospect.connections.length > 10 && (Math.ceil(prospect.connections.length / 10) !== (page * 10 + 10) / 10)) ? :
}\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}","import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react';\r\nimport '../Prospect/Overview.css';\r\nimport '../Home/Home.css';\r\nimport '../SearchResult.css';\r\nimport '../Header.css';\r\nimport { Button, FormControl, InputGroup, Dropdown, Form } from 'react-bootstrap/';\r\nimport { Search } from '@material-ui/icons';\r\nimport axios from 'axios';\r\nimport config from '../../config';\r\nimport { authHeaders } from '../../auth/authHeaders';\r\nimport { renderLoadingSpinner } from '../Shared/Util';\r\n\r\nexport const OrgChartSearch = forwardRef((props, ref) => {\r\n const [search, setSearch] = useState('');\r\n const [suggestions, setSuggestions] = useState([]);\r\n const [focusSearch, setFocusSearch] = useState(false);\r\n const [cursor, setCursor] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [dontFetch, setDontFetch] = useState(false);\r\n\r\n useImperativeHandle(ref, () => ({\r\n clearSearch() {\r\n setSearch('');\r\n setSuggestions([]);\r\n setDontFetch(true);\r\n }\r\n }));\r\n\r\n useEffect(() => {\r\n if (!dontFetch) {\r\n const timeOut = setTimeout(() => { // delay recommendation results until user stops typing\r\n searchRecommendation(search);\r\n }, 400);\r\n return () => clearTimeout(timeOut);\r\n }\r\n setDontFetch(false);\r\n }, [search]);\r\n\r\n const searchRecommendation = async (searchValue) => {\r\n if (searchValue === '') {\r\n setSuggestions([]);\r\n }\r\n else {\r\n setLoading(true);\r\n let headers = await authHeaders();\r\n let url = `${config.azRedirectUri}/api/orgchart/search?keyword=${searchValue}&relProAccountId=${props.relProAccountId}`;\r\n await axios.get(url, headers)\r\n .then((response) => {\r\n setSuggestions(response.data);\r\n setLoading(false);\r\n })\r\n .catch((error) => {\r\n setSuggestions([]);\r\n });\r\n }\r\n }\r\n\r\n const onBlur = () => {\r\n setFocusSearch(false);\r\n setCursor(null);\r\n }\r\n\r\n const onFocus = () => {\r\n setFocusSearch(true);\r\n }\r\n\r\n const handleKeyDown = (e, searchResults) => {\r\n //13 = enter, 38 = up, 40 = down\r\n if (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 13) {\r\n e.preventDefault();\r\n }\r\n\r\n if (e.keyCode === 13 && cursor !== null) {\r\n selectResult(searchResults[cursor]);\r\n }\r\n\r\n if (e.keyCode === 40 && cursor === null) {\r\n setCursor(0);\r\n }\r\n else if (e.keyCode === 38 && cursor > 0) {\r\n setCursor(prevstate => prevstate - 1);\r\n }\r\n else if (e.keyCode === 40 && cursor < searchResults.length - 1) {\r\n setCursor(prevstate => prevstate + 1);\r\n }\r\n }\r\n\r\n const selectResult = (result) => {\r\n let suggestion = getFullName(result.firstName, result.middleName, result.lastName);\r\n setDontFetch(true);\r\n setSearch(suggestion);\r\n\r\n props.selectSearchResult(result); // pass to parent -> OrgChart.js\r\n\r\n document.getElementById('header-searchbar-id').blur();\r\n setCursor(null);\r\n }\r\n\r\n const getFullName = (firstName, middleName, lastName) => {\r\n firstName = firstName ? firstName + ' ' : '';\r\n middleName = middleName ? middleName + ' ' : '';\r\n lastName = lastName ? lastName : '';\r\n\r\n let fullName = firstName + middleName + lastName;\r\n return fullName;\r\n }\r\n\r\n const formatResult = (result) => {\r\n let fullName = getFullName(result.firstName, result.middleName, result.lastName);\r\n\r\n return (\r\n
\r\n
{getHighlight(fullName, result.keyword)}
\r\n
{result.department}
\r\n
\r\n );\r\n }\r\n\r\n const getHighlight = (name, keyword) => {\r\n if (!name) return null;\r\n\r\n let lowerName = name.toLowerCase();\r\n let index = lowerName.indexOf(keyword);\r\n\r\n if (index === -1) return {name};\r\n\r\n let endIndex = index + keyword.length;\r\n let formatted = name.split('');\r\n formatted.splice(index, 0, '');\r\n formatted.splice(endIndex + 1, 0, '');\r\n formatted = formatted.join('');\r\n\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n 0) && focusSearch) ? ' header-searchbar-radius' : '')}\r\n onChange={e => setSearch(e.target.value)}\r\n value={search}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n onKeyDown={(event) => handleKeyDown(event, suggestions.slice(0, 5))}\r\n disabled={props.loading}\r\n />\r\n {loading ?\r\n
\r\n {renderLoadingSpinner()}\r\n
\r\n :\r\n
0) && focusSearch) ? 'block' : 'none' }}>\r\n {suggestions.slice(0, 5).map((result, index) => {\r\n return selectResult(result)}>{formatResult(result)}\r\n })}\r\n
\r\n }\r\n
\r\n
\r\n );\r\n});","import React, { useState, useEffect, useRef } from 'react';\r\nimport '../Prospect/Overview.css';\r\nimport '../Home/Home.css';\r\nimport '../SearchResult.css';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { Card, Row, Container, DropdownButton, Dropdown } from 'react-bootstrap/';\r\nimport DefaultPhoto from '../Shared/DefaultPhoto';\r\nimport axios from 'axios';\r\nimport config from '../../config';\r\nimport { authHeaders } from '../../auth/authHeaders';\r\nimport DoubleArrowIcon from '@material-ui/icons/DoubleArrow';\r\nimport SupervisedUserCircleOutlinedIcon from '@material-ui/icons/SupervisedUserCircleOutlined';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport PhoneIcon from '@material-ui/icons/Phone';\r\nimport { setUpLinkedinUrl, renderOutlook, renderLoadingSpinner } from '../Shared/Util';\r\nimport salesforce from '../../images/salesforce-logo.png';\r\nimport { OrgChartSearch } from './OrgChartSearch';\r\n\r\nexport const OrgChart = (props) => {\r\n const history = useHistory();\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem('ClientSideSettings')));\r\n const [relProAccountId, setRelProAccountId] = useState(null);\r\n const [sfdcId, setSfdcId] = useState(null);\r\n const [department, setDepartment] = useState('C-Suite');\r\n const [sfdcJobfunction, setSfdcJobfunction] = useState('All');\r\n const [employees, setEmployees] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [totalResult, setTotalResult] = useState(0);\r\n const [noNextTier, setNoNextTier] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const size = 50;\r\n const [searched, setSearched] = useState(false); // used to filter duplicates after search\r\n const childRef = useRef();\r\n\r\n const zoomInfoOrgChartDepartments = ['C-Suite', 'Finance', 'Human Resources', 'Sales', 'Operations', 'Information Technology', 'Engineering & Technical', 'Marketing', 'Legal', 'Medical & Health', 'Other'];\r\n const sfdcJobFunctions = {\r\n 'C-Suite': ['Executive', 'Marketing & Sales', 'Accounting and Finance', 'Human Resource Management', 'IT - Systems and Applications', 'Legal / General Counsel', 'Innovation & Digital', 'Operations', 'Strategy and Corporate Development'],\r\n 'Finance': ['Accounting and Finance', 'Compliance', 'Risk Management', 'IT - Systems and Applications', 'Purchasing and Procurement', 'Strategy and Corporate Development', 'Customer Service / Support'],\r\n 'Human Resources': ['Human Resource Management', 'IT - Systems and Applications'],\r\n 'Sales': ['Marketing & Sales', 'Customer Service / Support', 'Operations', 'Accounting and Finance', 'Strategy and Corporate Development'],\r\n 'Operations': ['Customer Service / Support', 'Purchasing and Procurement', 'Operations', 'Strategy and Corporate Development', 'Legal / General Counsel', 'Risk Management'],\r\n 'Information Technology': ['IT - Systems and Applications', 'Customer Service / Support', 'Data and Analytics', 'Innovation & Digital', 'Security and Privacy', 'Purchasing and Procurement'],\r\n 'Engineering & Technical': ['Data and Analytics', 'IT - Systems and Applications', 'Innovation & Digital', 'Research and Development (R&D)'],\r\n 'Marketing': ['Marketing & Sales', 'Innovation & Digital', 'Strategy and Corporate Development', 'Customer Service / Support'],\r\n 'Legal': ['Compliance', 'Security and Privacy', 'Legal / General Counsel', 'Research and Development (R&D)', 'Strategy and Corporate Development'],\r\n 'Medical & Health': ['Research and Development (R&D)', 'Operations', 'IT - Systems and Applications'],\r\n 'Other': []\r\n }\r\n\r\n useEffect(() => {\r\n const { match: { params } } = props; //get params\r\n setRelProAccountId(decodeURIComponent(params.externalId));\r\n setSfdcId(params.accountId);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (relProAccountId) {\r\n getOrgChart(department, [0], sfdcJobfunction, 1);\r\n }\r\n }, [relProAccountId]);\r\n\r\n const getOrgChart = async (dept, tiers, sfdcJobFunc, pg) => {\r\n setLoading(true);\r\n\r\n if (sfdcJobFunc === 'All') sfdcJobFunc = '';\r\n\r\n // replace ampersand with %26\r\n let deptUri = dept.replace('&', '%26');\r\n let sfdcJobFuncUri = sfdcJobFunc.replace('&', '%26');\r\n\r\n let headers = await authHeaders();\r\n let uri = `${config.azRedirectUri}/api/orgchart?relProAccountId=${relProAccountId}&department=${deptUri}&sfdcJobFunction=${sfdcJobFuncUri}&page=${pg}&size=${size}`;\r\n \r\n for (let i = 0; i < tiers.length; i++) {\r\n uri += `&orgChartTier=${tiers[i]}`;\r\n }\r\n\r\n await axios.get(uri, headers).then((response) => {\r\n if (response.data.employees !== null) {\r\n let responseEmployees = response.data.employees;\r\n if (pg === 1 && searched) {\r\n // filter duplicate\r\n let currentEmployeesIdSet = new Set(employees.map(_ => _.id));\r\n responseEmployees = responseEmployees.filter(_ => !currentEmployeesIdSet.has(_.id));\r\n }\r\n setEmployees(old => [...old, ...responseEmployees]);\r\n setNoNextTier(false);\r\n setTotalResult(response.data.maxResults);\r\n setPage(pg);\r\n }\r\n else {\r\n setNoNextTier(true);\r\n }\r\n setLoading(false);\r\n setSearched(false);\r\n })\r\n .catch(() => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const onDepartmentChange = (dept) => {\r\n // C-Suite -> tier 0 -> all\r\n // Everything else -> tier 2 first, if there are no tier 2, backend will call again w/ tier 3+\r\n setDepartment(dept);\r\n setEmployees([]);\r\n let tier = dept === 'C-Suite' ? [0] : [2];\r\n let jobFunction = 'All';\r\n setSfdcJobfunction(jobFunction);\r\n getOrgChart(dept, tier, jobFunction, 1);\r\n\r\n childRef.current.clearSearch();\r\n }\r\n\r\n const onJobFunctionChange = (jobFunction) => {\r\n // 0 tier when filtering job function -> show more results within inner tiers\r\n let tier = (jobFunction === 'All' && department !== 'C-Suite') ? [2] : [0]; \r\n\r\n setSfdcJobfunction(jobFunction);\r\n setEmployees([]);\r\n\r\n getOrgChart(department, tier, jobFunction, 1);\r\n\r\n childRef.current.clearSearch();\r\n }\r\n\r\n const nextPage = () => {\r\n let tier = department === 'C-Suite' ? [0] : [employees[employees.length - 1].orgChartTier];\r\n getOrgChart(department, tier, sfdcJobfunction, page+1);\r\n }\r\n\r\n const nextTier = () => {\r\n let tier = [employees[employees.length - 1].orgChartTier + 1];\r\n getOrgChart(department, tier, sfdcJobfunction, 1);\r\n }\r\n\r\n const selectSearchResult = async (result) => {\r\n // child component -> OrgChartSearch\r\n if (result) {\r\n let idUri = result.id.replace('&', '%26');\r\n let headers = await authHeaders();\r\n let url = `${config.azRedirectUri}/api/orgchart/select?partitionId=${result.partitionId}&id=${idUri}`;\r\n await axios.get(url, headers)\r\n .then((response) => {\r\n setSearched(true);\r\n setEmployees([response.data]);\r\n\r\n setNoNextTier(false);\r\n setTotalResult(Infinity); // set high number so Next Page will always show\r\n setPage(0); // set 0 so next page will be 1\r\n\r\n setDepartment(response.data.department);\r\n setSfdcJobfunction('All');\r\n })\r\n .catch(() => {\r\n \r\n });;\r\n }\r\n }\r\n\r\n const renderEmployee = (employee, i) => {\r\n return (\r\n
\r\n {i === 0 || employee.sfdcJobFunction !== employees[i - 1].sfdcJobFunction ?\r\n
\r\n \r\n {employee.sfdcJobFunction}\r\n
\r\n :\r\n null\r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n {employee.picture ?\r\n
\r\n :\r\n \r\n }\r\n
\r\n
\r\n

\r\n {employee.sfdcContactId ?\r\n {`${employee.firstName} ${employee.lastName}`}\r\n :\r\n
{`${employee.firstName} ${employee.lastName}`}
\r\n }\r\n

\r\n
\r\n {employee.title}\r\n
\r\n {employee.emailAddress ?\r\n \r\n {renderOutlook(employee.emailAddress)}\r\n {employee.emailAddress}\r\n \r\n :\r\n null\r\n }\r\n
\r\n
\r\n {employee.phone || employee.sfdcContactId || employee.linkedinUrl ?\r\n
\r\n {employee.phone ?\r\n
\r\n \r\n
\r\n
{employee.phone} (Work)
\r\n
\r\n
\r\n :\r\n null\r\n }\r\n {employee.linkedinUrl ? {setUpLinkedinUrl(employee.linkedinUrl)} : null}\r\n {employee.sfdcContactId ? : null}\r\n
\r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n {history && history.length > 1 && history.action !== 'POP' ?\r\n
\r\n \r\n Return to Previous Page\r\n
\r\n :\r\n null\r\n }\r\n\r\n
\r\n
\r\n

\r\n
Organizational Chart
\r\n

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Department\r\n
\r\n {department} } id='dropdown-menu-align-right' className='sortby-dropdown' disabled={loading}>\r\n {zoomInfoOrgChartDepartments.map((item, i) => (\r\n onDepartmentChange(item)}>{item}\r\n ))}\r\n \r\n
\r\n\r\n
\r\n
\r\n Job Function\r\n
\r\n {sfdcJobfunction} } id='dropdown-menu-align-right' className='sortby-dropdown' disabled={loading}>\r\n {['All', ...sfdcJobFunctions[department]].map((item, i) => (\r\n onJobFunctionChange(item)}>{item}\r\n ))}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
{department}
\r\n {(!employees || employees.length === 0) ?\r\n loading ?\r\n renderLoadingSpinner()\r\n :\r\n \r\n \r\n
Sorry, there are no records found.
\r\n
\r\n
\r\n :\r\n
\r\n {employees.map((employee, i) => (\r\n renderEmployee(employee, i)\r\n ))}\r\n\r\n {loading ?\r\n renderLoadingSpinner() \r\n :\r\n
\r\n {totalResult > size * page ?\r\n
Show More
: null\r\n }\r\n {department !== 'C-Suite' && !noNextTier ?\r\n
Show Next Tier
: null\r\n }\r\n
\r\n }\r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Route, Redirect, useLocation } from 'react-router-dom';\r\nimport config from '../src/config';\r\nimport { authHeaders } from '../src/auth/authHeaders';\r\nimport axios from 'axios';\r\nimport { GlobalContext } from '../src/context/GlobalState';\r\n\r\nexport const ProtectedRoute = ({ component: Component, ...rest }) => {\r\n const [loaded, setLoaded] = useState(false);\r\n const [authorizedState, setAuthorizedState] = useState(false);\r\n const { setAuthorized, authentication, setIsProspectPage, setUserEmail } = useContext(GlobalContext);\r\n let location = useLocation();\r\n\r\n useEffect(() => {\r\n if (location) {\r\n setIsProspectPage(location.pathname.includes('/prospect/'));\r\n }\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n if (authentication !== null) {\r\n getUser();\r\n }\r\n }, [authentication]);\r\n\r\n const getUser = async () => {\r\n let url = config.azRedirectUri + '/api/user';\r\n let headers = await authHeaders();\r\n await axios.get(url, headers).then((response) => {\r\n setUserEmail(response.data);\r\n setAuthorized(true);\r\n setAuthorizedState(true);\r\n setLoaded(true);\r\n })\r\n .catch((error) => {\r\n // 403 Forbidden & 500\r\n setAuthorized(false);\r\n setAuthorizedState(false);\r\n setLoaded(true);\r\n });\r\n }\r\n\r\n if (!loaded) {\r\n return null;\r\n }\r\n\r\n return (\r\n {\r\n if (authorizedState && authentication && authentication.authenticationState === 'Authenticated') {\r\n return ;\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n }}\r\n /> \r\n );\r\n}","import { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { ReactPlugin } from '@microsoft/applicationinsights-react-js';\r\n\r\nlet reactPlugin = null;\r\nlet appInsights = null;\r\n\r\n/**\r\n * Create the App Insights Telemetry Service\r\n * @return {{reactPlugin: ReactPlugin, appInsights: Object, initialize: Function}} - Object\r\n */\r\nconst createTelemetryService = () => {\r\n\r\n /**\r\n * Initialize the Application Insights class\r\n * @param {string} instrumentationKey - Application Insights Instrumentation Key\r\n * @param {Object} browserHistory - client's browser history, supplied by the withRouter HOC\r\n * @return {void}\r\n */\r\n const initialize = (authData, instrumentationKey, browserHistory) => {\r\n if (!authData) {\r\n throw new Error('AuthData not provided in ./src/telemetry/telemetry-provider.jsx')\r\n }\r\n if (!browserHistory) {\r\n throw new Error('Could not initialize Telemetry Service');\r\n }\r\n if (!instrumentationKey) {\r\n throw new Error('Instrumentation key not provided in ./src/telemetry/telemetry-provider.jsx')\r\n }\r\n\r\n reactPlugin = new ReactPlugin();\r\n\r\n appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: instrumentationKey,\r\n maxBatchInterval: 0,\r\n disableFetchTracking: false,\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: {\r\n history: browserHistory\r\n }\r\n }\r\n }\r\n });\r\n\r\n appInsights.loadAppInsights();\r\n appInsights.setAuthenticatedUserContext(authData.accountInfoUserName);\r\n };\r\n\r\n return { reactPlugin, appInsights, initialize };\r\n};\r\n\r\nexport const ai = createTelemetryService();\r\nexport const getAppInsights = () => appInsights;","import React, { Component, Fragment } from 'react';\r\nimport { withAITracking } from '@microsoft/applicationinsights-react-js';\r\nimport { ai } from './TelemetryService';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\n/**\r\n * This Component provides telemetry with Azure App Insights\r\n *\r\n * NOTE: the package '@microsoft/applicationinsights-react-js' has a HOC withAITracking that requires this to be a Class Component rather than a Functional Component\r\n */\r\nclass TelemetryProvider extends Component {\r\n state = {\r\n initialized: false\r\n };\r\n\r\n componentDidMount() {\r\n const { history } = this.props;\r\n const { initialized } = this.state;\r\n const appInsightsInstrumentationKey = this.props.instrumentationKey; // PUT YOUR KEY HERE\r\n const authData = this.props.authData;\r\n if (Boolean(authData) && !Boolean(initialized) && Boolean(appInsightsInstrumentationKey) && Boolean(history)) {\r\n ai.initialize(authData, appInsightsInstrumentationKey, history);\r\n this.setState({ initialized: true });\r\n }\r\n\r\n this.props.after();\r\n }\r\n\r\n render() {\r\n const { children } = this.props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withAITracking(ai.reactPlugin, TelemetryProvider));","import React, { useEffect, useState } from 'react';\r\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\r\nimport { Overview } from './components/Prospect/Overview';\r\nimport { GlobalProvider } from './context/GlobalState';\r\nimport { Header } from './components/Header';\r\nimport { SearchResult } from './components/SearchResult';\r\nimport { Home } from './components/Home/Home';\r\nimport { ViewMore } from './components/Home/ViewMore';\r\nimport ScrollToTop from '../src/components/ScrollToTop';\r\nimport { CompanyOverview } from './components/Account/CompanyOverview';\r\nimport { InternalConnectionsGraph } from './components/Prospect/InternalConnectionsGraph';\r\nimport { OrgChart } from './components/Account/OrgChart';\r\n\r\nimport { useIdleTimer } from 'react-idle-timer';\r\nimport { CircularProgress, LinearProgress } from '@material-ui/core';\r\nimport Modal from 'react-bootstrap/Modal';\r\n\r\nimport { ProtectedRoute } from '../src/ProtectedRoute';\r\nimport { Unauthorized } from '../src/components/Unauthorized';\r\n\r\nimport { getAppInsights } from './telemetry/TelemetryService';\r\nimport TelemetryProvider from './telemetry/telemetry-provider';\r\n\r\nexport const App = (props) => {\r\n let appInsights = null;\r\n const [showIdleWarning, setShowIdleWarning] = useState(false);\r\n const [clientSideSettings] = useState(JSON.parse(localStorage.getItem(\"ClientSideSettings\")));\r\n let applicationInsightKey = clientSideSettings[\"instrumentationKey\"];\r\n const [sessionWarningToLogoutSeconds] = useState(clientSideSettings[\"sessionWarningToLogoutSeconds\"]);\r\n const [seconds, setSeconds] = useState(clientSideSettings[\"sessionWarningToLogoutSeconds\"]);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n useEffect(() => {\r\n let interval = null;\r\n if (isActive) {\r\n interval = setInterval(() => {\r\n if (seconds === 0)\r\n logout();\r\n else\r\n setSeconds(seconds => seconds - 1);\r\n\r\n }, 1000);\r\n\r\n }\r\n else if (!isActive && seconds !== 0 && seconds !== null) {\r\n clearInterval(interval);\r\n }\r\n return () => clearInterval(interval);\r\n \r\n\r\n }, [isActive, seconds]);\r\n\r\n const handleOnIdle = event => {\r\n if(clientSideSettings.sessionWarningMS !== null)\r\n setShowIdleWarning(true);\r\n setIsActive(true);\r\n }\r\n\r\n const handleOnActive = event => {\r\n setShowIdleWarning(false);\r\n setSeconds(clientSideSettings.sessionWarningToLogoutSeconds);\r\n setIsActive(false);\r\n }\r\n\r\n const handleOnAction = (e) => {\r\n setShowIdleWarning(false);\r\n setSeconds(clientSideSettings.sessionWarningToLogoutSeconds);\r\n setIsActive(false);\r\n }\r\n useIdleTimer({\r\n timeout: clientSideSettings.sessionWarningMS,\r\n onIdle: handleOnIdle,\r\n onActive: handleOnActive,\r\n onAction: handleOnAction\r\n })\r\n \r\n const logout = () => {\r\n //clear msal from localstorage\r\n var arr = [];\r\n for (var i = 0; i < localStorage.length; i++) {\r\n if (localStorage.key(i).includes('msal')) {\r\n arr.push(localStorage.key(i));\r\n }\r\n }\r\n for (var j = 0; j < arr.length; j++) {\r\n localStorage.removeItem(arr[j]);\r\n }\r\n //clear all cookies\r\n var cookies = document.cookie.split(\";\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var cookie = cookies[i];\r\n var eqPos = cookie.indexOf(\"=\");\r\n var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\r\n document.cookie = name + \"=;expires=Thu, 01 Jan 1970 00:00:00 GMT\";\r\n }\r\n\r\n if (appInsights != null) {\r\n appInsights.trackEvent({ name: 'Logout from ProConnect.' })\r\n }\r\n window.open(\"https://login.microsoftonline.com/16532572-d567-4d67-8727-f12f7bb6aed3/oauth2/logout\"/*?client_id=&post_logout_redirect_uri=\" + encodeURI(window.location.origin)*/, \"_self\");\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n { appInsights = getAppInsights() }}>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n showIdleWarning ?\r\n < Modal show={true} dialogClassName='custom-dialogx' >\r\n \r\n

Session Timeout Warning

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

You will be timed out in {seconds} seconds

\r\n \r\n \r\n\r\n
\r\n \r\n :\r\n null\r\n }\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { App } from './App';\r\nimport config from './config';\r\nimport { authHeaders } from './auth/authHeaders';\r\nimport axios from 'axios';\r\n\r\nfunction TimerRoot(props) {\r\n const [render, setRender] = useState(false);\r\n const [authData, setAuthData] = useState(null);\r\n\r\n useEffect(() => {\r\n var ClientSideSettings = localStorage.getItem(\"ClientSideSettings\");\r\n if (!ClientSideSettings) {\r\n getConfig();\r\n }\r\n else {\r\n var Parsed = JSON.parse(ClientSideSettings);\r\n if (!Parsed[\"ConfigDate\"] || Parsed[\"ConfigDate\"] < Date.now())\r\n getConfig();\r\n else {\r\n setRender(true);\r\n }\r\n }\r\n\r\n let auth = {\r\n authenticationState: props.authenticationState,\r\n accountInfoUserName: (props.accountInfo && props.accountInfo.account) ? props.accountInfo.account.userName : props.accountInfo\r\n }\r\n setAuthData(auth);\r\n }, []); \r\n\r\n\r\n const getConfig = async () => {\r\n let configUrl = config.azRedirectUri + '/api/config';\r\n let headers = await authHeaders();\r\n await axios.get(configUrl, headers).then((response) => {\r\n let data = response.data;\r\n data[\"ConfigDate\"] = Date.now() + 86400000; //Now plus 24 hours - Only call Config file once a day and store in localStorage\r\n localStorage.setItem(\"ClientSideSettings\", JSON.stringify(data)) \r\n setRender(true);\r\n });\r\n }\r\n\r\n\r\n return(<>\r\n {render ? : null}\r\n \r\n )\r\n\r\n}\r\n export default TimerRoot;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { AzureAD } from 'react-aad-msal';\r\nimport TimerRoot from './TimerRoot';\r\nimport { authProvider } from './auth/authProvider';\r\nimport './index.css';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\n\r\n\r\nReactDOM.render(\r\n \r\n {\r\n ({ authenticationState, accountInfo }) => \r\n }\r\n ,\r\n document.getElementById('root'),\r\n);"],"sourceRoot":""}