{"version":3,"sources":["images/cancel.svg","images/user_empty.png","images/edit.svg","images/delete.svg","images/project_logo.png","images/teams.png","images/logoUpdated.png","images/que.png","images/search_icon.png","images/adv_search-icon.png","images/skills.png","images/email.png","images/work.png","components/service/SkillService.ts","components/graph/MsalConfig.js","components/graph/GraphService.ts","components/navigation/Navagation.tsx","components/navigation/Header.tsx","components/navigation/Hero.tsx","components/searchresults/ResultItem.tsx","components/userprofile/ProjectDetails.tsx","components/userprofile/ManagerCard.tsx","components/searchresults/ResultDetails.tsx","components/service/MasterService.ts","components/autocomplete/Autocomplete.tsx","components/searchresults/Results.tsx","components/navigation/Home.tsx","App.tsx","registerServiceWorker.js","components/reducers/LoginReducer.ts","types/UserProfile.ts","components/utility.tsx","components/userprofile/AddSkill.tsx","components/userprofile/SkillComponent.tsx","components/userprofile/AddManagerDetails.tsx","components/userprofile/UserDetail.tsx","components/userprofile/AddProject.tsx","components/userprofile/ProjectComponent.tsx","components/userprofile/Interest.tsx","components/userprofile/Language.tsx","components/userprofile/Profile.tsx","components/admin/SkillMaster.tsx","types/Skill.ts","components/admin/ProjectMaster.tsx","components/admin/Master.tsx","index.js"],"names":["module","exports","UpdateUser","val","fetch","method","headers","Accept","body","JSON","stringify","catch","error","console","GetUser","uid","a","Promise","resolve","reject","then","response","status","json","undefined","SearchText","search","language","country","employees","forEach","item","push","GetProjects","userid","UpdateSkills","sk","skills","DeleteSkill","DeleteEmployeeProject","project","DeleteEmployeeLanguage","UpdateProjects","projects","getEmployeeSkills","userId","getEmployeeRoll","GetEmployeeLanguage","UpdateEmployeeLanguage","languages","GetEmployeeSkillGroups","msalConfig","authority","clientId","redirectUri","document","getElementById","baseURI","msalAuth","UserAgentApplication","auth","getGraphClient","accessToken","Client","init","authProvider","done","getUserDetails","client","api","get","getUserPhoto","getMangerDetails","Login","handleRedirectCallback","userAccount","getAccount","name","userName","authErr","accountState","userObj","displayName","id","mail","active","jobTitle","experience","image","managerUserId","summary","rolesMasterId","interests","accountIdentifier","loginRedirect","updateAdditionalInfo","user","accessTokenRequest","scopes","acquireTokenSilent","detail","resp","blobToBase64","imageValue","blob","reader","FileReader","readAsDataURL","onloadend","result","toString","connector","connect","state","userinfo","isHomePage","suggestions","masterskills","dispatch","updateishomepage","type","payload","props","role","setTheme","themeName","localStorage","setItem","documentElement","className","toggleTheme","getItem","this","setState","height","src","xmlns","width","viewBox","transform","data-name","d","href","target","onClick","logout","React","Component","searchtext","searchText","updateIsHomePage","SearchTextValue","onSearchClick","onChange","e","inputvalue","value","require","alt","searchRequest","text","onSearchTextChange","onSubmit","placeholder","ResultItem","imgelement","isActive","UpdateSelectedItem","data-toggle","ProjectDetails","description","startdate","enddate","approved","showPopup","edit","split","reverse","join","closePopup","handleStartdate","projectCopy","handleEnddate","handleSubmit","preventDefault","selectedproject","Fragment","data-dismiss","disabled","showDelete","delete","icon","faTrash","ManagerCard","defaultManagerProfile","managerProfile","window","open","ResultDetails","map","index","typeName","employeeSkillViewModels","skill","key","length","el","getMasterSkills","masterSkills","i","skillID","tags","typeID","AddMasterSkills","deleteMasterSkills","getProjectMaster","AddProjectMaster","deleteProjectMaster","getJobTitleMaster","getLanguageMaster","getSkillTypes","skillTypes","getMasterSkillsByType","TypeID","Autocomplete","Props","wrapperRef","fs","ts","filteredSuggestions","filteredTitles","showSuggestion","userInput","updateInputValue","isJobTitle","filtered","filter","suggestion","toLowerCase","indexOf","onKeyDown","updatesuggestion","SelectedSuggestion","updatetitle","handleClickOutside","event","current","contains","createRef","addEventListener","removeEventListener","clearInput","ref","enableInput","hidePlaceHolder","searchresponse","Country","titles","rolemaster","eployeeRoles","defaultselected","selectedUserDetail","displayDetials","searchHistoryRequest","autocompletesugg","selectedTitles","showLanguageDropDown","showCountryDropDown","countries","selectedJobTitleInputValue","searchreq","isNullOrUndefined","triggerSearchKey","getCountryValue","userInfo","onCountryDropDownChange","toggleCountryDropDown","onLanguageDropDownChange","toggleLanguageDropDown","RemoveSearchText","RemoveJobTitle","RemoveCountry","RemoveLanguage","sort","b","updateuser","ex","element","App","isLocalhost","Boolean","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","log","initialState","LoginReducer","action","utility","Id","Name","UpdateMasterSkills","handleToInput","AddSkill","selectedskills","selectedSkillInputValue","skilltypes","selectedSkillTypeValue","enableSkills","sg","previousSkills","toBeAddSkill","removeSelectedSuggestion","skillMasterView","updateSkillsList","handleSelect","res","handleAddSuggestion","AddSuggestion","masterSkillView","UpdatePopUp","popupelement","skillGroups","getskilName","s","find","sm","previousskill","toBeUpdatedSkills","tempskill","skillId","employeeId","typeId","concat","deleteSkill","reduce","r","Object","create","data-target","faPlus","keys","els","AddManagerDetails","managerinfopopup","AddManagerPopUp","ManagerInfoPopUp","AddProject","Projects","selectedProjects","selectedProjectInputValue","Prj","previousProjects","toBeAddProject","addDates","prjs","isUpdateProject","selectedMasterProject","closepopup","isPopUpOpen","interest","handleInterestDescription","save","faEdit","selectedLanguages","employeeLanguages","deleteLanguage","lan","languageId","SkillMaster","addSkill","skillTag","tagID","tagName","tabIndex","selectedTab","handleInput","skillCopy","handleInputTag","addTag","tagscopy","deleteTag","tagsCopy","splice","openPopUp","add","approve","tag","defaultProjectMasterView","ProjectMaster","addProject","handleProjectNameInput","handleClientNameInput","handleDescription","tmpProject","rootElement","store","createStore","history","createHistory","ReactDOM","render","exact","path","component","Profile","Master","URL","process","origin","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.8806ba3a.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/cancel.6ad9423d.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABHNCSVQICAgIfAhkiAAAEtVJREFUeF7tnW1sFdeZx8/cmftm7jXYMcbGjkn8EjZtXjChadIGilbbNvY2JB9qS7tVN+CV+qlOStuslOQLX0IrtVHauOqHSoVUXW0l3A9t0hp2u6pYqJo0JJgkXWiwDcFgbIO5OPdefF9npjqGS10zM3fuzDmXOZ4/UhQlnOc5z/k987/nZc6cIxGHf7Zv36PEm1Nr5LAaK6gkGpSDYZWoEUmXZYcuYQYCrgnokqrKRM6qRMvKRM2qOTmdmn53/vDhw0UnzqVKjB762teC69Lx9Yqi1xNJrqnEFmVB4HYSCEiFa0VVS0xHs9Pv/uQnBbux2BIIFcb6TG2rIpEmVZICdp2jHAh4jYCs61pRJzMXo8kLdoRiKRAIw2vpRTysCJSEkjofO3/48B7T4ZeVQKSnnh5s10ikiVVQ8AMCXiMQINmZX/1s6AwhRDeKzVAg27dvV2rbHvwEkUJxrzUI8YAAcwJ6PpWcfO+k0UTeUCA7/u3bDxBJgjiYZwIOvUpAkorJX7/2ygfL47tFIE89/VyHRgiGVV7NJOLiRiBAyMyvfva9iaUV/J1Aenc+16TopINbBHAMAh4nUJTIxMhr35sphXlTIHTFqi1buwXLuB7PIMLjSoCubk1Gku+UloBvCgRDK67c4VwgArqmX3zj598/S0NeFEhPz2A42ChvISQoUDMQKgjwIbC0F1kUyJd2PtMV0MONfKqDVxAQj0Bpwn5dILu+sTmgBaPiNQMRgwAfAlqgkPnN/h8clx7t2x1dW6Ns5lMNvIKAuAQuLxSPSz1fGWwNKpEN4jYDkYMAHwKFYvactGPg2Y1EDTXwqQJeQUBgAnJ+Tnpy5+77dV2pFbgZCB0EuBCg20+kHV/dvYUElDCXGuAUBAQmQCfq0pO7vvkZXZNtfTglcFsROghUTIB+vivtePq5z1ZsCQMQ8AkBCMQniUYznRGAQJxxg5VPCEAgPkk0mumMAATijBusfEIAAvFJotFMZwQgEGfcYOUTAhCITxKNZjojAIE44wYrnxCAQHySaDTTGQEIxBk3WPmEAATik0Sjmc4IQCDOuMHKJwQgEJ8kGs10RgACccYNVj4hAIH4JNFopjMCEIgzbrDyCQEIxCeJRjOdEYBAnHGDlU8IQCA+STSa6YwABOKMG6x8QgAC8Umi0UxnBCAQZ9xg5RMCEIhPEo1mOiMAgTjjBiufEIBAfJJoNNMZAQjEGTdY+YQABOKTRKOZzghAIM64wconBCAQnyQazXRGAAJxxg1WPiEAgfgk0WimMwIQiDNusPIJAQjEJ4lGM50RgECccYOVTwhAID5JNJrpjAAE4oyba6uNbfVd9fGaTeGw3BxU5C7qMKTI3fTfqqZNq5o+Q3Qtlcnp48mFhePvj18+4bpSOKiYAARSMTLnBq0Ntc2dbXV9kZCyVQ4Emiv1lC8Ujsxfyx89dvLiwUptUd4ZAQjEGbeKrGhv0baudlcoGNxWkaFJYdrDXElm9kEoLGha+4BAODN+7IENA6tjoQEe1dAe5fjY7N4r85k0D//wSQgEwukpuGNNNLZl4/ohRQ4szi94/dE0PX3mYmLww8nEGK86/OwXAuGQ/WqJoxQ6FcmFy8nnP5i4NMqhOb52CYEwTn+l4sgXtBP5ojqm62pqIafN5PKF6bp4eHE1K6QoXaGg3C1JUsxOmOMXruxCT2KHlP0yEIh9VrZKfv7h9qHScq2ZgappM3MfZ/ednU4csTN/2HRP07b6eGRrNBzssQqC9iQfjF/adWEuOW0rWBQqSwACKYvIfoFtm+4ciNdETCfkuq6nL15J7z1xeuaIfa9/K0lXwzY0rXkxqMidZvZFVRv77z9N7HLiHza3EoBAGD0V9OHtbL1jv5m7QlEdP3lm7nkWv+7/+NBdL1r1Jonkwqtv/nnqAKOm+doNBMIo/VZDKyqOd09Pf93OcMpuOFYioUOtt/8y9WWW9dmNa6WVg0AYZPT+jsbutnWrh4xc0WHV+2N85gWf/1THj0LBwCajelML2X1HTpzfx6B5vnYBgTBIv9Wv+ezVhb3vnJoaYVDNLS7o1pUHuhr3G61y0V7k4Fvjj/Oo108+IRAG2f7nz3T9wcgNXcL93bGJrzOowtSF1cLA1FzqBacLAjxjFsk3BOIyW3QJtqUhvtfIDc/eo1Qffe/y6XtbfmnUi2RyhYO/f/ejl1w20dfmEIjL9H+u+65nY9Fg33I3dO4x8mZ1hjhmQzy6qfHQWxO3xOayyb4yh0BcpttsolzNX2+rXuytkxcex2qW8yRDIM7ZLVr2PNJ5KBC4dStINVeR6GT9wXvWDRs1ZXL240Hs0XKeZAjEObtFS7MJerUfTK/E4RKn58whEJcp8cqD6ZU4XOL0nDkE4jIlXnkwzeKo5lDPJUpPmkMgLtJitf+q2kMss8UCCMRFggm+KHRFz2qLyW//OPaYK+cVGkMgFQKzWRw9iE1QRsUgEBfwBDGFQFwkCgJxAU8QUwjERaKsBFLtz18xxHKRSAtTCMQlV6+sYj3+SMew0WF0mKS7SzAE4o4fXhS65Od1cwjEZYZ6H+08ZLSTtpqfvdIdvY98ovWQUVOqvdzsEqfnzCEQlykxG/unM4Xh/xv96Icu3dsyt5oLYbOiLYSmhSAQd/yI2VbzanwsVQr90fta+utra54xakq138e4xOk5cwjEZUq88HD+05a7vxMOKVuXN6WaInWJ0bPmEIjL1Hhhqddsy301h3kuMXrWHAJhkBqzpd5qPKBW+8HwTbr75EIg7hkSsyFONU4WsTpRBRN098mFQNwzJFvubeldV1fzgpErngc30OXdh/+h5ZdGXzTm8sWj//vO2ecZNM/XLiAQBum3eg/B8+AEqyN/eAqTATJhXEAgjFJlNdThsd3Dau5RzRNVGOHzrBsIhFFqrA5OoFWw3LxY7g4SHoJkhEk4NxAIw5SVO1CaxVVp5cRBe48/ncLB1azSCoGwIkkIsTorl1ZDV7WmE87vB6H+P9mxdq/VvYeYezBMKD65ZQuTerN6s16qLV9UR0+dmdtr964Q2mvc29bYX+62XLw5Z59P9CDsmZruz1peFb0NKpnOjVzL5cYS87nZkmCoIFoaYp3hULB5zarQVkVWNhst5S71R691O/aXiztxiiLbhEIgbHkueqMP+EP3NP/I6qo0ltXSecfEFK6CZsm05AsC4UH1hkg2d63/rtkFN6yqhThYkTT2A4Hw5UvMTn9nUS2Pq91YxLWSfEAgVcgm3fHbsjb+ohwINLGojvYaV1OZfbiokwVNax8QCH/GN2uge7YaVkcGnAqFCiOdyR34/4/mDmAyXp3EQSCcOdMJe1QJxpcu6dIepb62Zls4GOguN5Gnq1P5gjqaXCiMLr/rkPqGUPgmEALhxJdeatNUv2qwdBQPffcxOTP/6oeTibHlVdJ9VaGgElv+/43u9aCiuL+9cWBVJNRPy9OXj6mFwoFTk5fQq3DIJQTCGCp9231ve8MLIUXuXu6axf3lZpN+umt4JnFtCJd2sk0oBMKIp9233W42EpbbEEmbki8Ujpw6mxiy+5aeUfNXrBsIxGVqS8KI1wT7y73tvv4AO78a2ur79+XNyGQLI6cnE/shFHcJhkAc8qPzhpaG2r5wSNlmRxilatxc7mn1DYhZM2iPcmk+d/C9semjDpvqazMIpIL0096ifX3d1jWxSK/RHMOOK7ffhXzh4fbXyq18GcVB5yjZfPHo9FzqoNFCgZ3Y/VgGAimTdSqKe1ru6KmNhXuttpnbeXhYbEWn85D7OtcOOX2XQuMsiWV88uowhmDWmYNATPhUOrewwkznHafOXn6J1cNIY7vv7nX/HosG++wI06oM5ioQSMXPEB3rt6+vH6pkbmFUCX3zfWk+8+ryF3wVB2RiQONsW1f3LIsNkSx6N1bt8pIf9CDLsmF1hI/dxFV7S4jbLSw3FxCyhZHfH/9or912+qEcBLIky257jmoLY/kDykIo1by2QQSBQSBLsvTFT3fsdzIRp9vOE6ncgbPTiSNe2BtFt7k01EZ7jA60tvNQul1ps1OHKGUgkBuZqnRoRXsLumw6dTl5wKvLpnTFq711dU9NJNRbyaoX3Tf2u7fPDIryEPOMEwK5Qdfsjr+l8OnO2kxOPZpILhwx2kjIM1FufdPhY31ttDteE+618x4FN1NdJw6BEELsbOGgJ7X/+ezsT70whHIrFtpbNq6JPmN0dVzJdzVOpnfbjmrYQyCElP0s1s32kGok0Ukd5X4UeJ4p7CTe22UDgRBCzO4ZLCVlpV4jUK7d752e7WP1cvN2PeBu64VACDG9ypnCpStU//P2mZ1uQXvRvtwhd5iHYA6yeIaV2RXK9KFeyWPxcsMsN9+uePEHwUlMvu9B/P6QmF0fRx8mCAQ9SNkVrJW+RwkCse5XfN+D0PcDdzXXvWD0Bp3OP87NzL/k1ReBToYMy22sBIJr3NCDlO1BVvpEFQJBD2JJoNwcxM8CwRwEPUjZHmSl3zWOOQh6EFc9yEr/FYVAIJCyc1mrh4RuuUgvFA+utJMLH+xq3tpYF+23OnwC34ZgiLUoHrsnhdDvt6fmksOirmqVTmW5ozZKD9BuLvfLsdLnX+Xaj928NwhZ3U5rBJF+LzGfzo4cO3nxoB3It7sM/S6ks62uLxoK9lbynf1v/zj22O2O/XbX7/v3IDQB2zbdORCviQw4SQY9mC29UBw9P5v8g5c29j3QuXYTPUE+ElK22uktlredfvty6K2JLzthspJsIBAb1zfbTTi9lDNXKI7SD6reH798wq4di3K0l2hujG2KR0LdlZ72aFQ/5h/XqUAgN54O+ka9o6V+yOojokofZDrBVzV9JpNVR3PFwnQynR1nMX+hvcOqcLgrHJabg4rc5fSUR7P2rOQNmpXmEAJZQoxOYj95V0N/LBruZykUs6TQHkfT9XS5pAUkKebkMIlyfpf/PesD7iqt34vlIRCDrFRbKLf7waDCmEmkfirad/bV4AaBWFBePJe3tb53dSzSX8mpINVInNs6SqeynD6X2OelxQW37WJtD4HYJOr2rCmb1XAvRncopxZyI6cvJEZWwgEUvIFBIBUSpr3K3c312+rj4X47x+dU6J5L8dJxRTNXkiMsFgm4BOlRpxCIi8SUxFJbE+ym7xuqMbG3Gy6dV6Qz2SPnZ1JHMYSyS+3WchCIc3a3WNKl4viqaBcVDF11qlYPQ3uIYlEbu5bNj6YzhTFMttklFQJhx9LQE32BV7c60lQXDy/eehtSlC5JCsRLhYOK1GnV89CeYKnjXCF/nP53cqEwrqpaCmLgm0AIhC9feBecAAQieAIRPl8CEAhfvvAuOAEIRPAEIny+BCAQvnzhXXACEIjgCUT4fAlAIHz5wrvgBCAQwROI8PkSgED48oV3wQlAIIInEOHzJQCB8OUL74ITgEAETyDC50sAAuHLF94FJwCBCJ5AhM+XAATCly+8C04AAhE8gQifLwEIhC9feBecAAQieAIRPl8CEAhfvvAuOAEIRPAEIny+BCAQvnzhXXACEIjgCUT4fAlAIHz5wrvgBCAQwROI8PkSgED48oV3wQlAIIInEOHzJQCB8OUL74ITgEAETyDC50sAAuHLF94FJwCBCJ5AhM+XAATCly+8C04AAhE8gQifLwEIhC9feBecAAQieAIRPl8CEAhfvvAuOAHpiZ3ffETSZVnwdiB8EGBOQJdUVfrSrm9sDmjBKHPvcAgCghPQAoWM9OTO3ffrulIreFsQPggwJyBJxaS0Y+DZjUQNNTD3DocgIDoBOT8n9XxlsDWoRDaI3hbEDwKsCRSK2XPSo327o2trlM2sncMfCIhO4PJC8bhEG4GJuuipRPysCdAJ+m/2/+C6QJ746rfvlgLSetaVwB8IiEqgWNAujPzXy+cWBdLTMxiOrA1vViUpIGqDEDcIsCIg67p2dTJ27PDhPcVFgdA/vf/6rQ1KMNDKqhL4AQFRCZR6Dxr/TYGQvj75iVV3fgpv1UVNK+JmQYC+PX/j2vljZHhY/XuB0LnIv3yrQQoFNrKoCD5AQEQCel778I1fvDxXiv1vPQiGWiLmEzEzJLB0aGUqEPoX2H7CkDpcCUFACmhXf73/5ZPLg72lB6EFtm/fo9Te+fEmElDCQrQOQYKAGwJyMfd66sJoad6x1JWhQG4UkJ56erBdI5EmN3XDFgQ8TUAtzr7+n69MEEJ0ozitBLJYvnfnc02KXuggJOjpdiI4EKiMQIGQvD7++i9+OGtlV1Yg1Hhxv1aYtEhBqVHXZFs2lQWL0iBQHQJSQNX1gn7pco5MvTn8SqZcrRU97H19e0IL8Y9bQ0V5Hd66l0OLv/cSAU3XNUknM5FsbGp4eE/ebmwVCWSp0x07/iOur9YaJKkQ1zRJIQFJCRJZhnDsokc5HgToNpECUVWi6cVAgP4jJeev5ecOD/847aS+vwKbrKY99nP7fAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/edit.c160e949.svg\";","module.exports = __webpack_public_path__ + \"static/media/delete.8d986b11.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/logoUpdated.6814a055.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAuCAYAAACViW+zAAAABHNCSVQICAgIfAhkiAAABDtJREFUaEPNmwlz3CAMhePed3r9/1/YtN3cm6TZ6vMID4sxCB+wzHh2M8H4+elJCMR2ZwXtcDi8ke5cL+Xq5Hqlt/+Tz2e5+HyU66HrukPB0LO7CiawvPOwvNbBHB4+HSa+mxovl2zy4BfS4YM+PNfd//9e/rgRgsxgrIMLJnC/V0zgs7YnxQRRyTZJjPdwSFnS7hXMKgoSXG9lvI9ylRAS4oeYazEaCo+2KDFKyrnc4VxlCTHcC4DLFBDLAwTXJ1WJpXuuD0pG0Sh71EbEqM9CyhKLxJ4FkCsBkpVxePMGhvIfgXJQ9VE7IkYBfNuAFPdQyNmVKkdwYSgXVHNKmPN/DHaknJCYryu6zxRA3OqvddYSUognBNqt2x/fYAMxAoAguzTQWsE/CohdrrNgQiWopUZDzZDTTxI9MTolo5a140rqhXCpZLwRXDUU7GO8FUy3PjFrRnurdZOq0Wn5s3WwlfoNqnGK+bnSwKXDHPm1f3OFgDuFtZ+lOk3zv5S+0Ur9o1Olzo4/VnpG6TB7IeYKYmpF/RjAqDs1NtaZEPMLYrbOEZIWA0TYofIMGcO3g5jakf8IyCkT0yrwOoIuwmSvtYoF2CWKaU3M73Br4gSI6YNvU2ImXKlp3BPF9DHme+WM1xJjSOzYd2nVemJaWmdquq65bouRfwExLZYDDsywNgmyXtRSezngIPTGgpiW1okuCSqvqkPFDEuCmkt7H0RuEdliUmARyV7Rs1tEtgjAyW0HUU2LADzadqgNIrtRJcRQKyL+1WrRjSqKaLVW2INcU2/cYIVNFePBYfK3NtkEp6q3dcvu3DkAFWfM0exYe893tBufUU2NieFelHId4vCJ4ftWpZNkcStDzpYJ6J2QchN7flg+2SKnWVSF3CinyRoqVnBjf2aNWMPD8d1Rla80iK08dd8prmQtPVaiXTJD+cdAhghfSkTYf2F5ZzgGIuOaj6dMFfWteQ01GHKS4np0KVkFeQ2lVlT6ZK12ZmOMN01CmMWlorv8pS9t7W90qX6X3zrmVL/U+RjiTO7UQ1EdeilYTfosx1Mm61VWDMkTVcYyRjQPsAIo7WeMN5ycIpGcfVjJctTMsjdS26Usal7kUllisKixjnyK5Mw+5mYiRskhPWe2Sp2IqO1W4M/FHNyKBWLRIUkzMUoOpLAKT53NIyCjns2ncMXEO1BmZptiqhUnm0XEeEBYOuROOSFj1iKTJyNLA2+qv+Y54EopGmOBKZt8FhPjwOkaho2k3PIBMJBEIlgk51LidMbC3XPn9TAWSwMwRQ03mxiPICScs5Trjr8DxIEhJq1OVoHRwOVOtTvX7zP5xcR47sW0jnvlFOQLwbxpVaoexQUmDJdTkD98v2m1CjH+qJoUut8c5M70bUqMp2r3ewP3O4gUz9sQE5AEIGYwPmNWSx5bn6OS3D0ah8DkcIXGw733/wF89fVLleyU7AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAA3BJREFUaEPtWDtPFFEU/s4dNGAj/gAjtlo4thSKtTGwDcnOhJmdhMTYoP4C1z/gozZxmCU7RBog2EtrxVJpLHRtqSiMaGTvMXeHgVmCO3ceKiQz5c45536Pc++5s4Qz/tAZx4+KwP92sHKgcqCgAlULFRSwcHrlQGEJCxaoHPDbbVNIMc3MJpgniMhkYBNAh5i7Uop1z6t3Cwr9x/TcDvj+6jgZez4BM8PAMfMuAU3XtV/+DRK5CPhL4QxJ9oloXBeUcoV75JXtRmYCCrxgrA4AZwRSYA2Cu55td/yl5SmDWbWScud2HKvcYHnhqufVdnWJp8VlItBvG/H9y5Hy/FWSaHhzddXzJz6tVvhIMppEuKgCGFhrOFYtDZju+0wEglZ7DaDpqDh/lb0Lpo6ayhHB/C4GJQk1b85a0wU5LE6bQP+06dHWEQi6M0z544sGQfgChId96sy7Dde+9E8JBEG7CaInkfgIXNdqZAUQtNpdgK6oPGnwTbVfstY4Hq/tQLJ98rZAGTUKEAiVWjeKqDfoIj91Xbv5Dx0IOV7MdSxt55IAB49gXncde+gQ1CGnDSRoheqo7J/pkrJt4BjI/3UgcYoQ8NhxrBc6CiVjyhAh9x5QA4mB5wfDaLPhWHeyEPD95QkScisegrI3dklnhqStod1CEQDuxBM1qwux+swAEbZdxzLTwOm81yagig24oO41QtR0hlnc+8zc/yeNQR/PjfBd27Y/64AsZRIfbsTEZu7/RtR05+pPT1qk75rB6so9FQ3ASP6D5xsTFhpzll+ERCYH1ELHW+kAVxeEDhF1IGUHQpjMPAVmc/DKzW8ZtJ/8hmBgQ2B/3nGcnTxEMhOISKyOC+P74tHFLn3p5J4JgvA+qH8gjEWZvEOgecexNtIrDUbkIhCXiD5ssBhv7D8svi0Nbhy/9ywuhtdBeEOE64m8V7L3c8HzvB+6RAoROCTSbpuQNCEkmyCYYHSkEJvYH+0MOyp93x8l4/wzAj1IAP4AJtt164c331I3sa4yWeJarfAegwOAois249PY2Mi12dnZXlqdUhxIW0Tn/evXy5eNEQ6ZeVKQmHSc+nudvFNDQIFdWVkx9vZ+3XJd+/DrLY3EqSKQBvak9xWBPKqVmVM5UKaaeWpVDuRRrcycyoEy1cxTq3Igj2pl5px5B34DbBljQAZOmjgAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAArhJREFUaEPtmD1OAzEQhdkT8FPRkZKKvwYhIRFOAB0lcAI4ABKhRgg4AckJoKcgKaiBDokC6BAViAOE99CMZFabyPaYhEi2ZO0u8djvmxnPeinGRrwVI65/LAMMO4I5AjkCRg/kFDI60GyeI2B2oXGCpBHodrsT0DOPviC67oui6Bg19jU3A4joPayyj06AqtbGH5uAaaWGMQFA/A4EHaLXPIXdY9wuQHhN0qIBIL4JBdslFZ94pjh2RqOOPlMa84Hn9VQQUQAV4l8hqgFRhPrVMJb7gZFiH5cfk0EEA0jaXDgqWxBOcX2bgLQdiBfcL8KWMNEtCEA27LOkBxd9QK/7iqiAOIJtI1o9DEMB6Gn1PtNmwVe8igQEq9WpphLsJwcJwBRYkwXPsTjFBDWJItNH9wOrUjNoEmdwaAS6ji3zN6ocAuIM8/DdwRblCNXhDYBFazBi/v80iPe2LXu3lEYdTFX/8whgUS5ykwjAnWtgAKzndyMLQOGIgrsHJkMrkMKX9oDXe6RXigXlMRbmpuVpky26hmOeF9jrEWOgVchcwyF+E+IvHY9GR/KnmITs/ooaziPyru8c8iZmIdBjtyl9ggFkHzRw5RFamxeEwLMI1MTwC9c5OIDpFN2CIqCrQMwV7jecVfnMF1K7SokcAHl8cD943vG8PCwACqFY3dCqm94kjJ4wWXrZ1etlPp6neBiMjkJUBKhCUoJHgvJHTb90oOBj9AP0aRlI8fzAiYKIBnDSqY77Broe8qoAfn3wAH4Wg7iZzRBmAAdEPyH1PxL8ie+Nj6q90QNiBWPf+oWw/FsygJBFHWhG4hZ9Sv72KOnkDTFUANlLS7heC8QTrquIAiuUVxs6gANxgvutEPG0/RcAXq7uMSgDWLyXwjZHIIUXLXPkCFi8l8I2RyCFFy1z5AhYvJfC9hubsO8xKYHPjgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAABbCAYAAAAr+DatAAAABHNCSVQICAgIfAhkiAAAC+pJREFUeF7tXF1QlNcZft5vwQ6QERrAuER+IhrZSVGBTE0mJmJaaxtro71pAsn+zLSd3iVetLfB617UTK860wnsZsBcVZ3pTBPtIFFTNSOIklSCYFjShkyBBGxcWnG/03nPt+fz22V/vm9ZWW323Liy73nP+5z39/wtwdK6u49VaNrii4JwAEI0ENF2/loITIIwCWCYhBjw+TpPWPs9iJ9JCf3W230/13TxBhFtyARECDEPoh4RpTcDgZd5QvLSWFEu1+K2aJTCTuWQwN/q6f2lS6M/8GfN5UJtTQ3cNW4UFxebgGZnZzEzOwf+19oEcERESw4HAgfn7xX67u6jDZomdgkS7QA1ENCebKyYQoaJaEDX9BOBzs7hVDIRzxppkU+JqEIRlZevRVtrKyrKy5f1u317CdNfTOPa6CgikUX5PQ8oNAoEXu04nivwhttFfALwK5dzylsAA4LocODVlwcS+1Iw2NsFojdKS0uw4dENGLt+XdKwtj1NW7CpsTHleOGpKVwd+QhLS0vGBED0+L2dAacCxseZow3kEq9BCAZsKqOoqAjV1VWoWFuOqnXVskt1ZaXZdf7mApaW7mD2XzP4fHoaCzdvmt+xXCJaeshqlRQM9fFs7GKQnqYmzC8sYHBoCAsLRseqqiq0tbSgrKw0KR62gMHLQ5ie/iIGHsdFtCTg1PSl5bkW3yDgdTUQg62vq0N9Q50E7KRFIhFcGRm5K5cQw0Iv3a3kYuCCGT678xlUV1VJ3gxmdPQTjN+YMLW/tfk7UohUbXxiQmrf0DyO+70dB/lzKNT3vA68MHlj7DddXV16sv7db/cdIB2/I0IDf19SUoInPE2oSzOe3UmYmprCpaHLyywyKXDFdGZ2Vmpf+bLb7ZbaX7PGCHo8Qf0DA6iuqpQxgU1/MGGQYKjvAoAdBK3Z633JmBlL6wn1dhPIz39iDT/h8aCxcaNdXLborOB1ot3s8xQM9U4CVM8aTebPDG5kZAThzz4ztd/W2oIat1u6Rf9pI248v7tdBkOr5nXCQdLRQ4Ry/mwNfjHTPqYitNu9Hk+2tqG4uCgODI/BLVmgtYUaAPv/Bx/8Df/5722QQNDn6/BTMNjXA4KPffm5nc+k5MUBg7WpApnS/tkPzsl4UF9bi7a2Vtn//MWL0rdk4QPhIqJaCH2/z/fKn/n7WCY5raL1tubmpFq+dSuC906dkjx/euBFuzhNuqmpz3B9fDwx0P3b7+1cS91vH23XhDjN1Hv37EkZxJRpWwNZaWkpNjxag7Hr4zILcH92AxaYXYAnSQixQETlVuA9ob7TrGk27SfbWqX1JGvKdZj3/n0v2ALOQe36xATC4SncuXPH7PPQQ2W49fUtjj/weTtIFjDK3DNpXXGxal8IwOXSoOs62AVUALx69SMVHHn0IgU8GOw7AsJrzOvJ1pa0AWxwcEi6GLvB0zt2pAXO2p2cCmN2ds6k44nlSd20uRFriorx7knDekzgVq2n8vXEUVmrg5cvG5UcTyMBZWVl2Lvn+5LUaqYCAiTEfl1zfa2sKxNo5vHuyZMysKaSKZV2VVZwu2vMmDEzN4ezZ8/FA5daj/m6NVDZsS0OZn+/NhozKwFPk0cWPlbB5X+Evl9A+z2nrKqqSjy3c2da9taJU4FTdZiensbVkY/xdeSW/JM0WwGsW7cOjZs2wv3II8t4T0zckHkdwBWft2O7uUiRJaJrkUP0NvYpzut2IykL+eGlS/jyy6/AzqNKXs7rZm0vxJsgkib+wx/sAceHdC3Rv1m7bPaTk1NYXIxk1Am7Lbca93qZrf7y3inZj4BDXm/HERM4ExngI8Oc3hi8SlsZR4kRcP1+bfQTk5zBscCGWsQFCHqqrrZWBrRMTfl3ZeXDWLPmW2AtWxv7LstYXFQs09XS0m2z2kzk/fjjmzE2ZpTiepQe45VcHHAD/NEGzSV4sbGN/8+z1bRli1m0ZBI4seSVZaEyRwBP7fhuyiiueHPN/d7Jk7gt1wCxABKr6Bq4hK2vS2kxbH2RxQgWFngylqBHdUz945+GlQhx2Ofr7LLKE4cnpvkegGTyZM1xHV9fV5sJt/l9f/9pzN+8ybkcpMXkB7B/375lRYrqxAEoHA6DI7Rq3L+mZr3MFqnSXjqhzl/8UFqLEFgQekmDWaun6xQK9b2uC3Rx5aUmgAVgc02/aLmsBuMV25ymaZVyBpIUIqxdLinHxififFfTNKxftw5btzZnjAepMFwaGjInUZWqinaZqScyiW1Hce71Wb9jKygvL48LgGzmcb4oEARvHhDVS4u1aJz9cnx8Ap9/Ph1XaHDEZ3Ne6QLFCpogAl5vZ49V/ozAFbGxC6L7QfBz8EtnKdKsNPi5NlfFkfL0xo2PyUhvXS+r5efmTY1Za9caH85fvGAWMslAp/TxTI7c3du73RWldiFEBYhi20BiHgLDukbD1sWIBfhlIUQLGcWibLnSrjVGnD9/wbSgVKCzBp5pYqzfm8AFfgvCr9nVH/52BVpatzveXEg1LqdMNm1VrhoWRweSbTnZ9nEnIJPR3gWu7xfCtY80/IpTlMfTBM8Wo8LLtiXLAoA4oUdL/Zl2gGz7eLbCWYHzstRaGpevXYvNmzahzkGa5KA4NzOHyXA4Lk4AIqyT5k+n5ayCW66AMx+1wal4GhuJ1aioKEdZSWlcgONC5PadJczMzGB+fiEuA8T6v68Tjjjd4V11jcdnCdGVmCbtTbAIQ9BxvUj0pNs7T8crb8DvTsCxChQttmu62H43Q2AXf89BigjGoYAQA0SYjEa1AaenJskmIO/A7Wk491QF4LmfU4NjYlS/V+M45etY41y6ulyiXpgVW/ohBcQhAm82og+EMUcC6vo8EQ1HoyVXMuVlR3wty+SM/YLB3tdWcoCXcYAMBOkOALPhnVHjvBFJuuhWxzs8COddzrmr0ay7pjK48wlotOTgSi0gLfBQqNcvQN0K7ObGRrgfdeesxrY7cbI0nQxjKnaaI4+li7A72xzO46YEzgd5msAxJuLS8rlnn025c2IXwErpuFw9c+acrN4keF1ryTanJwVuvSxgZyt4pYCc9OeV2F/7TxvggQG/t2O3k/6KNilwddrBvvyjvXvzrulEYNbDgcTDSLuTkBR4T7D3K76NYOe0w+5Auaa7NDgU83lxwuftPOCU//LtZcshYrodUacD5Zqez+8uXPxQsuWzMKf8l3VQS8b7zbeTAfvTceO6ne4SLU4j/P8H8NgtBydaLwBXs/VAmnpB4/aNvWDqBVOPXfF8oNJZLn2cbzVsa95q32nyQHnm3Dm5zNJhXNpzIsIyHw+F+t4VwF4nTPJOS/iF79WOPzqRI1lwGwDRLj7c42sY93NTmxS6ph0KvPLSESeypgTu5FKdkwFzSWuWrAXg9qe1oHFLHpc+XjB1+9az6pQFH89lcHO5XHjm6adXXYtOBpQFDG9E5BK4EwHyTZsb4KHedwD6Wb7B2B2fLxMJ0l4OeF96x24fpissSwvL0m/6svQbux4vAHcSKleZ1qzccrkDU9D4KmvRyXA51bi6EMBHxD/58T4ncqwqLV8S6O83ttlycmgYe4b1FTO083BmVdFaBrtydQQTN27wX+Q7MqdyJL8YEOo9zg9x+ArI957P6sKBUzkc0VtvRah3ZI4YpLoDE3uC9Skza9y4Edu2Njvle8/o+fHOmbNnY1e2Rdjn7ZSP7Z22lAfq1qvV/JCdnzrnuzFo63uTxJdFTuRLe5PAeqme05vH44n7QQonA62Ult+ifXxt1Hyile69iZ2xMl6hSHapvqbGLV8Or0bjC/rWS3523pvYkSsjcGYS83l+tyXvkeetCXFY10uPrPRWI8tvC7gCalzg1duFQIPlUv09nIfkT7pyMaAj4LkY8H7hUQB+v2hiteQoaHy1Zvp+GScvGud78Doo7ll2jiZk2O/tOGSHV16A9wT75tVjfDtCOqGxu0TNC3C55ucHdjluiU+407HPC/Ac482KXQF4VtP2AHfKWuOxn0vI6RusbH5mNNu5zwo4g9aiZPweYI6b3ai80mGzA275XaiVCpDQ/32ftyPpb67meBz8Dx+XW7aFxwYXAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAYAAAB4d5a9AAAABHNCSVQICAgIfAhkiAAAAfBJREFUOE/tlT9oU1EUxr/vJrUiiiDVoYvgn8XFCk4uppNDea+JIOQF/0FR3tOlgrOmg67WoeaVQisI70UckpdsTlncA4KDU1EKgiIBRSyx98hN80rV1r6YZvMM78G953w/zjn33kN0zXbcWZLnAYzFa338mwKp1gJ/xmjQfGzHbZI8LZAIQLMP8Th0jOAkRBpR6I/TLrhFgve1IFcPS9VdAHQkrIJ7XYFLWnCHJgsQy7XAz+4WYFMLmgBbnCx4IpCZWuAXBwAxfb42WEi3FYODFIvKfvvhnun3BgQaKwQ+RWW/0k/ZLlyaOjSc2nMLbC+Aae8XyMp+/WD0a+ohtZwkVBiVnzzvBTaRv3EurdK3RXBcKHP1wH8Wn9w/ymVfnjqBH0NXSd41F0qvSZhWfF0t+8ubobkr7hFp45Qo5AQ4BkFbIC/q4Xy4cbqS9MQuuHkIzoK8COAdRY4K8RkiwwBHIFIRqjer375XX0ZL73/PfNtMtiuRZd3ct3Zg6DChU629qx9fLS5+2amcPUN2Etxq/z+kp6p1x0eWtuM1SByMgtKZnhQSOMePLy3HyyqiItDTtWD+cYLYRC6W400r4hG1jK8Pre6l6USLNBKp/M2JzJhtM0vqYWm2AzGWzbsZrZCBrDv8s1FaZroqjafxK/ETeroJICRV49EAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAABbCAYAAAAm5kbqAAAABHNCSVQICAgIfAhkiAAABhJJREFUeF7tXOtOG0cUPrPGqDYSgdYEQgptAAkcFUxQboVASCq1qtQqSf8BwsZPUPoG6RO0eQJjKsivtkRFaqkEoQGqJAWCQaqDhGkKLTQNlItikLjsVGdgF9+w18t68KKdP/buzrl855vbjn2GQIzi+eZ+I6H0FlDaSAipjlXnuO5RSleBkAlCaY8oWr1u953VeL6Q0Icez/c5xLTxFQHSdlwAkrGLYAUCXzidLR2HyckAGThh46HEmMVigTybDbKsVrCdzkvGbsrqbgaDEAxuwOr6Giwu/nNgh8I9l6u5PZZhGWCHt+uZBM5eXg5lZWVgNmcwmUBgFv5eXEiZ48kqPnumEGx5NhgdHYO19XUmLhK4425t7onUxQB2dna1USAe/H6x5gIUFxezetvbO/BoaEhWkqwjqayfkZEBtbXvg2/Cx/zD5kpF67nIPskASuzZbG9Bw7Vrsl/InG9qil0XFZ2FN3NzU+mzIt2vXwchMPsHq4sgrzfUQ//AQ3ZNgLoj+yPBvieYNlci2cNrv/85+KenITc3Bz795GNFDvCo9N/KCvT2/sRMXb1ymfm511TpA5ez5XaoDwSnBIFSFoKbNxshJ/uU/Hxubg5Gx5+x60sXa8BuL+fhvyIbP/T+CCsrq4DjBSNjeho/fnE5mxsPBfjZ7VtRyh8ND8PS0jK7n59/Oq7xgoJ8cFS9p8hBrIRdYCaw19ySLS9f/stEHJWVsLW1xQCyfpgBN9wtLROSvjAGYwFMdqBxtjYp9rXv536QHFUsFFERW91GcAMeP3nKnkSCTAgQhRDk734/rK2vxfRje2tbHmnVAMQ5NyvLmjRGnC5KS0uY3MLiIoyOjcPOzk7YiKoIYCLLr5aXYWhomFVTAxD7kd1ekchMwue4ABgYGNyrR+mXLlfL3RMFEHEhi3Pz84zFNldL7okDiE1V6o8uZzM5cQBDu4tIyA0DYMKeDQDpMsigr9wZ3NraZjHKzDRHxUqaB7UaRY8FIILA8tGHH5w8gNKi2Gw2Q13dVSguejsMpG4ZHBl5LL/S2Cv2F8PP2WIYSkvOMbBYdAsQmevr64fLl2rkpRQurEd+fQJ1tVfke7oFiOzMzf8Fg4NDbOmGA8233z2Aakdl2CuXrgEiY09/G4fMzEz2OoPlvL0cHI5KuR/qGqDPNwUzgVnGGpYJ3xSUlZacHIBKFgi6ZlACiH3R759mzBVE7AjoHqA0ckpgQ0dQXU8T6HwkuFggdctgKLhT2dlQ5aiCSd+kvK2BzRU3p3QJELcWsc9hQXAN9fXsJ4DIzavS0nOAm7i46aSrxbbUFEPBSfcO26HTHcBY4EJB+iYn2b6JVHQFMB640LlR2hzCe2kPEJve6PgYWC1WcFQdLMUSTfb4m8Kr5SWoqqoM+8kgkVy85yl5oz+KQ1rLGgC1jihvfQaDvCOutT2DQa0jylufwSDviGttz2BQ64jy1mcwyDviWtszGNQ6orz1GQzyjrjW9gwGtY4ob30Gg7wjrrU9g0GtI8pbn8Eg74hrbc9gUOuI8tZnMMg74lrbMxjUOqK89cVlMDK1h7dzWtgLA2iiF+ImZ2lhkLeOqH/dowPezm7M9XFEptfxdk4LeyG5Vj6Xs7k6KkESk52kdBktDPLUEZotRwBze5u/llNcvZ3dmBNzHR1CgOcr7HKKK08n1djC/wjMzAZYHuF+Yezh97AkZcG0iSAd+ACzKwsLz0BWVpYam9xkgsEgLCwssqQsCZy4a2mUUl2j0swFYfMuEPicm4daGqLgFUVLe2gebxhAyZbHc/9dQRDbgJBGSqGaEDhIC9XSoSPron8CkBdA6aAoCh1ud9OLSJUxAR7ZbhopMACmERmqXDEYVBW2NBIyGEwjMlS5QnDOM5noO6qkVQrtmuhaaDK/SjWKxEiHt3v1OCZyzK91tzbt54Qr8lVVJeLt7OoBINFnPKhSp0yIUlijIqmOtfJQpkF5LWOQUR6r9KxpMJievCj3KqUMsrOiiHCkKUjceeNeorPT4sFNGUBPV1e1sEv2jhM6Uok+xigZdakDuHdWFB4DxvZ51BScTgRC2+MdDJdI7/94rdsUcztggwAAAABJRU5ErkJggg==\"","import {\r\n EmployeeLanguage, EmployeeRoll, Project, SearchRequestView, Skill, SkillMasterView, SkillTypesModel\r\n} from \"../../types/Skill\";\r\nimport { UserProfile } from \"../../types/UserProfile\";\r\n\r\nexport const UpdateUser = (val: UserProfile) => {\r\n fetch(\"api/Employee/AddEmployee\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(val),\r\n }).catch((error) => {\r\n console.error(error);\r\n });\r\n};\r\n\r\nexport const GetUser = async (\r\n uid: string\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetEmployeeById?uid=${uid}`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => {\r\n if (response.status != 204) resolve(response.json());\r\n else resolve(undefined);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const SearchText = (\r\n search: SearchRequestView\r\n): Promise => {\r\n if (search.language == \"Select\") search.language = \"\";\r\n if (search.country == \"Select\") search.country = \"\";\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Search/Search\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(search),\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n let employees: UserProfile[] = [];\r\n response &&\r\n response.employees &&\r\n response.employees.forEach((item: UserProfile) => {\r\n employees.push(item);\r\n });\r\n resolve(employees);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const GetProjects = (userid: string): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetProjects?uid=${userid}`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const UpdateSkills = (sk: Skill[]) => {\r\n fetch(\"api/Employee/AddSkills\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({ skills: sk }),\r\n }).catch((error) => {\r\n console.error(error);\r\n });\r\n};\r\n\r\nexport const DeleteSkill = (sk: Skill): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Employee/DeleteSkill\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(sk),\r\n })\r\n .then(() => resolve())\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const DeleteEmployeeProject = (project: Project): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Employee/DeleteProject\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(project),\r\n })\r\n .then(() => resolve())\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const DeleteEmployeeLanguage = (\r\n language: EmployeeLanguage\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Employee/DeleteLanguage\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(language),\r\n })\r\n .then(() => resolve())\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const UpdateProjects = (projects: Project[]): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Employee/AddProjects\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({ projects }),\r\n })\r\n .then(() => resolve())\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const getEmployeeSkills = (\r\n userId: string\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetSkills?uid=${userId}`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const getEmployeeRoll = (\r\n userId: string\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetEmployeeRole?uid=${userId}`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => {\r\n if (response.status != 204) resolve(response.json());\r\n else resolve(undefined);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const GetEmployeeLanguage = (\r\n userId: string\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetLanguages?uid=${userId}`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => {\r\n if (response.status != 204) resolve(response.json());\r\n else resolve(undefined);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const UpdateEmployeeLanguage = (\r\n languages: EmployeeLanguage[]\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Employee/AddLanguages\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({ languages }),\r\n })\r\n .then(() => resolve())\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const GetEmployeeSkillGroups = (\r\n userId: string\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetSkillGroups?uid=${userId}`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n","export const msalConfig = {\n authority:\n \"https://login.microsoftonline.com/21a72fff-b86b-492c-bb02-b09e6e0beab9\",\n clientId: \"fe054dc9-4660-4265-b491-c238ea48f5be\",\n redirectUri: document.getElementById(\"root\").baseURI,\n};\n","import { Client } from \"@microsoft/microsoft-graph-client\";\r\nimport { sendMail } from \"../../types/SendMail\";\r\nimport { UserProfile, RolesMaster } from \"../../types/UserProfile\";\r\nimport { UserAgentApplication } from \"msal\";\r\nimport { msalConfig } from \"./MsalConfig\";\r\nimport { UpdateUser } from \"../service/SkillService\";\r\n\r\nexport const msalAuth = new UserAgentApplication({\r\n auth: msalConfig,\r\n});\r\n\r\nfunction getGraphClient(accessToken: any) {\r\n // Initialize Graph client\r\n const client = Client.init({\r\n // Use the provided access token to authenticate\r\n // requests\r\n authProvider: (done) => {\r\n done(null, accessToken.accessToken);\r\n },\r\n });\r\n\r\n return client;\r\n}\r\n\r\nexport async function getUserDetails(accessToken: any) {\r\n let client = getGraphClient(accessToken);\r\n return await client.api(\"/me\").get();\r\n}\r\n\r\nexport async function getUserPhoto(accessToken: any) {\r\n try {\r\n let client = getGraphClient(accessToken);\r\n return await client.api(\"/me/photo/$value\").get();\r\n } catch (ex) {\r\n console.error(\"getUserPhoto exception\", ex);\r\n }\r\n}\r\n\r\nexport async function getMangerDetails(accessToken: any) {\r\n let client = getGraphClient(accessToken);\r\n return await client.api(\"/me/manager\").get();\r\n}\r\n\r\nexport async function getOrgHierarchy(accessToken: any) {\r\n let client = getGraphClient(accessToken);\r\n return await client\r\n .api(\r\n `/me/?$expand=manager($levels%3D10;$select%3Did,displayName)&$count=true&$select=id,displayName`\r\n )\r\n .header(\"ConsistencyLevel\", \"eventual\")\r\n .get();\r\n}\r\n\r\nexport async function Mail(accessToken: any, mailObj: sendMail) {\r\n let client = getGraphClient(accessToken);\r\n return await client.api(\"/me/sendMail\").post(mailObj);\r\n}\r\n\r\nexport const Login = (): UserProfile => {\r\n msalAuth.handleRedirectCallback(\r\n () => {\r\n let userAccount = msalAuth.getAccount();\r\n return { name: userAccount.name, userName: userAccount.userName };\r\n },\r\n (authErr, accountState) => {\r\n // on fail\r\n }\r\n );\r\n\r\n let rolemaster: RolesMaster = {\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n name: \"\",\r\n active: false,\r\n eployeeRoles: [],\r\n };\r\n\r\n let userAccount = msalAuth.getAccount();\r\n let userObj = {\r\n name: \"\",\r\n displayName: \"\",\r\n id: \"\",\r\n mail: \"\",\r\n active: true,\r\n jobTitle: \"\",\r\n experience: \"\",\r\n image: \"\",\r\n managerUserId: \"00000000-0000-0000-0000-000000000000\",\r\n summary: \"\",\r\n rolesMasterId: \"00000000-0000-0000-0000-000000000000\",\r\n interests: \"\",\r\n country: \"\",\r\n };\r\n\r\n if (!userAccount) {\r\n msalAuth.loginRedirect({});\r\n return userObj;\r\n } else {\r\n userObj.name = userAccount.name;\r\n userObj.displayName = userAccount.userName;\r\n userObj.id = userAccount.accountIdentifier;\r\n userObj.mail = userAccount.userName;\r\n return userObj;\r\n }\r\n};\r\n\r\nexport const updateAdditionalInfo = async (user: UserProfile) => {\r\n if (\r\n user.image == \"\" ||\r\n user.jobTitle == \"\" ||\r\n user.managerUserId == \"00000000-0000-0000-0000-000000000000\"\r\n ) {\r\n const accessTokenRequest = {\r\n scopes: [\"User.Read\"],\r\n };\r\n var accessToken = null;\r\n try {\r\n accessToken = await msalAuth.acquireTokenSilent(accessTokenRequest);\r\n if (accessToken) {\r\n if (user.jobTitle == \"\") {\r\n var detail = await getUserDetails(accessToken);\r\n if (detail) {\r\n user.jobTitle = detail.jobTitle;\r\n }\r\n }\r\n if (user.image == \"\") {\r\n var resp = await getUserPhoto(accessToken);\r\n if (resp) {\r\n let imageValue = await blobToBase64(resp);\r\n if (imageValue) {\r\n user.image = imageValue;\r\n }\r\n }\r\n }\r\n }\r\n if (user.managerUserId == \"00000000-0000-0000-0000-000000000000\") {\r\n var resp = await getMangerDetails(accessToken);\r\n if (resp) {\r\n user.managerUserId = resp.id;\r\n }\r\n }\r\n } catch (error) {\r\n console.error(\"AquireTokenSilent failure\", error);\r\n }\r\n UpdateUser(user);\r\n }\r\n};\r\n\r\nconst blobToBase64 = (blob: Blob): Promise => {\r\n return new Promise((resolve, reject) => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onloadend = () => {\r\n resolve(reader.result?.toString());\r\n };\r\n });\r\n};\r\n\r\nexport const Logout = (): void => {\r\n msalAuth.logout();\r\n};\r\n","import React, { useState } from \"react\";\r\nimport \"../index.css\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { UserProfile, action_types } from \"../../types/UserProfile\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { StoreData } from \"../../types/Skill\";\r\nimport { Dispatch } from \"redux\";\r\nimport { getEmployeeRoll } from \"../service/SkillService\";\r\nimport { Logout } from \"../graph/GraphService\";\r\nconst mapStateToProps = (state: StoreData) => ({\r\n userinfo: state.user,\r\n isHomePage: state.isHomePage,\r\n suggestions: state.masterskills,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: Dispatch) => {\r\n return {\r\n updateishomepage: (val: boolean) =>\r\n dispatch({ type: \"UPDATE_IS_HOME_PAGE\", payload: val }),\r\n };\r\n};\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass Navigation extends React.Component {\r\n state: {\r\n role: string;\r\n } = { role: \"\" };\r\n\r\n constructor(props: any) {\r\n super(props);\r\n if (localStorage.getItem(\"theme\") === \"theme-dark\") {\r\n this.setTheme(\"theme-dark\");\r\n } else {\r\n this.setTheme(\"theme-light\");\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n getEmployeeRoll(this.props.userinfo?.id).then((response) => [\r\n response && this.setState({ role: response.role }),\r\n ]);\r\n }\r\n\r\n setTheme = (themeName: string) => {\r\n localStorage.setItem(\"theme\", themeName);\r\n document.documentElement.className = themeName;\r\n };\r\n\r\n toggleTheme = () => {\r\n if (localStorage.getItem(\"theme\") === \"theme-dark\") {\r\n this.setTheme(\"theme-light\");\r\n } else {\r\n this.setTheme(\"theme-dark\");\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connector(Navigation);\r\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport Navigation from \"./Navagation\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { Dispatch } from \"redux\";\r\nimport { action_types } from \"../../types/UserProfile\";\r\nimport { StoreData } from \"../../types/Skill\";\r\n\r\nconst mapStateToProps = (state: StoreData) => ({\r\n name: state.user.name,\r\n isHomePage: state.isHomePage,\r\n searchtext: state.searchText,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: Dispatch) => {\r\n return {\r\n search: (val: string) => dispatch({ type: \"SEARCH\", payload: val }),\r\n updateIsHomePage: (val: boolean) =>\r\n dispatch({ type: \"UPDATE_IS_HOME_PAGE\", payload: val }),\r\n };\r\n};\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass Header extends React.Component {\r\n state: { SearchTextValue: string } = {\r\n SearchTextValue: this.props.searchtext,\r\n };\r\n onSearchClick = () => {\r\n this.props.search(this.state.SearchTextValue);\r\n };\r\n onChange = (e: any) => {\r\n let inputvalue = e.target.value;\r\n this.setState({ SearchTextValue: inputvalue });\r\n };\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connector(Header);\r\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { Dispatch } from \"redux\";\r\nimport { SearchRequestView, StoreData } from \"../../types/Skill\";\r\nimport { action_types } from \"../../types/UserProfile\";\r\n\r\nconst mapStateToProps = (state: StoreData) => ({\r\n isHomePage: state.isHomePage,\r\n searchtext: state.searchText,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: Dispatch) => {\r\n return {\r\n search: (val: SearchRequestView) =>\r\n dispatch({ type: \"SEARCH\", payload: val }),\r\n updateIsHomePage: (val: boolean) =>\r\n dispatch({ type: \"UPDATE_IS_HOME_PAGE\", payload: val }),\r\n };\r\n};\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass Hero extends React.Component {\r\n state: { searchRequest: SearchRequestView } = {\r\n searchRequest: {\r\n text: \"\",\r\n jobTitle: \"\",\r\n language: \"\",\r\n country: \"\",\r\n },\r\n };\r\n\r\n onSearchTextChange = (e: any) => {\r\n let inputvalue = e.target.value;\r\n this.setState({ searchRequest: { text: inputvalue } });\r\n };\r\n\r\n onSearchClick = () => {\r\n this.props.updateIsHomePage(false);\r\n this.props.search(this.state.searchRequest);\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Alone we can do so little; together we can do so much.

\r\n
\r\n - Helen Keller\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connector(Hero);\r\n","import React from \"react\";\r\nimport { ResultDetails } from \"./ResultDetails\";\r\nimport { Interface } from \"readline\";\r\nimport { UserProfile } from \"../../types/UserProfile\";\r\nimport \"../index.css\";\r\ninterface ResultItemProps {\r\n item: UserProfile;\r\n isActive: boolean;\r\n UpdateSelectedItem: (val: string) => void;\r\n}\r\n\r\nclass ResultItem extends React.Component {\r\n render() {\r\n let imgelement: JSX.Element;\r\n if (this.props.item.image != \"\") {\r\n imgelement = ;\r\n } else {\r\n imgelement = (\r\n \r\n );\r\n }\r\n return (\r\n this.props.UpdateSelectedItem(this.props.item.id)}\r\n >\r\n \r\n
{imgelement}
\r\n
\r\n
{this.props.item.name}
\r\n
\r\n

{this.props.item.jobTitle}

\r\n

{this.props.item.displayName}

\r\n
    \r\n {/*
  • {this.props.item.experience} years
  • */}\r\n {/*
  • Available
  • */}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ResultItem;\r\n","import { faTrash } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport React from \"react\";\r\nimport { Project } from \"../../types/Skill\";\r\nimport { GetProjects, UpdateProjects } from \"../service/SkillService\";\r\n\r\ninterface ProjectDetailsProps {\r\n project: Project;\r\n showDelete: boolean;\r\n delete?: (project: Project) => void;\r\n}\r\n\r\nclass ProjectDetails extends React.Component {\r\n project: Project = {\r\n id: \"\",\r\n name: \"\",\r\n client: \"\",\r\n description: \"\",\r\n userId: \"\",\r\n startdate: \"\",\r\n enddate: \"\",\r\n approved: true,\r\n };\r\n state: {\r\n project: Project;\r\n showPopup: boolean;\r\n } = { project: this.project, showPopup: false };\r\n\r\n edit = (e: Project) => {\r\n e.startdate = e.startdate.split(\"-\").reverse().join(\"-\");\r\n if (e.enddate != \"\") {\r\n e.enddate = e.enddate.split(\"-\").reverse().join(\"-\");\r\n }\r\n this.setState({ project: e, showPopup: true });\r\n };\r\n\r\n closePopup = () => {\r\n this.setState({ showPopup: false });\r\n };\r\n\r\n handleStartdate = (e: any) => {\r\n let projectCopy = this.state.project;\r\n projectCopy.startdate = e.target.value;\r\n this.setState({ project: projectCopy });\r\n };\r\n\r\n handleEnddate = (e: any) => {\r\n let projectCopy = this.state.project;\r\n projectCopy.enddate = e.target.value;\r\n this.setState({ project: projectCopy });\r\n };\r\n\r\n handleSubmit = (e: any) => {\r\n e.preventDefault();\r\n if (this.state.project.startdate != \"\") {\r\n this.state.project.startdate = this.state.project.startdate\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"-\");\r\n if (this.state.project.enddate != \"\") {\r\n this.state.project.enddate = this.state.project.enddate\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"-\");\r\n } else {\r\n this.state.project.enddate = \"Till date\";\r\n }\r\n let projects: Project[] = [];\r\n let selectedproject: Project = {\r\n id: this.props.project.id,\r\n name: this.props.project.name,\r\n client: this.props.project.client,\r\n description: this.props.project.description,\r\n userId: this.props.project.userId,\r\n startdate: this.props.project.startdate,\r\n enddate: this.props.project.enddate,\r\n approved: this.props.project.approved,\r\n };\r\n projects.push(selectedproject);\r\n UpdateProjects(projects).then(() => {\r\n GetProjects(this.props.project.userId).then((projects) => {\r\n this.setState({ project: projects });\r\n });\r\n });\r\n this.closePopup();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.showPopup && (\r\n
\r\n
\r\n
\r\n
\r\n

Edit Work History

\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n \r\n
\r\n
\r\n
{this.props.project.name}
\r\n
\r\n
{this.props.project.client}
\r\n
\r\n From {this.props.project.startdate}\r\n
\r\n
To {this.props.project.enddate}
\r\n {!this.props.project.approved && (\r\n
Not Approved
\r\n )}\r\n
\r\n
{this.props.project.description}
\r\n
\r\n {this.props.showDelete && (\r\n
\r\n this.edit(this.props.project)}\r\n >\r\n \r\n \r\n \r\n this.props.delete && this.props.delete(this.props.project)\r\n }\r\n >\r\n \r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ProjectDetails;\r\n","import React from \"react\";\r\nimport { UserProfile } from \"../../types/UserProfile\";\r\nimport \"../index.css\";\r\nimport { GetUser } from \"../service/SkillService\";\r\n\r\ninterface managercardProps {\r\n user: UserProfile;\r\n}\r\n\r\nclass ManagerCard extends React.Component {\r\n defaultManagerProfile = {\r\n name: \"\",\r\n id: \"\",\r\n displayName: \"\",\r\n mail: \"\",\r\n jobTitle: \"\",\r\n experience: \"\",\r\n active: true,\r\n image: \"\",\r\n summary: \"\",\r\n managerUserId: \"\",\r\n rolesMasterId: \"\",\r\n interests: \"\",\r\n country: \"\",\r\n };\r\n state: {\r\n managerProfile: UserProfile;\r\n } = {\r\n managerProfile: this.defaultManagerProfile,\r\n };\r\n\r\n async componentDidMount() {\r\n if (\r\n this.props.user.managerUserId != \"00000000-0000-0000-0000-000000000000\" &&\r\n this.state.managerProfile.id != this.props.user.managerUserId\r\n ) {\r\n GetUser(this.props.user.managerUserId).then((response) => {\r\n response\r\n ? this.setState({ managerProfile: response })\r\n : this.setState({ managerProfile: this.defaultManagerProfile });\r\n });\r\n }\r\n }\r\n\r\n async componentDidUpdate() {\r\n if (\r\n this.props.user.managerUserId != \"00000000-0000-0000-0000-000000000000\" &&\r\n this.state.managerProfile.id != this.props.user.managerUserId\r\n ) {\r\n GetUser(this.props.user.managerUserId).then((response) => {\r\n if (response != undefined) {\r\n response\r\n ? this.setState({ managerProfile: response })\r\n : this.setState({ managerProfile: this.defaultManagerProfile });\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n this.state.managerProfile &&\r\n this.state.managerProfile.id != \"\" &&\r\n this.state.managerProfile.id !=\r\n \"00000000-0000-0000-0000-000000000000\" && (\r\n
\r\n
Manager
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{this.state.managerProfile.name}
\r\n
\r\n {this.state.managerProfile.jobTitle}\r\n
\r\n
\r\n
\r\n \r\n window.open(\r\n `https://teams.microsoft.com/l/chat/0/0?users=${this.state.managerProfile.mail}`,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n \r\n \r\n {this.state.managerProfile.mail}\r\n \r\n
\r\n
\r\n \r\n )\r\n );\r\n }\r\n}\r\n\r\nexport default ManagerCard;\r\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport { UserDetail } from \"../../types/UserProfile\";\r\nimport ProjectDetails from \"../userprofile/ProjectDetails\";\r\nimport ManagerCard from \"../userprofile/ManagerCard\";\r\nimport { Project, SkillTypesModel } from \"../../types/Skill\";\r\nimport Interest from \"../userprofile/Interest\";\r\n\r\ninterface ResultDetailsProps {\r\n detail: UserDetail;\r\n}\r\nexport class ResultDetails extends React.Component {\r\n state: {\r\n skills: SkillTypesModel[];\r\n projects: Project[];\r\n } = { skills: [], projects: [] };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.props.detail.user.image != \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
{this.props.detail.user.name}
\r\n
\r\n
    \r\n
  • {this.props.detail.user.jobTitle}
  • \r\n
  • \r\n \r\n window.open(\r\n `https://teams.microsoft.com/l/chat/0/0?users=${this.props.detail.user.mail}`,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n \r\n \r\n {this.props.detail.user.mail}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
Working Team
\r\n
\r\n Customer Experience & Engagement\r\n
\r\n
\r\n
\r\n
Skills
\r\n
\r\n {this.props.detail.skills.map((item, index) => (\r\n
\r\n
{item.typeName}
{\" \"}\r\n
\r\n {item.employeeSkillViewModels.map(\r\n (skill, index) =>\r\n skill.approved && (\r\n
\r\n {skill.name}\r\n
\r\n )\r\n )}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
Languages
\r\n
\r\n {this.props.detail.languages &&\r\n this.props.detail.languages.map((language) => (\r\n
{language.name}
\r\n ))}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.props.detail.projects?.length > 0 && (\r\n
\r\n
Work history
\r\n {this.props.detail.projects.map((el) => (\r\n \r\n ))}\r\n
\r\n )}\r\n {this.props.detail.user.interests &&\r\n this.props.detail.user.interests != \"\" && (\r\n
\r\n
Interests
\r\n
\r\n {this.props.detail.user.interests}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\nexport default ResultDetails;\r\n","import {\r\n LanguageMaster,\r\n ProjectMasterView,\r\n SkillMasterView,\r\n SkillTypeModel,\r\n} from \"../../types/Skill\";\r\n\r\nexport const getMasterSkills = (): Promise => {\r\n return new Promise((resolve, reject) => {\r\n let masterSkills: SkillMasterView[] = [];\r\n fetch(`api/Skills/GetMasterSkills`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n for (var i = 0; i < response.length; i++) {\r\n masterSkills.push({\r\n skillID: response[i].skillID,\r\n id: i + 1,\r\n name: response[i].name,\r\n description: response[i].description,\r\n active: response[i].active,\r\n tags: response[i].tags,\r\n approved: response[i].approved,\r\n typeID: response[i].typeID,\r\n });\r\n }\r\n resolve(masterSkills);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const AddMasterSkills = (skill: SkillMasterView): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Skills/AddMasterSkills\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(skill),\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const deleteMasterSkills = (skill: SkillMasterView): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Skills/DeleteMasterSkill\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(skill),\r\n })\r\n .then(() => resolve())\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const getProjectMaster = (): Promise => {\r\n return new Promise((resolve, reject) => {\r\n let projectMaster: ProjectMasterView[] = [];\r\n fetch(`api/Projects/GetProjectsMaster`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const AddProjectMaster = (\r\n project: ProjectMasterView\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Projects/AddMasterProjects\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(project),\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const deleteProjectMaster = (\r\n project: ProjectMasterView\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(\"api/Projects/DeleteMasterProjects\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(project),\r\n })\r\n .then(() => resolve())\r\n .catch((error) => {\r\n console.error(error);\r\n reject();\r\n });\r\n });\r\n};\r\n\r\nexport const getJobTitleMaster = (): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetJobTitleMaster`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const getLanguageMaster = (): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetLanguageMaster`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const getCountryMaster = (): Promise => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`api/Employee/GetCountryMaster`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const getSkillTypes = (): Promise => {\r\n return new Promise((resolve, reject) => {\r\n let skillTypes: SkillTypeModel[] = [];\r\n fetch(`api/Skills/GetSkillTypes`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n for (var i = 0; i < response.length; i++) {\r\n skillTypes.push({\r\n id: response[i].id,\r\n name: response[i].name,\r\n });\r\n }\r\n resolve(skillTypes);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\nexport const getMasterSkillsByType = (\r\n TypeID: string\r\n): Promise => {\r\n return new Promise((resolve, reject) => {\r\n let masterSkills: SkillMasterView[] = [];\r\n fetch(`api/Skills/GetMasterSkillsByType?TypeID=${TypeID}`, {\r\n method: \"GET\",\r\n })\r\n .then((response) => response.json())\r\n .then((response) => {\r\n for (var i = 0; i < response.length; i++) {\r\n masterSkills.push({\r\n skillID: response[i].skillID,\r\n id: i + 1,\r\n name: response[i].name,\r\n description: response[i].description,\r\n active: response[i].active,\r\n tags: response[i].tags,\r\n approved: response[i].approved,\r\n typeID: response[i].typeID,\r\n });\r\n }\r\n resolve(masterSkills);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n};\r\n","import React, { Ref } from \"react\";\r\nimport \"../index.css\";\r\nimport { MasterView } from \"../../types/Skill\";\r\nexport interface AutocompleteProps {\r\n suggestions: any[];\r\n SelectedSuggestion: (ss: any) => void;\r\n hidePlaceHolder?: boolean;\r\n updateInputValue?: (val: string) => void;\r\n enableInput?: boolean;\r\n clearInput?: boolean;\r\n isJobTitle?: boolean;\r\n}\r\nclass Autocomplete extends React.Component {\r\n constructor(Props: AutocompleteProps) {\r\n super(Props);\r\n this.wrapperRef = React.createRef();\r\n }\r\n wrapperRef: any;\r\n fs: MasterView[] = [];\r\n ts: string[] = [];\r\n state: {\r\n filteredSuggestions: MasterView[];\r\n filteredTitles: string[];\r\n showSuggestion: boolean;\r\n userInput: string;\r\n } = {\r\n filteredSuggestions: this.fs,\r\n filteredTitles: this.ts,\r\n showSuggestion: false,\r\n userInput: \"\",\r\n };\r\n\r\n onChange = (e: any) => {\r\n let { updateInputValue } = this.props;\r\n let inputvalue = e.target.value;\r\n if (!this.props.isJobTitle) {\r\n let filtered = this.props.suggestions.filter(\r\n (suggestion) =>\r\n suggestion.name.toLowerCase().indexOf(inputvalue.toLowerCase()) > -1\r\n );\r\n this.setState({\r\n userInput: inputvalue,\r\n filteredSuggestions: filtered,\r\n });\r\n } else {\r\n let filtered = this.props.suggestions.filter(\r\n (suggestion) =>\r\n suggestion.toLowerCase().indexOf(inputvalue.toLowerCase()) > -1\r\n );\r\n this.setState({\r\n userInput: inputvalue,\r\n filteredTitles: filtered,\r\n });\r\n }\r\n updateInputValue && updateInputValue(inputvalue);\r\n };\r\n\r\n onKeyDown = (e: any) => {};\r\n updatesuggestion = (val: MasterView) => {\r\n this.setState({\r\n userInput: val.name,\r\n filteredSuggestions: this.fs,\r\n filteredTitles: this.ts,\r\n });\r\n this.props.SelectedSuggestion(val);\r\n };\r\n\r\n updatetitle = (val: string) => {\r\n this.setState({\r\n userInput: val,\r\n filteredTitles: this.ts,\r\n });\r\n this.props.SelectedSuggestion(val);\r\n };\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n handleClickOutside = (event: any) => {\r\n if (this.wrapperRef && !this.wrapperRef.current.contains(event.target)) {\r\n this.setState({\r\n filteredSuggestions: this.fs,\r\n filteredTitles: this.ts,\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n if (this.props.clearInput) {\r\n this.state.userInput = \"\";\r\n }\r\n return (\r\n
\r\n \r\n {this.state.filteredTitles.length > 0 && (\r\n
    \r\n {this.state.filteredTitles.map((item, index) => {\r\n return (\r\n
  • this.updatetitle(item)}>\r\n {item}\r\n
  • \r\n );\r\n })}\r\n
\r\n )}\r\n {this.state.filteredSuggestions.length > 0 && (\r\n
    \r\n {this.state.filteredSuggestions.map((item, index) => {\r\n return (\r\n
  • this.updatesuggestion(item)}>\r\n {item.name}\r\n
  • \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Autocomplete;\r\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport Header from \"../navigation/Header\";\r\nimport ResultItem from \"./ResultItem\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport {\r\n LanguageMaster,\r\n SearchRequestView,\r\n StoreData,\r\n} from \"../../types/Skill\";\r\nimport {\r\n UserProfile,\r\n UserDetail,\r\n RolesMaster,\r\n action_types,\r\n} from \"../../types/UserProfile\";\r\nimport ResultDetails from \"./ResultDetails\";\r\nimport {\r\n GetEmployeeLanguage,\r\n GetEmployeeSkillGroups,\r\n GetProjects,\r\n GetUser,\r\n SearchText,\r\n} from \"../service/SkillService\";\r\nimport { Dispatch } from \"redux\";\r\nimport {\r\n getCountryMaster,\r\n getJobTitleMaster,\r\n getLanguageMaster,\r\n} from \"../service/MasterService\";\r\nimport Autocomplete from \"../autocomplete/Autocomplete\";\r\nimport { isNullOrUndefined } from \"util\";\r\nconst mapStateToProps = (state: StoreData) => ({\r\n searchresponse: state.searchresponse,\r\n searchRequest: state.searchRequest,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: Dispatch) => {\r\n return {\r\n search: (val: SearchRequestView) =>\r\n dispatch({ type: \"SEARCH\", payload: val }),\r\n };\r\n};\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nconst Country = {\r\n IN: \"India\",\r\n UK: \"UK\",\r\n NO: \"Norway\",\r\n SE: \"Sweden\",\r\n};\r\nvar titles: string[] = [];\r\nclass Results extends React.Component {\r\n rolemaster: RolesMaster = {\r\n id: \"\",\r\n name: \"\",\r\n active: false,\r\n eployeeRoles: [],\r\n };\r\n\r\n defaultselected = {\r\n user: {\r\n name: \"\",\r\n displayName: \"\",\r\n id: \"\",\r\n mail: \"\",\r\n active: true,\r\n jobTitle: \"\",\r\n experience: \"\",\r\n image: \"\",\r\n managerUserId: \"\",\r\n summary: \"\",\r\n rolesMasterId: \"\",\r\n interests: \"\",\r\n country: \"\",\r\n },\r\n skills: [],\r\n projects: [],\r\n languages: [],\r\n };\r\n\r\n state: {\r\n resp: UserProfile[];\r\n selectedUserDetail: UserDetail;\r\n displayDetials: boolean;\r\n searchRequest: SearchRequestView;\r\n searchHistoryRequest: SearchRequestView;\r\n autocompletesugg: string[];\r\n selectedTitles: string[];\r\n showLanguageDropDown: boolean;\r\n showCountryDropDown: boolean;\r\n languages: LanguageMaster[];\r\n countries: string[];\r\n clearInput: boolean;\r\n selectedJobTitleInputValue: string;\r\n } = {\r\n resp: [],\r\n selectedUserDetail: this.defaultselected,\r\n displayDetials: false,\r\n searchRequest: {\r\n text:\r\n this.props.searchRequest.text != \"\"\r\n ? this.props.searchRequest.text\r\n : \"\",\r\n jobTitle:\r\n this.props.searchRequest.jobTitle != \"\"\r\n ? this.props.searchRequest.jobTitle\r\n : \"\",\r\n country:\r\n this.props.searchRequest.country != \"\"\r\n ? this.props.searchRequest.country\r\n : \"Select\",\r\n language:\r\n this.props.searchRequest.language != null\r\n ? this.props.searchRequest.language\r\n : \"Select\",\r\n },\r\n searchHistoryRequest: this.props.searchRequest,\r\n autocompletesugg: [],\r\n selectedTitles: [],\r\n showLanguageDropDown: false,\r\n showCountryDropDown: false,\r\n languages: [],\r\n countries: [],\r\n clearInput: false,\r\n selectedJobTitleInputValue: \"\",\r\n };\r\n\r\n async componentDidMount() {\r\n this.setState({ clearInput: false });\r\n this.triggerSearchKey(this.props.searchRequest);\r\n // getJobTitleMaster(this.props.searchRequest).then((autocompletesugg) => {\r\n // this.setState({ autocompletesugg });\r\n //});\r\n getCountryMaster().then((countries) => {\r\n if (countries) {\r\n this.setState({\r\n countries,\r\n });\r\n }\r\n });\r\n getLanguageMaster().then((languages) => {\r\n if (languages) {\r\n this.setState({\r\n languages,\r\n });\r\n }\r\n });\r\n }\r\n\r\n SelectedSuggestion = (jobTitle: string) => {\r\n this.setState({ clearInput: false });\r\n this.setState({\r\n searchRequest: { ...this.state.searchRequest, jobTitle },\r\n });\r\n };\r\n\r\n UpdateSelectedItem = (val: string) => {\r\n GetUser(val)\r\n .then((user) => {\r\n GetEmployeeSkillGroups(val).then((skills) => {\r\n GetProjects(val).then((projects) => {\r\n GetEmployeeLanguage(val).then((languages) => {\r\n this.setState({\r\n displayDetials: true,\r\n selectedUserDetail: {\r\n user,\r\n skills,\r\n projects,\r\n languages,\r\n },\r\n });\r\n });\r\n });\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n onSearchTextChange = (e: any) => {\r\n this.setState({\r\n searchRequest: { ...this.state.searchRequest, text: e.target.value },\r\n });\r\n };\r\n\r\n onSearchClick = () => {\r\n let searchreq = this.state.searchRequest;\r\n if (\r\n (searchreq.jobTitle == \"\" || isNullOrUndefined(searchreq.jobTitle)) &&\r\n this.state.selectedJobTitleInputValue != \"\"\r\n ) {\r\n searchreq = {\r\n ...searchreq,\r\n jobTitle: this.state.selectedJobTitleInputValue,\r\n };\r\n }\r\n this.props.search(searchreq);\r\n this.setState({ searchRequest: searchreq });\r\n this.triggerSearchKey(searchreq);\r\n this.setState({ selectedJobTitleInputValue: \"\" });\r\n };\r\n\r\n getCountryValue = (value: string): string => {\r\n switch (value) {\r\n case \"IN\":\r\n return Country.IN;\r\n break;\r\n case \"UK\":\r\n return Country.UK;\r\n break;\r\n case \"NO\":\r\n return Country.NO;\r\n break;\r\n case \"SE\":\r\n return Country.SE;\r\n break;\r\n default:\r\n return \"Select\";\r\n }\r\n };\r\n\r\n triggerSearchKey = (searchRequest: SearchRequestView) => {\r\n this.setState({ clearInput: false });\r\n this.setState({ searchHistoryRequest: searchRequest });\r\n SearchText(searchRequest)\r\n .then((resp) => {\r\n this.setState({\r\n resp,\r\n searchRequest: {\r\n text: this.state.searchRequest.text,\r\n jobTitle: this.state.searchRequest.jobTitle,\r\n language:\r\n this.state.searchRequest.language == \"\"\r\n ? (this.state.searchRequest.language = \"Select\")\r\n : this.state.searchRequest.language,\r\n country:\r\n this.state.searchRequest.country == \"\"\r\n ? (this.state.searchRequest.country = \"Select\")\r\n : this.state.searchRequest.country,\r\n },\r\n });\r\n if (resp && resp.length > 0) {\r\n titles = [];\r\n resp.forEach((item: UserProfile) => {\r\n if (titles.indexOf(item.jobTitle) == -1) {\r\n titles.push(item.jobTitle);\r\n }\r\n });\r\n this.setState({ autocompletesugg: titles });\r\n let userInfo = resp[0];\r\n this.UpdateSelectedItem(userInfo.id);\r\n } else {\r\n getJobTitleMaster().then((autocompletesugg) => {\r\n this.setState({ autocompletesugg });\r\n });\r\n this.setState({\r\n displayDetials: false,\r\n selectedUserDetail: this.defaultselected,\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n onCountryDropDownChange = (country: string) => {\r\n this.setState({\r\n showCountryDropDown: false,\r\n searchRequest: { ...this.state.searchRequest, country },\r\n });\r\n let searchreq = this.state.searchRequest;\r\n\r\n searchreq = {\r\n ...searchreq,\r\n country: country,\r\n };\r\n this.props.search(searchreq);\r\n this.setState({ searchRequest: searchreq });\r\n this.triggerSearchKey(searchreq);\r\n };\r\n\r\n toggleCountryDropDown = (val: boolean) => {\r\n this.setState({ showCountryDropDown: val });\r\n };\r\n\r\n onLanguageDropDownChange = (language: string) => {\r\n this.setState({\r\n showLanguageDropDown: false,\r\n searchRequest: { ...this.state.searchRequest, language },\r\n });\r\n let searchreq = this.state.searchRequest;\r\n\r\n searchreq = {\r\n ...searchreq,\r\n language: language,\r\n };\r\n this.props.search(searchreq);\r\n this.setState({ searchRequest: searchreq });\r\n this.triggerSearchKey(searchreq);\r\n };\r\n\r\n toggleLanguageDropDown = (val: boolean) => {\r\n this.setState({ showLanguageDropDown: val });\r\n };\r\n\r\n updateInputValue = (val: string) => {\r\n this.setState({ selectedJobTitleInputValue: val, clearInput: false });\r\n };\r\n\r\n RemoveSearchText = () => {\r\n let searchreq = this.state.searchRequest;\r\n\r\n searchreq = {\r\n ...searchreq,\r\n text: \"\",\r\n };\r\n this.props.search(searchreq);\r\n this.setState({ searchRequest: searchreq });\r\n this.triggerSearchKey(searchreq);\r\n };\r\n RemoveJobTitle = () => {\r\n let searchreq = this.state.searchRequest;\r\n this.setState({ selectedJobTitleInputValue: \"\" });\r\n searchreq = {\r\n ...searchreq,\r\n jobTitle: \"\",\r\n };\r\n this.props.search(searchreq);\r\n this.setState({ searchRequest: searchreq });\r\n this.triggerSearchKey(searchreq);\r\n this.setState({ clearInput: true });\r\n };\r\n RemoveCountry = () => {\r\n let searchreq = this.state.searchRequest;\r\n\r\n searchreq = {\r\n ...searchreq,\r\n country: \"\",\r\n };\r\n this.props.search(searchreq);\r\n this.setState({ searchRequest: searchreq });\r\n this.triggerSearchKey(searchreq);\r\n };\r\n RemoveLanguage = () => {\r\n let searchreq = this.state.searchRequest;\r\n\r\n searchreq = {\r\n ...searchreq,\r\n language: \"\",\r\n };\r\n this.props.search(searchreq);\r\n this.setState({ searchRequest: searchreq });\r\n this.triggerSearchKey(searchreq);\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
COUNTRY
\r\n
\r\n \r\n this.toggleCountryDropDown(\r\n !this.state.showCountryDropDown\r\n )\r\n }\r\n data-toggle=\"dropdown\"\r\n >\r\n {this.getCountryValue(\r\n this.state.searchRequest.country\r\n )}\r\n \r\n \r\n {this.state.countries.map((item) => {\r\n return (\r\n \r\n this.onCountryDropDownChange(item)\r\n }\r\n href=\"#\"\r\n >\r\n {this.getCountryValue(item)}\r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
LANGUAGE
\r\n
\r\n \r\n this.toggleLanguageDropDown(\r\n !this.state.showLanguageDropDown\r\n )\r\n }\r\n data-toggle=\"dropdown\"\r\n >\r\n {this.state.searchRequest.language}\r\n \r\n \r\n {this.state.languages\r\n .sort((a, b) => (a.name > b.name ? 1 : -1))\r\n .map((item) => {\r\n return (\r\n \r\n this.onLanguageDropDownChange(item.name)\r\n }\r\n href=\"#\"\r\n >\r\n {item.name}\r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
JOB TITLE
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Results for Search\r\n {this.state.searchHistoryRequest.text != \"\" && (\r\n \r\n Text :\r\n \r\n {this.state.searchHistoryRequest.text}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {this.state.searchHistoryRequest.country &&\r\n this.state.searchHistoryRequest.country != \"\" &&\r\n this.state.searchHistoryRequest.country != \"Select\" && (\r\n \r\n , Country :{\" \"}\r\n \r\n {this.getCountryValue(\r\n this.state.searchHistoryRequest.country\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {this.state.searchHistoryRequest.jobTitle &&\r\n this.state.searchHistoryRequest.jobTitle != \"\" && (\r\n \r\n , Job Title :{\" \"}\r\n \r\n {this.state.searchHistoryRequest.jobTitle}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {this.state.searchHistoryRequest.language &&\r\n this.state.searchHistoryRequest.language != \"\" &&\r\n this.state.searchHistoryRequest.language != \"Select\" && (\r\n \r\n , Language :{\" \"}\r\n \r\n {this.state.searchHistoryRequest.language}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n {this.state.resp.map((user) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n {this.state.displayDetials && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connector(Results);\r\n","import React from \"react\";\nimport \"../index.css\";\nimport Header from \"./Header\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport Hero from \"./Hero\";\nimport Results from \"../searchresults/Results\";\nimport { GetUser, UpdateUser } from \"../service/SkillService\";\nimport { StoreData } from \"../../types/Skill\";\nimport { Dispatch } from \"redux\";\nimport { action_types, UserProfile } from \"../../types/UserProfile\";\nimport { updateAdditionalInfo } from \"../graph/GraphService\";\n\nconst mapStateToProps = (state: StoreData) => ({\n userinfo: state.user,\n isHomePage: state.isHomePage,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch) => {\n return {\n updateuser: (val: UserProfile) =>\n dispatch({ type: \"UPDATE_USER\", payload: val }),\n };\n};\nconst connector = connect(mapStateToProps, mapDispatchToProps);\ntype PropsFromRedux = ConnectedProps;\n\nclass Home extends React.Component {\n async componentDidMount() {\n GetUser(this.props.userinfo.id)\n .then((user) => {\n if (!user) user = this.props.userinfo;\n\n updateAdditionalInfo(user).then(() => {\n user && this.props.updateuser(user);\n });\n })\n .catch((ex) => {\n console.error(\"exc\", ex);\n });\n }\n\n render() {\n let element;\n if (this.props.isHomePage) {\n element = ;\n } else {\n element = ;\n }\n return (\n
\n \n
\n
\n {element}\n
\n );\n }\n}\n\nexport default connector(Home);\n","import React from \"react\";\nimport Home from \"./components/navigation/Home\";\n\nconst App = () => {\n return (\n
\n \n
\n );\n};\n\nexport default App;\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import {\n UserProfile,\n action_types,\n UPDATE_IS_HOME_PAGE,\n SEARCH,\n UPDATE_USER,\n RolesMaster,\n} from \"../../types/UserProfile\";\nimport { msalConfig } from \"../graph/MsalConfig\";\nimport { UserAgentApplication } from \"msal\";\nimport { Login } from \"../graph/GraphService\";\nimport { StoreData } from \"../../types/Skill\";\n\nconst rolemaster: RolesMaster = {\n id: \"\",\n name: \"\",\n active: false,\n eployeeRoles: [],\n};\nconst initialState: StoreData = {\n user: {\n name: \"\",\n displayName: \"\",\n id: \"\",\n mail: \"\",\n active: true,\n jobTitle: \"\",\n experience: \"\",\n image: \"\",\n managerUserId: \"00000000-0000-0000-0000-000000000000\",\n summary: \"\",\n rolesMasterId: \"00000000-0000-0000-0000-000000000000\",\n interests: \"\",\n country: \"\",\n },\n masterskills: [],\n isHomePage: true,\n searchText: \"\",\n searchRequest: {\n text: \"\",\n jobTitle: \"\",\n country: \"\",\n language: \"\",\n },\n searchresponse: [],\n};\n\nexport const msalAuth = new UserAgentApplication({\n auth: msalConfig,\n});\n\nexport const LoginReducer = (\n state = initialState,\n action: action_types\n): StoreData => {\n switch (action.type) {\n case UPDATE_IS_HOME_PAGE:\n return { ...state, isHomePage: action.payload };\n case UPDATE_USER:\n return { ...state, user: action.payload };\n case SEARCH:\n return { ...state, searchRequest: action.payload };\n default:\n let user: UserProfile = Login();\n return { ...state, user };\n }\n};\n\nexport default LoginReducer;\n","import {\r\n EmployeeLanguage,\r\n Project,\r\n SearchRequestView,\r\n SkillMasterView,\r\n SkillTypesModel,\r\n} from \"./Skill\";\r\n\r\nexport interface UserProfile {\r\n name: string;\r\n id: string;\r\n mail: string;\r\n displayName: string;\r\n jobTitle: string;\r\n experience: string;\r\n active: boolean;\r\n image: string;\r\n managerUserId: string;\r\n summary: string;\r\n rolesMasterId: string;\r\n interests: string;\r\n country: string;\r\n}\r\n\r\nexport interface RolesMaster {\r\n id: string;\r\n name: string;\r\n active: boolean;\r\n eployeeRoles: [];\r\n}\r\n\r\nexport interface DocumentsMaster {\r\n id: string;\r\n documentId: string;\r\n name: string;\r\n description: string;\r\n}\r\n\r\nexport interface UserDetail {\r\n user: UserProfile;\r\n skills: SkillTypesModel[];\r\n projects: Project[];\r\n languages: EmployeeLanguage[];\r\n}\r\n\r\nexport const UPDATE_IS_HOME_PAGE = \"UPDATE_IS_HOME_PAGE\";\r\nexport const SEARCH = \"SEARCH\";\r\nexport const UPDATE_USER = \"UPDATE_USER\";\r\n\r\ninterface UpdateHomePageAction {\r\n type: typeof UPDATE_IS_HOME_PAGE;\r\n payload: boolean;\r\n}\r\n\r\ninterface Search {\r\n type: typeof SEARCH;\r\n payload: SearchRequestView;\r\n}\r\n\r\ninterface UpdateUser {\r\n type: typeof UPDATE_USER;\r\n payload: UserProfile;\r\n}\r\n\r\nexport type action_types = UpdateHomePageAction | Search | UpdateUser;\r\n","import React from \"react\";\n\ninterface SkillMaster {\n Id: string;\n Name: string;\n}\nclass utility extends React.Component {\n state: { masterskills: SkillMaster } = { masterskills: { Id: \"\", Name: \"\" } };\n UpdateMasterSkills = () => {\n fetch(\"api/Skills/AddMasterSkills\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(this.state.masterskills),\n }).catch((error) => {\n console.error(error);\n });\n };\n handleToInput = (e: any) => {\n this.setState({ masterskills: { Name: e.target.value } });\n };\n render() {\n return (\n
\n \n \n
\n );\n }\n}\nexport default utility;\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport Autocomplete from \"../autocomplete/Autocomplete\";\r\nimport {\r\n AddMasterSkills,\r\n getMasterSkillsByType,\r\n getSkillTypes,\r\n} from \"../service/MasterService\";\r\nimport { SkillMasterView, SkillTypeModel } from \"../../types/Skill\";\r\n\r\ninterface aadskillprops {\r\n AddSuggestion: (sm: SkillMasterView[]) => void;\r\n UpdatePopUp: (val: boolean) => void;\r\n}\r\n\r\nclass AddSkill extends React.Component {\r\n state: {\r\n experience: string;\r\n selectedskills: SkillMasterView[];\r\n autocompletesugg: SkillMasterView[];\r\n selectedSkillInputValue: string;\r\n skilltypes: SkillTypeModel[];\r\n selectedSkillTypeValue: string;\r\n enableSkills: boolean;\r\n clearInput: boolean;\r\n } = {\r\n experience: \"1\",\r\n selectedskills: [],\r\n autocompletesugg: [],\r\n selectedSkillInputValue: \"\",\r\n skilltypes: [],\r\n selectedSkillTypeValue: \"\",\r\n enableSkills: true,\r\n clearInput: true,\r\n };\r\n\r\n SelectedSuggestion = (sg: SkillMasterView) => {\r\n let previousSkills = this.state.selectedskills;\r\n let toBeAddSkill: SkillMasterView = {\r\n id: sg.id,\r\n name: sg.name,\r\n description: sg.description,\r\n active: true,\r\n skillID: sg.skillID,\r\n tags: sg.tags,\r\n approved: true,\r\n typeID: this.state.selectedSkillTypeValue,\r\n };\r\n previousSkills.push(toBeAddSkill);\r\n this.setState({ selectedskills: previousSkills });\r\n };\r\n\r\n removeSelectedSuggestion = (skillMasterView: SkillMasterView) => {\r\n let updateSkillsList: SkillMasterView[] = [];\r\n this.state.selectedskills.forEach((item) => {\r\n if (item.skillID !== skillMasterView.skillID) {\r\n updateSkillsList.push(item);\r\n }\r\n });\r\n\r\n this.setState({ selectedskills: updateSkillsList });\r\n };\r\n\r\n updateInputValue = (val: string) => {\r\n this.setState({ selectedSkillInputValue: val });\r\n };\r\n\r\n componentDidMount() {\r\n getSkillTypes().then((res) => {\r\n this.setState({\r\n skilltypes: res,\r\n });\r\n });\r\n }\r\n\r\n handleSelect = (e: any) => {\r\n this.setState({\r\n selectedskills: [],\r\n autocompletesugg: [],\r\n selectedSkillInputValue: \"\",\r\n suggestions: [],\r\n SelectedSuggestion: [],\r\n updateInputValue: \"\",\r\n clearInput: true,\r\n });\r\n this.setState({ selectedSkillTypeValue: e.target.value });\r\n if (e.target.value != \"\") {\r\n this.setState({ enableSkills: false });\r\n getMasterSkillsByType(e.target.value).then((res) => {\r\n this.setState({\r\n autocompletesugg: res,\r\n clearInput: false,\r\n });\r\n });\r\n } else {\r\n this.setState({ enableSkills: true, clearInput: false });\r\n }\r\n };\r\n\r\n handleAddSuggestion = () => {\r\n if (this.state.selectedskills.length > 0) {\r\n this.props.AddSuggestion(this.state.selectedskills);\r\n } else {\r\n let masterSkillView = {\r\n id: 0,\r\n name: this.state.selectedSkillInputValue,\r\n description: \"\",\r\n active: true,\r\n skillID: \"00000000-0000-0000-0000-000000000000\",\r\n tags: [],\r\n approved: false,\r\n typeID: this.state.selectedSkillTypeValue,\r\n };\r\n AddMasterSkills(masterSkillView).then((res) => {\r\n this.props.AddSuggestion([res]);\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

Add Skills

\r\n this.props.UpdatePopUp(false)}\r\n type=\"button\"\r\n className=\"close\"\r\n data-dismiss=\"modal\"\r\n >\r\n ×\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {this.state.skilltypes.map((item) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
\r\n * Please select skill type for suggestions.\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.state.selectedskills.map((skill) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n {this.state.selectedskills.length == 0 &&\r\n this.state.selectedSkillInputValue.length > 0 && (\r\n
\r\n * If the skill is not selected from the auto suggestion,\r\n then the skill will be sent for approval to admin.\r\n
\r\n )}\r\n
\r\n
\r\n this.handleAddSuggestion()}\r\n type=\"button\"\r\n className=\"btn btn_default\"\r\n >\r\n Add\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AddSkill;\r\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport {\r\n Skill,\r\n SkillMasterView,\r\n SkillTypeModel,\r\n StoreData,\r\n} from \"../../types/Skill\";\r\nimport AddSkill from \"./AddSkill\";\r\nimport {\r\n DeleteSkill,\r\n getEmployeeSkills,\r\n UpdateSkills,\r\n} from \"../service/SkillService\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faPlus } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { getSkillTypes } from \"../service/MasterService\";\r\n\r\nconst mapStateToProps = (state: StoreData) => ({\r\n name: state.user.name,\r\n userId: state.user.id,\r\n});\r\n\r\nconst connector = connect(mapStateToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass SkillComponent extends React.Component {\r\n state: {\r\n skills: Skill[];\r\n masterSkills: SkillMasterView[];\r\n popupelement: JSX.Element;\r\n skilltypes: SkillTypeModel[];\r\n skillGroups: any;\r\n } = {\r\n skills: [],\r\n masterSkills: [],\r\n popupelement:
,\r\n skilltypes: [],\r\n skillGroups: [],\r\n };\r\n\r\n async componentDidMount() {\r\n await getEmployeeSkills(this.props.userId)\r\n .then((response) => {\r\n this.setState({ skills: response });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n await getSkillTypes().then((res) => {\r\n this.setState({\r\n skilltypes: res,\r\n });\r\n });\r\n var result = this.state.skills.reduce(function (r, a) {\r\n r[a.typeId] = r[a.typeId] || [];\r\n r[a.typeId].push(a);\r\n return r;\r\n }, Object.create(null));\r\n\r\n this.setState({ skillGroups: result });\r\n }\r\n\r\n getskilName = (s: string) => {\r\n let result = this.state.skilltypes.find(({ id }) => id === s);\r\n if (result) {\r\n return result.name;\r\n }\r\n return \"\";\r\n };\r\n\r\n AddSuggestion = (sm: SkillMasterView[]) => {\r\n let previousskill = this.state.skills;\r\n let toBeUpdatedSkills: Skill[] = [];\r\n for (let i = 0; i < sm.length; i++) {\r\n const { skillID, name, approved, typeID } = sm[i];\r\n let tempskill: Skill = {\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n skillId: skillID,\r\n experience: \"1\",\r\n name: name,\r\n employeeId: this.props.userId,\r\n approved: approved,\r\n typeId: typeID,\r\n };\r\n toBeUpdatedSkills.push(tempskill);\r\n }\r\n previousskill = previousskill.concat(toBeUpdatedSkills);\r\n UpdateSkills(toBeUpdatedSkills);\r\n this.setState({ skills: previousskill, popupelement: null });\r\n };\r\n\r\n UpdatePopUp = (val: boolean) => {\r\n if (val) {\r\n this.setState({\r\n popupelement: (\r\n \r\n ),\r\n });\r\n } else {\r\n this.setState({ popupelement: null });\r\n }\r\n };\r\n\r\n deleteSkill = (val: Skill) => {\r\n DeleteSkill(val).then((res) => {\r\n getEmployeeSkills(this.props.userId).then((response) => {\r\n this.setState({ skills: response });\r\n });\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n Skills{\" \"}\r\n this.UpdatePopUp(true)}\r\n className=\"btn add_btn\"\r\n data-toggle=\"modal\"\r\n data-target=\"#skill_popup\"\r\n >\r\n \r\n \r\n Add\r\n \r\n \r\n
\r\n\r\n
\r\n {this.state.skills.length > 0 ? (\r\n
\r\n {Object.keys(this.state.skillGroups).map((els) => (\r\n
\r\n
{this.getskilName(els)}
\r\n
\r\n {this.state.skillGroups[els].map((el: Skill) => (\r\n \r\n {el.name}\r\n this.deleteSkill(el)}\r\n >\r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n ))}\r\n
\r\n ) : (\r\n
\r\n \r\n
Add your skills
\r\n
\r\n )}\r\n
\r\n
\r\n {this.state.popupelement}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connector(SkillComponent);\r\n","import React from \"react\";\ninterface AddManagerDetailsProps {\n managerinfopopup: (val: boolean) => void;\n}\nclass AddManagerDetails extends React.Component {\n render() {\n return (\n
\n
\n
\n
\n

Add Manger Details

\n this.props.managerinfopopup(false)}\n data-dismiss=\"modal\"\n >\n ×\n \n
\n
\n
\n \n
\n
\n
\n
\n );\n }\n}\n\nexport default AddManagerDetails;\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { StoreData } from \"../../types/Skill\";\r\nimport AddManagerDetails from \"./AddManagerDetails\";\r\nimport ManagerCard from \"./ManagerCard\";\r\n\r\nconst mapStateToProps = (state: StoreData) => ({\r\n userinfo: state.user,\r\n});\r\n\r\nconst connector = connect(mapStateToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass UserDetail extends React.Component {\r\n state: { AddManagerPopUp: JSX.Element } = {\r\n AddManagerPopUp:
,\r\n };\r\n\r\n ManagerInfoPopUp = (val: boolean) => {\r\n if (val) {\r\n this.setState({\r\n AddManagerPopUp: (\r\n \r\n ),\r\n });\r\n } else {\r\n this.setState({ AddManagerPopUp: null });\r\n }\r\n };\r\n\r\n render() {\r\n let imgelement: JSX.Element;\r\n if (this.props.userinfo.image != \"\") {\r\n imgelement = (\r\n \r\n );\r\n } else {\r\n imgelement = (\r\n \r\n );\r\n }\r\n return (\r\n
\r\n {imgelement}\r\n
\r\n

\r\n {this.props.userinfo.name}\r\n

\r\n

\r\n {this.props.userinfo.jobTitle}\r\n

\r\n

\r\n Customer Experience & Engagement\r\n

\r\n
\r\n

\r\n \r\n \r\n {this.props.userinfo.displayName}\r\n \r\n

\r\n \r\n {/* */}\r\n {this.state.AddManagerPopUp}\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default connector(UserDetail);\r\n","import React from \"react\";\r\nimport { MasterView, ProjectMasterView } from \"../../types/Skill\";\r\nimport Autocomplete from \"../autocomplete/Autocomplete\";\r\nimport { AddProjectMaster, getProjectMaster } from \"../service/MasterService\";\r\n\r\ninterface AddProjectProps {\r\n AddSuggestion: (sm: ProjectMasterView[]) => void;\r\n UpdatePopUp: (val: boolean) => void;\r\n closepopup: () => void;\r\n userid: string;\r\n}\r\n\r\nclass AddProject extends React.Component {\r\n Projects: ProjectMasterView[] = [];\r\n state: {\r\n experience: string;\r\n selectedProjects: ProjectMasterView[];\r\n autocompletesugg: ProjectMasterView[];\r\n startdate: string;\r\n enddate: string;\r\n selectedProjectInputValue: string;\r\n } = {\r\n experience: \"1\",\r\n selectedProjects: [],\r\n autocompletesugg: [],\r\n startdate: \"\",\r\n enddate: \"\",\r\n selectedProjectInputValue: \"\",\r\n };\r\n\r\n SelectedSuggestion = (Prj: MasterView) => {\r\n let previousProjects = this.state.selectedProjects;\r\n let toBeAddProject: ProjectMasterView = {\r\n id: Prj.id,\r\n name: Prj.name,\r\n description: Prj.description,\r\n active: true,\r\n client: \"\",\r\n startdate: this.state.startdate,\r\n enddate: this.state.enddate,\r\n approved: true,\r\n };\r\n previousProjects.push(toBeAddProject);\r\n this.setState({ selectedProjects: previousProjects });\r\n };\r\n\r\n handleStartdate = (e: any) => {\r\n this.setState({ startdate: e.target.value });\r\n };\r\n\r\n handleEnddate = (e: any) => {\r\n this.setState({ enddate: e.target.value });\r\n };\r\n\r\n componentDidMount() {\r\n getProjectMaster().then((res) => {\r\n this.setState({\r\n autocompletesugg: res,\r\n });\r\n });\r\n }\r\n\r\n addDates = () => {\r\n if (\r\n this.state.selectedProjects.length > 0 &&\r\n this.state.selectedProjects[0].name != \"\"\r\n ) {\r\n this.Projects = [];\r\n let prjs = this.state.selectedProjects[0];\r\n let toBeAddProject: ProjectMasterView = {\r\n id: prjs.id,\r\n name: prjs.name,\r\n description: prjs.description,\r\n active: true,\r\n client: \"\",\r\n startdate:\r\n this.state.startdate != \"\"\r\n ? this.state.startdate.split(\"-\").reverse().join(\"-\")\r\n : \"\",\r\n enddate:\r\n this.state.enddate != \"\"\r\n ? this.state.enddate.split(\"-\").reverse().join(\"-\")\r\n : \"Till date\",\r\n approved: true,\r\n };\r\n this.Projects.push(toBeAddProject);\r\n this.props.AddSuggestion(this.Projects);\r\n } else {\r\n let toBeAddProject: ProjectMasterView = {\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n name: this.state.selectedProjectInputValue,\r\n description: \"\",\r\n active: true,\r\n client: \"\",\r\n startdate:\r\n this.state.startdate != \"\"\r\n ? this.state.startdate.split(\"-\").reverse().join(\"-\")\r\n : \"\",\r\n enddate:\r\n this.state.enddate != \"\"\r\n ? this.state.enddate.split(\"-\").reverse().join(\"-\")\r\n : \"Till date\",\r\n approved: false,\r\n };\r\n AddProjectMaster(toBeAddProject)\r\n .then((res) => {\r\n this.Projects.push(res);\r\n this.props.AddSuggestion(this.Projects);\r\n })\r\n .catch((ex) => console.error(ex));\r\n }\r\n };\r\n\r\n updateInputValue = (val: string) => {\r\n this.setState({ selectedProjectInputValue: val });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

Project Work Details

\r\n this.props.UpdatePopUp(false)}\r\n type=\"button\"\r\n className=\"close\"\r\n data-dismiss=\"modal\"\r\n >\r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {this.state.selectedProjects.length == 0 &&\r\n this.state.selectedProjectInputValue.length > 0 && (\r\n
\r\n * If the project is not selected from the auto suggestion\r\n list, then the project will be sent for approval to admin\r\n team.\r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {this.state.selectedProjects.map((item) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n this.addDates()}\r\n type=\"button\"\r\n className=\"btn btn_default\"\r\n >\r\n Add\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AddProject;\r\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport AddProject from \"./AddProject\";\r\nimport { Project, ProjectMasterView, StoreData } from \"../../types/Skill\";\r\nimport ProjectDetails from \"./ProjectDetails\";\r\nimport {\r\n DeleteEmployeeProject,\r\n GetProjects,\r\n UpdateProjects,\r\n} from \"../service/SkillService\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faPlus } from \"@fortawesome/free-solid-svg-icons\";\r\nconst mapStateToProps = (state: StoreData) => ({\r\n userid: state.user.id,\r\n});\r\n\r\nconst connector = connect(mapStateToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass ProjectComponent extends React.Component {\r\n state: {\r\n projects: Project[];\r\n isUpdateProject: boolean;\r\n } = { projects: [], isUpdateProject: false };\r\n\r\n AddSuggestion = (selectedMasterProject: ProjectMasterView[]) => {\r\n let projects: Project[] = [];\r\n selectedMasterProject.forEach((item) => {\r\n let project: Project = {\r\n id: item.id,\r\n name: item.name,\r\n client: item.client,\r\n description: item.description,\r\n userId: this.props.userid,\r\n startdate: item.startdate,\r\n enddate: item.enddate,\r\n approved: item.approved,\r\n };\r\n projects.push(project);\r\n });\r\n UpdateProjects(projects).then(() => {\r\n this.closepopup();\r\n GetProjects(this.props.userid).then((projects) => {\r\n this.setState({ projects });\r\n });\r\n });\r\n };\r\n\r\n UpdatePopUp = (val: boolean) => {\r\n if (val) {\r\n this.setState({\r\n isUpdateProject: true,\r\n });\r\n } else {\r\n this.setState({ isUpdateProject: false });\r\n }\r\n };\r\n\r\n closepopup = () => {\r\n this.setState({ isUpdateProject: false });\r\n };\r\n\r\n async componentDidMount() {\r\n GetProjects(this.props.userid).then((projects) => {\r\n this.setState({ projects });\r\n });\r\n }\r\n\r\n delete = (project: Project) => {\r\n DeleteEmployeeProject(project).then(() => {\r\n GetProjects(this.props.userid).then((projects) => {\r\n this.setState({ projects });\r\n });\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n Work history\r\n this.UpdatePopUp(true)}\r\n className=\"btn add_btn\"\r\n data-toggle=\"modal\"\r\n data-target=\"#work_popup\"\r\n >\r\n \r\n \r\n Add\r\n \r\n \r\n
\r\n {this.state.projects.length > 0 ? (\r\n this.state.projects.map((el) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n \r\n
Add your project details
\r\n
\r\n )}\r\n {this.state.isUpdateProject && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\nexport default connector(ProjectComponent);\r\n","import { faAd, faEdit, faPlus } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport React from \"react\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { Dispatch } from \"redux\";\r\nimport { StoreData } from \"../../types/Skill\";\r\nimport { action_types, UserProfile } from \"../../types/UserProfile\";\r\nimport \"../index.css\";\r\nimport { UpdateUser } from \"../service/SkillService\";\r\n\r\nconst mapStateToProps = (state: StoreData) => ({\r\n userinfo: state.user,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: Dispatch) => {\r\n return {\r\n updateuser: (val: UserProfile) =>\r\n dispatch({ type: \"UPDATE_USER\", payload: val }),\r\n };\r\n};\r\n\r\nconst connector = connect(mapStateToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass Interest extends React.Component {\r\n state: {\r\n isPopUpOpen: boolean;\r\n interest: string;\r\n } = { isPopUpOpen: false, interest: \"\" };\r\n\r\n UpdatePopUp = (val: boolean) => {\r\n this.setState({\r\n interest: this.props.userinfo.interests,\r\n isPopUpOpen: val,\r\n });\r\n };\r\n\r\n handleInterestDescription = (e: any) => {\r\n this.setState({ interest: e.target.value });\r\n };\r\n\r\n save = () => {\r\n let userObj = this.props.userinfo;\r\n userObj.interests = this.state.interest;\r\n UpdateUser(userObj);\r\n this.UpdatePopUp(false);\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n Interests\r\n this.UpdatePopUp(true)}\r\n className=\"btn add_btn\"\r\n data-toggle=\"modal\"\r\n data-target=\"#work_popup\"\r\n >\r\n {this.props.userinfo.interests == \"\" ? (\r\n \r\n \r\n Add\r\n \r\n ) : (\r\n \r\n \r\n Edit\r\n \r\n )}\r\n \r\n
\r\n
{this.props.userinfo.interests}
\r\n {this.state.isPopUpOpen && (\r\n
\r\n
\r\n
\r\n
\r\n

Interests

\r\n this.UpdatePopUp(false)}\r\n type=\"button\"\r\n className=\"close\"\r\n data-dismiss=\"modal\"\r\n >\r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connector(Interest);\r\n","import { faEdit, faPlus } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport React from \"react\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { EmployeeLanguage, LanguageMaster, StoreData } from \"../../types/Skill\";\r\nimport Autocomplete from \"../autocomplete/Autocomplete\";\r\nimport \"../index.css\";\r\nimport { getLanguageMaster } from \"../service/MasterService\";\r\nimport {\r\n DeleteEmployeeLanguage,\r\n GetEmployeeLanguage,\r\n UpdateEmployeeLanguage,\r\n} from \"../service/SkillService\";\r\n\r\nconst mapStateToProps = (state: StoreData) => ({\r\n userinfo: state.user,\r\n});\r\n\r\nconst connector = connect(mapStateToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass Language extends React.Component {\r\n state: {\r\n isPopUpOpen: boolean;\r\n autocompletesugg: LanguageMaster[];\r\n selectedLanguages: LanguageMaster[];\r\n employeeLanguages: EmployeeLanguage[];\r\n } = {\r\n isPopUpOpen: false,\r\n selectedLanguages: [],\r\n autocompletesugg: [],\r\n employeeLanguages: [],\r\n };\r\n\r\n componentDidMount() {\r\n getLanguageMaster().then((autocompletesugg) =>\r\n this.setState({ autocompletesugg })\r\n );\r\n GetEmployeeLanguage(this.props.userinfo.id).then((employeeLanguages) =>\r\n this.setState({ employeeLanguages })\r\n );\r\n }\r\n\r\n SelectedSuggestion = (language: LanguageMaster) => {\r\n let isExists = this.state.employeeLanguages.find(({ name }) => name === language.name); \r\n if (isExists == undefined) {\r\n let selectedLanguages = this.state.selectedLanguages;\r\n selectedLanguages.push({\r\n id: language.id,\r\n name: language.name,\r\n description: language.description,\r\n active: true,\r\n });\r\n this.setState({ selectedLanguages });\r\n }\r\n };\r\n\r\n UpdatePopUp = (val: boolean) => {\r\n this.setState({ isPopUpOpen: val });\r\n };\r\n\r\n deleteLanguage = (language: EmployeeLanguage) => {\r\n DeleteEmployeeLanguage(language).then(() => {\r\n GetEmployeeLanguage(this.props.userinfo.id).then((employeeLanguages) =>\r\n this.setState({ employeeLanguages })\r\n );\r\n });\r\n };\r\n\r\n save = () => {\r\n let languages: EmployeeLanguage[] = [];\r\n this.state.selectedLanguages.forEach((lan) => {\r\n languages.push({\r\n employeeId: this.props.userinfo.id,\r\n name: lan.name,\r\n languageId: lan.id,\r\n active: true,\r\n description: lan.description,\r\n });\r\n });\r\n UpdateEmployeeLanguage(languages).then(() => {\r\n languages = languages.concat(this.state.employeeLanguages);\r\n this.setState({ isPopUpOpen: false, employeeLanguages: languages });\r\n });\r\n };\r\n render() {\r\n return (\r\n
\r\n
\r\n Languages\r\n this.UpdatePopUp(true)}\r\n className=\"btn add_btn\"\r\n data-toggle=\"modal\"\r\n data-target=\"#work_popup\"\r\n >\r\n \r\n \r\n Add\r\n \r\n \r\n
\r\n
\r\n
    \r\n {this.state.employeeLanguages.map((language) => (\r\n
  • \r\n {language.name}\r\n this.deleteLanguage(language)}\r\n className=\"d-flex skill_del\"\r\n >\r\n \r\n \r\n
  • \r\n ))}\r\n
\r\n
\r\n {this.state.isPopUpOpen && (\r\n
\r\n
\r\n
\r\n
\r\n

Languages

\r\n this.UpdatePopUp(false)}\r\n type=\"button\"\r\n className=\"close\"\r\n data-dismiss=\"modal\"\r\n >\r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.state.selectedLanguages.map((language) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\nexport default connector(Language);\r\n","import React from \"react\";\nimport Header from \"../navigation/Header\";\nimport SkillComponent from \"./SkillComponent\";\nimport \"../index.css\";\nimport UserDetail from \"./UserDetail\";\nimport ProjectComponent from \"./ProjectComponent\";\nimport Interest from \"./Interest\";\nimport { GetUser } from \"../service/SkillService\";\nimport { StoreData } from \"../../types/Skill\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { action_types, UserProfile } from \"../../types/UserProfile\";\nimport { Dispatch } from \"redux\";\nimport Language from \"./Language\";\n\nconst mapStateToProps = (state: StoreData) => ({\n userinfo: state.user,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch) => {\n return {\n updateuser: (val: UserProfile) =>\n dispatch({ type: \"UPDATE_USER\", payload: val }),\n };\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\ntype PropsFromRedux = ConnectedProps;\n\nclass Profile extends React.Component {\n state: { user: UserProfile } = {\n user: this.props.userinfo,\n };\n\n async componentDidMount() {\n GetUser(this.props.userinfo.id).then((user) => {\n user && this.props.updateuser(user);\n });\n }\n\n render() {\n return (\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n );\n }\n}\nexport default connector(Profile);\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faPlus } from \"@fortawesome/free-solid-svg-icons\";\r\nimport {\r\n SkillMasterView,\r\n SkillTagViewModel,\r\n SkillTypeModel,\r\n} from \"../../types/Skill\";\r\nimport {\r\n getMasterSkills,\r\n AddMasterSkills,\r\n deleteMasterSkills,\r\n getSkillTypes,\r\n} from \"../service/MasterService\";\r\n\r\nclass SkillMaster extends React.Component {\r\n skills: SkillMasterView[] = [];\r\n skilltypes: SkillTypeModel[] = [];\r\n\r\n addSkill: SkillMasterView = {\r\n skillID: \"00000000-0000-0000-0000-000000000000\",\r\n id: 0,\r\n name: \"\",\r\n description: \"\",\r\n active: true,\r\n tags: [],\r\n approved: false,\r\n typeID: \"00000000-0000-0000-0000-000000000000\",\r\n };\r\n\r\n state = {\r\n masterSkills: this.skills,\r\n skill: this.addSkill,\r\n skillTag: { tagID: \"00000000-0000-0000-0000-000000000000\", tagName: \"\" },\r\n showPopup: false,\r\n tabIndex: 1,\r\n role: \"\",\r\n skilltypes: this.skilltypes,\r\n enableSkills: true,\r\n };\r\n\r\n selectedTab = (val: number) => {\r\n this.setState({ tabIndex: val });\r\n };\r\n\r\n handleInput = (e: any) => {\r\n let skillCopy = this.state.skill;\r\n skillCopy.name = e.target.value;\r\n this.setState({ skill: skillCopy });\r\n };\r\n\r\n handleInputTag = (e: any) => {\r\n if (e.target.value != \"\") {\r\n this.setState({\r\n skillTag: {\r\n tagID: \"00000000-0000-0000-0000-000000000000\",\r\n tagName: e.target.value,\r\n },\r\n });\r\n }\r\n };\r\n\r\n addTag = () => {\r\n if (this.state.skillTag.tagName != \"\") {\r\n let isExists = this.state.skill.tags.find(\r\n ({ tagName }) => tagName == this.state.skillTag.tagName\r\n );\r\n if (isExists == undefined) {\r\n let tagscopy = this.state.skill.tags;\r\n tagscopy.push(this.state.skillTag);\r\n this.setState({\r\n skill: { ...this.state.skill, tags: tagscopy },\r\n skillTag: { tagID: \"\", tagName: \"\" },\r\n });\r\n } else {\r\n this.setState({\r\n skillTag: { tagID: \"\", tagName: \"\" },\r\n });\r\n }\r\n }\r\n };\r\n\r\n deleteTag = (val: SkillTagViewModel) => {\r\n let tagsCopy = this.state.skill.tags;\r\n let index = tagsCopy.indexOf(val);\r\n tagsCopy.splice(index, 1);\r\n this.setState({ skill: { ...this.state.skill, tags: tagsCopy } });\r\n };\r\n\r\n openPopUp = () => {\r\n this.addSkill = {\r\n skillID: \"00000000-0000-0000-0000-000000000000\",\r\n id: 0,\r\n name: \"\",\r\n description: \"\",\r\n active: true,\r\n tags: [],\r\n approved: false,\r\n typeID: \"00000000-0000-0000-0000-000000000000\",\r\n };\r\n this.setState({ skill: this.addSkill, showPopup: true });\r\n };\r\n\r\n closePopup = () => {\r\n this.setState({ showPopup: false });\r\n };\r\n\r\n save = () => {\r\n this.closePopup();\r\n this.add(this.state.skill);\r\n };\r\n\r\n approve = (skill: SkillMasterView) => {\r\n this.add({ ...skill, approved: true });\r\n };\r\n\r\n add = (skill: SkillMasterView) => {\r\n AddMasterSkills(skill)\r\n .then(() => {\r\n getMasterSkills().then((res: SkillMasterView[]) => {\r\n this.setState({\r\n masterSkills: res,\r\n });\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n edit = (skill: SkillMasterView) => {\r\n this.setState({ skill, showPopup: true, enableSkills: false });\r\n };\r\n\r\n delete = (skill: SkillMasterView) => {\r\n deleteMasterSkills(skill)\r\n .then(() => {\r\n getMasterSkills().then((res: SkillMasterView[]) => {\r\n this.setState({\r\n masterSkills: res,\r\n });\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n handleSelect = (e: any) => {\r\n let skillCopy = this.state.skill;\r\n skillCopy.typeID = e.target.value;\r\n this.setState({ skill: skillCopy });\r\n if (e.target.value != \"\") {\r\n this.setState({ enableSkills: false });\r\n } else {\r\n this.setState({ enableSkills: true });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n getMasterSkills().then((res) => {\r\n this.setState({\r\n masterSkills: res,\r\n });\r\n });\r\n getSkillTypes().then((res) => {\r\n this.setState({\r\n skilltypes: res,\r\n });\r\n });\r\n }\r\n\r\n getskilName = (s: string) => {\r\n let result = this.state.skilltypes.find(({ id }) => id === s);\r\n if (result) {\r\n return result.name;\r\n }\r\n return \"\";\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.showPopup && (\r\n
\r\n
\r\n
\r\n
\r\n

Add Skills

\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n {this.state.skill.typeID !=\r\n \"00000000-0000-0000-0000-000000000000\" && (\r\n \r\n )}\r\n {this.state.skill.typeID ==\r\n \"00000000-0000-0000-0000-000000000000\" && (\r\n \r\n )}\r\n {this.state.skilltypes.map((item) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n * Please select skill type for suggestions.\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Add\r\n \r\n \r\n
\r\n {this.state.skill.tags &&\r\n this.state.skill.tags.map((tag) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n Master Skills\r\n \r\n \r\n \r\n Add New\r\n \r\n \r\n
\r\n
\r\n
    \r\n
  • \r\n this.selectedTab(1)}\r\n >\r\n APPROVED\r\n \r\n
  • \r\n
  • \r\n this.selectedTab(2)}\r\n >\r\n NOT APPROVED\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n {this.state.tabIndex == 1 ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.masterSkills.map((skill) => {\r\n if (skill.approved) {\r\n if (skill.active) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n })}\r\n \r\n
Skill NameTagsAction
{skill.name}\r\n {skill.tags &&\r\n skill.tags.map((tag) => {\r\n return (\r\n {tag.tagName}\r\n );\r\n })}\r\n \r\n this.edit(skill)}\r\n >\r\n \r\n \r\n this.delete(skill)}\r\n >\r\n \r\n \r\n
\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.masterSkills.map((skill) => {\r\n if (!skill.approved) {\r\n if (skill.active) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n })}\r\n \r\n
Skill NameTagsAction
{skill.name}\r\n {skill.tags &&\r\n skill.tags.map((tag) => {\r\n return (\r\n {tag.tagName}\r\n );\r\n })}\r\n \r\n this.approve(skill)}\r\n >\r\n Approve\r\n \r\n this.delete(skill)}\r\n >\r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default SkillMaster;\r\n","import { UserProfile } from \"./UserProfile\";\r\n\r\nexport interface StoreData {\r\n user: UserProfile;\r\n masterskills: SkillMasterView[];\r\n isHomePage: boolean;\r\n searchText: string;\r\n searchRequest: SearchRequestView;\r\n searchresponse: UserProfile[];\r\n}\r\n\r\nexport interface SearchRequestView {\r\n text: string;\r\n jobTitle: string;\r\n country: string;\r\n language: string;\r\n}\r\n\r\nexport interface Skill {\r\n id: string;\r\n employeeId: string;\r\n experience: string;\r\n skillId: string;\r\n name: string;\r\n approved: boolean;\r\n typeId: string;\r\n}\r\n\r\nexport interface MasterView {\r\n id: string;\r\n name: string;\r\n active: boolean;\r\n description: string;\r\n}\r\n\r\nexport interface SkillMasterView {\r\n id: number;\r\n name: string;\r\n active: boolean;\r\n description: string;\r\n skillID: string;\r\n tags: SkillTagViewModel[];\r\n approved: boolean;\r\n typeID: string;\r\n}\r\n\r\nexport interface SkillTagViewModel {\r\n tagID: string;\r\n tagName: string;\r\n}\r\n\r\nexport interface ProjectMasterView extends MasterView {\r\n client: string;\r\n startdate: string;\r\n enddate: string;\r\n approved: boolean;\r\n}\r\n\r\nexport interface Project {\r\n id: string;\r\n name: string;\r\n description: string;\r\n client: string;\r\n userId: string;\r\n startdate: string;\r\n enddate: string;\r\n approved: boolean;\r\n}\r\n\r\nexport interface EmployeeRoll {\r\n employeeId: string;\r\n roleId: string;\r\n role: string;\r\n}\r\n\r\nexport interface LanguageMaster extends MasterView {}\r\n\r\nexport interface EmployeeLanguage {\r\n languageId: string;\r\n name: string;\r\n active: boolean;\r\n description: string;\r\n employeeId: string;\r\n}\r\n\r\nexport interface SkillTypeModel {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport interface SkillTypesModel {\r\n typeName: string;\r\n employeeSkillViewModels: EmployeeSkillViewModel[];\r\n}\r\nexport interface EmployeeSkillViewModel {\r\n id: string;\r\n employeeId: string;\r\n skillID: string;\r\n name: string;\r\n experience: string;\r\n approved: boolean;\r\n typeId: string;\r\n}\r\n\r\nexport const defaultProjectMasterView = {\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n name: \"\",\r\n description: \"\",\r\n active: true,\r\n client: \"\",\r\n startdate: \"\",\r\n enddate: \"\",\r\n approved: true,\r\n};\r\n","import React from \"react\";\r\nimport \"../index.css\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faPlus } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { defaultProjectMasterView, ProjectMasterView } from \"../../types/Skill\";\r\nimport {\r\n AddProjectMaster,\r\n deleteProjectMaster,\r\n getProjectMaster,\r\n} from \"../service/MasterService\";\r\n\r\nclass ProjectMaster extends React.Component {\r\n projects: ProjectMasterView[] = [];\r\n addProject: ProjectMasterView = defaultProjectMasterView;\r\n\r\n state = {\r\n projects: this.projects,\r\n showPopup: false,\r\n project: this.addProject,\r\n tabIndex: 1,\r\n };\r\n\r\n selectedTab = (val: number) => {\r\n this.setState({ tabIndex: val });\r\n };\r\n\r\n openPopUp = () => {\r\n this.addProject = defaultProjectMasterView;\r\n this.setState({ project: this.addProject, showPopup: true });\r\n };\r\n\r\n closePopup = () => {\r\n this.setState({ showPopup: false });\r\n };\r\n\r\n handleProjectNameInput = (e: any) => {\r\n let projectCopy = this.state.project;\r\n projectCopy.name = e.target.value;\r\n this.setState({ project: projectCopy });\r\n };\r\n\r\n handleClientNameInput = (e: any) => {\r\n let projectCopy = this.state.project;\r\n projectCopy.client = e.target.value;\r\n this.setState({ project: projectCopy });\r\n };\r\n\r\n handleDescription = (e: any) => {\r\n let projectCopy = this.state.project;\r\n projectCopy.description = e.target.value;\r\n this.setState({ project: projectCopy });\r\n };\r\n\r\n handleStartdate = (e: any) => {\r\n let projectCopy = this.state.project;\r\n projectCopy.startdate = e.target.value;\r\n this.setState({ project: projectCopy });\r\n };\r\n\r\n handleEnddate = (e: any) => {\r\n let projectCopy = this.state.project;\r\n projectCopy.enddate = e.target.value;\r\n this.setState({ project: projectCopy });\r\n };\r\n\r\n handleSubmit = (e: any) => {\r\n e.preventDefault();\r\n if (this.state.project.startdate != \"\" && this.state.project.name != \"\") {\r\n this.state.project.startdate = this.state.project.startdate\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"-\");\r\n if (this.state.project.enddate != \"\") {\r\n this.state.project.enddate = this.state.project.enddate\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"-\");\r\n } else {\r\n this.state.project.enddate = \"Till date\";\r\n }\r\n\r\n AddProjectMaster(this.state.project).then(() => {\r\n getProjectMaster().then((res: ProjectMasterView[]) => {\r\n this.setState({\r\n projects: res,\r\n });\r\n });\r\n });\r\n this.closePopup();\r\n }\r\n };\r\n\r\n approve = (project: ProjectMasterView) => {\r\n let tmpProject = { ...project, approved: true };\r\n AddProjectMaster(tmpProject).then(() => {\r\n getProjectMaster().then((res: ProjectMasterView[]) => {\r\n this.setState({\r\n projects: res,\r\n });\r\n });\r\n });\r\n };\r\n\r\n edit = (e: ProjectMasterView) => {\r\n e.startdate = e.startdate.split(\"-\").reverse().join(\"-\");\r\n if (e.enddate != \"\") {\r\n e.enddate = e.enddate.split(\"-\").reverse().join(\"-\");\r\n }\r\n this.setState({ project: e, showPopup: true });\r\n };\r\n\r\n delete = (e: ProjectMasterView) => {\r\n deleteProjectMaster(e)\r\n .then(() => {\r\n getProjectMaster().then((res: ProjectMasterView[]) => {\r\n this.setState({\r\n projects: res,\r\n });\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n getProjectMaster().then((res: ProjectMasterView[]) => {\r\n this.setState({\r\n projects: res,\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.showPopup && (\r\n
\r\n
\r\n
\r\n
\r\n

Add Projects

\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n Master Projects\r\n \r\n \r\n \r\n Add\r\n \r\n \r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n this.selectedTab(1)}\r\n >\r\n APPROVED\r\n \r\n
  • \r\n
  • \r\n this.selectedTab(2)}\r\n >\r\n NOT APPROVED\r\n \r\n
  • \r\n
\r\n {this.state.projects.map((project, index) => {\r\n return this.state.tabIndex == 1\r\n ? project.approved && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{project.name}
\r\n
\r\n
{project.client}
\r\n
\r\n From {project.startdate}\r\n
\r\n
To {project.enddate}
\r\n
\r\n
\r\n {project.description}\r\n
\r\n
\r\n
\r\n this.edit(project)}\r\n >\r\n \r\n \r\n this.delete(project)}\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n : !project.approved && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{project.name}
\r\n
\r\n
{project.client}
\r\n
\r\n From {project.startdate}\r\n
\r\n
To {project.enddate}
\r\n
\r\n
\r\n {project.description}\r\n
\r\n
\r\n
\r\n this.edit(project)}\r\n >\r\n \r\n \r\n this.delete(project)}\r\n >\r\n \r\n \r\n this.approve(project)}\r\n >\r\n Approve\r\n \r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ProjectMaster;\r\n","import React from \"react\";\r\nimport Header from \"../navigation/Header\";\r\nimport \"../index.css\";\r\nimport SkillMaster from \"./SkillMaster\";\r\nimport ProjectMaster from \"./ProjectMaster\";\r\nimport { getEmployeeRoll } from \"../service/SkillService\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { StoreData } from \"../../types/Skill\";\r\n\r\nconst mapStateToProps = (state: StoreData) => ({\r\n userinfo: state.user,\r\n});\r\n\r\nconst connector = connect(mapStateToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nclass Master extends React.Component {\r\n state: {\r\n tabIndex: number;\r\n role: string;\r\n } = { tabIndex: 1, role: \"\" };\r\n\r\n selectedTab = (val: number) => {\r\n this.setState({ tabIndex: val });\r\n };\r\n\r\n async componentWillMount() {\r\n await getEmployeeRoll(this.props.userinfo?.id).then((response) => [\r\n response && this.setState({ role: response.role }),\r\n ]);\r\n }\r\n\r\n render() {\r\n return this.state.role == \"ADMIN\" ? (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Admin panel

\r\n
Add Employee Skills and Projects
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n this.selectedTab(1)}\r\n >\r\n Skills\r\n \r\n
  • \r\n
  • \r\n this.selectedTab(2)}\r\n >\r\n Projects\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.state.tabIndex == 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connector(Master);\r\n","import \"bootstrap/dist/css/bootstrap.css\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport registerServiceWorker from \"./registerServiceWorker\";\nimport { Provider } from \"react-redux\";\nimport { createStore } from \"redux\";\nimport LoginReducer from \"./components/reducers/LoginReducer\";\nimport utility from \"./components/utility\";\nimport { Router, Route, Switch } from 'react-router';\nimport createHistory from 'history/createBrowserHistory';\nimport Profile from \"./components/userprofile/Profile\";\nimport Master from \"./components/admin/Master\";\n\nconst rootElement = document.getElementById(\"root\");\nconst store = createStore(LoginReducer);\nconst history = createHistory();\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n ,\n rootElement\n);\n\nregisterServiceWorker();\n"],"sourceRoot":""}