{"version":3,"sources":["pages/Modal/Modal.tsx","stores/wrfStore.ts","services/linkedWrfService.ts","helpers/authHelper.ts","services/Auth.ts","services/api.ts","pages/WRF/Action.tsx","utils/Globals.ts","services/wrfService.ts","utils/LoginRoute.tsx","App.tsx","serviceWorker.ts","index.tsx","utils/constants.ts","utils/ProtectedRoute.tsx","utils/index.ts","services/wrfFeedBackService.ts","helpers/index.ts"],"names":["Modals","props","className","size","show","onHide","close","centered","Header","style","backgroundColor","color","border","closeButton","Title","fontSize","title","icon","Body","confirmActivities","body","Footer","variant","onClick","responseModals","activityModals","height","width","src","modeImage","alt","wrfNo","hidden","marginLeft","marginTop","applicationId","requestTypeId","slice","moment","requestDate","format","GlobalUtils","addWRFNumberLeadingZero","requestNo","toString","activityTimeLogModals","activityProgramModals","inputModal","id","handleClose","header","myQueuesActivityModals","myQueuesModals","headerIcon","loginScreenModals","textAlign","heading","HTMLModals","myQueuesActivitiesStatusValidationModals","customModal","message","supervisorBoardModals","headercolor","WRFDetailModals","wrfsData","wrfTeamBoard","wrfTeamBoardActivities","setService","list","userSessionParam","request","get","detail","create","linkedWrf","post","update","ls","SecureLS","params","a_sUserSetID","a_sUserEntityID","a_sUserSessionID","a_sUserID","a_sWorkstation","qs","stringify","WRFStore","getWrf","entityId","year","key","wrfRegistry","JSON","getWRFFeedBack","wrfFeedBackID","wrfFeedBackRegistry","Array","from","this","values","sort","a","b","Date","parse","lastFileDtTm","wrfTeamRegistry","taskType","wrfTeamActivitiesRegistry","myTeamsTasks","map","name","indexOf","supportPersonID","push","activityAssignedTo","lastState","observable","Map","getFullYear","getMonth","getDate","computed","action","loadingInitial","clear","wrfService","wrfs","runInAction","data","forEach","wrf","set","console","log","detailByWrfNo","wrfDetails","searchKey","sessionParams","listBySearchKey","WrfData","toJS","details","response","mdlWRF","listWRFStats","wrfStats","userid","loop","isTeamBoardLoaded","listTeamBoard","listTeamBoardActivities","entityID","requestTypeID","processId","status","wrfStatusAchieved","isWrfApproved","wrfStatusDate","wrfStateDate","getProcessId","processStatusId","processInstanceLogByStatus","approvedBy","lastFileUser","listProcessInstanceLog","wrfInstancelogsRegistry","instanceLog","processLogNo","startDate","wrfId","listEmailLog","email","wrfEmailRegistry","emailLog","processStatusID","processID","comment","comments","linkedWrfNo","linkedWrfService","linkedWrfData","mdlLinkedWRF","submitting","suppwrfno","createLinkedWrf","stateDate","wrfS","sRequestNo","sEntityId","sApplicationId","sRequestTypeId","sWrfNo","validator","bValid","refreshStatusBtns","loadingOpen","loadingClose","ParameterValue","closeInputModal","ratingId","feedBackComment","conversionType","WRFFeedBack","wrfno","workstation","getCurrentDateToLocaleString","newWRFFeedBack","loadWRFFeedBack","then","FeedBack","createWRFFeedBack","editWRFFeedBack","Intl","DateTimeFormat","resolvedOptions","timeZone","newWRF","ccbstatusId","includes","split","statusId","projectId","priorityId","desc","significanceId","savingHours","estimatedHours","actualHours","setParseDateToLocalRegion","userExpectedDate","isdExpectedDate","isdResponseDate","rank","Number","actionTaken","current","allValid","departmentId","setId","success","loadLinkedWrf","responseData","linkedWRF","linkedWrfno","conversionRequestedBy","editLinkedWrf","updatedLinked","loadWRFByWRFNo","WRFData","editWrf","createWrf","showMessages","SessionParam","SessionParameters","updateWRFState","UserSessionParameters","result","flag","hideApprovalReqStatusBtn","hideResponseReqStatusBtn","hideApproveStatusBtn","hideRejectStatusBtn","hideInProgressStatusBtn","hideBOApproveStatusBtn","hideBOApprovalReqStatusBtn","hideBORejectStatusBtn","hideDevCompleteStatusBtn","hideUATSignoffReqStatusBtn","hideQAStatusBtn","hideUATInProgressStatusBtn","hideUATSignoffStatusBtn","hideImplementedStatusBtn","hideClosedStatusBtn","hideFinanceApproveStatusBtn","hideFinanceApprovalReqStatusBtn","hideFinanceRejectStatusBtn","hideCancelWrfStatusBtn","hideCancelStatusBtn","hideUpdateBtn","hideSignoffStatusBtn","hideReopenStatusBtn","hideCompleteStatusBtn","hideConversionReqToCRFStatusBtn","hideConversionReqToSRFStatusBtn","hideConvertToCRFStatusBtn","hideConvertToSRFStatusBtn","wrfFeedBackService","wrfFeedBacks","wrfFeedBack","wrfFeedBackId","wrfFeedBackData","mdlWRFFeedBack","createContext","isAuthenticated","token","jwt_decode","exp","getTime","logout","validateUsername","username","RegExp","test","Logout","axios","defaults","baseURL","AppConstants","SERVER_URL","Authenticate","auth","UserName","Password","Domain","encryptedParams","GlobalsUtils","encrypt","Key","ParameterToEncode","headers","decryptedData","decrypt","decodedToken","detailsObject","Details","Name","Roles","SessionId","Menus","Entities","DefaultSetId","DefaultEntityId","WorkStation","DepartmentID","UserId","catch","error","a_sSessionId","queryParams","responseBody","errorBody","code","url","length","toast","position","put","delete","activityRequest","fileAttachmentRequest","observer","wrfStore","useContext","setWRFState","useState","WRFResponseMessage","wrfRespMsg","setwrfRespMsg","match","useRouteMatch","customModalBox","document","getElementById","useEffect","ActionString","substring","lastIndexOf","WRFActionObject","customModalBoxOpen","customModalBoxClose","window","location","href","DecodedAction","ParameterToDecode","decryptedAction","actionObject","Action","WRFNo","requestBy","setTimeout","CryptoJS","require","convertToTimeZone","sDate","tempDate","sDatePart","sTimePart","tempDatePart","sDates","undefined","isValid","replace","date","parseDateToLocaleString","toLocaleString","parseDateTimeToLocaleString","parseDateTimeForDatePicker","dateParam","parseDateTimeToDateString","getPreviousweekDateToLocaleString","newDate","pastDate","setDate","subtract_weeks","dt","n","AllowUpperCaseAphabets","value","AllowNumberOnly","ConvertToUpper","toUpperCase","ConvertToUpperAlphabets","reg","newValue","i","charAt","ConvertToUpperwithHyphen","reg1","AllowAphabets","AllowAphabetsWithHyphen","checktype","AllowPositiveVauesOnly","AllowAphabetsAndNumbers","showMessge","msgtype","msg","timeout","autoClose","warn","info","parseDate","getRequestTypeShortForm","padStart","filterCaseInsensitiveIncludes","filter","row","pivotId","String","toLowerCase","atob","base64","enc","Utf8","TripleDES","mode","ECB","padding","pad","Pkcs7","encodeURIComponent","decodeURIComponent","img","firstDate","secondDate","diff","Math","abs","ceil","sUserID","lWrfNo","bProcessId","sStatus","sRequestTypeID","sProcessStatusId","iWrfNo","sWrfId","iYear","LoginRoute","Component","component","rest","Error","render","to","pathname","state","loading","Login","React","lazy","ForgotPassword","DefaultLayout","history","createBrowserHistory","menuString","App","menuItems","authenticated","Menu_String","Controller","HasSubMenus","Suspense","fallback","path","Boolean","hostname","ReactDOM","navigator","serviceWorker","ready","registration","unregister","Token_Constants","APP_ID","SSRS_Path","SSRS_URL","SessionID_ChangePassword","Password_Hint","WRF_File_Attachment_Download_Path","DownloadFilePath","Board_Role_Permissions","TeamBoardRolePermissions","Tasks_Permissions","TasksPermissions","Dashboard_Permissions","DashboardPermissions","Voice_Search","IsEnabled","ProtectedRoute","iWRFFeedBackID"],"mappings":"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","file":"static/js/main.a46772b3.chunk.js","sourcesContent":["import React from \"react\";\r\nimport Button from \"reactstrap-button-loader\";\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport \"../../assets/scss/style.scss\";\r\nimport moment from \"moment\";\r\nimport GlobalUtils from '../../utils/Globals';\r\n\r\nexport const Modals = (props: any) => {\r\n\r\n return (\r\n
\r\n \r\n \r\n {props.title} \r\n \r\n \r\n

{props.confirmActivities}

\r\n {props.body}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport const responseModals = (props: any) => {\r\n\r\n return (\r\n
\r\n \r\n \r\n {props.title} \r\n \r\n \r\n

{props.confirmActivities}

\r\n {props.body}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport const activityModals = (props: any) => {\r\n\r\n return (\r\n
\r\n \r\n \r\n {props.title} \"\"/\r\n \r\n {props.applicationId + \"-\" + props.requestTypeId.slice(0, 1) + moment(props.requestDate).format(\"YYYY\") + \"-\" + GlobalUtils.addWRFNumberLeadingZero(props.requestNo.toString())}\r\n \r\n \r\n

{props.confirmActivities}

\r\n {props.body}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport const activityTimeLogModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const activityProgramModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const inputModal = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.header} \r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const myQueuesActivityModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const myQueuesModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.header} \r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const loginScreenModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.props.heading} \r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const HTMLModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.header} \r\n \r\n \r\n {/* {props.body} */}\r\n {\"Coming Soon!\"}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const myQueuesActivitiesStatusValidationModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.title} \r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const fileAttachmentModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.title} \r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const customModal = (props: any) => {\r\n return (\r\n
\r\n
\r\n
 Information (auto-close)
\r\n
\r\n

{props.message}

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport const supervisorBoardModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.title} \r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport const WRFDetailModals = (props: any) => {\r\n return (\r\n
\r\n \r\n \r\n {props.title} \r\n \r\n \r\n {props.body}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n","import { observable, computed, action, runInAction, toJS } from \"mobx\";\r\nimport { createContext } from \"react\";\r\nimport IWrf from './../entities/IWrf';\r\nimport wrfService from './../services/wrfService';\r\nimport GlobalUtils from '../utils/Globals';\r\nimport SimpleReactValidator from \"simple-react-validator\";\r\nimport qs from \"query-string\";\r\nimport SecureLS from \"secure-ls\";\r\nimport moment from \"moment\";\r\nimport IWRFAction from \"../entities/IWRFAction\";\r\nimport IWRFFeedBack from \"../entities/IWRFFeedBack\";\r\nimport wrfFeedBackService from \"../services/wrfFeedBackService\";\r\nimport ILinkedWRF from \"../entities/ILinkedWRF\";\r\nimport linkedWrfService from \"../services/linkedWrfService\";\r\n\r\nvar ls = new SecureLS();\r\n\r\nconst params = {\r\n a_sUserSetID: ls.get('cache7'),\r\n a_sUserEntityID: ls.get('cache8'),\r\n a_sUserSessionID: ls.get(\"cache4\"),\r\n a_sUserID: ls.get('cache11'),\r\n a_sWorkstation: ls.get('cache9'),\r\n };\r\nlet userSessionParam = qs.stringify(params); \r\n\r\nvar wrfsData: { data: any[]; };\r\nvar wrfTeamBoard: { data: any[]; };\r\nvar wrfTeamBoardActivities: { data: any[]; };\r\n\r\nclass WRFStore {\r\n @observable wrfRegistry = new Map();\r\n @observable wrfTeamRegistry = new Map();\r\n @observable wrfTeamActivitiesRegistry = new Map();\r\n @observable wrfInstancelogsRegistry = new Map();\r\n @observable wrfEmailRegistry: string[] = [];\r\n @observable wrf: IWrf | null = null;\r\n @observable linkedWrf: ILinkedWRF | null = null;\r\n @observable submitting: boolean = false;\r\n @observable isWrfApproved: boolean = false;\r\n @observable comment: string = \"\";\r\n @observable wrfStateDate: string = \"\";\r\n @observable lastState: string = new Date().getFullYear() + '-' + ( \"0\" + (new Date().getMonth() + 1)).slice(-2) + '-' + (\"0\" + new Date().getDate()).slice(-2);\r\n @observable processId: number = 0;\r\n @observable approvedBy: string = \"\";\r\n @observable target: string = \"\";\r\n @observable loadingInitial: boolean = false;\r\n @observable hideApprovalReqStatusBtn: boolean = true;\r\n @observable hideResponseReqStatusBtn: boolean = true;\r\n @observable hideApproveStatusBtn: boolean = true;\r\n @observable hideRejectStatusBtn: boolean = true;\r\n @observable hideInProgressStatusBtn: boolean = true;\r\n @observable hideBOApprovalReqStatusBtn: boolean = true;\r\n @observable hideBOApproveStatusBtn: boolean = true;\r\n @observable hideBORejectStatusBtn: boolean = true;\r\n @observable hideDevCompleteStatusBtn: boolean = true;\r\n @observable hideQAStatusBtn: boolean = true;\r\n @observable hideUATSignoffReqStatusBtn: boolean = true;\r\n @observable hideUATInProgressStatusBtn: boolean = true;\r\n @observable hideUATSignoffStatusBtn: boolean = true;\r\n @observable hideImplementedStatusBtn: boolean = true;\r\n @observable hideClosedStatusBtn: boolean = true;\r\n @observable hideFinanceApprovalReqStatusBtn: boolean = true;\r\n @observable hideFinanceApproveStatusBtn: boolean = true;\r\n @observable hideFinanceRejectStatusBtn: boolean = true;\r\n @observable hideCancelWrfStatusBtn: boolean = true;\r\n @observable hideCancelStatusBtn: boolean = true;\r\n @observable hideSignoffStatusBtn: boolean = true;\r\n @observable hideReopenStatusBtn: boolean = true;\r\n @observable hideUpdateBtn: boolean = true;\r\n @observable hideCompleteStatusBtn: boolean = true;\r\n @observable hideConversionReqToCRFStatusBtn: boolean = true;\r\n @observable hideConversionReqToSRFStatusBtn: boolean = true;\r\n @observable hideConvertToCRFStatusBtn: boolean = true;\r\n @observable hideConvertToSRFStatusBtn: boolean = true; \r\n @observable wrfFeedBackRegistry = new Map();\r\n @observable wrfFeedBack: IWRFFeedBack | null = null;\r\n \r\n @computed get wrfByDate() {\r\n return Array.from(this.wrfRegistry.values()).sort(\r\n (a, b) => Date.parse(b.lastFileDtTm) - Date.parse(a.lastFileDtTm)\r\n );\r\n }\r\n\r\n @computed get wrfByTeam() {\r\n return Array.from(this.wrfTeamRegistry.values()).sort(\r\n (a) => a.taskType\r\n );\r\n }\r\n\r\n @computed get wrfActivityByTeam() {\r\n return Array.from(this.wrfTeamActivitiesRegistry.values()).sort(\r\n (a) => a.taskType\r\n );\r\n }\r\n\r\n @computed get myTeamMemberIDs() {\r\n let myTeamsTasks: any[]= [];\r\n \r\n Array.from(this.wrfTeamRegistry.values()).map(name => {\r\n if (myTeamsTasks.indexOf(name.supportPersonID) === -1) {\r\n myTeamsTasks.push(name.supportPersonID)\r\n }\r\n });\r\n Array.from(this.wrfTeamActivitiesRegistry.values()).map(name => {\r\n if (myTeamsTasks.indexOf(name.activityAssignedTo) === -1) {\r\n myTeamsTasks.push(name.activityAssignedTo)\r\n }\r\n });\r\n return myTeamsTasks;\r\n }\r\n\r\n @computed get lastStateDate() {\r\n return this.lastState;\r\n }\r\n\r\n @action isWRFLoaded = () => { \r\n if (wrfsData) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n /* Action Methods */\r\n @action loadWrfs = async () => {\r\n this.loadingInitial = true;\r\n this.wrfRegistry.clear();\r\n try {\r\n const wrfs = await wrfService.list(userSessionParam);\r\n runInAction(\"fetching WRFs\", () => {\r\n wrfs.data.forEach((wrf: any) => {\r\n const key = [wrf.requestNo, wrf.entityId, wrf.applicationId, wrf.requestTypeId, wrf.year]\r\n this.wrfRegistry.set((JSON.stringify(key)), wrf);\r\n });\r\n });\r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally {\r\n runInAction(\"finishing loading WRFs\", () => {\r\n this.loadingInitial = false;\r\n });\r\n }\r\n };\r\n\r\n @action loadWRFByWRFNo= async (wrfNo: number) => { \r\n this.loadingInitial = true;\r\n try { \r\n const wrfDetails = await wrfService.detailByWrfNo(wrfNo); \r\n return wrfDetails.data;\r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally {\r\n runInAction(\"finishing loading wrf detail\", () => {\r\n this.loadingInitial = false;\r\n });\r\n }\r\n };\r\n\r\n @action loadWrfsByKey = async (searchKey: string, sessionParams: string) => {\r\n this.loadingInitial = true;\r\n \r\n try { \r\n userSessionParam = sessionParams;\r\n wrfsData = await wrfService.listBySearchKey(searchKey, sessionParams);\r\n runInAction(\"fetching WRFs\", () => {\r\n this.wrfRegistry = new Map();\r\n wrfsData.data.forEach((wrf: any) => {\r\n const key = [wrf.requestNo, wrf.entityId, wrf.applicationId, wrf.requestTypeId, wrf.year]\r\n this.wrfRegistry.set((JSON.stringify(key)), wrf);\r\n });\r\n });\r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally {\r\n runInAction(\"finishing loading WRFs\", () => {\r\n this.loadingInitial = false;\r\n });\r\n }\r\n };\r\n\r\n @action loadSingleWrf = async (requestNo: number, entityId: string, applicationId: string, requestTypeId: string, year: number) => {\r\n try {\r\n let WrfData = this.getWrf(requestNo, entityId, applicationId, requestTypeId, year);\r\n if (WrfData) {\r\n this.wrf = WrfData;\r\n return toJS(WrfData);\r\n }\r\n else {\r\n // call from api \r\n let response: any = await wrfService.details(requestNo, entityId, applicationId, requestTypeId, year);\r\n WrfData = response.data.mdlWRF;\r\n runInAction('loading WRF', () => {\r\n this.wrf = WrfData;\r\n })\r\n return WrfData;\r\n }\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n }\r\n };\r\n\r\n @action loadWRFStats = async () => { \r\n this.loadingInitial = true;\r\n try {\r\n const wrfStats = await wrfService.listWRFStats(userSessionParam);\r\n return wrfStats.data;\r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally {\r\n runInAction(\"finishing loading wrf Stats\", () => {\r\n this.loadingInitial = false;\r\n });\r\n }\r\n };\r\n\r\n @action isTeamBoardLoaded = () => {\r\n if (wrfTeamBoard) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n @action loadTeamBoard = async (userid: string) => {\r\n this.loadingInitial = true;\r\n this.wrfTeamRegistry.clear();\r\n this.wrfTeamActivitiesRegistry.clear();\r\n try {\r\n var loop = 0;\r\n this.isTeamBoardLoaded();\r\n wrfTeamBoard = await wrfService.listTeamBoard(userid);\r\n wrfTeamBoardActivities = await wrfService.listTeamBoardActivities(userid);\r\n runInAction(\"fetching WRFs\", () => {\r\n wrfTeamBoard.data.forEach((wrf: any) => {\r\n const key = [loop, wrf.requestNo, wrf.entityID, wrf.applicationId, wrf.requestTypeID, wrf.year]\r\n this.wrfTeamRegistry.set((JSON.stringify(key)), wrf);\r\n loop = loop + 1;\r\n });\r\n wrfTeamBoardActivities.data.forEach((wrf: any) => {\r\n const key = [loop, wrf.requestNo, wrf.entityID, wrf.applicationId, wrf.requestTypeID, wrf.year]\r\n this.wrfTeamActivitiesRegistry.set((JSON.stringify(key)), wrf);\r\n loop = loop + 1;\r\n });\r\n });\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n runInAction(\"finishing loading Team Board\", () => {\r\n this.loadingInitial = false;\r\n });\r\n }\r\n };\r\n\r\n @action loadStatus = async (wrfNo: number, processId: number, status: string) => {\r\n try {\r\n let response: any = await wrfService.wrfStatusAchieved(wrfNo,processId,status);\r\n response = response.data;\r\n runInAction('loading WRF', () => {\r\n this.isWrfApproved = response;\r\n })\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n }\r\n return this.isWrfApproved;\r\n };\r\n\r\n @action loadStatusDate = async (wrfNo: number, processId: number, status: string) => {\r\n try {\r\n let response: any = await wrfService.wrfStatusDate(wrfNo,processId,status);\r\n response = response.data;\r\n runInAction('loading WRF', () => {\r\n this.wrfStateDate = response;\r\n })\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n }\r\n return this.wrfStateDate;\r\n };\r\n\r\n @action loadProcessId = async (requestTypeId: string) => {\r\n try {\r\n let response: any = await wrfService.getProcessId(requestTypeId);\r\n response = response.data;\r\n runInAction('loading WRF', () => {\r\n this.processId = response;\r\n })\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n }\r\n return this.processId;\r\n };\r\n\r\n @action loadUserByStatus = async (processStatusId: string, wrfNo: number, processId: number) => {\r\n try {\r\n let response: any = await wrfService.processInstanceLogByStatus(processStatusId,wrfNo,processId);\r\n runInAction('loading WRF', () => {\r\n this.approvedBy = response.data.lastFileUser;\r\n })\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n }\r\n return this.approvedBy;\r\n };\r\n\r\n @action loadWRFInstanceLogs = async (wrfNo: number, processId: number) => {\r\n try {\r\n let response: any = await wrfService.listProcessInstanceLog(wrfNo,processId);\r\n runInAction(\"fetching WRF Instance Logs\", () => {\r\n this.wrfInstancelogsRegistry = new Map();\r\n response.data.forEach((instanceLog: any) => {\r\n const key = [instanceLog.processLogNo]\r\n this.wrfInstancelogsRegistry.set((JSON.stringify(key)), instanceLog);\r\n this.lastState = instanceLog.startDate;\r\n });\r\n });\r\n return Array.from(this.wrfInstancelogsRegistry.values()).sort(\r\n (a, b) => Date.parse(b.startDate) - Date.parse(a.startDate)\r\n );\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n }\r\n return this.approvedBy;\r\n };\r\n\r\n @action loadWRFEmailLogs = async (entityId: string, wrfId: string) => {\r\n try {\r\n let email: any = await wrfService.listEmailLog(entityId, wrfId); \r\n runInAction(\"fetching WRF Instance Logs\", () => {\r\n this.wrfEmailRegistry = [];\r\n email.data.forEach((emailLog: any) => {\r\n this.wrfEmailRegistry.push(emailLog);\r\n })\r\n });\r\n \r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n }\r\n\r\n return this.wrfEmailRegistry;\r\n };\r\n \r\n @action loadCommentByStatus = async (processStatusID: string, wrfNo: number, processID: number) => {\r\n try {\r\n let response: any = await wrfService.processInstanceLogByStatus(processStatusID,wrfNo,processID);\r\n runInAction('loading WRF', () => {\r\n this.comment = response.data.comments;\r\n })\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n }\r\n return this.comment;\r\n };\r\n\r\n @action loadLinkedWrf = async (linkedWrfNo: number) => {\r\n try { \r\n let response : any = await linkedWrfService.detail(linkedWrfNo); \r\n let linkedWrfData = response.data.mdlLinkedWRF; \r\n return linkedWrfData; \r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally { \r\n this.submitting = false; \r\n } \r\n };\r\n\r\n @action editWrf = async (wrf: IWrf, sessionParams: string) => { \r\n this.submitting = true;\r\n try {\r\n // call api for updating entity security\r\n userSessionParam = sessionParams;\r\n let response = await wrfService.update(wrf, sessionParams); \r\n runInAction(\"updating WRFs\", () => {\r\n const key = [wrf.requestNo, wrf.entityId, wrf.applicationId, wrf.requestTypeId, wrf.year]\r\n this.wrfRegistry.set(JSON.stringify(key), wrf);\r\n });\r\n return response;\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n runInAction(\"finishing updating WRFs\", () => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n\r\n @action editLinkedWrf = async (linkedWrf: ILinkedWRF, sessionParams: string) => { \r\n this.submitting = true;\r\n try {\r\n // call api for updating entity security\r\n userSessionParam = sessionParams;\r\n let response = await linkedWrfService.update(linkedWrf, sessionParams); \r\n runInAction(\"updating LinkedWRFs\", () => {\r\n const key = [linkedWrf.suppwrfno]\r\n this.wrfRegistry.set(JSON.stringify(key), linkedWrf);\r\n });\r\n return response;\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n runInAction(\"finishing updating WRFs\", () => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n\r\n @action createWrf = async (wrf: IWrf, sessionParams: string) => { \r\n this.submitting = true;\r\n try { \r\n // call api for updating entity security\r\n userSessionParam = sessionParams;\r\n let response = await wrfService.create(wrf, sessionParams); \r\n runInAction(\"creating WRF\", () => {\r\n const key = [wrf.requestNo, wrf.entityId, wrf.applicationId, wrf.requestTypeId, wrf.year]\r\n this.wrfRegistry.set(JSON.stringify(key), wrf);\r\n });\r\n return response;\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n runInAction(\"finishing updating WRF\", () => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n\r\n @action createLinkedWrf = async (wrf: IWrf, sessionParams: string) => { \r\n this.submitting = true;\r\n try { \r\n // call api for updating entity security\r\n userSessionParam = sessionParams;\r\n let response = await wrfService.createLinkedWrf(wrf, sessionParams); \r\n runInAction(\"creating WRF\", () => {\r\n const key = [wrf.requestNo, wrf.entityId, wrf.applicationId, wrf.requestTypeId, wrf.year]\r\n this.wrfRegistry.set(JSON.stringify(key), wrf);\r\n });\r\n return response;\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n runInAction(\"finishing updating WRF\", () => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n \r\n @action clearWrf = () => {\r\n this.wrf = null;\r\n };\r\n /* End Action Methods */\r\n\r\n /* Helper Methods */\r\n getWrf = (requestNo: number, entityId: string, applicationId: string, requestTypeId: string, year: number) => {\r\n const key = [requestNo, entityId, applicationId, requestTypeId, year];\r\n const wrf: IWrf = this.wrfRegistry.get(JSON.stringify(key));\r\n return wrf;\r\n };\r\n\r\n @action handleSubmit = (comments: string, stateDate: string, status: string, wrfS: IWrf,\r\n sRequestNo: string, sEntityId: string, sApplicationId: string, sRequestTypeId: string, sWrfNo: number,\r\n validator: React.MutableRefObject, bValid: boolean, refreshStatusBtns: any, loadingOpen: any, loadingClose: any, ParameterValue : string, closeInputModal: () => void, sessionParams: string, ratingId?: number, feedBackComment?: string, conversionType?: string) => { \r\n const WRFFeedBack = ({ \r\n wrfno: 0,\r\n ratingId: 0, \r\n comments: \"\", \r\n workstation: ls.get(\"cache9\")!,\r\n lastFileDtTm: GlobalUtils.getCurrentDateToLocaleString(),\r\n lastFileUser: ls.get(\"cache11\")!,\r\n });\r\n \r\n if(status === \"SIGNOFF\")\r\n {\r\n const newWRFFeedBack: IWRFFeedBack = { ...WRFFeedBack, wrfno: wrfS.wrfNo, ratingId: ratingId!, comments: feedBackComment!,\r\n workstation: ls.get(\"cache9\")!,\r\n lastFileDtTm: GlobalUtils.getCurrentDateToLocaleString(),\r\n lastFileUser: ls.get(\"cache11\")!, };\r\n \r\n this.loadWRFFeedBack(wrfS.wrfNo).then((FeedBack) => {\r\n if (FeedBack?.wrfno == 0) \r\n { \r\n this.createWRFFeedBack(newWRFFeedBack) \r\n } \r\n else \r\n {\r\n this.editWRFFeedBack(newWRFFeedBack); \r\n } \r\n });\r\n } \r\n\r\n let region = Intl.DateTimeFormat().resolvedOptions().timeZone; \r\n loadingOpen(); \r\n const newWRF: IWrf = {\r\n ...wrfS,\r\n lastFileDtTm: moment().format(\"MM/DD/YYYY HH:mm\"),\r\n lastFileUser: ls.get(\"cache11\")!,\r\n workstation: ls.get(\"cache9\")!,\r\n ccbstatusId: status.includes(\"CCB\") ? status.split('-')[1] : wrfS.ccbstatusId,\r\n statusId: status.includes(\"CCB\") ? \"\" : status,\r\n requestNo: + wrfS.requestNo,\r\n projectId: + wrfS.projectId,\r\n priorityId: + wrfS.priorityId,\r\n desc: wrfS.desc,\r\n significanceId: + wrfS.significanceId,\r\n savingHours: + wrfS.savingHours,\r\n estimatedHours: + wrfS.estimatedHours,\r\n actualHours: + wrfS.actualHours,\r\n comment: comments,\r\n requestDate: GlobalUtils.setParseDateToLocalRegion( wrfS.requestDate),\r\n stateDate: GlobalUtils.setParseDateToLocalRegion(stateDate),\r\n userExpectedDate: GlobalUtils.setParseDateToLocalRegion(wrfS.userExpectedDate),\r\n isdExpectedDate: GlobalUtils.setParseDateToLocalRegion(wrfS.isdExpectedDate),\r\n isdResponseDate: GlobalUtils.setParseDateToLocalRegion(wrfS.isdResponseDate),\r\n rank: Number(wrfS.rank),\r\n actionTaken: wrfS.requestTypeId === \"SUPP\" ? (conversionType + (wrfS.actionTaken === \"undefined\" ? \"\" : wrfS.actionTaken)) : wrfS.actionTaken,\r\n };\r\n if (bValid || ParameterValue.split(\",\").includes(status)) {\r\n if (validator.current.allValid() || ParameterValue.split(\",\").includes(status)) { \r\n if (!sRequestNo && !sEntityId && !sApplicationId && !sRequestTypeId) { \r\n this.createWrf(newWRF, sessionParams).then((response: any) => {\r\n if (response) {\r\n closeInputModal();\r\n refreshStatusBtns();\r\n loadingClose();\r\n }\r\n });\r\n }\r\n else if (sWrfNo && sRequestTypeId) { \r\n newWRF.departmentId = '(' + wrfS.setId + ')' + wrfS.departmentId ; \r\n this.createLinkedWrf(newWRF, sessionParams).then((response: any) => {\r\n if (response.data.success) {\r\n this.loadLinkedWrf(sWrfNo).then((responseData: any) => { \r\n if(responseData) {\r\n const linkedWRF: ILinkedWRF = {\r\n suppwrfno: sWrfNo,\r\n linkedWrfno: response.data.mdlWRF.wrfNo,\r\n conversionRequestedBy: responseData.conversionRequestedBy,\r\n lastFileDtTm: moment().format(\"MM/DD/YYYY HH:mm\"),\r\n lastFileUser: ls.get(\"cache11\")!,\r\n workstation: ls.get(\"cache9\")!\r\n } \r\n this.editLinkedWrf(linkedWRF, sessionParams).then((updatedLinked: any) => {\r\n if(updatedLinked)\r\n {\r\n this.loadWRFByWRFNo(sWrfNo).then((WRFData : any) => {\r\n WRFData.statusId = \"CONVERTED\"; \r\n this.editWrf(WRFData, sessionParams).then((response: any) => {\r\n if (response) {\r\n closeInputModal();\r\n refreshStatusBtns();\r\n loadingClose();\r\n }\r\n });\r\n closeInputModal();\r\n refreshStatusBtns();\r\n loadingClose();\r\n }) \r\n }\r\n });\r\n }\r\n })\r\n closeInputModal();\r\n refreshStatusBtns();\r\n loadingClose();\r\n }\r\n });\r\n }\r\n else { \r\n this.editWrf(newWRF, sessionParams).then((response: any) => {\r\n if (response) {\r\n closeInputModal();\r\n refreshStatusBtns();\r\n loadingClose();\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n validator.current.showMessages();\r\n }\r\n }\r\n };\r\n\r\n @action setWRFState = async (action: IWRFAction) => {\r\n const SessionParam = {\r\n a_sUserSetID: ls.get('cache7'),\r\n a_sUserEntityID: ls.get('cache8'),\r\n a_sUserSessionID: ls.get(\"cache4\"),\r\n a_sUserID: ls.get('cache11'),\r\n a_sWorkstation: ls.get('cache9'),\r\n }; \r\n \r\n const SessionParameters = qs.stringify(SessionParam); \r\n const response : any = await wrfService.updateWRFState(action, SessionParameters); \r\n \r\n return response;\r\n\r\n };\r\n\r\n @action handleBulkSubmit = (comments: string, stateDate: string, status: string, wrfS: IWrf, UserSessionParameters: string) => {\r\n this.submitting = true; \r\n const newWRF: IWrf = {\r\n ...wrfS,\r\n lastFileDtTm: GlobalUtils.getCurrentDateToLocaleString(),\r\n lastFileUser: ls.get(\"cache11\")!,\r\n workstation: ls.get(\"cache9\")!,\r\n ccbstatusId: status.includes(\"CCB\") ? status.split('-')[1] : wrfS.ccbstatusId,\r\n statusId: status.includes(\"CCB\") ? \"\" : status,\r\n requestNo: + wrfS.requestNo,\r\n projectId: + wrfS.projectId,\r\n priorityId: + wrfS.priorityId,\r\n desc: wrfS.desc,\r\n significanceId: + wrfS.significanceId,\r\n savingHours: + wrfS.savingHours,\r\n estimatedHours: + wrfS.estimatedHours,\r\n actualHours: + wrfS.actualHours,\r\n comment: comments,\r\n stateDate: stateDate,\r\n rank: Number(wrfS.rank)\r\n };\r\n let result = this.editWrf(newWRF, UserSessionParameters).then((response: any) => { \r\n let result = response;\r\n this.submitting = false;\r\n return result; \r\n });\r\n \r\n return result; \r\n } \r\n\r\n @action setApprovalReqStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideApprovalReqStatusBtn = flag;\r\n };\r\n @action setResponseReqStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideResponseReqStatusBtn = flag;\r\n };\r\n @action setApproveStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideApproveStatusBtn = flag;\r\n };\r\n @action setRejectStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideRejectStatusBtn = flag;\r\n };\r\n @action setInProgressStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideInProgressStatusBtn = flag;\r\n };\r\n @action setBOApproveStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideBOApproveStatusBtn = flag;\r\n };\r\n @action setBOApprovalReqStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideBOApprovalReqStatusBtn = flag;\r\n };\r\n @action setBORejectStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideBORejectStatusBtn = flag;\r\n };\r\n @action setDevCompleteStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideDevCompleteStatusBtn = flag;\r\n };\r\n @action setUATSignoffReqStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideUATSignoffReqStatusBtn = flag;\r\n };\r\n @action setQAStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideQAStatusBtn = flag;\r\n };\r\n @action setUATInProgressStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideUATInProgressStatusBtn = flag;\r\n };\r\n @action setUATSignoffStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideUATSignoffStatusBtn = flag;\r\n };\r\n @action setImplementedStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideImplementedStatusBtn = flag;\r\n };\r\n @action setClosedStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideClosedStatusBtn = flag;\r\n };\r\n @action setFinanceApproveStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideFinanceApproveStatusBtn = flag;\r\n };\r\n @action setFinanceApprovalReqStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideFinanceApprovalReqStatusBtn = flag;\r\n };\r\n @action setFinanceRejectStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideFinanceRejectStatusBtn = flag;\r\n };\r\n @action setCancelWrfStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideCancelWrfStatusBtn = flag;\r\n };\r\n @action setCancelStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideCancelStatusBtn = flag;\r\n };\r\n @action setUpdateBtnVisibility = (flag: boolean) => {\r\n this.hideUpdateBtn = flag;\r\n };\r\n @action setSignoffStatusBtnsVisibility = (flag: boolean) => {\r\n this.hideSignoffStatusBtn = flag;\r\n };\r\n @action setReopenBtnVisibility = (flag: boolean) => {\r\n this.hideReopenStatusBtn = flag;\r\n };\r\n @action setCompleteStatusBtnVisibility = (flag: boolean) => {\r\n this.hideCompleteStatusBtn = flag;\r\n };\r\n @action setConversionReqToCRFStatusBtnVisibility = (flag: boolean) => {\r\n this.hideConversionReqToCRFStatusBtn = flag;\r\n };\r\n @action setConversionReqToSRFStatusBtnVisibility = (flag: boolean) => {\r\n this.hideConversionReqToSRFStatusBtn = flag;\r\n };\r\n @action setConvertToCRFStatusBtnVisibility = (flag: boolean) => {\r\n this.hideConvertToCRFStatusBtn = flag; \r\n };\r\n @action setConvertToSRFStatusBtnVisibility = (flag: boolean) => {\r\n this.hideConvertToSRFStatusBtn = flag; \r\n };\r\n @computed get wrfFeedBackByID() {\r\n return Array.from(this.wrfFeedBackRegistry.values()).sort(\r\n (b)=> +b.wrfFeedBackID - 0\r\n );\r\n }\r\n \r\n /* Action Methods */\r\n @action loadWRFFeedBacks = async () => { \r\n this.loadingInitial = true;\r\n try {\r\n const wrfFeedBacks = await wrfFeedBackService.list(userSessionParam);\r\n runInAction(\"fetching WRFFeedBacks\", () => {\r\n wrfFeedBacks.data.forEach((wrfFeedBack: any) => {\r\n this.wrfFeedBackRegistry.set(wrfFeedBack.wrfFeedBackId, wrfFeedBack);\r\n });\r\n });\r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally {\r\n runInAction(\"finishing loading WRFFeedBacks\", () => {\r\n this.loadingInitial = false;\r\n });\r\n }\r\n };\r\n \r\n @action loadWRFFeedBack = async (wrfNo: number) => {\r\n try { \r\n let wrfFeedBackData = this.getWRFFeedBack(wrfNo);\r\n if (wrfFeedBackData) {\r\n this.wrfFeedBack = wrfFeedBackData;\r\n return toJS(wrfFeedBackData);\r\n } \r\n else {\r\n // call from api \r\n let response : any = await wrfFeedBackService.detail(wrfNo); \r\n wrfFeedBackData = response.data.mdlWRFFeedBack; \r\n return wrfFeedBackData; \r\n }\r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally { \r\n } \r\n };\r\n \r\n @action editWRFFeedBack = async (wrfFeedBack: IWRFFeedBack) => {\r\n this.submitting = true;\r\n try {\r\n // call api for updating WRFFeedBack\r\n await wrfFeedBackService.update(wrfFeedBack, userSessionParam);\r\n runInAction(\"updating WRFFeedBack\", () => {\r\n this.wrfFeedBackRegistry.set(wrfFeedBack.ratingId, wrfFeedBack);\r\n });\r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally {\r\n runInAction(\"finishing updating WRFFeedBack\", () => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n \r\n @action createWRFFeedBack = async (wrfFeedBack: IWRFFeedBack) => {\r\n this.submitting = true;\r\n try { \r\n // call api for creating WRFFeedBack\r\n await wrfFeedBackService.create(wrfFeedBack, userSessionParam);\r\n runInAction(\"creating WRFFeedBack\", () => {\r\n this.wrfFeedBackRegistry.set(wrfFeedBack.ratingId, wrfFeedBack);\r\n });\r\n } \r\n catch (error) {\r\n console.log(error);\r\n } \r\n finally {\r\n runInAction(\"finishing creating WRFFeedBack\", () => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n\r\n getWRFFeedBack = (wrfFeedBackID: number) => {\r\n const key = [wrfFeedBackID];\r\n const wrfFeedBack: IWRFFeedBack = this.wrfFeedBackRegistry.get(JSON.stringify(key));\r\n return wrfFeedBack;\r\n };\r\n}\r\n\r\nexport default createContext(new WRFStore());\r\nfunction WRFFeedBackStore(WRFFeedBackStore: any): { loadWRFFeedBack: any; createWRFFeedBack: any; editWRFFeedBack: any; wrfFeedBack: any; wrfFeedBackByID: any; } {\r\n throw new Error(\"Function not implemented.\");\r\n}\r\n\r\n","import {request} from './api'\r\nimport ILinkedWRF from '../entities/ILinkedWRF';\r\n\r\nconst setService = {\r\n list: (userSessionParam: string) : Promise => request.get(`/LinkedWRF/GetAll?a_sObjType=LinkedWRF&${userSessionParam}`),\r\n detail: (id: number) => request.get(`/LinkedWRF/GetLinkedWRFDetailsByID?a_lSupportWRFNo=${id}`),\r\n create:(linkedWrf: ILinkedWRF, userSessionParam: string) => request.post(`/LinkedWRF/Create?${userSessionParam}`,linkedWrf),\r\n update: (linkedWrf: ILinkedWRF, userSessionParam: string) => request.post(`/LinkedWRF/Update?${userSessionParam}`,linkedWrf),\r\n}\r\n\r\nexport default setService;","import jwt_decode from \"jwt-decode\";\r\nimport SecureLS from \"secure-ls\";\r\nimport { Logout } from \"../services/Auth\";\r\n\r\nconst isAuthenticated = (): boolean => {\r\n var ls = new SecureLS();\r\n const token: string | null = ls.get('cache1');\r\n if (!token) {\r\n logout();\r\n return false;\r\n }\r\n const decodedToken: any = jwt_decode(token);\r\n const tokenExpiration = decodedToken.exp;\r\n const dateNow = new Date();\r\n\r\n if (tokenExpiration < dateNow.getTime() / 1000) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nconst validateUsername = (username: string): boolean => {\r\n const USERNAME_REGEX = /([\\w]+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n const test: RegExp = new RegExp(USERNAME_REGEX);\r\n return test.test(username);\r\n};\r\n\r\nconst logout = async() => {\r\n const response = await Logout();\r\n};\r\n\r\nexport { isAuthenticated, validateUsername, logout };\r\n","import axios, { AxiosResponse, AxiosError } from \"axios\";\r\nimport SecureLS from \"secure-ls\";\r\nimport qs from \"query-string\";\r\nimport IAuth from \"./../entities/IAuth\";\r\nimport { AppConstants, Key } from \"../utils/constants\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport GlobalsUtils from \"../utils/Globals\";\r\n\r\naxios.defaults.baseURL = AppConstants.SERVER_URL;\r\n\r\ninterface IResponseBody {\r\n success: boolean;\r\n data?: {};\r\n status?: string;\r\n message?: string;\r\n}\r\n\r\nvar ls = new SecureLS();\r\n\r\nconst Authenticate = (auth: IAuth): Promise => {\r\n const params = {\r\n UserName: auth.UserName,\r\n Password: auth.Password,\r\n Domain: auth.Domain, \r\n };\r\n\r\n const encryptedParams = GlobalsUtils.encrypt(JSON.stringify(params), Key.key);\r\n \r\n return axios\r\n .post(`/api/auth/authenticate?a_sqsData=`+ GlobalsUtils.ParameterToEncode(encryptedParams), null, {\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n })\r\n .then((response: AxiosResponse) => {\r\n const { data } = response; \r\n \r\n if (data.success === true) {\r\n var key = Key.key;\r\n var decryptedData = GlobalsUtils.decrypt(data.token, key);\r\n const decodedToken: any = jwt_decode(decryptedData);\r\n const detailsObject = JSON.parse(decodedToken.Details);\r\n \r\n ls.set(\"cache1\", decryptedData);\r\n ls.set(\"cache2\", detailsObject.Name);\r\n ls.set(\"cache3\", detailsObject.Roles);\r\n ls.set(\"cache4\", detailsObject.SessionId);\r\n ls.set(\"cache5\", JSON.stringify(detailsObject.Menus));\r\n ls.set(\"cache6\", JSON.stringify(detailsObject.Entities));\r\n ls.set(\"cache7\", detailsObject.DefaultSetId);\r\n ls.set(\"cache8\", detailsObject.DefaultEntityId);\r\n ls.set(\"cache9\", detailsObject.WorkStation);\r\n ls.set(\"cache10\", detailsObject.DepartmentID);\r\n ls.set(\"cache11\", detailsObject.UserId);\r\n \r\n return {\r\n success: true,\r\n status: \"200\"\r\n };\r\n }\r\n return {\r\n success: false,\r\n message: data.message,\r\n status: data.status\r\n };\r\n })\r\n .catch((error: AxiosError) => {\r\n return {\r\n success: false,\r\n status: error.response?.status.toString(),\r\n message: error.message, \r\n };\r\n });\r\n};\r\n \r\nconst Logout = (): Promise => {\r\n const params = {\r\n a_sSessionId: ls.get(\"cache4\"),\r\n };\r\n const queryParams = qs.stringify(params);\r\n return axios\r\n .post(`/api/auth/logout`, queryParams, {\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\"\r\n }\r\n })\r\n .then((response: AxiosResponse) => {\r\n const { data } = response;\r\n\r\n if (data.success === true) {\r\n return {\r\n success: true,\r\n status: \"200\"\r\n };\r\n }\r\n return {\r\n success: false,\r\n message: data.message\r\n };\r\n })\r\n .catch((error: AxiosError) => {\r\n return {\r\n success: false,\r\n status: error.response?.status.toString(),\r\n message: error.message\r\n };\r\n });\r\n};\r\n\r\nexport {Authenticate, Logout};\r\n","import axios, { AxiosResponse, AxiosError } from \"axios\";\r\nimport { toast } from \"react-toastify\";\r\nimport { AppConstants } from \"../utils\";\r\nimport 'react-toastify/dist/ReactToastify.css';\r\naxios.defaults.baseURL = AppConstants.SERVER_URL;\r\n\r\ninterface IResponseBody {\r\n success: boolean;\r\n data?: {};\r\n status?: string;\r\n message?: string;\r\n}\r\n\r\nconst responseBody = (response: AxiosResponse) => {\r\n return {\r\n success: true,\r\n data: response.data,\r\n status: response.status,\r\n message: \"\"\r\n };\r\n};\r\n\r\nconst errorBody = (error: AxiosError) => {\r\n return {\r\n success: false,\r\n status: error.code,\r\n message: error.message\r\n };\r\n};\r\n\r\nconst request = {\r\n get: (url: string) =>\r\n axios\r\n .get(url)\r\n .then(responseBody)\r\n .catch(errorBody),\r\n post: (url: string, body: {}, headers?: {}) =>\r\n axios\r\n .post(url, body)\r\n .then(function (response) {\r\n let notify\r\n if (response.data.success && response.data.message.length > 0) {\r\n notify = () => toast.success(response.data.message, { position: \"top-center\" });\r\n }\r\n else if (!response.data.success && response.data.message.length > 0) {\r\n notify = () => toast.error(response.data.message, { position: \"top-center\" });\r\n }\r\n else {\r\n notify = () => null;\r\n }\r\n notify();\r\n return response.data.success;\r\n })\r\n .catch(errorBody),\r\n put: (url: string, body: {}) =>\r\n axios\r\n .put(url, body)\r\n .then(responseBody)\r\n .catch(errorBody),\r\n delete: (url: string) =>\r\n axios\r\n .delete(url)\r\n .then(responseBody)\r\n .catch(errorBody)\r\n};\r\n\r\nconst activityRequest = {\r\n post: (url: string, body: {}, headers?: {}) =>\r\n axios\r\n .post(url, body)\r\n .then(function (response) {\r\n return response;\r\n })\r\n .catch(errorBody)\r\n}\r\n\r\nconst fileAttachmentRequest = {\r\n post: (url: string, body: {}, headers?: {}) =>\r\n axios\r\n .post(url, body, headers)\r\n .then(function (response) {\r\n //Start-For Later Use\r\n // let notify\r\n // if (response.data.success && response.data.message.length > 0 && response.data.message !== \"FileOK\") {\r\n // notify = () => toast.success(response.data.message, { position: \"top-center\" });\r\n // }\r\n // else if (!response.data.success && response.data.message.length > 0) {\r\n // notify = () => toast.error(response.data.message, { position: \"top-center\" });\r\n // }\r\n // else {\r\n // notify = () => null;\r\n // }\r\n // notify();\r\n // return response.data.success;\r\n //End-For Later Use\r\n return response;\r\n })\r\n .catch(errorBody)\r\n}\r\n\r\nexport {request, activityRequest, fileAttachmentRequest};\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\nimport { observer } from 'mobx-react';\r\nimport { Container } from \"reactstrap\";\r\nimport '../../assets/scss/style.scss';\r\nimport SecureLS from \"secure-ls\";\r\nimport IWRFAction from \"../../entities/IWRFAction\";\r\nimport WRFStore from \"../../stores/wrfStore\";\r\nimport * as custModal from '../Modal/Modal';\r\nimport GlobalUtils from '../../utils/Globals';\r\nimport { Key } from \"../../utils\";\r\n\r\nvar ls = new SecureLS();\r\n\r\nconst spanStyle = {\r\n marginLeft: '8%'\r\n};\r\n\r\nconst spanResponseStyle = {\r\n fontSize: '14px'\r\n};\r\n\r\nconst Action = (props : any) => { \r\n const wrfStore = useContext(WRFStore);\r\n const {setWRFState, loadWRFByWRFNo} = wrfStore; \r\n const [wrfRespMsg, setwrfRespMsg] = useState(\r\n {\r\n WRFResponseMessage : \"\"\r\n }\r\n )\r\n \r\n const match = useRouteMatch(); \r\n var customModalBox = document.getElementById(\"customModalBox\") as HTMLElement; \r\n const customModalBoxClose = () => {\r\n customModalBox.style[\"display\"] = \"none\";\r\n window.location.href = \"/dashboard/WRF\"; \r\n }\r\n \r\n useEffect(() => { \r\n const ActionString = match.url.substring(match.url.lastIndexOf('/') + 1); \r\n if(ls.get(\"cache4\")!)\r\n {\r\n let WRFActionObject : IWRFAction = {'action': ActionString }; \r\n WRFActionObject.action = ActionString;\r\n\r\n if (ActionString.length > 0 && ActionString!= \"login\")\r\n {\r\n var customModalBox = document.getElementById(\"customModalBox\") as HTMLElement; \r\n const customModalBoxOpen = () => {\r\n customModalBox.style[\"display\"] = \"block\";\r\n }\r\n \r\n const customModalBoxClose = () => {\r\n customModalBox.style[\"display\"] = \"none\";\r\n window.location.href = \"/dashboard/WRF\"; \r\n }\r\n var key = Key.key; \r\n let DecodedAction = GlobalUtils.ParameterToDecode(ActionString);\r\n let decryptedAction = GlobalUtils.decrypt(DecodedAction, key);\r\n const actionObject = JSON.parse(decryptedAction);\r\n \r\n if (actionObject.Action === \"CRF\" || actionObject.Action === \"SRF\")\r\n { \r\n loadWRFByWRFNo(actionObject.WRFNo).then((response: any) => { \r\n if (response.requestBy === ls.get(\"cache11\")! && response.statusId === \"CONVERSIONREQ\")\r\n {\r\n window.location.href = `/dashboard/wrf/manage/${response.requestNo}/${response.entityId}/${response.applicationId}/${response.requestTypeId}/${response.year}`\r\n }\r\n else if (response.statusId != \"CONVERSIONREQ\")\r\n {\r\n setwrfRespMsg({WRFResponseMessage: \"WRF is in \" + response.statusId + \" status. Conversion can not be performed.\"});\r\n customModalBoxOpen();\r\n setTimeout(function () {\r\n customModalBoxClose();\r\n }, 10000, ); \r\n } \r\n else\r\n {\r\n setwrfRespMsg({WRFResponseMessage: \"You are not allowed to perform this action.\"});\r\n customModalBoxOpen();\r\n setTimeout(function () {\r\n customModalBoxClose();\r\n }, 10000, ); \r\n }\r\n }) \r\n }\r\n else\r\n {\r\n setWRFState(WRFActionObject).then((response) => {\r\n setwrfRespMsg({WRFResponseMessage: response.data.message});\r\n \r\n if (response.data.success) { \r\n customModalBoxOpen();\r\n setTimeout(function () {\r\n customModalBoxClose();\r\n }, 10000, ); \r\n }\r\n }); \r\n } \r\n } \r\n return () => console.log('unmounting...');\r\n }\r\n else\r\n { \r\n window.location.href =\"/Action/\" + ActionString;\r\n }\r\n }, []); \r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default observer(Action);\r\n","import { toast } from \"react-toastify\";\r\nimport moment, { months } from \"moment\";\r\nvar CryptoJS = require(\"crypto-js\");\r\n\r\nclass GlobalsUtils {\r\n\r\n modeImg(img: string) {\r\n let imgpath = \"\";\r\n if (img) {\r\n imgpath = \"/assets/img/EditIcn.gif\";\r\n }\r\n else {\r\n imgpath = \"/assets/img/AddIcn.gif\";\r\n }\r\n return imgpath;\r\n }\r\n\r\n modeScreen(id: string) {\r\n let alttxt = \"\";\r\n if (id) {\r\n alttxt = \"Edit Mode\";\r\n }\r\n else {\r\n alttxt = \"Add New Mode\";\r\n }\r\n return alttxt;\r\n }\r\n\r\n convertToTimeZone = (sDate: string): string => {\r\n let tempDate;\r\n let sDates = \"\";\r\n let sDatePart: any;\r\n let sTimePart: any;\r\n let tempDatePart: any;\r\n let bdateIsValid: boolean;\r\n\r\n sDates = (sDate?moment(sDate).format('YYYY-MM-DD HH:mm:ss'):undefined!);\r\n bdateIsValid = moment(sDates, \"'YYYY-MM-DD HH:mm:ss'\").isValid();\r\n\r\n if (!bdateIsValid && sDates!==undefined) {\r\n if (sDate.includes(\",\")) {\r\n tempDate = sDate.split(\",\");\r\n sDatePart = tempDate[0];\r\n sTimePart = tempDate[1];\r\n\r\n if (sDatePart.includes('/')) {\r\n tempDatePart = sDatePart.split(\"/\");\r\n }\r\n else if (sDatePart.includes('-')) {\r\n tempDatePart = sDatePart.split(\"-\");\r\n }\r\n else if (sDatePart.includes('.')) {\r\n tempDatePart = sDatePart.split(\"/\");\r\n }\r\n sDates = tempDatePart[2] + \"-\" + tempDatePart[1] + \"-\" + tempDatePart[0]\r\n sDates = sDates + \"T\" + sTimePart;\r\n }\r\n else if (sDates.includes(\"T\")) {\r\n tempDate = sDate.split(\"T\");\r\n sDatePart = tempDate[0];\r\n sTimePart = tempDate[1];\r\n\r\n if (sDatePart.includes('/')) {\r\n tempDatePart = sDatePart.split(\"/\");\r\n }\r\n else if (sDatePart.includes('-')) {\r\n tempDatePart = sDatePart.split(\"-\");\r\n }\r\n else if (sDatePart.includes('.')) {\r\n tempDatePart = sDatePart.split(\"/\");\r\n }\r\n sDates = tempDatePart[2] + \"-\" + tempDatePart[1] + \"-\" + tempDatePart[0]\r\n sDates = sDates + \"T\" + sTimePart;\r\n }\r\n else {\r\n tempDate = sDate.split(\" \");\r\n sDatePart = tempDate[0];\r\n sTimePart = tempDate[1];\r\n\r\n if (sDatePart.includes('/')) {\r\n tempDatePart = sDatePart.split(\"/\");\r\n }\r\n else if (sDatePart.includes('-')) {\r\n tempDatePart = sDatePart.split(\"-\");\r\n }\r\n else if (sDatePart.includes('.')) {\r\n tempDatePart = sDatePart.split(\"/\");\r\n }\r\n sDates = tempDatePart[2] + \"-\" + tempDatePart[1] + \"-\" + tempDatePart[0]\r\n sDates = sDates + \"T\" + sTimePart;\r\n }\r\n }\r\n else\r\n {\r\n if (sDates !== undefined) {\r\n if (sDates.includes(\",\")) {\r\n tempDate = sDates.split(\",\");\r\n sDatePart = tempDate[0];\r\n sTimePart = tempDate[1];\r\n sDates = sDatePart + \"T\" + sTimePart;\r\n }\r\n if (sDates.includes(\"T\")) {\r\n tempDate = sDates.split(\"T\");\r\n sDatePart = tempDate[0];\r\n sTimePart = tempDate[1];\r\n sDates = sDatePart + \"T\" + sTimePart;\r\n }\r\n else {\r\n tempDate = sDates.split(\" \");\r\n sDatePart = tempDate[0];\r\n sTimePart = tempDate[1];\r\n sDates = sDatePart + \"T\" + sTimePart;\r\n }\r\n }\r\n }\r\n\r\n if (sDates !== undefined) {\r\n sDates = sDates.replace(/\\s+/g, '');\r\n }\r\n return sDates;\r\n }\r\n\r\n setParseDateToLocalRegion = (date: string): string => {\r\n\r\n let sDate = \"\";\r\n\r\n if (date !== \"\") {\r\n sDate = this.convertToTimeZone(date);\r\n }\r\n\r\n return sDate;\r\n }\r\n// start-For Future Use\r\n // getParseDateToLocalRegion = (region: string, date: string): string => {\r\n\r\n // let sDate = \"\";\r\n // let sRegionToConvertIn = region;\r\n // if (region.includes(\"Asia\")) {\r\n // if (region.includes(\"Karachi\")) {\r\n // sDate = new Date(date).toLocaleString();\r\n // sDate = this.convertToTimeZone(date, sRegionToConvertIn, 'en-US', '0000');\r\n // }\r\n // }\r\n // else if (region.includes(\"Europe\")) {\r\n // if (region.includes(\"London\")) {\r\n\r\n // sDate = this.convertToTimeZone(date, sRegionToConvertIn, 'en-GB', '0000');\r\n // }\r\n // }\r\n // else if (region.includes(\"Africa\")) {\r\n // if (region.includes(\"Nairobi\")) {\r\n // sDate = this.convertToTimeZone(date, sRegionToConvertIn, 'en-KE', '0000');\r\n // }\r\n // }\r\n\r\n // return sDate;\r\n // }\r\n // end-For Future Use\r\n\r\n parseDateToLocaleString = (date: string): string => {\r\n return new Date(date).toLocaleString();\r\n };\r\n\r\n parseDateTimeToLocaleString = (date: string): string => { \r\n let dateTime; \r\n if(typeof(date) === 'undefined' || date === \"1900-01-01T00:00:00\" || date === \"\")\r\n {\r\n return dateTime = \"No Date\";\r\n }\r\n else{\r\n dateTime = moment(date).format('YYYY-MM-DD HH:mm:ss');\r\n return dateTime.toLocaleString();\r\n }\r\n };\r\n\r\n parseDateTimeForDatePicker = (dateParam: string): string => {\r\n let date = moment(dateParam).format('YYYY-MM-DD');\r\n let time = moment(dateParam).format('HH:mm:ss');\r\n let dateTime = date + \"T\" + time;\r\n \r\n return dateTime;\r\n };\r\n\r\n parseDateTimeToDateString = (date: string): string => {\r\n if(typeof(date) != 'undefined')\r\n {\r\n return date.split('T')[0];\r\n }\r\n else\r\n {\r\n return '';\r\n }\r\n };\r\n\r\n getCurrentDateToLocaleString = (): string => {\r\n return new Date().toLocaleString();\r\n };\r\n \r\n getPreviousweekDateToLocaleString = (): string => {\r\n var newDate = new Date(); \r\n var pastDate = (newDate.getDate() - 7);\r\n newDate.setDate(pastDate);\r\n return newDate.toLocaleString();\r\n };\r\n\r\n subtract_weeks = (dt: Date, n: number): string =>{ \r\n return new Date(dt.setDate(dt.getDate() - (n * 7))).toLocaleString(); \r\n }\r\n\r\n AllowUpperCaseAphabets = (value: string) => {\r\n const reg = new RegExp('^[A-Z]*$');\r\n return reg.test(value)\r\n }\r\n\r\n AllowNumberOnly = (value: string) => {\r\n const reg = new RegExp('^[0-9]*$');\r\n return reg.test(value)\r\n }\r\n\r\n ConvertToUpper = (value: string) => {\r\n const reg = new RegExp('^[a-zA-Z]*$');\r\n if (reg.test(value)) {\r\n return value.toUpperCase();\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n ConvertToUpperAlphabets = (value: string) => {\r\n const reg = new RegExp('^[a-zA-Z]*$');\r\n if (reg.test(value)) {\r\n return this.ConvertToUpper(value);\r\n }\r\n else {\r\n var newValue=\"\";\r\n for (var i=0; i< value.length; i++)\r\n {\r\n if(reg.test(value.charAt(i)))\r\n {\r\n newValue+=this.ConvertToUpper(value.charAt(i));\r\n }\r\n else\r\n {\r\n newValue+=value.charAt(i);\r\n }\r\n }\r\n return newValue;\r\n }\r\n }\r\n\r\n ConvertToUpperwithHyphen = (value: string) => {\r\n const reg = new RegExp('^[a-zA-Z-]*$');\r\n const reg1 = new RegExp('^[a-zA-Z]*$');\r\n if (reg.test(value)) {\r\n return this.ConvertToUpperAlphabets(value);\r\n }\r\n else if (reg1.test(value)) {\r\n return this.ConvertToUpperAlphabets(value);\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n \r\n AllowAphabets = (value: string) => {\r\n const reg = new RegExp('^[a-zA-Z]*$');\r\n return reg.test(value)\r\n }\r\n\r\n AllowAphabetsWithHyphen = (value: string, checktype?: number) => {\r\n const reg = new RegExp('^([a-zA-Z])+([-]?[a-zA-Z]+)*$');\r\n const reg1 = new RegExp('^[a-zA-Z-]*$');\r\n if(checktype === 0) //OnChange\r\n {\r\n return (reg.test(value) || reg1.test(value));\r\n }\r\n else if(checktype === 1) //OnBlur\r\n {\r\n return (reg.test(value));\r\n }\r\n }\r\n \r\n AllowPositiveVauesOnly = (value: string) => {\r\n const reg = new RegExp('^[0-9]*$');\r\n return reg.test(value)\r\n }\r\n\r\n AllowAphabetsAndNumbers = (value: string) => {\r\n const reg = new RegExp('^[1-zA-Z 0-9]*$');\r\n if (reg.test(value)) {\r\n return value.toUpperCase();\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n showMessge = (msgtype: number, msg: string, timeout: number = 10000) => {\r\n if (msgtype == 1) {\r\n toast.success(msg, { position: \"top-center\", autoClose: timeout });\r\n }\r\n else if (msgtype == 2) {\r\n toast.error(msg, { position: \"top-center\", autoClose: timeout });\r\n }\r\n else if (msgtype == 3) {\r\n toast.warn(msg, { position: \"top-center\", autoClose: timeout });\r\n }\r\n else if (msgtype == 4) {\r\n toast.info(msg, { position: \"top-center\", autoClose: timeout });\r\n }\r\n }\r\n\r\n parseDate = (date: string): string => {\r\n let Date = moment(date).format('YYYY-MM-DD');\r\n return Date;\r\n };\r\n \r\n getRequestTypeShortForm = (requestTypeId: string): string => {\r\n switch (requestTypeId) {\r\n case 'CRF':\r\n return 'C';\r\n case 'SRF':\r\n return 'S';\r\n case 'SUPP':\r\n return 'U';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n datediff(firstDate: Date, secondDate: Date) {\r\n // Take the difference between the dates and divide by milliseconds per day.\r\n // Round to nearest whole number to deal with DST.\r\n var diff = Math.abs(firstDate.getTime() - secondDate.getTime());\r\n var diffDays = Math.ceil(diff / (1000 * 3600 * 24)); \r\n return diffDays;\r\n }\r\n\r\n addWRFNumberLeadingZero = (requestNo: string): string => {\r\n return requestNo.toString().padStart(4, '0');\r\n }\r\n\r\n filterCaseInsensitiveIncludes = (filter: any, row: any) => {\r\n const id = filter.pivotId || filter.id;\r\n return (\r\n row[id] !== undefined ?\r\n String(row[id].toLowerCase()).includes(filter.value.toLowerCase()) : \r\n true\r\n );\r\n };\r\n \r\n decrypt = (data: any, key: string) => {\r\n key = key.substring(2, key.length - 2);\r\n key = atob(key);\r\n key = key.substring(3, key.length - 2); \r\n key = key.substring(0, 7) + key.substring(9, key.length);\r\n let base64 = CryptoJS.enc.Utf8.parse(key);\r\n let decryptedData = CryptoJS.TripleDES.decrypt(data, base64, { \r\n mode: CryptoJS.mode.ECB,\r\n padding: CryptoJS.pad.Pkcs7\r\n }\r\n ); \r\n return decryptedData.toString(CryptoJS.enc.Utf8);\r\n };\r\n\r\n encrypt = (data: any, key: string) => { \r\n key = key.substring(2, key.length - 2); \r\n key = atob(key); \r\n key = key.substring(3, key.length - 2); \r\n key = key.substring(0, 7) + key.substring(9, key.length);\r\n let base64 = CryptoJS.enc.Utf8.parse(key);\r\n let encryptedData = CryptoJS.TripleDES.encrypt(data, base64, { \r\n mode: CryptoJS.mode.ECB,\r\n padding: CryptoJS.pad.Pkcs7\r\n }\r\n ); \r\n \r\n return encryptedData.toString();;\r\n }\r\n\r\n ParameterToEncode = (value: string) => { \r\n const EncodedParameter = encodeURIComponent(value); \r\n \r\n return EncodedParameter;\r\n }\r\n\r\n ParameterToDecode = (value: string) => { \r\n const DecodedParameter = decodeURIComponent(value); \r\n \r\n return DecodedParameter;\r\n } \r\n}\r\nexport default new GlobalsUtils();\r\n \r\n","import { activityRequest, request } from \"./api\";\r\nimport IWrf from \"./../entities/IWrf\";\r\nimport IWRFAction from \"../entities/IWRFAction\";\r\n\r\nconst wrfService = {\r\n list: (userSessionParam: string): Promise => request.get(`/wrf/GetAll?a_sObjType=WRF&${userSessionParam}`),\r\n listBySearchKey: (searchKey: string, userSessionParam: string): Promise => request.get(`/wrf/GetAllBySearchKey?a_sSearchKey=${searchKey}&${userSessionParam}`),\r\n listTeamBoard: (sUserID: string): Promise => request.get(`/wrf/GetTeamBoard?a_sUserID=${sUserID}`),\r\n listTeamBoardActivities: (sUserID: string): Promise => request.get(`/wrf/GetTeamBoardActivities?a_sUserID=${sUserID}`),\r\n wrfStatusAchieved: (lWrfNo: number, bProcessId: Number, sStatus: string) => request.get(`/wrf/GetWRFApprovedStatus?a_lWrfNo=${lWrfNo}&a_bProcessID=${bProcessId}&a_sStatus=${sStatus}`),\r\n wrfStatusDate: (lWrfNo: number, bProcessId: Number, sStatus: string) => request.get(`/wrf/GetWRFStatusDate?a_lWrfNo=${lWrfNo}&a_bProcessID=${bProcessId}&a_sStatus=${sStatus}`),\r\n getProcessId: (sRequestTypeID: string) => request.get(`/wrf/GetProcessID?a_sRequestTypeID=${sRequestTypeID}`),\r\n processInstanceLogByStatus: (sProcessStatusId: string, iWrfNo: number, bProcessId: Number) => request.get(`/wrf/GetProcessInstanceLogByStatus?a_sProcessStatusId=${sProcessStatusId}&a_lWrfNo=${iWrfNo}&a_bProcessID=${bProcessId}`),\r\n listProcessInstanceLog: (iWrfNo: number, bProcessId: Number): Promise => request.get(`/wrf/GetWRFAllInstanceLogs?a_lWrfNo=${iWrfNo}&a_bProcessID=${bProcessId}`),\r\n listEmailLog: (sEntityId: string, sWrfId: string): Promise => request.get(`/wrf/GetWRFAllEmailLogs?a_sEntityId=${sEntityId}&a_sWrfID=${sWrfId}`),\r\n details: (sRequestNo: number, sEntityId: string, sApplicationId: string, sRequestTypeId: string, iYear: number) => request.get(`/wrf/GetWRFDetailsByID?a_iRequestNo=${sRequestNo}&a_sEntityID=${sEntityId}&a_sApplicationID=${sApplicationId}&a_sRequestTypeID=${sRequestTypeId}&a_iYear=${iYear}`),\r\n create: (wrf: IWrf, userSessionParam: string) => request.post(`/wrf/Create?${userSessionParam}`, wrf),\r\n update: (wrf: IWrf, userSessionParam: string) => request.post(`/wrf/Update?${userSessionParam}`, wrf),\r\n listWRFStats: (userSessionParam: string): Promise => request.get(`/wrf/GetAllByWRFStats?a_sObjType=WRF&${userSessionParam}`),\r\n updateWRFState: (action: IWRFAction, userSessionParam: string) => activityRequest.post(`/wrf/UpdateWRFState?${userSessionParam}`, action), \r\n detailByWrfNo: (lWrfNo: number): Promise => request.get(`/wrf/GetWRFDetailsByWrfNo?a_lWrfno=${lWrfNo}`), \r\n createLinkedWrf: (wrf: IWrf, userSessionParam: string) => activityRequest.post(`/wrf/Create?${userSessionParam}`, wrf),\r\n};\r\n\r\nexport default wrfService;\r\n","import React from \"react\";\r\nimport { Route, Redirect, RouteProps } from \"react-router-dom\";\r\nimport { isAuthenticated } from \"../helpers\";\r\nimport Action from \"../pages/WRF/Action\";\r\n\r\nexport const LoginRoute = ({\r\n component: Component,\r\n ...rest\r\n}: RouteProps) => {\r\n if (!Component) {\r\n throw Error(\"component is undefined\");\r\n }\r\n return (\r\n { \r\n return isAuthenticated() ? (window.location.href.includes(\"dashboard/wrf/Action\") ? \r\n ( \r\n \r\n ) \r\n : \r\n ( \r\n \r\n )) \r\n : \r\n (\r\n \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./App.scss\";\r\nimport { BrowserRouter as Router, Switch, Redirect } from \"react-router-dom\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport { ProtectedRoute } from \"./utils\";\r\nimport {LoginRoute} from './utils/LoginRoute';\r\nimport SecureLS from \"secure-ls\";\r\nimport { Menu_String } from \"./utils/constants\";\r\n\r\nvar ls = new SecureLS();\r\n\r\nconst loading = () => ( \r\n
Loading...
\r\n);\r\n\r\nconst Login = React.lazy(() => import(\"./pages/Login/Login\"));\r\nconst ForgotPassword = React.lazy(() => import(\"./pages/Login/ForgotPassword\"));\r\nconst DefaultLayout = React.lazy(() => import(\"./components/layout\"));\r\n\r\nexport const history = createBrowserHistory();\r\n\r\nlet menuString = ls.get(\"cache5\");\r\n\r\nfunction App() {\r\n let menuItems: any;\r\n let authenticated: boolean = false;\r\n\r\n if (!menuString)\r\n {\r\n menuString = Menu_String.menuString;\r\n }\r\n\r\n menuItems = JSON.parse(menuString);\r\n \r\n for (let i = 0; i < menuItems.length; i++) {\r\n if ((history.location.pathname.includes(menuItems[i].Controller)) && !menuItems[i].HasSubMenus) {\r\n authenticated = true;\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n authenticated \r\n ?(\r\n window.location.href.includes(\"dashboard/wrf/Action\")\r\n ?( \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n :( \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )\r\n :(\r\n \r\n \r\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 App;","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","export enum Token_Constants {\r\n TOKEN_EXPIRED = \"TOKEN_EXPIRED\",\r\n TOKEN_EXPIRED_MESSAGE = \"Session is expired. Please login again to continue\",\r\n}\r\n\r\nexport const RegexObject = {\r\n USERNAME_REGEX: /([\\w]+)[.]([\\w]+)/\r\n};\r\n\r\nexport const AppConstants = {\r\n SERVER_URL: `https://CMSAPI.aku.edu`,\r\n APP_ID: 'CMS-WB'\r\n};\r\n\r\nexport const SSRS_Path = {\r\n SSRS_URL: 'https://cmsreport.aku.edu/CMSReportTemplate.aspx/'\r\n}\r\n\r\nexport const SessionID_ChangePassword = {\r\n SessionID_ChangePassword: '1',\r\n}\r\n\r\nexport const Password_Hint= {\r\n Password_Hint: 'Password must contain one letter, one special character and a number.',\r\n}\r\n\r\nexport const WRF_File_Attachment_Download_Path= {\r\n DownloadFilePath: \"/CMSTempFiles/\"\r\n}\r\n\r\nexport const Board_Role_Permissions= {\r\n TeamBoardRolePermissions : [\"TEAMLEAD\",\"SUPPORTPERSON\",\"ADMIN\"]\r\n}\r\n\r\nexport const Tasks_Permissions= {\r\n TasksPermissions : [\"ADMIN\",\"TEAMLEAD\",\"SUPPORTPERSON\",\"USER\",\"MANAGER\"]\r\n}\r\n\r\nexport const Dashboard_Permissions= {\r\n DashboardPermissions : [\"ADMIN\",\"TEAMLEAD\",\"SUPPORTPERSON\"]\r\n}\r\n\r\nexport const Voice_Search = {\r\n IsEnabled: true,\r\n}\r\n\r\nexport const Menu_String = {\r\n menuString : '[{\"Controller\":\"Login\"},{\"Controller\": \"Logout\"},{\"Controller\": \"ForgotPassword\"}' +\r\n ',{\"Controller\": \"ChangePassword\"},{\"Controller\":\"Home\"},{\"Controller\":\"layout\"}]'\r\n}\r\n\r\nexport const Key = {\r\n // key : Application Key CMS-WB from Application. Add XXX + 7 Key chars + XX + remaining Key chars + XX. \r\n // Encode Key\r\n // Add XX + Key + XX\r\n key : \"00Q01TMDBkJDA1TldCQDE4dCoyMDAwMjA=00\"\r\n}","import React from \"react\";\r\nimport { Route, Redirect, RouteProps } from \"react-router-dom\";\r\nimport { isAuthenticated } from \"../helpers\";\r\n\r\nexport const ProtectedRoute = ({\r\n component: Component,\r\n ...rest\r\n}: RouteProps) => {\r\n if (!Component) {\r\n throw Error(\"component is undefined\");\r\n }\r\n return (\r\n {\r\n return isAuthenticated() ? (\r\n \r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n );\r\n};","export * from './constants';\r\nexport * from './ProtectedRoute';\r\nexport * from './Globals';\r\n\r\n","import {request} from './api'\r\nimport IWRFFeedBack from '../entities/IWRFFeedBack';\r\n\r\nconst wrfFeedBackService = {\r\n list: (userSessionParam: string) : Promise => request.get(`/WRFFeedBack/GetAll?a_sObjType=WRFFeedBack&${userSessionParam}`),\r\n detail: (iWRFFeedBackID: number) => request.get(`/WRFFeedBack/GetWRFFeedBackDetailsByID?a_iWRFNo=${iWRFFeedBackID}`),\r\n create: (wrfFeedBack: IWRFFeedBack, userSessionParam: string) => request.post(`/WRFFeedBack/Create?${userSessionParam}`,wrfFeedBack),\r\n update: (wrfFeedBack: IWRFFeedBack, userSessionParam: string) => request.post(`/WRFFeedBack/Update?${userSessionParam}`,wrfFeedBack)\r\n}\r\n\r\nexport default wrfFeedBackService;\r\n","export * from './authHelper';"],"sourceRoot":""}