{"version":3,"sources":["assets/icon.png","assets/avatar.png","assets/node-page-bottom.png","assets/icon_cropped.png","assets/org-add.png","assets/org-delete.png","assets/org-edit.png","assets/appr-add.png","assets/appr-delete.png","assets/appr-edit.png","assets/interview-edit.png","assets/pptBottom.png","assets/page-not-found.jpg","assets/aboutImage.jpg","utils/config.js","model/modelconstants.js","model/practiceareas.js","model/practices.js","model/practicearearelationships.js","model/views.js","model/defaultQuestions.js","utils/helpers.js","hooks/useArray.js","hooks/useInterval.js","presenters/LoadingComponent.js","utils/IconMap.js","containers/Tree/TreeNode.js","presenters/Tree/TreePresenter.js","containers/MergeConflictModal.js","presenters/NetworkErrorModal.js","containers/Tree/TreeControl.js","containers/HighlightColorPicker.js","presenters/ToggleButtonLoadingWrapper.js","presenters/NodePageModelInfo.js","presenters/Finding.js","presenters/Findings.js","presenters/EvidenceItem.js","containers/EvidenceModal.js","presenters/ConfirmDeleteModal.js","containers/Evidence.js","presenters/InterviewItem.js","containers/InterviewsModal.js","containers/Interviews.js","presenters/TabControl.js","containers/NodePage.js","containers/Home.js","components/Image.js","containers/UpdatePasswordForm.js","containers/ResetPasswordModal.js","containers/Login.js","utils/Repositories/apiUtils.js","utils/Repositories/OrgRepository.js","utils/libs.js","utils/Repositories/AppraisalRepository.js","utils/Repositories/AppraisalStateRepository.js","presenters/UserItem.js","containers/Users.js","containers/OrganizationModal.js","presenters/OrganizationItem.js","containers/Organizations.js","presenters/AppraisalItem.js","presenters/DeleteableListItem.js","presenters/AppraisalStateMachineBodies.js","presenters/LoaderButton.js","presenters/InterviewSessionTableItem.js","containers/InterviewSessionsModal.js","presenters/WizardFooter.js","containers/Appraisals.js","containers/AdminView.js","presenters/NotFound.js","About.js","presenters/AdminRoute.js","UserProfile.js","EditableProfile.js","presenters/AuthenticatedRoute.js","presenters/UnauthenticatedRoute.js","presenters/UnconfirmedUser.js","components/LoginNavigationBar.js","containers/FindReplaceEvidenceModal.js","containers/GenerateRollupModal.js","presenters/ReportFragment.js","containers/CopyAppraisalDataPracticeModal.js","containers/CopyAppraisalDataPracticeAreaModal.js","containers/CopyAppraisalDataProjectModal.js","containers/CopyAppraisalDataModal.js","containers/ClearProjectInfoModal.js","presenters/MultiSelectListReportOptions.js","utils/IconLegends.js","presenters/FindingsReportView.js","containers/FindingsReportModal.js","presenters/EvidenceSearchView.js","containers/EvidenceSearchModal.js","presenters/EvidenceMappingsReportView.js","containers/EvidenceMappingsReportModal.js","presenters/QuestionsReportView.js","containers/InterviewQuestionsReportModal.js","presenters/InterviewQuestionCountReportView.js","containers/InterviewQuestionsCountReportModal.js","presenters/AffirmationCoverageReportView.js","containers/AffirmationCoverageReportModal.js","presenters/PracticeComplianceReportView.js","containers/PracticeComplianceReportModal.js","presenters/CompliancePercentReportView.js","containers/CompliancePercentReportModal.js","presenters/RatingsReportView.js","containers/RatingsReportModal.js","containers/SummaryView.js","containers/FindingsPresentationModal.js","components/DefaultNavigationBar.js","components/Layout.js","containers/ChangePasswordForm.js","components/SecondaryNavigationBar.js","presenters/Routes.js","App.js","serviceWorker.js","index.js"],"names":["module","exports","__webpack_require__","p","region","config","apiGateway","REGION","URL","cognito","USER_POOL_ID","APP_CLIENT_ID","IDENTITY_POOL_ID","MODEL_CONSTANTS","CAR","CAR_LEVEL_1","CAR_LEVEL_2","CAR_LEVEL_3","CAR_LEVEL_4","CAR_LEVEL_5","CAR_11","CAR_21","CAR_22","CAR_31","CAR_32","CAR_33","CAR_34","CAR_35","CAR_41","CAR_42","CAR_51","CM","CM_LEVEL_1","CM_LEVEL_2","CM_11","CM_21","CM_22","CM_23","CM_24","CM_25","CM_26","CONT","CONT_LEVEL_1","CONT_LEVEL_2","CONT_LEVEL_3","CONT_11","CONT_21","CONT_22","CONT_23","CONT_31","CONT_32","CONT_33","DAR","DAR_LEVEL_1","DAR_LEVEL_2","DAR_LEVEL_3","DAR_11","DAR_12","DAR_21","DAR_22","DAR_23","DAR_24","DAR_25","DAR_31","EST","EST_LEVEL_1","EST_LEVEL_2","EST_LEVEL_3","EST_11","EST_21","EST_22","EST_23","EST_31","EST_32","EVSD","EVSD_LEVEL_1","EVSD_LEVEL_2","EVSD_LEVEL_3","EVSD_11","EVSD_12","EVSD_21","EVSD_22","EVSD_31","EVSD_32","EVSD_33","GOV","GOV_LEVEL_1","GOV_LEVEL_2","GOV_LEVEL_3","GOV_LEVEL_4","GOV_11","GOV_21","GOV_22","GOV_23","GOV_24","GOV_31","GOV_32","GOV_41","II","II_LEVEL_1","II_LEVEL_2","II_LEVEL_3","II_11","II_21","II_22","II_31","II_32","II_33","IRP","IRP_LEVEL_1","IRP_LEVEL_2","IRP_LEVEL_3","IRP_11","IRP_21","IRP_22","IRP_23","IRP_31","IRP_32","MPM","MPM_LEVEL_1","MPM_LEVEL_2","MPM_LEVEL_3","MPM_LEVEL_4","MPM_LEVEL_5","MPM_11","MPM_12","MPM_21","MPM_22","MPM_23","MPM_24","MPM_25","MPM_26","MPM_31","MPM_32","MPM_33","MPM_34","MPM_35","MPM_36","MPM_41","MPM_42","MPM_43","MPM_44","MPM_45","MPM_51","MPM_52","MPM_53","MC","MC_LEVEL_1","MC_LEVEL_2","MC_LEVEL_3","MC_11","MC_12","MC_21","MC_22","MC_23","MC_24","MC_31","MC_32","MC_33","MC_34","OT","OT_LEVEL_1","OT_LEVEL_2","OT_LEVEL_3","OT_11","OT_21","OT_22","OT_31","OT_32","OT_33","OT_34","OT_35","OT_36","PR","PR_LEVEL_1","PR_LEVEL_2","PR_LEVEL_3","PR_11","PR_21","PR_22","PR_23","PR_24","PR_31","PLAN","PLAN_LEVEL_1","PLAN_LEVEL_2","PLAN_LEVEL_3","PLAN_LEVEL_4","PLAN_11","PLAN_12","PLAN_21","PLAN_22","PLAN_23","PLAN_24","PLAN_25","PLAN_26","PLAN_27","PLAN_28","PLAN_31","PLAN_32","PLAN_33","PLAN_34","PLAN_41","PAD","PAD_LEVEL_1","PAD_LEVEL_2","PAD_LEVEL_3","PAD_11","PAD_21","PAD_22","PAD_23","PAD_31","PAD_32","PAD_33","PAD_34","PAD_35","PAD_36","PCM","PCM_LEVEL_1","PCM_LEVEL_2","PCM_LEVEL_3","PCM_LEVEL_4","PCM_11","PCM_12","PCM_13","PCM_21","PCM_22","PCM_31","PCM_32","PCM_33","PCM_34","PCM_35","PCM_36","PCM_41","PQA","PQA_LEVEL_1","PQA_LEVEL_2","PQA_LEVEL_3","PQA_11","PQA_21","PQA_22","PQA_23","PQA_24","PQA_31","PI","PI_LEVEL_1","PI_LEVEL_2","PI_LEVEL_3","PI_11","PI_21","PI_22","PI_23","PI_24","PI_25","PI_26","PI_31","PI_32","PI_33","RDM","RDM_LEVEL_1","RDM_LEVEL_2","RDM_LEVEL_3","RDM_11","RDM_21","RDM_22","RDM_23","RDM_24","RDM_25","RDM_31","RDM_32","RDM_33","RDM_34","RDM_35","RDM_36","RDM_37","RSK","RSK_LEVEL_1","RSK_LEVEL_2","RSK_LEVEL_3","RSK_11","RSK_21","RSK_22","RSK_31","RSK_32","RSK_33","RSK_34","RSK_35","SDM","SDM_LEVEL_1","SDM_LEVEL_2","SDM_LEVEL_3","SDM_11","SDM_21","SDM_22","SDM_23","SDM_24","SDM_25","SDM_26","SDM_31","STSM","STSM_LEVEL_1","STSM_LEVEL_2","STSM_LEVEL_3","STSM_11","STSM_21","STSM_22","STSM_23","STSM_31","SAM","SAM_LEVEL_1","SAM_LEVEL_2","SAM_LEVEL_3","SAM_LEVEL_4","SAM_11","SAM_12","SAM_13","SAM_14","SAM_21","SAM_22","SAM_23","SAM_24","SAM_25","SAM_31","SAM_32","SAM_41","SSS","SSS_LEVEL_1","SSS_LEVEL_2","SSS_LEVEL_3","SSS_11","SSS_12","SSS_13","SSS_21","SSS_22","SSS_23","SSS_31","TS","TS_LEVEL_1","TS_LEVEL_2","TS_LEVEL_3","TS_11","TS_21","TS_22","TS_23","TS_31","TS_32","TS_33","TS_34","TS_35","TS_36","VV","VV_LEVEL_1","VV_LEVEL_2","VV_LEVEL_3","VV_11","VV_12","VV_21","VV_22","VV_23","VV_31","VV_32","DEV_LEVEL_2","DEV_LEVEL_3","DEV_LEVEL_4","DEV_LEVEL_5","SVCS_LEVEL_2","SVCS_LEVEL_3","SVCS_LEVEL_4","SVCS_LEVEL_5","PRACTICE_AREAS","_PRACTICE_AREAS","Object","defineProperty","Name","Intent","Value","Id","LevelIds","1","2","3","4","5","AdditionalInfo","DevExclusive","SvcExclusive","Optional","PRACTICES","_PRACTICES","Statement","Level","Abbreviation","PracticeAreaID","PRACTICE_AREA_RELATIONSHIPS","_PRACTICE_AREA_RELATI","PRACTICES_AREAS_BY_MATURITY_LEVEL","DEV","SVC","VIEWS","_VIEWS","_MODEL_CONSTANTS$DEV_","_MODEL_CONSTANTS$DEV_2","PAD_37","RDM_26","_MODEL_CONSTANTS$DEV_3","_MODEL_CONSTANTS$DEV_4","_MODEL_CONSTANTS$SVCS","_MODEL_CONSTANTS$SVCS2","_MODEL_CONSTANTS$SVCS3","_MODEL_CONSTANTS$SVCS4","DEFAULT_QUESTIONS","_DEFAULT_QUESTIONS","getDefaultAPIHeaders","_callee","body","currentSession","_args","arguments","regenerator_default","a","wrap","_context","prev","next","length","undefined","Auth","sent","abrupt","headers","Content-Type","Authorization","idToken","jwtToken","stop","getNodeAPIPath","nodeInfo","apiType","concat","appraisalId","projectId","nodeId","Constants","USER_PATH","APPRAISAL_PATH","INTERVIEW_PATH","INTERVIEW_QUESTIONS_PATH","APPRAISAL_STATE_PATH","APPRAISAL_ITEM_PATH","APPRAISAL_EVIDENCE_PATH","API_PATH","sortPracticeAreas","practiceAreas","sort","b","id","modelContentUtils","getPracticeAreasFromView","view","returnNamesOnly","practiceAreaIds","keys","map","k","pa","name","getPracticeAreasFromAppraisalProjects","appraisalProjects","appraisalPracticeAreaIds","i","currentProject","j","push","Array","from","Set","getMaturityLevelFromView","match","emailUtils","validateEmailCase","event","charCode","String","fromCharCode","clipboardData","getData","RegExp","preventDefault","getCurrentDateTime","d","Date","hr","getHours","min","getMinutes","ampm","date","getDate","getMonth","getFullYear","useArray","initial","_useState","useState","_useState2","slicedToArray","value","setValue","add","useCallback","v","toConsumableArray","clear","removeById","arr","filter","removeIndex","index","splice","replace","replaceIndex","findIndex","el","newArrary","slice","getById","find","useInterval","callback","delay","savedCallback","useRef","useEffect","current","setInterval","clearInterval","LoadingComponent","_ref","isLoading","children","react_default","createElement","class","Spinner","animation","variant","style","borderTop","borderRight","borderBottom","borderLeft","HIGHLIGHT_YELLOW_ICON","index_es","icon","faCircle","color","size","HIGHLIGHT_CHARTREUSE_ICON","HIGHLIGHT_TURQUOISE_ICON","HIGHLIGHT_HOT_PINK_ICON","HIGHLIGHT_ROYAL_BLUE_ICON","HIGHLIGHT_DEFAULT_BUTTON_ICON","faPaintBrush","NOT_EXAMINED_ICON","NOT_EXAMINED_ICON_EVAL","NOT_YET_IMPLEMENTED_ICON","faEllipsisH","NOT_YET_IMPLEMENTED_ICON_EVAL","MAJOR_ISSUES_ICON","MAJOR_ISSUES_ICON_EVAL","MINOR_ISSUES_ICON","MINOR_ISSUES_ICON_EVAL","NO_ISSUES_ICON","NO_ISSUES_ICON_EVAL","DOES_NOT_MEET_ICON","DOES_NOT_MEET_ICON_EVAL","PARTIALLY_MEETS_ICON","faAdjust","PARTIALLY_MEETS_ICON_EVAL","LARGELY_MEETS_ICON","LARGELY_MEETS_ICON_EVAL","FULLY_MEETS_ICON","FULLY_MEETS_ICON_EVAL","HIGH_RISK_ICON","faChevronDown","HIGH_RISK_ICON_RATINGS","LOW_RISK_ICON","faChevronUp","LOW_RISK_ICON_RATINGS","UNSATISFIED_ICON","faPlay","rotation","UNSATISFIED_ICON_RATINGS","SATISFIED_ICON","SATISFIED_ICON_RATINGS","COPY_ICON","src","process","alt","height","width","PASTE_ICON","VALID_ICON","faThumbsUp","NOT_VALID_ICON","faThumbsDown","NOT_REVIEWED_ICON","faQuestion","DELETE_ICON","faTrash","ADD_ICON","faPlusCircle","EDIT_ICON","faEdit","SORT_UP","SORT_UP_ICON","faChevronCircleUp","title","SORT_DOWN","SORT_DOWN_ICON","faChevronCircleDown","CHECK_ICON","faCheck","X_ICON","faTimes","customIconContainerStyle","fontSize","customIconStyle","marginRight","customIconContainerStyle_Ratings","customIconStyle_Ratings","TWO_ICON","TWO_ICON_RATINGS","THREE_ICON","THREE_ICON_RATINGS","FOUR_ICON","FOUR_ICON_RATINGS","FIVE_ICON","FIVE_ICON_RATINGS","OUT_OF_SCOPE_ICON","OUT_OF_SCOPE_ICON_RATINGS","NOT_RATED_ICON","NOT_RATED_ICON_RATINGS","HIGHLIGHT_OPTIONS","label","PA_OPTIONS","PA_GROUP_OPTIONS","RATINGS_LEGEND_MAP","PRACTICES_OPTIONS","ICON_MAP","_ICON_MAP","PRACTICE_EVAL_ICON_MAP","_PRACTICE_EVAL_ICON_M","RATINGS_ICON_MAP","_RATINGS_ICON_MAP","HIGHLIGHT_COLOR_MAP","_HIGHLIGHT_COLOR_MAP","customStyles","_COMMC_OPERATION_ICON","_RAW_ICONS","indicatorSeparator","base","objectSpread","display","indicatorsContainer","menu","menuList","flexWrap","backgroundColor","TreeNode","props","node","state","rating","nodeRating","setNodeRating","highlightStyle","highlight","className","onDoubleClick","e","stopPropagation","react_select_browser_esm","isDisabled","disabled","isSearchable","options","isPractice","isGroup","components","Option","index_4322c0ed_browser_esm","styles","onChange","nodeRatingChanged","menuPlacement","href","onClick","handleNodeClicked","handleLinkClicked","TreePresenter","nodesDisabled","nodes","handleNodesChanged","handleNodeRatingChanged","react_virtualized_tree_lib_default","nodeMarginLeft","_ref2","rest","objectWithoutProperties","renderers","assign","iconsClassNameMap","collapsed","expanded","Tree_TreeNode","paddingLeft","MergeConflictModal","_useState3","_useState4","mergedText","setMergedText","textAreaStyle","borderBottomColor","borderRightColor","borderLeftColor","borderTopColor","canMerge","conflict","server","text","client","onSelectionChanged","Modal","show","showModal","Header","Title","require","modalTitleFragment","Row","Col","Body","FormGroup","controlId","FormLabel","type","defaultChecked","target","renderConflictContent","FormControl","readonly","as","checked","onFocus","Footer","Button","closeModal","merged","revNumber","handleMergeConflict","NetworkErrorModal","showNetworkErrorModal","bsSize","window","location","reload","Styles","styled","div","_templateObject","FETCH_INTERVAL","expandedStates","getPracticesForPracticeArea","practiceArea","maturityLevel","filtered","r","practices","practice","getRating","stateData","getRevNumber","getHighlight","getExpandedState","buildTreeNode","uuid","v1","buildTreeData","project","setNodes","setStateLoading","practiceAreaInfo","paNode","groups","currentPractices","practiceNodes","groupNode","getMaturityLevel","fetchData","_callee6","setAppraisals","setProjects","setSelectedAppraisal","setSelectedProject","setControlLoading","getProjectData","setShowNetworkErrorModal","appraisals","formattedAppraisals","storedAppraisalId","selectedAppraisal","_context6","t0","API","t1","t2","t3","t4","err","message","get","call","catch","appraisal_id","appraisal_name","appraisal_view","localStorage","getItem","setItem","console","log","t5","formatStateData","data","retVal","forEach","sd","node_id","node_state","revision_number","getStateData","_callee7","result","_context7","handleNodeRatingError","_callee8","localRating","selectedProject","setMergeConflictData","setShowMergeConflictModal","_context8","response","status","project_id","put","then","saveExpandedStates","renderMergeConflictContent","marginLeft","faIcon","Fragment","refreshTreeData","_callee9","_context9","TreeControl","controlLoading","_useState5","_useState6","_useState7","_useState8","stateLoading","projects","_useState9","_useState10","_useState11","_useState12","_useState13","_useState14","showMergeConflictModal","_useState15","_useState16","mergeConflictData","_x24","_x25","_x26","_x27","_getProjectData","apply","this","asyncToGenerator","mark","_callee5","currentAppraisalData","formattedProjectData","storedProjectId","_selectedProject","_context5","project_name","practice_areas","selectFirstNodeOnLoad","refreshTrigger","treeLoadingTrigger","handleSelectedAppraisalChanged","appraisal","newAppraisal","updateNodeInfo","sessionStorage","_x28","handleSelectedProjectChanged","_callee2","newProject","_context2","_x29","_ref3","_callee3","newRating","_context3","_x30","_x31","handleRatingMergeConflict","_ref4","_callee4","selection","_context4","_x32","_x33","setExpanded","child","newNodes","refreshTree","appraisalOptions","localeCompare","projectOptions","customSelectStyles","singleValue","option","control","boxShadow","outline","containers_MergeConflictModal","InputGroup","shadow","Prepend","minWidth","block","theme","borderRadius","colors","primary25","primary","Container","flexDirection","OverlayTrigger","overlay","Tooltip","background","borderColor","borderWidth","faAngleDoubleUp","faAngleDoubleDown","faRedo","presenters_LoadingComponent","iconSize","Tree_TreePresenter","presenters_NetworkErrorModal","HighlightColorPicker","highlightColor","setHighlightColor","nodeHighlight","onHighlightColorPicked","setNodeHighlight","clearable","ToggleButtonLoadingWrapper","onToggle","verticalAlign","marginBottom","fontWeight","react_toggle_button_lib_default","inactiveLabel","activeLabel","NodePageModelInfo_templateObject","NodePageModelInfo","practiceAffirmed","setPracticeAffirmed","affirmedLoading","setTreeControlLoading","onNodeHighlight","onPracticeAffirmed","refreshPage","_onHighlightColorPicked","toLowerCase","affirmed","updatePracticeAffirmed","objectName","key","abbreviation","substring","indexOf","NodePageModelInfo_Styles","sm","border","containers_HighlightColorPicker","_x","src_presenters_ToggleButtonLoadingWrapper","Table","responsive","whiteSpace","wordWrap","Finding_templateObject","Finding","finding","setFinding","handleFindingUpdated","findingTextRef","handleFindingTextChanged","prevState","_objectSpread2","handlePutFindingError","item_data","serverText","clientText","header","item_type","_x2","_x3","handleBlur","Finding_Styles","react_textarea_autosize_browser_esm","placeholder","minRows","maxRows","onBlur","Findings","findings","setFindings","presenters_Finding","notes","strengths","weaknesses","improvement_opportunities","md","esm_Image","bsPrefix","logo","fluid","rounded","position","bottom","checkBoxStyle","getItemState","EvidenceItem","item","updateSelected","isValid","setIsValid","isReviewed","setIsReviewed","isProcess","setIsProcess","selectedChkBox","locationKey","commentsKey","validKey","reviewedKey","isLinkable","isHyperlink","getStateString","itemIndex","validCode","reviewedCode","processCode","handleUpdateEvidenceState","newState","appraisal_evidence_id","evidence_notes","comments","evidence_fileName","fileName","evidence_path","evidence_state","toString","textAlign","selected","navigator","clipboard","writeText","faClipboard","maxWidth","placement","open","align","toggleIsValid","toggleIsReviewed","toggleIsProcess","EvidenceModal","modalState","setModalState","evidence","formatEvidenceData","actionMade","setActionMade","actionLoading","setActionLoading","locationError","setLocationError","fileNameError","setFileNameError","browseRef","autoFocus","React","createRef","handleModalStateChanged","files","path","includes","workProductName","handleClick","_body","_data","_body2","_data2","trim","titleFragment","post","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","fileNameStyle","fileNameTitle","locationStyle","locationTitle","backdrop","onHide","onEntered","focus","closeButton","ref","FormCheck","rows","role","aria-hidden","ConfirmDeleteModal","showDeleteModal","close","deleteQuestion","deleteImpact","deleteAction","Evidence_templateObject","Evidence","evidenceModalState","setEvidenceModalState","deleteLoading","setDeleteLoading","setShowDeleteModal","enabledStyle","pointerEvents","disabledStyle","handleDelete","items","del","handleReOrder","moveUp","newEvidence","_i","temp","_i2","_e","_temp","evidenceIds","reorder","handleCopyClicked","JSON","stringify","itemsAreSelected","singleItemSelected","reOrderUpDisabled","hasItemsSelected","reOrderDownDisabled","handlePasteClicked","_ref5","pasteItems","parse","wrappedEvidence","presenters_EvidenceItem","Evidence_Styles","bg","ButtonToolbar","ButtonGroup","rootClose","faCopy","faPaste","handleEvidenceEditClicked","faMinus","faArrowUp","faArrowDown","faPlus","tableLayout","maxHeight","overflow","presenters_ConfirmDeleteModal","src_containers_EvidenceModal","InterviewItem","interview","interviewSessions","chkBoxKey","questionKey","sessionsAndDurationRows","is","sessions","margin","interviewee","hours","question","InterviewsModal","setShowModal","formatInterviewData","interviews","okLoading","setOkLoading","questionError","setQuestionError","interviewSessionError","setInterviewQuestionError","questionText","setQuestionText","validateQuestionField","defaultQuestion","getDefaultQuestion","hasSelection","validateInterviewSessions","transformedSessions","selectedSessions","selectedSessionIds","interview_question_id","handleInterviewSessionSelectionChanged","interviewSession","currentChangedID","currentChangedStatus","validateIterviewSessionsOnChange","textAreaErrorStyle","isCheckboxes","Interviews_templateObject","Interviews","showInterviewsModal","setShowInterviewsModal","setModalTitleFragment","selectedInterviewRef","handleEditClicked","sis","deletedInterviews","deletedInterview","wrappedInterviews","presenters_InterviewItem","Interviews_Styles","containers_InterviewsModal","TabControl","evidenceLoading","interviewsLoading","Tabs","defaultActiveKey","Tab","eventKey","Pane","src_containers_Evidence","src_containers_Interviews","createFindingItem","apiId","nodePageFindings","setNodePageFindings","setFindingsLoading","setEvidenceLoading","setInterviewsLoading","setAffirmedLoading","formatFindingData","affirmedData","t18","formatInterviewSessionData","t19","t20","t21","t22","t23","t24","markedForDelete","interview_session_id","NodePage","nodeEvidence","nodeInterviews","appraisalInterviewSessions","findingsLoading","mergeConflictModalState","setMergeConflictModalState","appraisal_item_id","dirty","presenters_NodePageModelInfo","src_presenters_TabControl","presenters_Findings","mergeConflictHandler","mergeConflictRenderer","Home","setNodeInfo","setRefreshTrigger","setTreeLoadingTrigger","Tree_TreeControl","src_containers_NodePage","Image_templateObject","Image","Image_Styles","PASSWORD_HELP_TEXT","listStyleType","PASSWORD_PATTERN","PASSWORDS_SAME_HELP_TEXT","UpdatePasswordForm","password","setPassword","confirmPassword","setConfirmPassword","setIsLoading","isPasswordValid","setIsPasswordValid","isConfirmedPasswordValid","setIsConfirmedPasswordValid","infoBlockText","setInfoBlockText","helpBlockText","setHelpBlockText","validateField","fieldText","handleSubmit","oldPassword","handleUpdatePassword","handleSubmitWithEnter","Image_Image","Form","onSubmit","controlID","onKeyPress","keyCode","which","handleEnterPress","FormText","RESET_ERROR_TEXT","ResetPasswordModal","showResetModal","setShowResetModal","showFinishedModal","setShowFinishedModal","resetEmail","setResetEmail","resetCode","setResetCode","isEmailValid","setIsEmailValid","_useState17","_useState18","_useState19","_useState20","_useState21","_useState22","requestErrorText","setRequestErrorText","_useState23","_useState24","showConfirmationModal","tryHideModal","setShowConfirmationModal","resetPassword","onConfirmation","forgotPassword","code","handleResetCodeSendError","_resetPassword","forgotPasswordSubmit","handleResetError","onPaste","Login","username","setUserName","updatePasswordRequired","setUpdatePasswordRequired","showBadPasswordModal","setShowBadPasswordModal","showResetPasswordModal","setShowResetPasswordModal","cognitoUser","setCognitoUser","helpBlockState","setHelpBlockState","redirectToHomePage","newSession","userHasAuthenticated","history","handleChangeEmail","handleChangePassword","user","helpText","signIn","challengeName","visible","newPassword","completeNewPassword","handleForgotPassword","containers_UpdatePasswordForm","visibility","faExclamationTriangle","containers_ResetPasswordModal","APIResult","error","returnValue","classCallCheck","convertToFrontEnd","dataMapping","backEndItem","newItem","convertToBackEnd","frontEndItem","defaultValues","mappingKeys","mappingValues","values","DATA_MAPPING","address","contactInfo","isActive","DEFAULT_VALUES","OrgRepository","_this","resolved","arrayEquals","arrayOne","arrayTwo","l","APPRAISAL_DATA_MAPPING","organization","PROJECT_DATA_MAPPING","PA_DEFAULT_VALUES","SelectedForAdd","SelectedForRemove","MappedByAnyProject","getEditBody","beforeEdit","afterEdit","organization_id","added","bep","deleted","modified","foundProject","beforePAs","afterPAs","beforeName","afterName","AppraisalRepository","paDefaultValues","projectDefaultValues","getPracticeAreaInfo","_this2","newPa","projectItems","fullOrg","_this3","itemBefore","itemAfter","editBody","AppraisalStateRepository","UserTableItem","menuItems","orgs","o","Dropdown","Item","onSelect","handleOrgSelection","chkBoxId","labelId","dropDownId","Toggle","selectedOrg","Menu","email","DELETE_QUESTION","DELETE_IMAPCT","setOrgData","setUserData","setTableLoading","orgRepo","orgData","activeOrgs","userData","activeUsers","getAll","x","matchOrgItem","org","matchOrgName","user_id","Users","tableLoading","usersArray","orgsArray","itemsToRemove","itemToRemove","handleUpdateDelete","orgItem","ids","userId","orgId","split","_x4","userTableItems","u","UserItem","updateDelete","faUserMinus","NUM_ZERO","NUM_NINE","NUMPAD_0","NUMPAD_9","BACK_SPACE","MAX_LENGTH","TooltipConstants","NAME_TOOLTIP_1","NAME_TOOLTIP_2","NOT_CHANGED","OrganizationModal","isOkLoading","setIsOkLoading","hasValidationError","setHasValidationError","newOrg","_result","validateAdd","foundError","createOne","nameError","nameTooltip","validateEdit","editOrg","updateOne","addressError","addressTooltip","contactInfoError","contactInfoTooltip","clashes","nameValue","addressValue","contactInfoValue","errorStyle","defaultStyle","handleNameChange","handleAddressChange","onKeyDown","onCIKeyDown","test","substr","AsYouType","input","handleContactInfoChange","OrganizationItem","setIsActive","deleteChkboxKey","nameKey","activeKey","updateIsActive","toggleActive","DELETE_IMPACT","INITAL_MODAL_STATE","setData","apiData","Organizations","showDeletingModal","setShowDeletingModal","setItemBeingDeleted","itemDeleteStatus","setItemDeleteStatus","isOrgDeleting","setIsOrgDeleting","handleEdit","getOne","prevValue","uncheckInactive","onOrgEditted","tryCloseDeletingModal","cleanOrgAppraisals","_x5","_cleanOrgAppraisals","appraisalRepo","appraisalData","filteredAppraisals","itemApiPath","itemData","stateApiPath","_j","evidenceApiPath","evidenceData","_j2","interviewsApiPath","interviewsData","_j3","_body3","compound_id","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","deleteOne","updateSelectedOrg","orgTableItems","presenters_OrganizationItem","editOrgIcon","handleShowDeleteModal","deleteOrgIcon","addOrgIcon","containers_OrganizationModal","AppraisalTableItem","nameLabelId","viewLabelId","DeleteableListItem","listItemKey","labelKey","buttonKey","editButtonKey","displayText","onEditClicked","onDeleteClicked","AppraisalStateMachineBodies_templateObject","APPRAISAL_CONSTANTS","NAME_ERROR_TOOLTIP","CLASHING_APPRAISAL_TOOLTIP","ORG_ERROR_TOOLTIP","LEVEL_ERROR_TOOLTIP","PROJECT_ERROR_TOOLTIP","PROJECT_NAME_CLASH_TOOLTIP","PROJECT_NAME_ERROR_TOOLTIP","ADD_PROJECT_TOOLTIP","DELETE_PROJECT_QUESTION","LOWER_ML_QUESTION","REMOVE_SELECTED_PAS_QUESTION","REMOVE_ALL_PAS_QUESTION","AppraisalStateOne","editProjectError","setEditProjectError","newProjectName","setNewProjectName","showEditProjectModal","setShowEditProjectModal","showDeleteProjectModal","setShowDeleteProjectModal","showLowerMLModal","setShowLowerMLModal","projectSelectedForEdit","setProjectSelectedForEdit","projectSelectedForDeletion","setProjectSelectedForDeletion","currentMLForChange","setCurrentMLForChange","selectedMLForChange","setSelectedMLForChange","handleFormCheckboxesChanged","_e$target","setFormState","devSelected","svcSelected","filteredPracticeAreas","containsOrgRollup","addEnabled","formState","projectName","handleProjectAdded","projectError","projectTooltip","projectNameError","projectNameTooltip","handleShowEditProjectModal","hasAnyModalOpen","toggleModalOpen","tryCloseEditProjectModal","handleShowDeleteProjectModal","modalOpen","presenters_DeleteableListItem","availableOrgs","placeholderOrgOption","placeholderLevelOption","selectedLevel","level","editProjectTitle","editStyle","AppraisalStateMachineBodies_Styles","autofocusRef","inError","tooltip","checkAppraisalClashes","organizationError","organizationTooltip","handleNameChanged","orgTooltip","handleOrgChanged","inline","levelError","levelTooltip","projectNameInError","handleProjectNameChanged","handleProjectKeyPress","ListGroup","hasNameCollision","handleProjectNameFieldChanged","currentLevel","handleMaturityLevelDowngrade","AppraisalStateTwo","showRemoveSelectedPAsModal","setShowRemoveSelectedPAsModal","showRemoveAllPAsModal","setShowRemoveAllPAsModal","closeRemovePAModal","mappedStyle","availablePracticeAreas","projectPracticeAreas","getInitialPracticeAreas","ppa","handleProjectSelectionChanged","multiple","_loop","handleProjectPracticeAreaSelectionChanged","apa","selectedPAs","remainingPAs","handleAddSelectedPAsToProject","handleAddAllPAsToProject","availableSelected","handleAvailablePracticeAreaSelectionChanged","removing","remaining","AppraisalStateThree","_useState25","_useState26","getInitialOptionalPracticeAreas","_loop2","presenters_LoaderButton","loadingText","_ref$className","_ref$disabled","InterviewSessionTableItem","intervieweeKey","hoursKey","minutesKey","hoursValue","parts","Number","getMinutesFraction","minutesFraction","isNaN","minutesValue","minutes","updateState","totalHours","onHoursChanged","hoursDecimal","onMinutesChanged","InterviewSessionsModal_templateObject","filteredAfter","filteredBefore","bis","InterviewSessionsModal","hasError","setHasError","updateInterviewSessionState","handleOkClicked","snapshot","cleanInterviewQuestions","deletedSessions","affectedQuestions","updatedSessions","getInterviewQuestionsBySession","delegateYield","_getInterviewQuestionsBySession","sessionId","tableItems","presenters_InterviewSessionTableItem","InterviewSessionsModal_Styles","active","newIs","handleAddInterviewSession","faMinusCircle","striped","WizardFooter","nextButton","isNextLoading","nextDisabled","actionText","handleNextAction","prevVisible","float","handleStateChange","currentState","INITIAL_FORM_ONE_STATE","INIT_FORM_TWO_STATE","INIT_FORM_THREE_STATE","APPRAISAL_REF_RESET_STATE","getPracticeAreas","getViewStringFromState","formOneState","viewString","setAppraisalData","_context10","ad","matchedOrgItem","Appraisals","modalBody","modalFooter","setModalOpen","isItemDeleting","setIsItemDeleting","itemBeingDeleted","itemDeleteTitle","setItemDeleteTitle","itemDeleteButtonText","setItemDeleteButtonText","showCreateEditModal","setShowCreateEditModal","showClosePrompt","setShowClosePrompt","modalMachineState","setModalMachineState","modalTitle","setModalTitle","_useState27","_useState28","setFormOneState","_useState29","_useState30","formTwoState","setFormTwoState","_useState31","_useState32","formThreeState","setFormThreeState","_useState33","_useState34","finishLoading","setFinishLoading","_useState35","_useState36","showInterviewSessionsModal","setShowInterviewSessionsModal","_useState37","_useState38","showPAWarningModal","setShowPAWarningModal","_useState39","_useState40","projectsWithNoPA","setProjectsWithNoPA","practicesToCleanFromMLLower","interviewSessionsArray","appraisalRef","appraisalsArray","currentAppraisalProjects","availablePracticeAreasRef","availableOptionalPracticeAreas","availableOptionalPracticeAreasRef","editedAppraisalRef","interviewIdRef","sessionSnapshotRef","getOrgId","apiRepo","appraisalItem","closeCreateEditModal","hideClosePrompt","handleNextAppraisalAction","validateFormOneState","deselectPAs","mappedPractices","reduce","optionalPAs","nameVal","orgVal","foundClashingOrg","appraisalClashes","finishActionDisabled","mappedPracticesAbbr","requiredMappedAbbr","unique","handleFinishAppraisalAction","unMappedProjects","noPA","deletedProjects","_loop5","cleanUpDeletedProjects","newProjectData","newPracticeAreas","originalProject","originalPracticeAreas","deletedPracticeAreas","_loop6","cleanUpDeletedPracticeAreas","cleanUpDeletedPracticesFromMLLower","_x6","_cleanUpDeletedProjects","_j5","_body4","_j6","_body5","_j7","_body6","_x7","_x8","_x9","_cleanUpDeletedPracticeAreas","nodesToDelete","practicesToDelete","groupIds","_j8","_j9","nodeInfoToDelete","_k","_body7","_body8","interviewData","_k2","_body9","_x10","_x11","_x12","_x13","_cleanUpDeletedPracticesFromMLLower","deletedPractices","_k3","_body10","_body11","_k4","_body12","currentlySelectedProject","handlePreviousAppraisalAction","_loop7","handleEditAppraisal","internalAppraisal","typeRegex","levelMatches","typeMatches","exec","hasOrgSelected","handleInterviewSetup","currentInterviews","internal","hidePAWarningModal","appraisalTableItems","AppraisalItem","currentMaturityLevel","selectedMaturityLevel","nodeIdsToBeRemoved","allPractices","allPAs","groupToRemove","optionalPracticeAreas","Selected","_loop3","_loop4","presenters_WizardFooter","mappedPracticeAreas","foundPractice","editApprIcon","deleteApprIcon","addApprIcon","editInterviewSessions","dialogClassName","containers_InterviewSessionsModal","AdminView_templateObject","AdminView","setSelectedOrg","AdminView_Styles","containers_Organizations","containers_Appraisals","xs","paddingRight","containers_Users","NotFound","About_templateObject","About","About_Styles","Card","Img","Subtitle","Text","AdminRoute","C","component","cProps","react_router","render","session","isAdmin","to","pathname","search","setDataLoading","setUserEmail","userInfo","currentUserInfo","attributes","UserProfile","dataLoading","userEmail","Figure","Group","EditableProfile_templateObject","EditableProfile","EditableProfile_Styles","Label","column","Control","plaintext","readOnly","defaultValue","AuthenticatedRoute","UnauthenticatedRoute","UnconfirmedUser","LoginNavigationBar","Navbar","expand","Brand","brand","FindReplaceEvidenceModal","findTextError","setFindTextError","replaceTextError","setReplaceTextError","findText","setFindText","replaceText","setReplaceText","replacedCount","setReplacedCount","showReplacedModal","setShowReplacedModal","currentAppraisalId","apiPath","counter","evidencePath","newPath","onFindTextChanged","onReplaceTextChanged","GenerateRollupModal","rollupType","setRollupType","resultText","setResultText","showErrorModal","setShowErrorModal","practicesNotCharacterizedList","setPracticesNotCharacterizedList","practicesIncorrectlyCharacterizedList","setPracticesIncorrectlyCharacterizedList","rollUpTypeText","setRollUpTypeText","stateRepo","currentAppraisal","existingRollUpId","anyUncharacterized","anyInvalidCharacterizations","practicesNotCharacterized","practicesInvalidCharacterization","allAppraisalStateData","stateEntries","updatedProjects","updatedRollUpId","findingsData","currentPracticeArea","correspondingStateEntry","practiceState","join","newPA","nodeStateEntries","finalState","nodeStates","firstState","conflictingState","nodeFindingsEntries","improvementOps","notesRollUpItems","_i3","notesRollUpEntry","strengthRollUpItems","_loop8","_i4","strengthRollUpEntry","weaknessRollUpItems","_loop9","_i5","weaknessRollUpEntry","improvementOpRollUpItems","_loop10","_i6","improvementOpRollUpEntry","currentEntryProject","onAcknowledge","showClose","paddingBottom","aria-label","minHeight","ReportFragment","reportName","reportType","reportHeader","reportHeaderStyle","scopeHeader","scope","appraisalHeader","appraisalName","marginTop","_callee11","handleAppraisalChanged_FROM","handleAppraisalChanged_TO","_context11","CopyAppraisalDataPracticeModal","selectedAppraisalID_FROM","setSelectedAppraisalID_FROM","selectedProjectID_FROM","setSelectedProjectID_FROM","selectedPracticeAreaID_FROM","setSelectedPracticeArea_FROM","selectedPracticeID_FROM","setSelectedPractice_FROM","projects_FROM","practiceAreas_FROM","practices_FROM","selectedAppraisalID_TO","setSelectedAppraisalID_TO","selectedProjectID_TO","setSelectedProjectID_TO","selectedPracticeAreaID_TO","setSelectedPracticeArea_TO","selectedPracticeID_TO","setSelectedPractice_TO","projects_TO","practiceAreas_TO","practices_TO","modalOptionsState_FROM","setModalOptionsState_FROM","modalOptionsState_TO","setModalOptionsState_TO","showCopyingModal","setShowCopyingModal","areItemsCopying","setAreItemsCopying","itemCopyType","setItemCopyType","itemCopyStatus","handleProjectChanged_FROM","projectID","handlePracticeAreaChanged_FROM","practiceSet","handleProjectChanged_TO","handlePracticeAreaChanged_TO","_ref6","executeClick","_ref7","copyEvidence","copyInterviews","Notes","Strengths","Weaknesses","IOs","copyFindings","_ref8","_ref9","_ref10","_callee10","tryCloseCopyingModal","presenters_ReportFragment","padding","selectedOptions","getSelectedOptions","getAppraisalOptionsList_FROM","getProjectOptionsList_FROM","getPracticeAreasOptionsList_FROM","getPracticeOptionsList_FROM","getAppraisalOptionsList_TO","getProjectOptionsList_TO","getPracticeAreasOptionsList_TO","getPracticeOptionsList_TO","justifyContent","appraisals_FROM","appraisals_TO","CopyAppraisalDataPracticeAreaModal","setSelectedPracticeAreaID_FROM","selectedAppraisalLevel_FROM","setSelectedAppraisalLevel_FROM","selectedAppraisalName_FROM","setSelectedAppraisalName_FROM","selectedAppraisalType_FROM","setSelectedAppraisalType_FROM","selectedAppraisalLevel_TO","setSelectedAppraisalLevel_TO","modalOptionsState","setModalOptionsState","setItemCopyStatus","currentAppraisalType","fromAppraisalLevel","charAt","devExclusive","svcExclusive","possibleAppraisals","toAppraisalLevel","currentProjectName","usableProjects","currentPAs","highestAppraisalLevel","practiceList","currentNodeName","currentNodeId","CopyAppraisalDataProjectModal","fromAppraisalData","fromProject","toAppraisal","toAppraisalData","fromProjectName","projectToCopy","CopyAppraisalDataModal","selectedCopyLevel","setSelectedCopyLevel","setCopyEvidence","setCopyInterviews","copyNotes","setCopyNotes","copyStrengths","setCopyStrengths","copyWeaknesses","setCopyWeaknesses","copyIOs","setCopyIOs","copyOptions","setCopyOptions","showPracticeModal","setShowPracticeModal","showPracticeAreaModal","setShowPracticeAreaModal","showProjectModal","setShowProjectModal","ResetModal","handleCopyLevelChanged","Check","containers_CopyAppraisalDataPracticeModal","containers_CopyAppraisalDataPracticeAreaModal","containers_CopyAppraisalDataProjectModal","setAppraisalName","setCurrentAppraisalId","availableForSelection","ClearProjectInfoModal","showWarningModal","setShowWarningModal","warningText","setWarningText","clearNotes","setClearNotes","clearStrengths","setClearStrengths","clearWeaknesses","setClearWeaknesses","clearIOs","setClearIOs","clearCharacterizations","setClearCharacterizations","clearHighlights","setClearHighlights","onYesToClear","clearItemData","clearStateData","_clearItemData","clearItemNodeData","_clearStateData","clearStateNodeData","_clearItemNodeData","itemType","revNum","_x14","_x15","_x16","_clearStateNodeData","currentAffirmed","currentHighlight","newCharacterization","newHighlight","handleProjectChanged","getOptions","listOptionStyle","paddingTop","MultiSelectListReportOptions","listData","handleSelectionChanged","displayOptions","filterAvailable","ld","availableKey","listOptions","displayKey","CharacterizationsLegend","generateLegend","RatingsLegend","collection","borderBottomWidth","columns","currentRows","indent1Style","indent2Style","indent3Style","indent4Style","addProjectRow","reportRows","projectRow","addPARow","practiceAreaName","practiceAreaRow","addPracticeRow","hasCharacterization","statement","characterization","practiceFindingsRow","addPracticeFindingsRow","addBlankRow","addNotesRow","groupNotesRow","addPANotesRow","FindingsReportView","reportOptions","projectSubtitle","projectSubTitle","nextProject","getProjectSubTitle","projectList","hasProjectWithNoData","hasProject","ProjectName","dateTime","PAs","PAData","levelData","LevelData","Practices","PracticeName","formatAllNotesReportData","formatPracticeAreaReportData","formatPracticeGroupReportData","PracticeAreas","PracticeAreaName","HasCharacterizations","Characterization","HasNotes","HasStrengths","HasWeaknesses","HasIOs","formatPracticeReportData","gridTemplateColumns","gridTemplateRows","gridColumnStart","gridRowStart","noResults","lastIndexOf","InsertNoDataRow","setMaturityLevel","formattedPracticeAreas","FindingsReportModal","optionsVisible","setOptionsVisible","practiceOptionsVisible","setPracticeOptionsVisible","reportLoading","setReportLoading","csvLoading","setCSVLoading","showCSV","setShowCSV","setFindingsData","csvData","setCSVData","csvFilename","setCSVFilename","findingsScopeValue","setFindingsScopeValue","hasProjectSelected","setHasProjectSelected","hasPracticeAreaSelected","setHasPracticeAreaSelected","includeCharacterizations","setIncludeCharacterizations","includeNotes","setIncludeNotes","includeStrengths","setIncludeStrengths","includeWeaknesses","setIncludeWeaknesses","includeIOs","setIncludeIOs","showLevelOnePractices","setShowLevelOnePractices","getAllNotesData","_getAllNotesData","selectedProjects","selectedPracticeAreas","notesInfo","PANotes","hasAnyPAData","practiceAreaLevelIDs","hasPracticeData","hasLevelData","levelNotes","levelString","practiceGroupID","practiceNotes","getPracticeAreaNotesData","_getPracticeAreaNotesData","getPracticeGroupNotesData","_getPracticeGroupNotesData","_i7","z","done","getPracticeFindingsData","_x17","_getPracticeFindingsData","notesApiPath","findingsInfo","projectHasData","PAHasData","ios","practiceHasData","getFindingsData","handleGenerateReportClicked","_x18","handleGenerateCSVClicked","formatCSVData","_x19","csvRows","filename","getHeaderBasedOnPracticeOptions","csvRow","getCSVRowBasedOnOptions","PAName","row","cleanCSVData","entry","hasReportOptionSelected","presenters_MultiSelectListReportOptions","alignItems","allOptions","selectedProjectIds","currentOption","selectedProjectPracticeAreaIds","flat","anyPASelected","hidden","selectedPracticeAreaIds","react_csv","react_new_window_default","presenters_FindingsReportView","EvidenceSearchView","searchDetails","emptyProjects","practiceAreaData","practiceData","practiceName","EvidenceSearchModal","setEvidenceData","setSearchDetails","searchType","setSearchType","searchPhrase","setSearchPhrase","getEvidenceData","_getEvidenceData","findingsCount","allEvidenceData","generateReport","evidenceinfo","presenters_EvidenceSearchView","EvidenceMappingsReportView","includeComments","includePath","practiceEvidence","EvidenceMappingsReportModal","includeOnlyValidEvidence","setIncludeOnlyValidEvidence","includeOnlyProcesses","setIncludeOnlyProcesses","setIncludePath","setIncludeComments","practiceStatement","evidenceInfo","presenters_EvidenceMappingsReportView","QuestionsReportView","filterType","addBlankLines","addEvidence","reportData","questionNumber","questionCount","paData","questionData","formattedQuestionData","existingQuestion","generateSessionQuestionReport","sessionNames","generatePracticeAreaQuestionReport","setPracticeAreas","setInterviewSessionData","setInterviewQuestionData","switchOptions","interviewSessionData","interviewQuestionData","getInterviewSessionData","getInterviewQuestionData","InterviewQuestionsReportModal","filterValue","setFilterValue","setReportData","filterSelectionLabel","setFilterSelectionLabel","hasOptionSelected","setHasOptionSelected","setAddBlankLines","setAddEvidence","formattedOptions","questions","getInterviewQuestionsByNode","getSessionNamesFromQuestion","getSessionQuestionReportData","reportEntries","currentQuestions","getProjectName","getPracticeAreaQuestionReportData","getAppraisalEvidence","_getAppraisalEvidence","questionReportData","optionSelectionDisplayOptions","newOptions","presenters_QuestionsReportView","questionCountStyle","questionCountExceededStyle","headerCellStyle","InterviewQuestionCountReportView","currentQuestionCount","maxQuestions","currentQuestionCountStyle","tableHeadings","borderCollapse","borderSpacing","InterviewQuestionsCountReportModal","setInterviewData","_getInterviewSessionData","getInterviewData","_getInterviewData","interviewSessionInfo","interviewInfo","presenters_InterviewQuestionCountReportView","cellStyle","AffirmationCoverageReportView","affirmationData","includeLevel1","correspondingProjects","projectHeaders","practiceRows","practiceCells","correspondingPracticeData","hasQuestion","isAffirmed","totalCells","projectTotals","allPracticeAreaData","dataCount","affirmationCount","percentTotal","Math","round","allProjectsTotal","formatAffirmationData","AffirmationCoverageReportModal","setAffirmationData","setIncludeLevel1","getAffirmationData","_getAffirmationData","affirmationEntry","affirmationInfo","presenters_AffirmationCoverageReportView","totalPracticesByMaturity","getCellIcon","cellValue","PracticeComplianceReportView","practiceRanks","rowWidths","colHeaderStyle","tableRows","indexOffset","yMax","tableCells","cellColorStyle","newCell","firstCellContent","firstCell","unshift","newRow","levelRow","generateDataRows","PRACTICE_STATE_RANKS","Not Yet Implemented","Not Examined","Major Issues","Minor Issues","No Issues","Does Not Meet","Partially Meets","Largely Meets","Fully Meets","getPracticeOffset","abbrString","getPracticeAreaLevelCount","buildEmptyComplianceChartData","complianceData","currentLevel1PracticeCount","currentLevel2PracticeCount","currentLevel3PracticeCount","currentLevel4PracticeCount","currentLevel5PracticeCount","getMinState","buildComplianceChartData","previousComplianceData","firstPass","assocPractice","currentStateRank","practiceAreaIndex","practiceIndex","previousState","PracticeComplianceReportModal","displayValue","setDisplayValue","allReportData","reportIndex","eligibleProjects","excludingRollUp","relevantPAs","currentPA","complianceReportData","tabFormattedReportData","presenters_PracticeComplianceReportView","singlePageFormattedReportData","practiceAreaCellStyle","cellStyleLow","cellStyleMed","cellStyleHigh","cellStyleNotImp","cellStyleNotEx","getTotal","percentData","lowRisk","mediumRisk","highRisk","notImplemented","notExamined","getPercent","actual","total","toFixed","CompliancePercentReportView","totals","rowCells","practiceFullName","totalsCells","totalPracticesForMaturity","CompliancePercentReportModal","presenters_CompliancePercentReportView","getCharacterizationIcon","RatingsReportView","ratingsData","paStates","State","currentLevelData","correspondingLevelData","formatRatingsReportData","RatingsReportModal","modalMessage","setModalMessage","showMessageModal","setShowMessageModal","setRatingsData","rollupId","rollUpProject","paStateData","paState","levelIds","availableLevels","currentLevelId","levelStateData","levelState","allProjects","hasRollup","presenters_RatingsReportView","setEvidence","getAppraisalFindings","getAppraisalStatesByProject","SummaryView","summaryColumns","setSummaryColumns","getSummaryData","_getSummaryData","summaryEntries","projectIndex","projectSpecificPracticeAreas","hasEvidence","hasStrengths","hasWeaknesses","hasIOs","_l","_l2","getIcon","summaryData","summaryRows","alignContent","setOrgName","FindingsPresentationModal","orgName","presentationType","setPresentationType","shadowStyle","angle","blur","offset","headerOpts","y","w","h","fill","allSlides","currentSlide","currentY","_generateReport","rollUpData","pptGenerator","addTitleSlide","pptxgen","addPracticeAreaSlide","addText","bold","addFindings","addHeader","addFooters","writeFile","addSlide","presentationTypeText","practiceAreaId","valign","findingsName","findingsCollection","yModifier","yNewLineModifier","slides","addImage","pptBottom","pageNumberText","shape","ShapeType","rect","DefaultNavigationBar_templateObject","DefaultNavigationBar","showFindReplaceModal","setShowFindReplaceModal","showEvidenceSearchModal","setShowEvidenceSearchModal","showGenerateRollupModal","setShowGenerateRollupModal","showCopyAppraisalDataModal","setShowCopyAppraisalDataModal","showClearProjectInfoModal","setshowClearProjectInfoModal","showFindingsModal","setShowFindingsModal","showEvidenceMappingsModal","setShowEvidenceMappingsModal","showInterviewQuestionsModal","setShowInterviewQuestionsModal","showInterviewQuestionsCountModal","setShowInterviewQuestionsCountModal","showAffirmationCoverageModal","setShowAffirmationCoverageModal","showPracticeComplianceModal","setShowPracticeComplianceModal","showCompliancePercentModal","setShowCompliancePercentModal","showRatingsModal","setShowRatingsModal","showSummaryView","setShowSummaryView","showFindingsPresentationModal","setShowFindingsPresentationModal","DefaultNavigationBar_Styles","aria-controls","Collapse","Nav","Link","NavDropdown","openSummaryView","handleCopyAppraisalDataClicked","handleEvidenceSearchClicked","handleFindReplaceClicked","handleGenerateOrganizationalRollupClicked","handleClearProjectInformationClicked","openFindingsReport","openFindingsPresentation","openEvidenceMappingsReport","openInterviewQuestionsReport","openInterviewQuestionsCountReport","openAffirmationCoverageReport","openPracticeComplianceReport","openCompliancePercentReport","openRatingsReport","onLogoutClicked","containers_EvidenceSearchModal","containers_FindReplaceEvidenceModal","containers_GenerateRollupModal","containers_CopyAppraisalDataModal","containers_ClearProjectInfoModal","containers_FindingsReportModal","containers_EvidenceMappingsReportModal","containers_InterviewQuestionsReportModal","containers_InterviewQuestionsCountReportModal","containers_AffirmationCoverageReportModal","containers_PracticeComplianceReportModal","containers_CompliancePercentReportModal","containers_RatingsReportModal","containers_SummaryView","containers_FindingsPresentationModal","Layout","ChangePasswordForm","existingPassword","setExistingPassword","isExistingPasswordValid","setIsExistingPasswordValid","submitError","setSubmitError","showSuccessModal","setShowSuccessModal","currentAuthenticatedUser","changePassword","SecondaryNavigationBar_templateObject","SecondaryNavigationBar","SecondaryNavigationBar_Styles","Routes","childProps","currentPath","react_router_dom","LoginNavigationBar_LoginNavigationBar","endsWith","DefaultNavigationBar_DefaultNavigationBar","SecondaryNavigationBar_SecondaryNavigationBar","Layout_Layout","exact","withRouter","isAuthenticating","setIsAuthenticating","setSession","setIsAdmin","setOrgId","adminGroup","payload","g","hasOwnProperty","fetchAuthenticationState","_session","handleLogout","signOut","Routes_Routes","Boolean","hostname","Amplify","configure","mandatorySignIn","userPoolId","identityPoolId","userPoolWebClientId","endpoints","endpoint","ReactDOM","src_App","document","getElementById","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.7de0fb53.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/icon.8f8409e1.png\";","module.exports = __webpack_public_path__ + \"static/media/avatar.5effe36b.png\";","module.exports = __webpack_public_path__ + \"static/media/node-page-bottom.7f2e237b.png\";","module.exports = __webpack_public_path__ + \"static/media/icon_cropped.7a1da9fe.png\";","module.exports = __webpack_public_path__ + \"static/media/org-add.68e19cb7.png\";","module.exports = __webpack_public_path__ + \"static/media/org-delete.848cc391.png\";","module.exports = __webpack_public_path__ + \"static/media/org-edit.aefa2163.png\";","module.exports = __webpack_public_path__ + \"static/media/appr-add.010d4171.png\";","module.exports = __webpack_public_path__ + \"static/media/appr-delete.97e79bce.png\";","module.exports = __webpack_public_path__ + \"static/media/appr-edit.4370e299.png\";","module.exports = __webpack_public_path__ + \"static/media/interview-edit.79030377.png\";","module.exports = __webpack_public_path__ + \"static/media/pptBottom.f6891584.png\";","module.exports = __webpack_public_path__ + \"static/media/page-not-found.3d71a77c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/aboutImage.caaa73bc.jpg\";","const region = \"us-east-1\";\r\n\r\nconst devCognito = {\r\n REGION: region,\r\n USER_POOL_ID: \"us-east-1_IxHHgdgzh\",\r\n APP_CLIENT_ID: \"6d7fuc91i3l2kjm4tc7mclga94\",\r\n IDENTITY_POOL_ID: \"us-east-1:695352fd-3280-4a54-af4a-8278bee23bfb\"\r\n}\r\n\r\nconst joshdevCognito = {\r\n REGION: region,\r\n USER_POOL_ID: \"us-east-1_FhL7CKWg5\",\r\n APP_CLIENT_ID: \"71m5or5jj36rki3ps6571q5l34\",\r\n IDENTITY_POOL_ID: \"us-east-1:b262d64d-dacf-4fa3-bb7d-ee7f0e56ca4c\"\r\n}\r\n\r\nconst prodCognito = {\r\n REGION: region,\r\n USER_POOL_ID: \"us-east-1_ULZekzRmT\",\r\n APP_CLIENT_ID: \"5852k1j0thoqbnhijmv750j3uj\",\r\n IDENTITY_POOL_ID: \"us-east-1:2a3f0681-aa39-46cd-9ca4-61689aad1e4c\"\r\n}\r\n\r\nconst dev = {\r\n apiGateway: {\r\n REGION: region,\r\n URL: \"https://llkja281ql.execute-api.us-east-1.amazonaws.com/dev\"\r\n },\r\n cognito: devCognito\r\n}\r\n\r\nconst prod = {\r\n apiGateway:{\r\n REGION: region,\r\n URL: \"https://697stk66c5.execute-api.us-east-1.amazonaws.com/prod\"\r\n },\r\n cognito: prodCognito\r\n};\r\n\r\nconst samDev = {\r\n apiGateway:{\r\n apiGateway:{\r\n REGION: region,\r\n URL: \"https://3fjn6h3500.execute-api.us-east-1.amazonaws.com/samdev\"\r\n }\r\n },\r\n cognito: devCognito\r\n};\r\n\r\nconst joshDev = {\r\n apiGateway:{\r\n REGION: region,\r\n URL:\"https://ewcqsnsl95.execute-api.us-east-1.amazonaws.com/joshdev\"\r\n },\r\n cognito: joshdevCognito\r\n}\r\n\r\nlet config;\r\nswitch(process.env.REACT_APP_STAGE){\r\n case \"dev\":\r\n config = dev;\r\n break;\r\n case \"prod\":\r\n config = prod;\r\n break;\r\n case \"samdev\":\r\n config = samDev;\r\n break;\r\n case \"joshdev\":\r\n config = joshDev;\r\n break;\r\n default:\r\n config = dev;\r\n break;\r\n}\r\n\r\nexport default config;","const MODEL_CONSTANTS = {\r\n CAR: 'CAR', //Causal Analysis and Resolution practice area\r\n CAR_LEVEL_1: 'cd8647fd-ed3c-4091-bfa4-66e63039e51f', //CAR Group ids\r\n CAR_LEVEL_2: '13a88d46-29b7-4fb7-b3c4-aaaedcb9954b',\r\n CAR_LEVEL_3: 'db76df43-85c1-4960-bce6-bb6023b6a0c1',\r\n CAR_LEVEL_4: '5afcad8c-61f6-4e55-adc7-900fd1b51d53',\r\n CAR_LEVEL_5: '5f4918d0-cff6-45c5-9829-7fc391fd1c42',\r\n CAR_11: '754e9634-8489-11e9-bc42-526af7764f64', //Causal Analysis and Resolution practices\r\n CAR_21: '45f259c2-848c-11e9-bc42-526af7764f64',\r\n CAR_22: '4c8db6aa-848c-11e9-bc42-526af7764f64',\r\n CAR_31: '5129ecce-848c-11e9-bc42-526af7764f64',\r\n CAR_32: '55ee9af2-848c-11e9-a159-526af7764f64',\r\n CAR_33: '59a37046-848c-11e9-bc42-526af7764f64',\r\n CAR_34: '5d91e5d4-848c-11e9-bc42-526af7764f64',\r\n CAR_35: '62ca302e-848c-11e9-bc42-526af7764f64',\r\n CAR_41: '667cd94c-848c-11e9-bc42-526af7764f64',\r\n CAR_42: '6cc80862-848c-11e9-bc42-526af7764f64',\r\n CAR_51: '75f0d748-848c-11e9-bc42-526af7764f64',\r\n CM: 'CM', //Configuration Mangement practice area\r\n CM_LEVEL_1: '75b3342a-9d2f-4427-85ec-5a43450e4774',\r\n CM_LEVEL_2: '8addaa71-7778-4894-adfe-a63d7503cbdfv',\r\n CM_11: 'be140b96-849e-11e9-bc42-526af7764f64', //Configuration Mangement practices\r\n CM_21: 'c1e0ef96-849e-11e9-bc42-526af7764f64',\r\n CM_22: 'c53d501c-849e-11e9-bc42-526af7764f64',\r\n CM_23: 'c99f1a78-849e-11e9-bc42-526af7764f64',\r\n CM_24: 'cc79185c-849e-11e9-bc42-526af7764f64',\r\n CM_25: 'cfb9744e-849e-11e9-a159-526af7764f64',\r\n CM_26: 'd397a478-849e-11e9-bc42-526af7764f64',\r\n CONT: 'CONT', //Continuity practice area\r\n CONT_LEVEL_1: 'a8d093a3-0b07-4a21-8489-c6e205b68c9c',\r\n CONT_LEVEL_2: '722b80b4-7f59-481a-9694-7add6c1b8d7d',\r\n CONT_LEVEL_3: '7ec24063-d54c-4fbf-9b33-d433243c5f38',\r\n CONT_11: 'f49572ca-84a0-11e9-a159-526af7764f64', //Continuity practices\r\n CONT_21: 'f8189dfa-84a0-11e9-bc42-526af7764f64',\r\n CONT_22: 'fbb85ea0-84a0-11e9-a159-526af7764f64',\r\n CONT_23: '007cb1c0-84a1-11e9-bc42-526af7764f64',\r\n CONT_31: '097f02c8-84a1-11e9-bc42-526af7764f64',\r\n CONT_32: '0dee38d8-84a1-11e9-bc42-526af7764f64',\r\n CONT_33: '11048158-84a1-11e9-bc42-526af7764f64',\r\n DAR: 'DAR', // Decision Analysis and Resolution Practice Area\r\n DAR_LEVEL_1: '97645143-1edb-4a7b-a661-e6755d61a744',\r\n DAR_LEVEL_2: 'c6a466b4-f9bb-4e3e-82e1-0e2a635f1085',\r\n DAR_LEVEL_3: '41ea4d24-3246-4a2d-a930-6e5783a6be30',\r\n DAR_11: '56ea0ce0-84a3-11e9-bc42-526af7764f64', //Decision Analysis and Resolution Practices\r\n DAR_12: '599a215a-84a3-11e9-bc42-526af7764f64',\r\n DAR_21: '5ca69e0a-84a3-11e9-bc42-526af7764f64',\r\n DAR_22: '5fb47d6a-84a3-11e9-bc42-526af7764f64',\r\n DAR_23: '63048c3a-84a3-11e9-bc42-526af7764f64',\r\n DAR_24: '66773796-84a3-11e9-bc42-526af7764f64',\r\n DAR_25: '6a75bfac-84a3-11e9-bc42-526af7764f64',\r\n DAR_31: '6d59bb24-84a3-11e9-bc42-526af7764f64',\r\n EST: 'EST', //Estimation Pratice Area\r\n EST_LEVEL_1: '3f5319d4-b61b-4a60-af36-5f3f57c7f997',\r\n EST_LEVEL_2: '4c2c6555-de36-4c27-bd34-fd493fb8f986',\r\n EST_LEVEL_3: 'b51866df-ef4d-49f1-b0f1-a097bf82e189',\r\n EST_11: '7e6284ee-84aa-11e9-bc42-526af7764f64', //Estimation practices\r\n EST_21: '817070e2-84aa-11e9-a159-526af7764f64',\r\n EST_22: '8445ef86-84aa-11e9-bc42-526af7764f64',\r\n EST_23: '883714ee-84aa-11e9-bc42-526af7764f64',\r\n EST_31: '8b24bd00-84aa-11e9-bc42-526af7764f64',\r\n EST_32: '8e867722-84aa-11e9-bc42-526af7764f64',\r\n EVSD: 'EVSD', //EVSD Practice Area\r\n EVSD_LEVEL_1: 'e876d107-e60c-4674-8529-fa0aa02fab77',\r\n EVSD_LEVEL_2: '47ccfa21-0c32-4d0f-af94-e253ed561c92',\r\n EVSD_LEVEL_3: '43c9a973-d602-4065-b87b-f3c287b598bc',\r\n EVSD_11: '5693e4d1-87a0-4dc6-9bf3-5d23637dd4c8',\r\n EVSD_12: 'e6733deb-d514-4957-a73a-b4523a34449d',\r\n EVSD_21: 'ad6efb03-17c9-4864-b459-d9a04e58e26d',\r\n EVSD_22: '76ba6ca0-9117-47e5-b383-624c481d546c',\r\n EVSD_31: '37865429-96ac-4fa0-9e07-a90808870bf3',\r\n EVSD_32: '70d5e6a9-cf5e-4931-9392-3c46ee067b97',\r\n EVSD_33: '598e7906-3fb9-487f-a481-f3cc40f3eec5',\r\n GOV: 'GOV', //Governace Practice Area\r\n GOV_LEVEL_1: '2fc6dc43-4652-4097-943e-8691550ea083',\r\n GOV_LEVEL_2: 'feed0109-52a7-4158-bd6a-b9338adb12d7',\r\n GOV_LEVEL_3: 'ece4dd3b-83ce-47a3-b632-8ba0dfa88dff',\r\n GOV_LEVEL_4: '5f90155c-48c0-44e4-84fd-01c69bfc1750',\r\n GOV_11: '5f820cde-84af-11e9-bc42-526af7764f64', //Governance Practices\r\n GOV_21: '6577997e-84af-11e9-a159-526af7764f64',\r\n GOV_22: '68e7f112-84af-11e9-bc42-526af7764f64',\r\n GOV_23: '6cb4f204-84af-11e9-a159-526af7764f64',\r\n GOV_24: '7055f3ea-84af-11e9-bc42-526af7764f64',\r\n GOV_31: '74fb197a-84af-11e9-a159-526af7764f64',\r\n GOV_32: '78b5f544-84af-11e9-bc42-526af7764f64',\r\n GOV_41: 'f8778c10-84b0-11e9-bc42-526af7764f64',\r\n II: 'II', //Implementation Infrastructure Practice Area\r\n II_LEVEL_1: '7b489ed8-a80b-4ed6-a5b6-64da1057cc51',\r\n II_LEVEL_2: 'c581c15c-e0c7-4947-9e1f-319f6204a371',\r\n II_LEVEL_3: 'ab88ce7b-e280-4761-b2d9-0a81b203effe',\r\n II_11: 'eeb3468c-84b1-11e9-bc42-526af7764f64', //Implementation Infrastruction practices\r\n II_21: 'f45a137c-84b1-11e9-bc42-526af7764f64',\r\n II_22: 'f7fd9d0a-84b1-11e9-bc42-526af7764f64',\r\n II_31: 'facc3776-84b1-11e9-bc42-526af7764f64',\r\n II_32: 'fe03049c-84b1-11e9-a159-526af7764f64',\r\n II_33: '00b58ba6-84b2-11e9-bc42-526af7764f64',\r\n IRP: 'IRP', //Incident Response and Prevention Practice Area\r\n IRP_LEVEL_1: '9b902f7a-4654-470b-880f-6c6fcfe7143e',\r\n IRP_LEVEL_2: '4975e5d6-695d-40cd-b814-6dfeb3edeaa5',\r\n IRP_LEVEL_3: '27226499-72d8-44c6-9d4b-f56bdd88b6cb',\r\n IRP_11: '9af8936e-84b4-11e9-bc42-526af7764f64', //Incident Response and Prevention practices\r\n IRP_21: '9efc56f8-84b4-11e9-bc42-526af7764f64', \r\n IRP_22: 'a2451746-84b4-11e9-bc42-526af7764f64',\r\n IRP_23: 'a57ec786-84b4-11e9-a159-526af7764f64',\r\n IRP_31: 'a85d0d46-84b4-11e9-bc42-526af7764f64',\r\n IRP_32: 'ab94da98-84b4-11e9-bc42-526af7764f64',\r\n MPM: 'MPM', // Managing Performance and Measurement Practice Area\r\n MPM_LEVEL_1: '042f6562-831b-45bb-8513-91725918c4eb',\r\n MPM_LEVEL_2: '88de750a-bc67-4013-9251-2fe9b1953cd7',\r\n MPM_LEVEL_3: '15f52a34-5b71-4982-a51d-7c9bbdb14c73',\r\n MPM_LEVEL_4: '2bf6ea0b-9b4c-4f56-abb2-a83c4295e322',\r\n MPM_LEVEL_5: 'c0bc3b80-c695-46cf-813a-9482aa01b024',\r\n MPM_11: 'd007a80e-84b6-11e9-bc42-526af7764f64', // Managing Performance and Measurement practices\r\n MPM_12: 'd5849f6c-84b6-11e9-a159-526af7764f64',\r\n MPM_21: '988bd14c-84b7-11e9-bc42-526af7764f64',\r\n MPM_22: 'd8623ba4-84b6-11e9-bc42-526af7764f64',\r\n MPM_23: 'db4b7aa6-84b6-11e9-bc42-526af7764f64',\r\n MPM_24: 'dde7ec7c-84b6-11e9-bc42-526af7764f64',\r\n MPM_25: 'e0ef4582-84b6-11e9-bc42-526af7764f64',\r\n MPM_26: 'e3ba75de-84b6-11e9-bc42-526af7764f64',\r\n MPM_31: 'e704ac8c-84b6-11e9-bc42-526af7764f64',\r\n MPM_32: 'e98efbf6-84b6-11e9-a159-526af7764f64',\r\n MPM_33: 'ec60a564-84b6-11e9-bc42-526af7764f64',\r\n MPM_34: 'f03bc88a-84b6-11e9-a159-526af7764f64',\r\n MPM_35: 'f2cbf322-84b6-11e9-a159-526af7764f64',\r\n MPM_36: 'fbb09ad8-84b6-11e9-bc42-526af7764f64',\r\n MPM_41: 'fe8c5a4e-84b6-11e9-bc42-526af7764f64',\r\n MPM_42: '02499eb2-84b7-11e9-bc42-526af7764f64',\r\n MPM_43: '0555a254-84b7-11e9-bc42-526af7764f64',\r\n MPM_44: '07dda238-84b7-11e9-bc42-526af7764f64',\r\n MPM_45: 'fcc6a04e-84ba-11e9-a159-526af7764f64',\r\n MPM_51: '0af78fba-84b7-11e9-a159-526af7764f64',\r\n MPM_52: '109b6694-84b7-11e9-a159-526af7764f64',\r\n MPM_53: '1551432a-84b7-11e9-bc42-526af7764f64',\r\n MC: 'MC', //Monitoring and Control Practice Area\r\n MC_LEVEL_1: '3640c593-4097-4d09-888a-66e0002e5ad6',\r\n MC_LEVEL_2: 'cfee9a9e-6ec8-4dfc-9e7b-beb625a8dc74',\r\n MC_LEVEL_3: 'bc38d6d0-6269-4f5e-a88b-30499ff67558',\r\n MC_11: '5952dc40-84bd-11e9-a159-526af7764f64', //Monitoring and Control practices\r\n MC_12: 'b944592a-84be-11e9-bc42-526af7764f64',\r\n MC_21: '5eeffe1c-84bd-11e9-bc42-526af7764f64',\r\n MC_22: '6449528c-84bd-11e9-bc42-526af7764f64',\r\n MC_23: '670ae846-84bd-11e9-bc42-526af7764f64',\r\n MC_24: '6a1d8304-84bd-11e9-bc42-526af7764f64',\r\n MC_31: '6d019060-84bd-11e9-bc42-526af7764f64',\r\n MC_32: 'd336f168-84bd-11e9-bc42-526af7764f64',\r\n MC_33: 'd65bbdba-84bd-11e9-bc42-526af7764f64',\r\n MC_34: 'd914ce02-84bd-11e9-bc42-526af7764f64',\r\n OT: 'OT', //Organizational Training Practice Area\r\n OT_LEVEL_1: '88037568-eaa3-40a5-b380-0a78e21f5dc5v',\r\n OT_LEVEL_2: '590999dc-ead0-4827-b981-ad15b08df08d',\r\n OT_LEVEL_3: '9e780d91-2d2f-47e9-8acd-223557fe1969',\r\n OT_11: '90c2c066-84c0-11e9-bc42-526af7764f64', //Organizational Training practices\r\n OT_21: '96d7e486-84c0-11e9-a159-526af7764f64',\r\n OT_22: '9a3df8cc-84c0-11e9-a159-526af7764f64',\r\n OT_31: '9e1714d8-84c0-11e9-bc42-526af7764f64',\r\n OT_32: 'a154b15a-84c0-11e9-bc42-526af7764f64',\r\n OT_33: 'a40e464a-84c0-11e9-bc42-526af7764f64',\r\n OT_34: 'a6e75dfc-84c0-11e9-bc42-526af7764f64',\r\n OT_35: 'aa45d76c-84c0-11e9-a159-526af7764f64',\r\n OT_36: 'ad8e21f4-84c0-11e9-bc42-526af7764f64',\r\n PR: 'PR', //Peer Review Practice Area\r\n PR_LEVEL_1: 'a7acfba1-6fde-44eb-ae5d-7e269d719038',\r\n PR_LEVEL_2: 'cb4c9caa-8e19-47f7-9d02-bbbb510869fa',\r\n PR_LEVEL_3: 'ddc0c0df-f9fc-4578-b46f-24b9d58841a1v',\r\n PR_11: '7c6ace22-84c2-11e9-bc42-526af7764f64', //Peer Review practices\r\n PR_21: '7fa2c450-84c2-11e9-bc42-526af7764f64',\r\n PR_22: '824e7686-84c2-11e9-a159-526af7764f64',\r\n PR_23: '853387ce-84c2-11e9-bc42-526af7764f64',\r\n PR_24: '88f13848-84c2-11e9-bc42-526af7764f64',\r\n PR_31: '903b92e2-84c2-11e9-bc42-526af7764f64',\r\n PLAN: 'PLAN', //Planning practice area\r\n PLAN_LEVEL_1: '725e1eb8-a4fc-43d8-b9e8-7444cb5d82ee',\r\n PLAN_LEVEL_2: 'ad018ddf-03a0-40db-87a5-efb6779cdf84',\r\n PLAN_LEVEL_3: '24bd4c64-3eda-4319-9a49-b021a5912bf6',\r\n PLAN_LEVEL_4: '989fef35-281b-4e60-b547-e0129d331875',\r\n PLAN_11: '821621d8-84c6-11e9-bc42-526af7764f64', //Planning practices\r\n PLAN_12: '84e3eff8-84c6-11e9-bc42-526af7764f64',\r\n PLAN_21: '87a0ddbe-84c6-11e9-bc42-526af7764f64',\r\n PLAN_22: '8cd84b3c-84c6-11e9-bc42-526af7764f64',\r\n PLAN_23: '90b2c4a8-84c6-11e9-bc42-526af7764f64',\r\n PLAN_24: '938683cc-84c6-11e9-bc42-526af7764f64',\r\n PLAN_25: '969f44a4-84c6-11e9-bc42-526af7764f64',\r\n PLAN_26: '99c7e6fe-84c6-11e9-bc42-526af7764f64',\r\n PLAN_27: '9cf01e5a-84c6-11e9-bc42-526af7764f64',\r\n PLAN_28: '9fe941ea-84c6-11e9-a159-526af7764f64',\r\n PLAN_31: 'a239674a-84c6-11e9-bc42-526af7764f64',\r\n PLAN_32: 'a473f8fe-84c6-11e9-bc42-526af7764f64',\r\n PLAN_33: 'a978c046-84c6-11e9-bc42-526af7764f64',\r\n PLAN_34: 'ac922ec0-84c6-11e9-bc42-526af7764f64',\r\n PLAN_41: 'afe8f41e-84c6-11e9-bc42-526af7764f64',\r\n PAD: 'PAD', //Process Asset Development practice area\r\n PAD_LEVEL_1: '2a58b0db-3734-4649-bc6b-7fd1771ea93f',\r\n PAD_LEVEL_2: '8685a33f-f100-46c2-bfe0-b45f14d8ff68',\r\n PAD_LEVEL_3: '952acf19-8402-4399-bf14-8c1cbafdf4ea',\r\n PAD_11: '972e8320-84cc-11e9-bc42-526af7764f64', //Process Asset Development practices\r\n PAD_21: '99f9e9aa-84cc-11e9-bc42-526af7764f64',\r\n PAD_22: '9cbf4e8c-84cc-11e9-bc42-526af7764f64',\r\n PAD_23: 'a0b62f10-84cc-11e9-bc42-526af7764f64',\r\n PAD_31: 'a4353dca-84cc-11e9-bc42-526af7764f64',\r\n PAD_32: 'a8e1b7a4-84cc-11e9-bc42-526af7764f64',\r\n PAD_33: 'ac5a202e-84cc-11e9-bc42-526af7764f64',\r\n PAD_34: 'af60b404-84cc-11e9-bc42-526af7764f64',\r\n //PAD_35: 'b2702ddc-84cc-11e9-bc42-526af7764f64', //V2.0 PAD 3.5 was removed, renumbering 3.6 and 3.7\r\n PAD_35: 'b5f930de-84cc-11e9-bc42-526af7764f64', //V2.0 PAD 3.6 (renumbered)\r\n PAD_36: 'b99ae9d0-84cc-11e9-bc42-526af7764f64', //V2.0 PAD 3.7 (renumbered)\r\n PCM: 'PCM', //Process Management practice area\r\n PCM_LEVEL_1: 'd68d9dbd-27d1-4633-b265-0734c12076bf',\r\n PCM_LEVEL_2: 'edf6a9c5-e94d-4e7f-9976-d29b7f947be7',\r\n PCM_LEVEL_3: '2dd9e767-8022-458d-a750-45332d9a43a2',\r\n PCM_LEVEL_4: '7ea65856-5e46-4fba-b522-49e8bd1f33b4',\r\n PCM_11: '0491c1fa-84cf-11e9-bc42-526af7764f64', //Process Management practices\r\n PCM_12: '07783a20-84cf-11e9-bc42-526af7764f64',\r\n PCM_13: '0a1489d2-84cf-11e9-bc42-526af7764f64',\r\n PCM_21: '0d0ddf08-84cf-11e9-bc42-526af7764f64',\r\n PCM_22: '103d2292-84cf-11e9-a159-526af7764f64',\r\n PCM_31: '13228268-84cf-11e9-bc42-526af7764f64',\r\n PCM_32: '1669cc06-84cf-11e9-bc42-526af7764f64',\r\n PCM_33: '1a2cb22c-84cf-11e9-bc42-526af7764f64',\r\n PCM_34: '1d491194-84cf-11e9-bc42-526af7764f64',\r\n PCM_35: '213e7398-84cf-11e9-bc42-526af7764f64',\r\n PCM_36: '2419f79a-84cf-11e9-bc42-526af7764f64',\r\n PCM_41: '278e0fec-84cf-11e9-bc42-526af7764f64',\r\n PQA: 'PQA', //Process Quality Assurance practice area\r\n PQA_LEVEL_1: 'cb1f6581-0e81-4687-9dcf-768a23b8d00f',\r\n PQA_LEVEL_2: '077622e6-57ae-453f-9084-a8d520cfecd6',\r\n PQA_LEVEL_3: '2cf9dbe6-d3f9-4029-abfd-24fc707cfb9f',\r\n PQA_11: '5e31c24c-84d3-11e9-bc42-526af7764f64', //Process Quality Assurance practices\r\n PQA_21: '611b8eac-84d3-11e9-bc42-526af7764f64',\r\n PQA_22: '64d53336-84d3-11e9-bc42-526af7764f64',\r\n PQA_23: '67c41616-84d3-11e9-bc42-526af7764f64',\r\n PQA_24: '6ae5063e-84d3-11e9-bc42-526af7764f64',\r\n PQA_31: '6e393d78-84d3-11e9-a159-526af7764f64',\r\n PI: 'PI', //Product Integration practice area\r\n PI_LEVEL_1: 'f52c9062-d897-4344-9682-1afd5996e117',\r\n PI_LEVEL_2: '017734e1-f4d9-48f9-86ad-46171d99b1a2',\r\n PI_LEVEL_3: '3022f9c9-6470-4979-ac16-23932cefa2b8',\r\n PI_11: 'f9a6bb6a-84d3-11e9-bc42-526af7764f64', //Product Integration practices\r\n PI_21: '00e34dbc-84d4-11e9-bc42-526af7764f64',\r\n PI_22: '04721cf6-84d4-11e9-bc42-526af7764f64',\r\n PI_23: '071f45a0-84d4-11e9-bc42-526af7764f64',\r\n PI_24: '0a4356a4-84d4-11e9-bc42-526af7764f64',\r\n PI_25: '0dc31daa-84d4-11e9-bc42-526af7764f64',\r\n PI_26: '1071ef86-84d4-11e9-bc42-526af7764f64',\r\n PI_31: '13157c62-84d4-11e9-bc42-526af7764f64',\r\n PI_32: '16327bb6-84d4-11e9-bc42-526af7764f64',\r\n PI_33: '18b5f124-84d4-11e9-bc42-526af7764f64',\r\n RDM: 'RDM', //Requirements Development and Management practice area\r\n RDM_LEVEL_1: 'ed5e8f30-abc3-4ad3-9d75-44127a870226',\r\n RDM_LEVEL_2: 'b09bd293-cf4e-4954-bd9d-09d59a0469e4',\r\n RDM_LEVEL_3: '2f818cae-7523-4fde-8a29-50b786b2ef96',\r\n RDM_11: 'abe61bac-84d6-11e9-bc42-526af7764f64', //Requirements Development and Management practices\r\n RDM_21: 'af085070-84d6-11e9-bc42-526af7764f64',\r\n RDM_22: 'b1ac584e-84d6-11e9-a159-526af7764f64',\r\n //RDM_23: 'b88d619e-84d6-11e9-bc42-526af7764f64', //V2.0 RDM 2.3 was removed, renumbering 2.4, 2.5, 2.6\r\n RDM_23: 'bb2aa2f4-84d6-11e9-a159-526af7764f64', //V2.0 RDM 2.4 (renumbered)\r\n RDM_24: 'bda9e864-84d6-11e9-bc42-526af7764f64', //V2.0 RDM 2.5 (renumbered)\r\n RDM_25: 'c187e1a2-84d6-11e9-bc42-526af7764f64', //V2.0 RDM 2.6 (renumbered)\r\n RDM_31: 'c4b88f2a-84d6-11e9-bc42-526af7764f64',\r\n RDM_32: 'c75f26a8-84d6-11e9-bc42-526af7764f64',\r\n RDM_33: 'c9fb49fa-84d6-11e9-bc42-526af7764f64',\r\n RDM_34: 'ccb81768-84d6-11e9-a159-526af7764f64',\r\n RDM_35: 'cf419b80-84d6-11e9-bc42-526af7764f64',\r\n RDM_36: 'd22297e6-84d6-11e9-a159-526af7764f64',\r\n RDM_37: 'd565fccc-84d6-11e9-bc42-526af7764f64',\r\n RSK: 'RSK', //Risk and Opportunity Management practice area\r\n RSK_LEVEL_1: 'ed59cc3f-380a-4da0-8313-8c871dfe14cd',\r\n RSK_LEVEL_2: 'dfa0b803-3e45-497a-9338-ab7f4471b934',\r\n RSK_LEVEL_3: 'b59ca88c-833a-4b03-9b8d-76c7501ad3cb',\r\n RSK_11: '216433e2-84e0-11e9-bc42-526af7764f64', //Risk and Opportunity Management practices\r\n RSK_21: '25a5f4ea-84e0-11e9-bc42-526af7764f64',\r\n RSK_22: '288558a4-84e0-11e9-bc42-526af7764f64',\r\n RSK_31: '2be20d62-84e0-11e9-bc42-526af7764f64',\r\n RSK_32: '2ecd0450-84e0-11e9-bc42-526af7764f64',\r\n RSK_33: '320eaf74-84e0-11e9-bc42-526af7764f64',\r\n RSK_34: '34a24430-84e0-11e9-bc42-526af7764f64',\r\n RSK_35: '3a11a320-84e0-11e9-bc42-526af7764f64',\r\n SDM: 'SDM', //Service Delivery Management practice area\r\n SDM_LEVEL_1: 'b27469eb-db4e-4b1f-93e2-1e59a4c4885d',\r\n SDM_LEVEL_2: 'f03d1be1-c162-475c-8506-0452391a981b',\r\n SDM_LEVEL_3: '7c06d4d6-5f04-44dc-b1dc-182750f6a4b5',\r\n SDM_11: '26c72d6a-84e2-11e9-bc42-526af7764f64', //Service Delivery Management practices\r\n SDM_21: '29ec086c-84e2-11e9-bc42-526af7764f64',\r\n SDM_22: '2ca08b14-84e2-11e9-bc42-526af7764f64',\r\n SDM_23: '2f1c31ae-84e2-11e9-bc42-526af7764f64',\r\n SDM_24: '31c9e356-84e2-11e9-bc42-526af7764f64',\r\n SDM_25: '34752d54-84e2-11e9-bc42-526af7764f64',\r\n SDM_26: '374c683a-84e2-11e9-bc42-526af7764f64',\r\n SDM_31: '3a541cd0-84e2-11e9-bc42-526af7764f64',\r\n STSM: 'STSM', //Strategic Service Management practice area\r\n STSM_LEVEL_1: '55c91e3c-a3ff-43cd-bf5b-fa6fb77833f9',\r\n STSM_LEVEL_2: 'da9e0cfe-74d1-44f7-9b3e-f08d8b4fa7b0',\r\n STSM_LEVEL_3: '907192be-abea-42af-9f7b-962edfcb9195',\r\n STSM_11: 'd22b81d2-84e3-11e9-bc42-526af7764f64', //Strategic Service Management practices\r\n STSM_21: 'da82f4c8-84e3-11e9-bc42-526af7764f64',\r\n STSM_22: 'dda0ae0c-84e3-11e9-bc42-526af7764f64',\r\n STSM_23: 'e036ac48-84e3-11e9-a159-526af7764f64',\r\n STSM_31: 'e38c8444-84e3-11e9-bc42-526af7764f64',\r\n SAM: 'SAM', //Supplier Agreement Management practice area\r\n SAM_LEVEL_1: '00cdb846-3499-427f-b1c8-dc4ef37c5c91',\r\n SAM_LEVEL_2: '964691c7-6fe5-48ae-88bb-4fb807d58dc3',\r\n SAM_LEVEL_3: '2f28e192-5df8-4aaa-956c-c37166ea00d3',\r\n SAM_LEVEL_4: 'ba6f9dca-5241-47ca-b811-3ea977901157',\r\n SAM_11: '0c230faa-84e8-11e9-bc42-526af7764f64', //Supplier Agreement Management practices\r\n SAM_12: '1037aede-84e8-11e9-bc42-526af7764f64',\r\n SAM_13: '12ecbaf2-84e8-11e9-bc42-526af7764f64',\r\n SAM_14: 'f28dg29d-84e8-11e9-bc42-526af7764f64',\r\n SAM_21: '170f8588-84e8-11e9-bc42-526af7764f64',\r\n SAM_22: '1a445a76-84e8-11e9-a159-526af7764f64',\r\n SAM_23: '1cd06fc8-84e8-11e9-bc42-526af7764f64',\r\n SAM_24: '20118622-84e8-11e9-bc42-526af7764f64',\r\n SAM_25: '1gda2g0d-84e8-11e9-bc42-526af7764f64',\r\n SAM_31: '231278cc-84e8-11e9-bc42-526af7764f64',\r\n SAM_32: '259db048-84e8-11e9-bc42-526af7764f64',\r\n SAM_41: '28f98cee-84e8-11e9-a159-526af7764f64',\r\n SSS: 'SSS', //Supplier Source Selection practice area\r\n SSS_LEVEL_1: 'c6228f9d-0473-40eb-8054-d53277d216ad',\r\n SSS_LEVEL_2: '1c88763e-e66d-47e4-89c1-1b3bc1eae686',\r\n SSS_LEVEL_3: '2140f908-cb33-40f1-801e-42c1d5045392',\r\n SSS_11: 'a4ccf662-84e8-11e9-bc42-526af7764f64', //Supplier Source Select practices\r\n SSS_12: 'aa68ecd4-84e8-11e9-bc42-526af7764f64',\r\n SSS_13: 'ad40911e-84e8-11e9-bc42-526af7764f64',\r\n SSS_21: 'afbecd48-84e8-11e9-bc42-526af7764f64',\r\n SSS_22: 'b2790b34-84e8-11e9-bc42-526af7764f64',\r\n SSS_23: 'b4d83f76-84e8-11e9-bc42-526af7764f64',\r\n SSS_31: 'b7ad9480-84e8-11e9-bc42-526af7764f64',\r\n TS: 'TS', //Technical Solution practice area\r\n TS_LEVEL_1: '5575f222-9d52-4c5f-962c-f40a827b6b1a',\r\n TS_LEVEL_2: '9ab787da-9ab8-4aaa-9f46-10a9b0d313b4',\r\n TS_LEVEL_3: '0c264d2e-fce7-4928-8f3e-4812f7369628',\r\n TS_11: '63ef3d7e-84ea-11e9-a159-526af7764f64', //Technical Solution practices\r\n TS_21: '66d7dea6-84ea-11e9-bc42-526af7764f64',\r\n TS_22: '0cd2d1cf-425d-4e77-b099-4e0b03ae555a',\r\n TS_23: '69c7f8c6-84ea-11e9-bc42-526af7764f64',\r\n TS_31: '6f2cefba-84ea-11e9-bc42-526af7764f64',\r\n TS_32: '71a3be0e-84ea-11e9-a159-526af7764f64',\r\n TS_33: '74a5b526-84ea-11e9-bc42-526af7764f64',\r\n TS_34: '772d9200-84ea-11e9-bc42-526af7764f64',\r\n TS_35: '7a2eb880-84ea-11e9-bc42-526af7764f64',\r\n TS_36: '7e963b1e-84ea-11e9-bc42-526af7764f64',\r\n VV: 'VV', //Verification and Validation practice area\r\n VV_LEVEL_1: '0f3620b3-707c-4fa6-8c29-d855de1f3d66',\r\n VV_LEVEL_2: '23ada88d-ac50-40d5-8828-2a96a5214eb2',\r\n VV_LEVEL_3: 'c5cd1c61-db60-4d7d-a6bd-43a00c0fc469',\r\n VV_11: '83e79f18-84ea-11e9-bc42-526af7764f64', //Verification and Validation practices\r\n VV_12: 'ee4d9176-84ec-11e9-bc42-526af7764f64',\r\n VV_21: 'f22d9796-84ec-11e9-a159-526af7764f64',\r\n VV_22: 'f50ba91c-84ec-11e9-bc42-526af7764f64',\r\n VV_23: 'f748b63e-84ec-11e9-bc42-526af7764f64',\r\n VV_31: 'fc4c350c-84ec-11e9-bc42-526af7764f64',\r\n VV_32: 'ffbc406a-84ec-11e9-bc42-526af7764f64',\r\n\r\n DEV_LEVEL_2: 'Development Level 2', //Predefined view strings\r\n DEV_LEVEL_3: 'Development Level 3',\r\n DEV_LEVEL_4: 'Development Level 4',\r\n DEV_LEVEL_5: 'Development Level 5',\r\n SVCS_LEVEL_2: 'Services Level 2',\r\n SVCS_LEVEL_3: 'Services Level 3',\r\n SVCS_LEVEL_4: 'Services Level 4',\r\n SVCS_LEVEL_5: 'Services Level 5',\r\n};\r\n\r\nexport { MODEL_CONSTANTS }","import { MODEL_CONSTANTS } from './modelconstants'\r\n\r\nconst PRACTICE_AREAS = {\r\n [MODEL_CONSTANTS.CAR]: {\r\n Name: 'Causal Analysis and Resolution (CAR)',\r\n Intent: 'Identify causes of selected outcomes and take action to either prevent recurrence of undesirable outcomes or ensure recurrence of positive outcomes.',\r\n Value: 'Addressing root cause issues eliminates rework and directly improves quality and productivity.',\r\n Id: 'CAR',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.CAR_LEVEL_1,\r\n 2: MODEL_CONSTANTS.CAR_LEVEL_2,\r\n 3: MODEL_CONSTANTS.CAR_LEVEL_3,\r\n 4: MODEL_CONSTANTS.CAR_LEVEL_4,\r\n 5: MODEL_CONSTANTS.CAR_LEVEL_5\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.DAR]: {\r\n Name: 'Decision Analysis and Resolution (DAR)',\r\n Intent: 'Make and record decisions using a recorded process that analyzes alternatives',\r\n Value: 'Increases the objectivity of decision making and the probability of selecting the optimal solution',\r\n Id: 'DAR',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.DAR_LEVEL_1,\r\n 2: MODEL_CONSTANTS.DAR_LEVEL_2,\r\n 3: MODEL_CONSTANTS.DAR_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.CM]: {\r\n Name: 'Configuration Management (CM)',\r\n Intent: 'Manage the integrity of work products using configuration identification, version control, change control, and audits.',\r\n Value: 'Reduces loss of work and increases the ability to deliver the correct version of the solution to the customer.',\r\n Id: 'CM',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.CM_LEVEL_1,\r\n 2: MODEL_CONSTANTS.CM_LEVEL_2\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.CONT]: {\r\n Name: 'Continuity (CONT)',\r\n Intent: 'Plan mitigation activities for significant disruptions to business operations so that work can continue or resume.',\r\n Value: 'Enables continued operation when serious disruptions or catastrophic events occur.',\r\n Id: 'CONT',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.CONT_LEVEL_1,\r\n 2: MODEL_CONSTANTS.CONT_LEVEL_2,\r\n 3: MODEL_CONSTANTS.CONT_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: true,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.EST]: {\r\n Name: 'Estimating (EST)',\r\n Intent: 'Estimate the size, effort, duration, and cost of the work and resources needed to develop, acquire, or deliver the solution.',\r\n Value: 'Estimation provides a basis for making commitments, planning, and reducing uncertainty, which allows for early corrective actions and increases the likelihood of meeting objectives',\r\n Id: 'EST',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.EST_LEVEL_1,\r\n 2: MODEL_CONSTANTS.EST_LEVEL_2,\r\n 3: MODEL_CONSTANTS.EST_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.EVSD]: {\r\n Name: 'Enabling Virtual Solution Delivery (EVSD)',\r\n Intent: 'Identifies an approach to ensure smooth and effective virtual solution delivery to customers and affected stakeholders.',\r\n Value: 'Maximizes delivery effectiveness and efficiency to customers, while reducing the impact and expense from travel and in-person delivery.',\r\n Id: 'EVSD',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.EVSD_LEVEL_1,\r\n 2: MODEL_CONSTANTS.EVSD_LEVEL_2,\r\n 3: MODEL_CONSTANTS.EVSD_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: true\r\n },\r\n [MODEL_CONSTANTS.GOV]: {\r\n Name: 'Governance (GOV)',\r\n Intent: 'Provides guidance to senior management on their role in the sponsorship and governance of performance, processes, and related activities.',\r\n Value: 'Minimizes the cost of process implementation, increases the likelihood of meeting objectives, and ensures that the implemented processes support and contribute to the success of the business.',\r\n Id: 'GOV',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.GOV_LEVEL_1,\r\n 2: MODEL_CONSTANTS.GOV_LEVEL_2,\r\n 3: MODEL_CONSTANTS.GOV_LEVEL_3,\r\n 4: MODEL_CONSTANTS.GOV_LEVEL_4\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.II]: {\r\n Name: 'Implementation Infrastructure (II)',\r\n Intent: 'Ensures that the processes and assets important to an organization\\'s performance are persistently and habitually followed, used and improved.',\r\n Value: 'Sustains the ability to consistently achieve goals and objectives efficiently and effectively.',\r\n Id: 'II',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.II_LEVEL_1,\r\n 2: MODEL_CONSTANTS.II_LEVEL_2,\r\n 3: MODEL_CONSTANTS.II_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.IRP]: {\r\n Name: 'Incident Resolution and Prevention (IRP)',\r\n Intent: 'Resolve and prevent disruptions promptly to sustain service delivery levels.',\r\n Value: 'Minimize the impact of disruptions to meet objectives and customer commitments more effectively.',\r\n Id: 'IRP',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.IRP_LEVEL_1,\r\n 2: MODEL_CONSTANTS.IRP_LEVEL_2,\r\n 3: MODEL_CONSTANTS.IRP_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: true,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.MPM]: {\r\n Name: 'Managing Performance and Measurement (MPM)',\r\n Intent: 'Manage performance using measurement and analysis to achieve business objectives.',\r\n Value: 'Maximizes business return on investment by focusing management and improvement efforts on cost, schedule, and quality performance.',\r\n Id: 'MPM',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.MPM_LEVEL_1,\r\n 2: MODEL_CONSTANTS.MPM_LEVEL_2,\r\n 3: MODEL_CONSTANTS.MPM_LEVEL_3,\r\n 4: MODEL_CONSTANTS.MPM_LEVEL_4,\r\n 5: MODEL_CONSTANTS.MPM_LEVEL_5\r\n },\r\n AdditionalInfo: `Managing performance helps to:\r\n\r\n• Ensure that benefits and business performance are the leading factors in driving performance and improvement\r\n\r\n• Change the paradigm from “process improvement leads to performance improvement”\r\n\r\nto “performance is the primary driver of process improvement”\r\n\r\n• Use the results of measurement and analysis to manage and control performance at various work and business levels\r\n\r\nPerformance and measurement management includes:\r\n\r\n• Setting objectives for:\r\n\r\n o The business\r\n\r\n o Measurement and performance\r\n\r\n o Quality and process performance\r\n\r\n• Allocating and tracing objectives to subordinate levels in the business and processes\r\n\r\n• Defining measurements to improve the understanding of progress towards achieving the objectives\r\n\r\n• Analyzing measurement and performance data to:\r\n\r\n o Understand the relationship and interactions between performance and process \r\n\r\n o Define and take actions to address any observed issues with achieving objectives \r\n\r\n o Make the performance results and related benefits clearly visible to all stakeholders\r\n\r\nMeasurement and performance objectives are quantitative or qualitative objectives that do not require the additional rigor of statistical and other quantitative techniques. Quality and process performance objectives apply to High Maturity activities using statistical and other quantitative techniques. These objectives include the use of statistical and other quantitative techniques on the related data.\r\n `,\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.MC]: {\r\n Name: 'Monitor and Control (MC)',\r\n Intent: 'Provide an understanding of the project progress so appropriate corrective actions can be taken when performance deviates significantly from plans.',\r\n Value: 'Increases the probability of meeting objectives by taking early actions to adjust for significant performance deviations.',\r\n Id: 'MC',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.MC_LEVEL_1,\r\n 2: MODEL_CONSTANTS.MC_LEVEL_2,\r\n 3: MODEL_CONSTANTS.MC_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.OT]: {\r\n Name: 'Organizational Training (OT)',\r\n Intent: 'Develop the skills and knowledge of personnel so they perform their roles efficiently and effectively.',\r\n Value: 'Enhances individuals’ skills and knowledge to improve organizational work performance.',\r\n Id: 'OT',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.OT_LEVEL_1,\r\n 2: MODEL_CONSTANTS.OT_LEVEL_2,\r\n 3: MODEL_CONSTANTS.OT_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.PR]: {\r\n Name: 'Peer Reviews (PR)',\r\n Intent: 'Identify and address work product issues through reviews by the producer’s peers or Subject Matter Experts (SMEs).',\r\n Value: 'Reduce cost and rework by uncovering issues or defects early.',\r\n Id: 'PR',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.PR_LEVEL_1,\r\n 2: MODEL_CONSTANTS.PR_LEVEL_2,\r\n 3: MODEL_CONSTANTS.PR_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.PLAN]: {\r\n Name: 'Planning (PLAN)',\r\n Intent: \"Develops plans to describe what is needed to accomplish the work within the standards and constraints of the organization.\", \r\n Value: 'Optimizes cost, functionality, and quality to increase the likelihood of meeting objectives.',\r\n Id: 'PLAN',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.PLAN_LEVEL_1,\r\n 2: MODEL_CONSTANTS.PLAN_LEVEL_2,\r\n 3: MODEL_CONSTANTS.PLAN_LEVEL_3,\r\n 4: MODEL_CONSTANTS.PLAN_LEVEL_4\r\n },\r\n AdditionalInfo: `Planning includes developing budgets and schedules based on estimates; identifying the appropriate set of stakeholders and tasks; managing risks; determining the necessary resources; and developing and keeping the project plan updated to reflect how to perform the work. An important aspect of planning is capacity and availability management.\r\n\r\nCapacity and availability management activities can be performed at different levels of the organization and applied to any type of work. Capacity and availability management activities typically involve:\r\n\r\n• Developing a capacity and availability management approach and keeping it updated\r\n\r\n• Providing and allocating resources\r\n\r\n• Monitoring, analyzing, understanding, forecasting, adjusting, and reporting on current demand for:\r\n\r\n o Work activities\r\n\r\n o Services\r\n\r\n o Solutions and Deliverables\r\n\r\n o Resources\r\n\r\n o Capacity and availability\r\n\r\n o Service or service system performance\r\n\r\n o Availability\r\n\r\n• Determining corrective actions to ensure appropriate capacity and availability while balancing costs against resources needed and supply against demand\r\n `,\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.PAD]: {\r\n Name: 'Process Asset Development (PAD)',\r\n Intent: 'Develops the process assets necessary to perform the work and keeps them updated.',\r\n Value: 'Provides a capability to understand and repeat successful performance.',\r\n Id: 'PAD',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.PAD_LEVEL_1,\r\n 2: MODEL_CONSTANTS.PAD_LEVEL_2,\r\n 3: MODEL_CONSTANTS.PAD_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.PCM]: {\r\n Name: 'Process Management (PCM)',\r\n Intent: \"Manages and implements the continuous performance improvement of processes and infrastructure to meet business objectives \" +\r\n \"by identifying and implementing the most beneficial process improvements and making performance results visible, accessible, and sustainable.\",\r\n Value: 'Ensures that processes, infrastructure, and their improvement contribute to successfully meeting business objectives.',\r\n Id: 'PCM',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.PCM_LEVEL_1,\r\n 2: MODEL_CONSTANTS.PCM_LEVEL_2,\r\n 3: MODEL_CONSTANTS.PCM_LEVEL_3,\r\n 4: MODEL_CONSTANTS.PCM_LEVEL_4\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.PQA]: {\r\n Name: 'Process Quality Assurance (PQA)',\r\n Intent: 'Verifies and enables improvement of the quality of the processes performed and resulting work products.',\r\n Value: 'Increases the consistent use and improvement of the processes to maximize business benefit and customer satisfaction.',\r\n Id: 'PQA',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.PQA_LEVEL_1,\r\n 2: MODEL_CONSTANTS.PQA_LEVEL_2,\r\n 3: MODEL_CONSTANTS.PQA_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.PI]: {\r\n Name: 'Product Integration (PI)',\r\n Intent: 'Integrates and delivers the solution that addresses functionality, performance, and quality requirements.',\r\n Value: 'Increases customers’ satisfaction by giving them a solution that meets or exceeds their functionality and quality requirements.',\r\n Id: 'PI',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.PI_LEVEL_1,\r\n 2: MODEL_CONSTANTS.PI_LEVEL_2,\r\n 3: MODEL_CONSTANTS.PI_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: true,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.RDM]: {\r\n Name: 'Requirements Development and Management (RDM)',\r\n Intent: 'Elicit requirements, ensure common understanding by stakeholders, and align requirements, plans, and work products.',\r\n Value: 'Ensures that customers’ needs and expectations are satisfied.',\r\n Id: 'RDM',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.RDM_LEVEL_1,\r\n 2: MODEL_CONSTANTS.RDM_LEVEL_2,\r\n 3: MODEL_CONSTANTS.RDM_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.RSK]: {\r\n Name: 'Risk and Opportunity Management (RSK)',\r\n Intent: 'Identify, record, analyze, and manage potential risks or opportunities.',\r\n Value: 'Mitigate adverse impacts or capitalize on positive impacts to increase the likelihood of meeting objectives.',\r\n Id: 'RSK',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.RSK_LEVEL_1,\r\n 2: MODEL_CONSTANTS.RSK_LEVEL_2,\r\n 3: MODEL_CONSTANTS.RSK_LEVEL_3\r\n },\r\n AdditionalInfo: `The term risk refers to uncertainties that may have a negative impact on achieving objectives.\r\n\r\n The term opportunity refers to uncertainties that may have a positive impact on achieving objectives.`,\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.SDM]:{\r\n Name: 'Service Delivery Management (SDM)',\r\n Intent: 'Deliver services and manage the service delivery system.',\r\n Value: 'Increase customer satisfaction by delivering services that meet or exceed customer expectations.',\r\n Id: 'SDM',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.SDM_LEVEL_1,\r\n 2: MODEL_CONSTANTS.SDM_LEVEL_2,\r\n 3: MODEL_CONSTANTS.SDM_LEVEL_3\r\n },\r\n AdditionalInfo: `This includes:\r\n\r\n • Delivering services in accordance with service delivery approaches and agreements\r\n \r\n • Managing changes to the service delivery system\r\n \r\n • Receiving and processing service requests\r\n \r\n • Maintaining service delivery performance when changes occur`,\r\n DevExclusive: false,\r\n SvcExclusive: true,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.STSM]:{\r\n Name: 'Strategic Service Management (STSM)',\r\n Intent: 'Develop and deploy standard services that are compatible with strategic business needs and plans.',\r\n Value: 'Increases likelihood of meeting business objectives by aligning standard services with customer needs.',\r\n Id: 'STSM',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.STSM_LEVEL_1,\r\n 2: MODEL_CONSTANTS.STSM_LEVEL_2,\r\n 3: MODEL_CONSTANTS.STSM_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: true,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.SAM]: {\r\n Name: 'Supplier Agreement Management (SAM)',\r\n Intent: 'Establish an agreement with selected suppliers, ensure that the supplier and the acquirer perform according to the terms over the course of the agreement, and evaluate the supplier’s deliverables.',\r\n Value: 'Provides an explicit understanding between the acquirer and supplier to maximize the success of agreed-on efforts to deliver a supplier deliverable.',\r\n Id: 'SAM',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.SAM_LEVEL_1,\r\n 2: MODEL_CONSTANTS.SAM_LEVEL_2,\r\n 3: MODEL_CONSTANTS.SAM_LEVEL_3,\r\n 4: MODEL_CONSTANTS.SAM_LEVEL_4\r\n },\r\n AdditionalInfo: 'The term “supplier deliverable” is an item to be provided to an acquirer or other recipient as specified in an agreement. The item can be a document, hardware or software item, a service, or any type of solution or work product.',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: true\r\n },\r\n [MODEL_CONSTANTS.SSS]: {\r\n Name: 'Supplier Source Selection (SSS)',\r\n Intent: 'Develop and keep updated a package of materials used to seek proposals from potential suppliers and select one or more suppliers to deliver the solution.',\r\n Value: 'Improves the ability to select the most qualified suppliers to deliver solutions.',\r\n Id: 'SSS',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.SSS_LEVEL_1,\r\n 2: MODEL_CONSTANTS.SSS_LEVEL_2,\r\n 3: MODEL_CONSTANTS.SSS_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.TS]: {\r\n Name: 'Technical Solution (TS)',\r\n Intent: 'Design and build solutions that meet customer requirements.',\r\n Value: 'Provides a cost-effective design and solution that meets customer requirements and reduces rework.',\r\n Id: 'TS',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.TS_LEVEL_1,\r\n 2: MODEL_CONSTANTS.TS_LEVEL_2,\r\n 3: MODEL_CONSTANTS.TS_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: true,\r\n SvcExclusive: false,\r\n Optional: false\r\n },\r\n [MODEL_CONSTANTS.VV]: {\r\n Name: 'Verification and Validation (VV)',\r\n Intent: \"Verification and validation includes activities that: Confirm selected solutions and components meet their requirements, \" +\r\n \"Demonstrate selected solutions and components fulfil their intended use in their target environment\",\r\n Value: 'Verification and validation of selected solutions and components throughout the project increases the likelihood that the solution will satisfy the customer.',\r\n Id: 'VV',\r\n LevelIds: {\r\n 1: MODEL_CONSTANTS.VV_LEVEL_1,\r\n 2: MODEL_CONSTANTS.VV_LEVEL_2,\r\n 3: MODEL_CONSTANTS.VV_LEVEL_3\r\n },\r\n AdditionalInfo: '',\r\n DevExclusive: false,\r\n SvcExclusive: false,\r\n Optional: false\r\n }\r\n};\r\n\r\nexport { PRACTICE_AREAS };","import { MODEL_CONSTANTS } from './modelconstants';\r\n\r\nconst PRACTICES = {\r\n [MODEL_CONSTANTS.CAR_11]: {\r\n Statement:'Identify and address causes of selected outcomes.',\r\n Level: 1,\r\n Abbreviation:\"CAR 1.1\",\r\n Id: MODEL_CONSTANTS.CAR_11,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_21]: {\r\n Statement: 'Select outcomes for analysis.',\r\n Level: 2,\r\n Abbreviation: 'CAR 2.1',\r\n Id: MODEL_CONSTANTS.CAR_21,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_22]: {\r\n Statement: 'Analyze and address causes of outcomes.',\r\n Level: 2,\r\n Abbreviation: 'CAR 2.2',\r\n Id: MODEL_CONSTANTS.CAR_22,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_31]: {\r\n Statement: 'Determine causes of selected outcomes by following an organizational process.',\r\n Level: 3,\r\n Abbreviation: 'CAR 3.1',\r\n Id: MODEL_CONSTANTS.CAR_31,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_32]: {\r\n Statement: 'Propose actions to address identified causes.',\r\n Level: 3,\r\n Abbreviation: 'CAR 3.2',\r\n Id: MODEL_CONSTANTS.CAR_32,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_33]: {\r\n Statement: 'Implement selected action proposals.',\r\n Level: 3,\r\n Abbreviation: 'CAR 3.3',\r\n Id: MODEL_CONSTANTS.CAR_33,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_34]: {\r\n Statement: 'Record causal analysis and resolution data.',\r\n Level: 3,\r\n Abbreviation: 'CAR 3.4',\r\n Id: MODEL_CONSTANTS.CAR_34,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_35]: {\r\n Statement: 'Submit improvement proposals for changes proven to be effective.',\r\n Level: 3,\r\n Abbreviation: 'CAR 3.5',\r\n Id: MODEL_CONSTANTS.CAR_35,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_41]: {\r\n Statement: 'Perform root cause analysis of selected outcomes using statistical and other quantitative techniques.',\r\n Level: 4,\r\n Abbreviation: 'CAR 4.1',\r\n Id: MODEL_CONSTANTS.CAR_41,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_42]: {\r\n Statement: 'Evaluate the effect of implemented actions on process performance using statistical and other quantitative techniques.',\r\n Level: 4,\r\n Abbreviation: 'CAR 4.2',\r\n Id: MODEL_CONSTANTS.CAR_42,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CAR_51]: {\r\n Statement: 'Use statistical and other quantitative techniques to evaluate other solutions and processes to determine if the resolution should be applied on a broader scale.',\r\n Level: 5,\r\n Abbreviation: 'CAR 5.1',\r\n Id: MODEL_CONSTANTS.CAR_51,\r\n PracticeAreaID: MODEL_CONSTANTS.CAR \r\n },\r\n [MODEL_CONSTANTS.CM_11]: {\r\n Statement: 'Perform version control.',\r\n Level: 1,\r\n Abbreviation: 'CM 1.1',\r\n Id: MODEL_CONSTANTS.CM_11,\r\n PracticeAreaID: MODEL_CONSTANTS.CM\r\n },\r\n [MODEL_CONSTANTS.CM_21]: {\r\n Statement: 'Identify items to be placed under configuration management.',\r\n Level: 2,\r\n Abbreviation: 'CM 2.1',\r\n Id: MODEL_CONSTANTS.CM_21,\r\n PracticeAreaID: MODEL_CONSTANTS.CM\r\n },\r\n [MODEL_CONSTANTS.CM_22]: {\r\n Statement: 'Develop, keep updated, and use a configuration and change management system.',\r\n Level: 2,\r\n Abbreviation: 'CM 2.2',\r\n Id: MODEL_CONSTANTS.CM_22,\r\n PracticeAreaID: MODEL_CONSTANTS.CM \r\n },\r\n [MODEL_CONSTANTS.CM_23]: {\r\n Statement: 'Develop or release baselines for internal use or for delivery to the customer.',\r\n Level: 2,\r\n Abbreviation: 'CM 2.3',\r\n Id: MODEL_CONSTANTS.CM_23,\r\n PracticeAreaID: MODEL_CONSTANTS.CM\r\n },\r\n [MODEL_CONSTANTS.CM_24]: {\r\n Statement: 'Manage changes to the items under configuration management.',\r\n Level: 2,\r\n Abbreviation: 'CM 2.4',\r\n Id: MODEL_CONSTANTS.CM_24,\r\n PracticeAreaID: MODEL_CONSTANTS.CM\r\n },\r\n [MODEL_CONSTANTS.CM_25]: {\r\n Statement: 'Develop, keep updated, and use records describing items under configuration management.',\r\n Level: 2,\r\n Abbreviation: 'CM 2.5',\r\n Id: MODEL_CONSTANTS.CM_25,\r\n PracticeAreaID: MODEL_CONSTANTS.CM\r\n },\r\n [MODEL_CONSTANTS.CM_26]: {\r\n Statement: 'Perform configuration audits to maintain the integrity of configuration baselines, changes, and content of the configuration management system.',\r\n Level: 2,\r\n Abbreviation: 'CM 2.6',\r\n Id: MODEL_CONSTANTS.CM_26,\r\n PracticeAreaID: MODEL_CONSTANTS.CM\r\n },\r\n [MODEL_CONSTANTS.CONT_11]: {\r\n Statement: 'Develop contingency approaches for managing significant disruptions to operations.',\r\n Level: 1,\r\n Abbreviation: 'CONT 1.1',\r\n Id: MODEL_CONSTANTS.CONT_11,\r\n PracticeAreaID: MODEL_CONSTANTS.CONT\r\n },\r\n [MODEL_CONSTANTS.CONT_21]: {\r\n Statement: 'Identify and prioritize functions essential for continuity.',\r\n Level: 2,\r\n Abbreviation: 'CONT 2.1',\r\n Id: MODEL_CONSTANTS.CONT_21,\r\n PracticeAreaID: MODEL_CONSTANTS.CONT\r\n },\r\n [MODEL_CONSTANTS.CONT_22]: {\r\n Statement: 'Identify and prioritize resources essential for continuity.',\r\n Level: 2,\r\n Abbreviation: 'CONT 2.2',\r\n Id: MODEL_CONSTANTS.CONT_22,\r\n PracticeAreaID: MODEL_CONSTANTS.CONT\r\n },\r\n [MODEL_CONSTANTS.CONT_23]: {\r\n Statement: 'Develop, keep updated, and follow continuity plans to resume performing essential functions.',\r\n Level: 2,\r\n Abbreviation: 'CONT 2.3',\r\n Id: MODEL_CONSTANTS.CONT_23,\r\n PracticeAreaID: MODEL_CONSTANTS.CONT\r\n },\r\n [MODEL_CONSTANTS.CONT_31]: {\r\n Statement: 'Develop and keep updated materials for continuity training.',\r\n Level: 3,\r\n Abbreviation: 'CONT 3.1',\r\n Id: MODEL_CONSTANTS.CONT_31,\r\n PracticeAreaID: MODEL_CONSTANTS.CONT\r\n },\r\n [MODEL_CONSTANTS.CONT_32]: {\r\n Statement: 'Provide and evaluate continuity training according to the plan.',\r\n Level: 3,\r\n Abbreviation: 'CONT 3.2',\r\n Id: MODEL_CONSTANTS.CONT_32,\r\n PracticeAreaID: MODEL_CONSTANTS.CONT\r\n },\r\n [MODEL_CONSTANTS.CONT_33]: {\r\n Statement: 'Prepare, conduct, and analyze results from verification and validation of the continuity plan.',\r\n Level: 3,\r\n Abbreviation: 'CONT 3.3',\r\n Id: MODEL_CONSTANTS.CONT_33,\r\n PracticeAreaID: MODEL_CONSTANTS.CONT\r\n },\r\n [MODEL_CONSTANTS.DAR_11]: {\r\n Statement: 'Define and record the alternatives.',\r\n Level: 1,\r\n Abbreviation: 'DAR 1.1',\r\n Id: MODEL_CONSTANTS.DAR_11,\r\n PracticeAreaID: MODEL_CONSTANTS.DAR\r\n },\r\n [MODEL_CONSTANTS.DAR_12]: {\r\n Statement: 'Make and record the decision.',\r\n Level: 1,\r\n Abbreviation: 'DAR 1.2',\r\n Id: MODEL_CONSTANTS.DAR_12,\r\n PracticeAreaID: MODEL_CONSTANTS.DAR\r\n },\r\n [MODEL_CONSTANTS.DAR_21]: {\r\n Statement: 'Develop, keep updated, and use rules to determine when to follow a recorded process for criteria-based decisions.',\r\n Level: 2,\r\n Abbreviation: 'DAR 2.1',\r\n Id: MODEL_CONSTANTS.DAR_21,\r\n PracticeAreaID: MODEL_CONSTANTS.DAR\r\n },\r\n [MODEL_CONSTANTS.DAR_22]: {\r\n Statement: 'Develop criteria for evaluating alternatives.',\r\n Level: 2,\r\n Abbreviation: 'DAR 2.2',\r\n Id: MODEL_CONSTANTS.DAR_22,\r\n PracticeAreaID: MODEL_CONSTANTS.DAR\r\n },\r\n [MODEL_CONSTANTS.DAR_23]: {\r\n Statement: 'Identify alternative solutions.',\r\n Level: 2,\r\n Abbreviation: 'DAR 2.3',\r\n Id: MODEL_CONSTANTS.DAR_23,\r\n PracticeAreaID: MODEL_CONSTANTS.DAR\r\n },\r\n [MODEL_CONSTANTS.DAR_24]: {\r\n Statement: 'Select evaluation methods.',\r\n Level: 2,\r\n Abbreviation: 'DAR 2.4',\r\n Id: MODEL_CONSTANTS.DAR_24,\r\n PracticeAreaID: MODEL_CONSTANTS.DAR\r\n },\r\n [MODEL_CONSTANTS.DAR_25]: {\r\n Statement: 'Evaluate and select solutions using criteria and methods.',\r\n Level: 2,\r\n Abbreviation: 'DAR 2.5',\r\n Id: MODEL_CONSTANTS.DAR_25,\r\n PracticeAreaID: MODEL_CONSTANTS.DAR\r\n },\r\n [MODEL_CONSTANTS.DAR_31]: {\r\n Statement: 'Develop, keep updated, and use a description of role-based decision authority.',\r\n Level: 3,\r\n Abbreviation: 'DAR 3.1',\r\n Id: MODEL_CONSTANTS.DAR_31,\r\n PracticeAreaID: MODEL_CONSTANTS.DAR\r\n },\r\n [MODEL_CONSTANTS.EST_11]: {\r\n Statement: 'Develop high-level estimates to perform the work.',\r\n Level: 1,\r\n Abbreviation: 'EST 1.1',\r\n Id: MODEL_CONSTANTS.EST_11,\r\n PracticeAreaID: MODEL_CONSTANTS.EST\r\n },\r\n [MODEL_CONSTANTS.EST_21]: {\r\n Statement: 'Develop, keep updated, and use the scope of what is being estimated.',\r\n Level: 2,\r\n Abbreviation: 'EST 2.1',\r\n Id: MODEL_CONSTANTS.EST_21,\r\n PracticeAreaID: MODEL_CONSTANTS.EST\r\n },\r\n [MODEL_CONSTANTS.EST_22]: {\r\n Statement: 'Develop and keep updated estimates for the size of the solution.',\r\n Level: 2,\r\n Abbreviation: 'EST 2.2',\r\n Id: MODEL_CONSTANTS.EST_22,\r\n PracticeAreaID: MODEL_CONSTANTS.EST\r\n },\r\n [MODEL_CONSTANTS.EST_23]: {\r\n Statement: 'Based on size estimates, develop and record effort, duration, and cost estimates and their rationale for the solution.',\r\n Level: 2,\r\n Abbreviation: 'EST 2.3',\r\n Id: MODEL_CONSTANTS.EST_23,\r\n PracticeAreaID: MODEL_CONSTANTS.EST\r\n },\r\n [MODEL_CONSTANTS.EST_31]: {\r\n Statement: 'Develop and keep updated a recorded estimation method.',\r\n Level: 3,\r\n Abbreviation: 'EST 3.1',\r\n Id: MODEL_CONSTANTS.EST_31,\r\n PracticeAreaID: MODEL_CONSTANTS.EST\r\n },\r\n [MODEL_CONSTANTS.EST_32]: {\r\n Statement: 'Use the organizational measurement repository and process assets for estimating work.',\r\n Level: 3,\r\n Abbreviation: 'EST 3.2',\r\n Id: MODEL_CONSTANTS.EST_32,\r\n PracticeAreaID: MODEL_CONSTANTS.EST\r\n },\r\n [MODEL_CONSTANTS.EVSD_11]: {\r\n Statement: 'Identify and record virtual solution delivery needs and constraints.',\r\n Level: 1,\r\n Abbreviation: 'EVSD 1.1',\r\n Id: MODEL_CONSTANTS.EVSD_11,\r\n PracticeAreaID: MODEL_CONSTANTS.EVSD\r\n },\r\n [MODEL_CONSTANTS.EVSD_12]: {\r\n Statement: 'Deliver virtual solutions.',\r\n Level: 1,\r\n Abbreviation: 'EVSD 1.2',\r\n Id: MODEL_CONSTANTS.EVSD_12,\r\n PracticeAreaID: MODEL_CONSTANTS.EVSD\r\n },\r\n [MODEL_CONSTANTS.EVSD_21]: {\r\n Statement: 'Develop, communicate, and follow an approach to address virtual solution delivery needs and constraints; and keep it updated.',\r\n Level: 2,\r\n Abbreviation: 'EVSD 2.1',\r\n Id: MODEL_CONSTANTS.EVSD_21,\r\n PracticeAreaID: MODEL_CONSTANTS.EVSD\r\n },\r\n [MODEL_CONSTANTS.EVSD_22]: {\r\n Statement: 'Evaluate the effectiveness and fidelity of the virtual solution delivery approach and take action to improve performance.',\r\n Level: 2,\r\n Abbreviation: 'EVSD 2.2',\r\n Id: MODEL_CONSTANTS.EVSD_22,\r\n PracticeAreaID: MODEL_CONSTANTS.EVSD\r\n },\r\n [MODEL_CONSTANTS.EVSD_31]: {\r\n Statement: 'Establish and deploy an organizational strategy and approach, and functional capability for delivering virtual solutions.',\r\n Level: 3,\r\n Abbreviation: 'EVSD 3.1',\r\n Id: MODEL_CONSTANTS.EVSD_31,\r\n PracticeAreaID: MODEL_CONSTANTS.EVSD\r\n },\r\n [MODEL_CONSTANTS.EVSD_32]: {\r\n Statement: 'Periodically perform virtual solution delivery reviews and evaluations throughout the organization.',\r\n Level: 3,\r\n Abbreviation: 'EVSD 3.2',\r\n Id: MODEL_CONSTANTS.EVSD_32,\r\n PracticeAreaID: MODEL_CONSTANTS.EVSD\r\n },\r\n [MODEL_CONSTANTS.EVSD_33]: {\r\n Statement: 'Take actions based on virtual delivery reviews and evaluations to verify that they are effectively addressing the needs and constraints of customers and the organization.',\r\n Level: 3,\r\n Abbreviation: 'EVSD 3.3',\r\n Id: MODEL_CONSTANTS.EVSD_33,\r\n PracticeAreaID: MODEL_CONSTANTS.EVSD\r\n },\r\n [MODEL_CONSTANTS.GOV_11]: {\r\n Statement: 'Senior management identifies what is important for doing the work and defines the approach needed to accomplish the objectives of the organization.',\r\n Level: 1,\r\n Abbreviation: 'GOV 1.1',\r\n Id: MODEL_CONSTANTS.GOV_11,\r\n PracticeAreaID: MODEL_CONSTANTS.GOV\r\n },\r\n [MODEL_CONSTANTS.GOV_21]: {\r\n Statement: 'Senior management defines, keeps updated, and communicates organizational directives for process implementation and performance improvement based on organization needs, and objectives.',\r\n Level: 2,\r\n Abbreviation: 'GOV 2.1',\r\n Id: MODEL_CONSTANTS.GOV_21,\r\n PracticeAreaID: MODEL_CONSTANTS.GOV\r\n },\r\n [MODEL_CONSTANTS.GOV_22]: {\r\n Statement: 'Senior management provides funding, resources, and training for developing, supporting, performing, improving, and evaluating adherence to processes.',\r\n Level: 2,\r\n Abbreviation: 'GOV 2.2',\r\n Id: MODEL_CONSTANTS.GOV_22,\r\n PracticeAreaID: MODEL_CONSTANTS.GOV\r\n },\r\n [MODEL_CONSTANTS.GOV_23]: {\r\n Statement: 'Senior management identifies their information needs and uses the collected information to provide governance and oversight of effective process implementation and performance improvement.',\r\n Level: 2,\r\n Abbreviation: 'GOV 2.3',\r\n Id: MODEL_CONSTANTS.GOV_23,\r\n PracticeAreaID: MODEL_CONSTANTS.GOV\r\n },\r\n [MODEL_CONSTANTS.GOV_24]: {\r\n Statement: 'Senior management assigns authority and holds people accountable for adhering to organization directives and achieving process implementation and performance improvement objectives.',\r\n Level: 2,\r\n Abbreviation: 'GOV 2.4',\r\n Id: MODEL_CONSTANTS.GOV_24,\r\n PracticeAreaID: MODEL_CONSTANTS.GOV\r\n },\r\n [MODEL_CONSTANTS.GOV_31]: {\r\n Statement: 'Senior management ensures that measures supporting objectives throughout the organization are collected, analyzed, and used.',\r\n Level: 3,\r\n Abbreviation: 'GOV 3.1',\r\n Id: MODEL_CONSTANTS.GOV_31,\r\n PracticeAreaID: MODEL_CONSTANTS.GOV\r\n },\r\n [MODEL_CONSTANTS.GOV_32]: {\r\n Statement: 'Senior management ensures that competencies and processes are aligned with the objectives of the organization.',\r\n Level: 3,\r\n Abbreviation: 'GOV 3.2',\r\n Id: MODEL_CONSTANTS.GOV_32,\r\n PracticeAreaID: MODEL_CONSTANTS.GOV\r\n },\r\n [MODEL_CONSTANTS.GOV_41]: {\r\n Statement: 'Senior management ensures that selected decisions are driven by statistical and quantitative analysis related to performance and achievement of quality and process performance objectives.',\r\n Level: 4,\r\n Abbreviation: 'GOV 4.1',\r\n Id: MODEL_CONSTANTS.GOV_41,\r\n PracticeAreaID: MODEL_CONSTANTS.GOV\r\n },\r\n [MODEL_CONSTANTS.II_11]: {\r\n Statement: 'Perform processes that address the intent of the Level 1 practices.',\r\n Level: 1,\r\n Abbreviation: 'II 1.1',\r\n Id: MODEL_CONSTANTS.II_11,\r\n PracticeAreaID: MODEL_CONSTANTS.II \r\n },\r\n [MODEL_CONSTANTS.II_21]: {\r\n Statement: 'Provide sufficient resources, funding, and training for developing and performing processes.',\r\n Level: 2,\r\n Abbreviation: 'II 2.1',\r\n Id: MODEL_CONSTANTS.II_21,\r\n PracticeAreaID: MODEL_CONSTANTS.II \r\n },\r\n [MODEL_CONSTANTS.II_22]: {\r\n Statement: 'Develop and keep processes updated, and verify they are being followed.',\r\n Level: 2,\r\n Abbreviation: 'II 2.2',\r\n Id: MODEL_CONSTANTS.II_22,\r\n PracticeAreaID: MODEL_CONSTANTS.II\r\n },\r\n [MODEL_CONSTANTS.II_31]: {\r\n Statement: 'Use organizational processes and process assets to plan, manage, and perform the work.',\r\n Level: 3,\r\n Abbreviation: 'II 3.1',\r\n Id: MODEL_CONSTANTS.II_31,\r\n PracticeAreaID: MODEL_CONSTANTS.II\r\n },\r\n [MODEL_CONSTANTS.II_32]: {\r\n Statement: 'Evaluate the adherence to and effectiveness of the organizational processes.',\r\n Level: 3,\r\n Abbreviation: 'II 3.2',\r\n Id: MODEL_CONSTANTS.II_32,\r\n PracticeAreaID: MODEL_CONSTANTS.II\r\n },\r\n [MODEL_CONSTANTS.II_33]: {\r\n Statement: 'Contribute process-related information or process assets to the organization.',\r\n Level: 3,\r\n Abbreviation: 'II 3.3',\r\n Id: MODEL_CONSTANTS.II_33,\r\n PracticeAreaID: MODEL_CONSTANTS.II\r\n },\r\n [MODEL_CONSTANTS.IRP_11]: {\r\n Statement: 'Record and resolve incidents.',\r\n Level: 1,\r\n Abbreviation: 'IRP 1.1',\r\n Id: MODEL_CONSTANTS.IRP_11,\r\n PracticeAreaID: MODEL_CONSTANTS.IRP\r\n },\r\n [MODEL_CONSTANTS.IRP_21]: {\r\n Statement: 'Develop, keep updated, and follow an approach for incident resolution and prevention.',\r\n Level: 2,\r\n Abbreviation: 'IRP 2.1',\r\n Id: MODEL_CONSTANTS.IRP_21,\r\n PracticeAreaID: MODEL_CONSTANTS.IRP\r\n },\r\n [MODEL_CONSTANTS.IRP_22]: {\r\n Statement: 'Monitor and resolve each incident to closure.',\r\n Level: 2,\r\n Abbreviation: 'IRP 2.2',\r\n Id: MODEL_CONSTANTS.IRP_22,\r\n PracticeAreaID: MODEL_CONSTANTS.IRP\r\n },\r\n [MODEL_CONSTANTS.IRP_23]: {\r\n Statement: 'Communicate incident status.',\r\n Level: 2,\r\n Abbreviation: 'IRP 2.3',\r\n Id: MODEL_CONSTANTS.IRP_23,\r\n PracticeAreaID: MODEL_CONSTANTS.IRP\r\n },\r\n [MODEL_CONSTANTS.IRP_31]: {\r\n Statement: 'Develop, keep updated, and use an incident management system for processing and tracking incidents and their resolution.',\r\n Level: 3,\r\n Abbreviation: 'IRP 3.1',\r\n Id: MODEL_CONSTANTS.IRP_31,\r\n PracticeAreaID: MODEL_CONSTANTS.IRP\r\n },\r\n [MODEL_CONSTANTS.IRP_32]: {\r\n Statement: 'Analyze selected incident and resolution data for prevention of future incidents.',\r\n Level: 3,\r\n Abbreviation: 'IRP 3.2',\r\n Id: MODEL_CONSTANTS.IRP_32,\r\n PracticeAreaID: MODEL_CONSTANTS.IRP\r\n },\r\n [MODEL_CONSTANTS.MPM_11]: {\r\n Statement: 'Collect measures and record performance.',\r\n Level: 1,\r\n Abbreviation: 'MPM 1.1',\r\n Id: MODEL_CONSTANTS.MPM_11,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_12]: {\r\n Statement: 'Identify and address performance issues.',\r\n Level: 1,\r\n Abbreviation: 'MPM 1.2',\r\n Id: MODEL_CONSTANTS.MPM_12,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_21]: {\r\n Statement: 'Derive and record measurement and performance objectives from selected business needs and objectives and keep them updated.',\r\n Level: 2,\r\n Abbreviation: 'MPM 2.1',\r\n Id: MODEL_CONSTANTS.MPM_21,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_22]: {\r\n Statement: 'Develop, keep updated, and use operational definitions for measures.',\r\n Level: 2,\r\n Abbreviation: 'MPM 2.2',\r\n Id: MODEL_CONSTANTS.MPM_22,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_23]: {\r\n Statement: 'Obtain specified measurement data according to the operational definitions.',\r\n Level: 2,\r\n Abbreviation: 'MPM 2.3',\r\n Id: MODEL_CONSTANTS.MPM_23,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_24]: {\r\n Statement: 'Analyze performance and measurement data according to the operational definitions.',\r\n Level: 2,\r\n Abbreviation: 'MPM 2.4',\r\n Id: MODEL_CONSTANTS.MPM_24,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_25]: {\r\n Statement: 'Store measurement data, measurement specifications, and analysis results according to the operational definitions.',\r\n Level: 2,\r\n Abbreviation: 'MPM 2.5',\r\n Id: MODEL_CONSTANTS.MPM_25,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_26]: {\r\n Statement: 'Take actions to address identified issues with meeting measurement and performance objectives.',\r\n Level: 2,\r\n Abbreviation: 'MPM 2.6',\r\n Id: MODEL_CONSTANTS.MPM_26,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_31]: {\r\n Statement: 'Develop, keep updated, and use the organization\\'s measurement and performance objectives traceable to business objectives.',\r\n Level: 3,\r\n Abbreviation: 'MPM 3.1',\r\n Id: MODEL_CONSTANTS.MPM_31,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_32]: {\r\n Statement: 'Follow organizational processes and standards to develop and use operational definitions for measures and keep them updated.',\r\n Level: 3,\r\n Abbreviation: 'MPM 3.2',\r\n Id: MODEL_CONSTANTS.MPM_32,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_33]: {\r\n Statement: 'Develop, keep updated, and follow a data quality process.',\r\n Level: 3,\r\n Abbreviation: 'MPM 3.3',\r\n Id: MODEL_CONSTANTS.MPM_33,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_34]: {\r\n Statement: 'Develop, keep updated, and use the organization’s measurement repository.',\r\n Level: 3,\r\n Abbreviation: 'MPM 3.4',\r\n Id: MODEL_CONSTANTS.MPM_34,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_35]: {\r\n Statement: 'Analyze organizational performance using measurement and performance data to determine and address performance improvement needs.',\r\n Level: 3,\r\n Abbreviation: 'MPM 3.5',\r\n Id: MODEL_CONSTANTS.MPM_35,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_36]: {\r\n Statement: 'Periodically communicate performance results to the organization.',\r\n Level: 3,\r\n Abbreviation: 'MPM 3.6',\r\n Id: MODEL_CONSTANTS.MPM_36,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_41]: {\r\n Statement: 'Use statistical and other quantitative techniques to develop, keep updated, and communicate quality and process performance objectives that are traceable to business objectives.',\r\n Level: 4,\r\n Abbreviation: 'MPM 4.1',\r\n Id: MODEL_CONSTANTS.MPM_41,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_42]: {\r\n Statement: 'Select measures and analytic techniques to quantitatively manage performance to achieve quality and process performance objectives.',\r\n Level: 4,\r\n Abbreviation: 'MPM 4.2',\r\n Id: MODEL_CONSTANTS.MPM_42,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_43]: {\r\n Statement: 'Use statistical and other quantitative techniques to develop and analyze process performance baselines and keep them updated.',\r\n Level: 4,\r\n Abbreviation: 'MPM 4.3',\r\n Id: MODEL_CONSTANTS.MPM_43,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_44]: {\r\n Statement: 'Use statistical and other quantitative techniques to develop and analyze process performance models and keep them updated.',\r\n Level: 4,\r\n Abbreviation: 'MPM 4.4',\r\n Id: MODEL_CONSTANTS.MPM_44,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_45]: {\r\n Statement: 'Use statistical and other quantitative techniques to determine or predict achievement of quality and process performance objectives.',\r\n Level: 4,\r\n Abbreviation: 'MPM 4.5',\r\n Id: MODEL_CONSTANTS.MPM_45,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_51]: {\r\n Statement: 'Use statistical and other quantitative techniques to ensure that business objectives are aligned with business strategy and performance.',\r\n Level: 5,\r\n Abbreviation: 'MPM 5.1',\r\n Id: MODEL_CONSTANTS.MPM_51,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_52]: {\r\n Statement: 'Analyze performance data using statistical and other quantitative techniques to determine the organization’s ability to satisfy selected business objectives and identify potential areas for performance improvement.',\r\n Level: 5,\r\n Abbreviation: 'MPM 5.2',\r\n Id: MODEL_CONSTANTS.MPM_52,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MPM_53]: {\r\n Statement: 'Select and implement improvement proposals, based on the statistical and quantitative analysis of the expected effect of proposed improvements on meeting business, quality, and process performance objectives.',\r\n Level: 5,\r\n Abbreviation: 'MPM 5.3',\r\n Id: MODEL_CONSTANTS.MPM_53,\r\n PracticeAreaID: MODEL_CONSTANTS.MPM\r\n },\r\n [MODEL_CONSTANTS.MC_11]: {\r\n Statement: 'Record task completions.',\r\n Level: 1,\r\n Abbreviation: 'MC 1.1',\r\n Id: MODEL_CONSTANTS.MC_11,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.MC_12]: {\r\n Statement: 'Identify and resolve issues.',\r\n Level: 1,\r\n Abbreviation: 'MC 1.2',\r\n Id: MODEL_CONSTANTS.MC_12,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.MC_21]: {\r\n Statement: 'Track actual results against estimates for size, effort, schedule, resources, knowledge and skills, and budget.',\r\n Level: 2,\r\n Abbreviation: 'MC 2.1',\r\n Id: MODEL_CONSTANTS.MC_21,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n }, \r\n [MODEL_CONSTANTS.MC_22]: {\r\n Statement: 'Track the involvement of identified stakeholders and commitments.',\r\n Level: 2,\r\n Abbreviation: 'MC 2.2',\r\n Id: MODEL_CONSTANTS.MC_22,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.MC_23]: {\r\n Statement: 'Monitor the transition to operations and support.',\r\n Level: 2,\r\n Abbreviation: 'MC 2.3',\r\n Id: MODEL_CONSTANTS.MC_23,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.MC_24]: {\r\n Statement: 'Take corrective actions when actual results differ significantly from planned results and manage to closure.',\r\n Level: 2,\r\n Abbreviation: 'MC 2.4',\r\n Id: MODEL_CONSTANTS.MC_24,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.MC_31]: {\r\n Statement: 'Manage the project using the project plan and the project process.',\r\n Level: 3,\r\n Abbreviation: 'MC 3.1',\r\n Id: MODEL_CONSTANTS.MC_31,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.MC_32]: {\r\n Statement: 'Manage critical dependencies and activities.',\r\n Level: 3,\r\n Abbreviation: 'MC 3.2',\r\n Id: MODEL_CONSTANTS.MC_32,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.MC_33]: {\r\n Statement: 'Monitor the work environment to identify issues.',\r\n Level: 3,\r\n Abbreviation: 'MC 3.3',\r\n Id: MODEL_CONSTANTS.MC_33,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.MC_34]: {\r\n Statement: 'Manage and resolve issues with affected stakeholders.',\r\n Level: 3,\r\n Abbreviation: 'MC 3.4',\r\n Id: MODEL_CONSTANTS.MC_34,\r\n PracticeAreaID: MODEL_CONSTANTS.MC\r\n },\r\n [MODEL_CONSTANTS.OT_11]: {\r\n Statement: 'Train people.',\r\n Level: 1,\r\n Abbreviation: 'OT 1.1',\r\n Id: MODEL_CONSTANTS.OT_11,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.OT_21]: {\r\n Statement: 'Identify training needs.',\r\n Level: 2,\r\n Abbreviation: 'OT 2.1',\r\n Id: MODEL_CONSTANTS.OT_21,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.OT_22]: {\r\n Statement: 'Train personnel and keep records.',\r\n Level: 2,\r\n Abbreviation: 'OT 2.2',\r\n Id: MODEL_CONSTANTS.OT_22,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.OT_31]: {\r\n Statement: 'Develop and keep updated the organization’s strategic and short-term training needs.',\r\n Level: 3,\r\n Abbreviation: 'OT 3.1',\r\n Id: MODEL_CONSTANTS.OT_31,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.OT_32]: {\r\n Statement: 'Coordinate training needs and delivery between the projects and the organization.',\r\n Level: 3,\r\n Abbreviation: 'OT 3.2',\r\n Id: MODEL_CONSTANTS.OT_32,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.OT_33]: {\r\n Statement: 'Develop, keep updated, and follow organizational strategic and short-term training plans.',\r\n Level: 3,\r\n Abbreviation: 'OT 3.3',\r\n Id: MODEL_CONSTANTS.OT_33,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.OT_34]: {\r\n Statement: 'Develop, keep updated, and use a training capability to address organizational training needs.',\r\n Level: 3,\r\n Abbreviation: 'OT 3.4',\r\n Id: MODEL_CONSTANTS.OT_34,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.OT_35]: {\r\n Statement: 'Assess and report the effectiveness of the organization’s training program.',\r\n Level: 3,\r\n Abbreviation: 'OT 3.5',\r\n Id: MODEL_CONSTANTS.OT_35,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.OT_36]: {\r\n Statement: 'Record, keep updated, and use the set of organizational training records.',\r\n Level: 3,\r\n Abbreviation: 'OT 3.6',\r\n Id: MODEL_CONSTANTS.OT_36,\r\n PracticeAreaID: MODEL_CONSTANTS.OT\r\n },\r\n [MODEL_CONSTANTS.PR_11]: {\r\n Statement: 'Perform reviews of work products and record issues.',\r\n Level: 1,\r\n Abbreviation: 'PR 1.1',\r\n Id: MODEL_CONSTANTS.PR_11,\r\n PracticeAreaID: MODEL_CONSTANTS.PR\r\n },\r\n [MODEL_CONSTANTS.PR_21]: {\r\n Statement: 'Develop and keep updated procedures and supporting materials used to prepare for and perform peer reviews.',\r\n Level: 2,\r\n Abbreviation: 'PR 2.1',\r\n Id: MODEL_CONSTANTS.PR_21,\r\n PracticeAreaID: MODEL_CONSTANTS.PR\r\n },\r\n [MODEL_CONSTANTS.PR_22]: {\r\n Statement: 'Select work products to be peer reviewed.',\r\n Level: 2,\r\n Abbreviation: 'PR 2.2',\r\n Id: MODEL_CONSTANTS.PR_22,\r\n PracticeAreaID: MODEL_CONSTANTS.PR\r\n },\r\n [MODEL_CONSTANTS.PR_23]: {\r\n Statement: 'Prepare and perform peer reviews on selected work products using established procedures.',\r\n Level: 2,\r\n Abbreviation: 'PR 2.3',\r\n Id: MODEL_CONSTANTS.PR_23,\r\n PracticeAreaID: MODEL_CONSTANTS.PR\r\n },\r\n [MODEL_CONSTANTS.PR_24]: {\r\n Statement: 'Resolve issues identified in peer reviews.',\r\n Level: 2,\r\n Abbreviation: 'PR 2.4',\r\n Id: MODEL_CONSTANTS.PR_24,\r\n PracticeAreaID: MODEL_CONSTANTS.PR\r\n },\r\n [MODEL_CONSTANTS.PR_31]: {\r\n Statement: 'Analyze results and data from peer reviews.',\r\n Level: 3,\r\n Abbreviation: 'PR 3.1',\r\n Id: MODEL_CONSTANTS.PR_31,\r\n PracticeAreaID: MODEL_CONSTANTS.PR\r\n },\r\n [MODEL_CONSTANTS.PLAN_11]: {\r\n Statement: 'Develop a list of tasks.',\r\n Level: 1,\r\n Abbreviation: 'PLAN 1.1',\r\n Id: MODEL_CONSTANTS.PLAN_11,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_12]: {\r\n Statement: 'Assign people to tasks.',\r\n Level: 1,\r\n Abbreviation: 'PLAN 1.2',\r\n Id: MODEL_CONSTANTS.PLAN_12,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_21]: {\r\n Statement: 'Develop and keep updated the approach for accomplishing the work.',\r\n Level: 2,\r\n Abbreviation: 'PLAN 2.1',\r\n Id: MODEL_CONSTANTS.PLAN_21,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_22]: {\r\n Statement: 'Plan for the knowledge and skills needed to perform the work.',\r\n Level: 2,\r\n Abbreviation: 'PLAN 2.2',\r\n Id: MODEL_CONSTANTS.PLAN_22,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_23]: {\r\n Statement: 'Based on recorded estimates, develop and keep the budget and schedule updated.',\r\n Level: 2,\r\n Abbreviation: 'PLAN 2.3',\r\n Id: MODEL_CONSTANTS.PLAN_23,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_24]: {\r\n Statement: 'Plan the involvement of identified stakeholders.',\r\n Level: 2,\r\n Abbreviation: 'PLAN 2.4',\r\n Id: MODEL_CONSTANTS.PLAN_24,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_25]: {\r\n Statement: 'Plan transition to operations and support.',\r\n Level: 2,\r\n Abbreviation: 'PLAN 2.5',\r\n Id: MODEL_CONSTANTS.PLAN_25,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_26]: {\r\n Statement: 'Ensure plans are feasible by reconciling estimates against capacity and availability of resources.',\r\n Level: 2,\r\n Abbreviation: 'PLAN 2.6',\r\n Id: MODEL_CONSTANTS.PLAN_26,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_27]: {\r\n Statement: 'Develop the project plan, ensure consistency among its elements, and keep it updated.',\r\n Level: 2,\r\n Abbreviation: 'PLAN 2.7',\r\n Id: MODEL_CONSTANTS.PLAN_27,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_28]: {\r\n Statement: 'Review plans and obtain commitments from affected stakeholders.',\r\n Level: 2,\r\n Abbreviation: 'PLAN 2.8',\r\n Id: MODEL_CONSTANTS.PLAN_28,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_31]: {\r\n Statement: 'Use the organization’s set of standard processes and tailoring guidelines to develop, keep updated, and follow the project process.',\r\n Level: 3,\r\n Abbreviation: 'PLAN 3.1',\r\n Id: MODEL_CONSTANTS.PLAN_31,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_32]: {\r\n Statement: 'Develop a plan and keep it updated using the project process, the organization’s process assets, and the measurement repository.',\r\n Level: 3,\r\n Abbreviation: 'PLAN 3.2',\r\n Id: MODEL_CONSTANTS.PLAN_32,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_33]: {\r\n Statement: 'Identify and negotiate critical dependencies.',\r\n Level: 3,\r\n Abbreviation: 'PLAN 3.3',\r\n Id: MODEL_CONSTANTS.PLAN_33,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_34]: {\r\n Statement: 'Plan for the project environment and keep it updated based on the organization’s standards.',\r\n Level: 3,\r\n Abbreviation: 'PLAN 3.4',\r\n Id: MODEL_CONSTANTS.PLAN_34,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PLAN_41]: {\r\n Statement: 'Use statistical and other quantitative techniques to develop and keep the project processes updated to enable achievement of the quality and process performance objectives.',\r\n Level: 4,\r\n Abbreviation: 'PLAN 4.1',\r\n Id: MODEL_CONSTANTS.PLAN_41,\r\n PracticeAreaID: MODEL_CONSTANTS.PLAN\r\n },\r\n [MODEL_CONSTANTS.PAD_11]: {\r\n Statement: 'Develop process assets to perform the work.',\r\n Level: 1,\r\n Abbreviation: 'PAD 1.1',\r\n Id: MODEL_CONSTANTS.PAD_11,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_21]: {\r\n Statement: 'Determine what process assets will be needed to perform the work.',\r\n Level: 2,\r\n Abbreviation: 'PAD 2.1',\r\n Id: MODEL_CONSTANTS.PAD_21,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_22]: {\r\n Statement: 'Develop, buy, or reuse process assets.',\r\n Level: 2,\r\n Abbreviation: 'PAD 2.2',\r\n Id: MODEL_CONSTANTS.PAD_22,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_23]: {\r\n Statement: 'Make processes and assets available.',\r\n Level: 2,\r\n Abbreviation: 'PAD 2.3',\r\n Id: MODEL_CONSTANTS.PAD_23,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_31]: {\r\n Statement: 'Develop, keep updated, and follow a strategy for building and updating process assets.',\r\n Level: 3,\r\n Abbreviation: 'PAD 3.1',\r\n Id: MODEL_CONSTANTS.PAD_31,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_32]: {\r\n Statement: 'Develop, record, and keep updated a process architecture that describes the structure of the organization’s processes and process assets.',\r\n Level: 3,\r\n Abbreviation: 'PAD 3.2',\r\n Id: MODEL_CONSTANTS.PAD_32,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_33]: {\r\n Statement: 'Develop, keep updated, and make the organization’s processes and assets available for use in a process asset library.',\r\n Level: 3,\r\n Abbreviation: 'PAD 3.3',\r\n Id: MODEL_CONSTANTS.PAD_33,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_34]: {\r\n Statement: 'Develop, keep updated, and make tailoring criteria and guidelines for the set of standard processes available for use.',\r\n Level: 3,\r\n Abbreviation: 'PAD 3.4',\r\n Id: MODEL_CONSTANTS.PAD_34,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_35]: {\r\n Statement: 'Develop, keep updated, and make work environment standards available for use.',\r\n Level: 3,\r\n Abbreviation: 'PAD 3.5',\r\n Id: MODEL_CONSTANTS.PAD_35,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PAD_36]: {\r\n Statement: 'Develop, keep updated, and make organizational measurement and analysis standards available for use.',\r\n Level: 3,\r\n Abbreviation: 'PAD 3.6',\r\n Id: MODEL_CONSTANTS.PAD_36,\r\n PracticeAreaID: MODEL_CONSTANTS.PAD \r\n },\r\n [MODEL_CONSTANTS.PCM_11]: {\r\n Statement: 'Develop a support structure to provide process guidance, identify and fix process problems, and continuously improve processes.',\r\n Level: 1,\r\n Abbreviation: 'PCM 1.1',\r\n Id: MODEL_CONSTANTS.PCM_11,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM \r\n },\r\n [MODEL_CONSTANTS.PCM_12]: {\r\n Statement: 'Appraise the current process implementation and identify strengths and weaknesses.',\r\n Level: 1,\r\n Abbreviation: 'PCM 1.2',\r\n Id: MODEL_CONSTANTS.PCM_12,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_13]: {\r\n Statement: 'Address improvement opportunities or process issues.',\r\n Level: 1,\r\n Abbreviation: 'PCM 1.3',\r\n Id: MODEL_CONSTANTS.PCM_13,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_21]: {\r\n Statement: 'Identify improvements to the processes and process assets.',\r\n Level: 2,\r\n Abbreviation: 'PCM 2.1',\r\n Id: MODEL_CONSTANTS.PCM_21,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_22]: {\r\n Statement: 'Develop, keep updated, and follow plans for implementing selected process improvements',\r\n Level: 2,\r\n Abbreviation: 'PCM 2.2',\r\n Id: MODEL_CONSTANTS.PCM_22,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_31]: {\r\n Statement: 'Develop, keep updated, and use process improvement objectives traceable to the business objectives.',\r\n Level: 3,\r\n Abbreviation: 'PCM 3.1',\r\n Id: MODEL_CONSTANTS.PCM_31,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_32]: {\r\n Statement: 'Identify processes that are the largest contributors to meeting business objectives.',\r\n Level: 3,\r\n Abbreviation: 'PCM 3.2',\r\n Id: MODEL_CONSTANTS.PCM_32,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_33]: {\r\n Statement: 'Explore and evaluate potential new processes, techniques, methods, and tools to identify improvement opportunities.',\r\n Level: 3,\r\n Abbreviation: 'PCM 3.3',\r\n Id: MODEL_CONSTANTS.PCM_33,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_34]: {\r\n Statement: 'Provide support for implementing, deploying, and sustaining process improvements.',\r\n Level: 3,\r\n Abbreviation: 'PCM 3.4',\r\n Id: MODEL_CONSTANTS.PCM_34,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_35]: {\r\n Statement: 'Deploy organizational standard processes and process assets.',\r\n Level: 3,\r\n Abbreviation: 'PCM 3.5',\r\n Id: MODEL_CONSTANTS.PCM_35,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_36]: {\r\n Statement: 'Evaluate and report the effectiveness of deployed improvements in achieving process improvement objectives.',\r\n Level: 3,\r\n Abbreviation: 'PCM 3.6',\r\n Id: MODEL_CONSTANTS.PCM_36,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PCM_41]: {\r\n Statement: 'Use statistical and other quantitative techniques to validate selected performance improvements against proposed improvement expectations, business objectives, or quality and process performance objectives.',\r\n Level: 4,\r\n Abbreviation: 'PCM 4.1',\r\n Id: MODEL_CONSTANTS.PCM_41,\r\n PracticeAreaID: MODEL_CONSTANTS.PCM\r\n },\r\n [MODEL_CONSTANTS.PQA_11]: {\r\n Statement: 'Identify and address process and work product issues.',\r\n Level: 1,\r\n Abbreviation: 'PQA 1.1',\r\n Id: MODEL_CONSTANTS.PQA_11,\r\n PracticeAreaID: MODEL_CONSTANTS.PQA\r\n },\r\n [MODEL_CONSTANTS.PQA_21]: {\r\n Statement: 'Develop, keep updated, and follow a quality assurance approach and plan based on historical quality data.',\r\n Level: 2,\r\n Abbreviation: 'PQA 2.1',\r\n Id: MODEL_CONSTANTS.PQA_21,\r\n PracticeAreaID: MODEL_CONSTANTS.PQA\r\n },\r\n [MODEL_CONSTANTS.PQA_22]: {\r\n Statement: 'Objectively evaluate selected performed processes and work products against the recorded process and applicable standards.',\r\n Level: 2,\r\n Abbreviation: 'PQA 2.2',\r\n Id: MODEL_CONSTANTS.PQA_22,\r\n PracticeAreaID:MODEL_CONSTANTS.PQA\r\n },\r\n [MODEL_CONSTANTS.PQA_23]: {\r\n Statement: 'Communicate quality and non-compliance issues and ensure their resolution.',\r\n Level: 2,\r\n Abbreviation: 'PQA 2.3',\r\n Id: MODEL_CONSTANTS.PQA_23,\r\n PracticeAreaID: MODEL_CONSTANTS.PQA\r\n },\r\n [MODEL_CONSTANTS.PQA_24]: {\r\n Statement: 'Record and use results of quality assurance activities.',\r\n Level: 2,\r\n Abbreviation: 'PQA 2.4',\r\n Id: MODEL_CONSTANTS.PQA_24,\r\n PracticeAreaID: MODEL_CONSTANTS.PQA\r\n },\r\n [MODEL_CONSTANTS.PQA_31]: {\r\n Statement: 'Identify and record opportunities for improvement during quality assurance activities.',\r\n Level: 3,\r\n Abbreviation: 'PQA 3.1',\r\n Id: MODEL_CONSTANTS.PQA_31,\r\n PracticeAreaID: MODEL_CONSTANTS.PQA\r\n },\r\n [MODEL_CONSTANTS.PI_11]: {\r\n Statement: 'Assemble solutions and deliver to the customer.',\r\n Level: 1,\r\n Abbreviation: 'PI 1.1',\r\n Id: MODEL_CONSTANTS.PI_11,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_21]: {\r\n Statement: 'Develop, keep updated, and follow an integration strategy.',\r\n Level: 2,\r\n Abbreviation: 'PI 2.1',\r\n Id: MODEL_CONSTANTS.PI_21,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_22]: {\r\n Statement: 'Develop, keep updated, and use the integration environment.',\r\n Level: 2,\r\n Abbreviation: 'PI 2.2',\r\n Id: MODEL_CONSTANTS.PI_22,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_23]: {\r\n Statement: 'Develop, keep updated, and follow procedures and criteria for integrating solutions and components.',\r\n Level: 2,\r\n Abbreviation: 'PI 2.3',\r\n Id: MODEL_CONSTANTS.PI_23,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_24]: {\r\n Statement: 'Confirm, prior to integration, that each component has been properly identified and operates according to its requirements and design.',\r\n Level: 2,\r\n Abbreviation: 'PI 2.4',\r\n Id: MODEL_CONSTANTS.PI_24,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_25]: {\r\n Statement: 'Evaluate integrated components to ensure conformance to the solution’s requirements and design.',\r\n Level: 2,\r\n Abbreviation: 'PI 2.5',\r\n Id: MODEL_CONSTANTS.PI_25,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_26]: {\r\n Statement: 'Integrate solutions and components according to the integration strategy.',\r\n Level: 2,\r\n Abbreviation: 'PI 2.6',\r\n Id: MODEL_CONSTANTS.PI_26,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_31]: {\r\n Statement: 'Review and keep updated interface or connection descriptions for coverage, completeness, and consistency throughout the solution’s life.',\r\n Level: 3,\r\n Abbreviation: 'PI 3.1',\r\n Id: MODEL_CONSTANTS.PI_31,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_32]: {\r\n Statement: 'Confirm, prior to integration, that component interfaces or connections comply with interface or connection descriptions.',\r\n Level: 3,\r\n Abbreviation: 'PI 3.2',\r\n Id: MODEL_CONSTANTS.PI_32,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.PI_33]: {\r\n Statement: 'Evaluate integrated components for interface or connection compatibility.',\r\n Level: 3,\r\n Abbreviation: 'PI 3.3',\r\n Id: MODEL_CONSTANTS.PI_33,\r\n PracticeAreaID: MODEL_CONSTANTS.PI\r\n },\r\n [MODEL_CONSTANTS.RDM_11]: {\r\n Statement: 'Record requirements.',\r\n Level: 1,\r\n Abbreviation: 'RDM 1.1',\r\n Id: MODEL_CONSTANTS.RDM_11,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_21]: {\r\n Statement: 'Elicit stakeholder needs, expectations, constraints, and interfaces or connections and confirm understanding of the requirements.',\r\n Level: 2,\r\n Abbreviation: 'RDM 2.1',\r\n Id: MODEL_CONSTANTS.RDM_21,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_22]: {\r\n Statement: 'Transform stakeholder needs, expectations, constraints, and interfaces or connections into prioritized customer requirements.',\r\n Level: 2,\r\n Abbreviation: 'RDM 2.2',\r\n Id: MODEL_CONSTANTS.RDM_22,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_23]: {\r\n Statement: 'Obtain commitment from project participants that they can implement the requirements.',\r\n Level: 2,\r\n Abbreviation: 'RDM 2.3',\r\n Id: MODEL_CONSTANTS.RDM_23,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_24]: {\r\n Statement: 'Develop, record, and maintain bidirectional traceability among requirements and activities or work products.',\r\n Level: 2,\r\n Abbreviation: 'RDM 2.4',\r\n Id: MODEL_CONSTANTS.RDM_24,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_25]: {\r\n Statement: 'Ensure that plans and activities or work products remain consistent with requirements.',\r\n Level: 2,\r\n Abbreviation: 'RDM 2.5',\r\n Id: MODEL_CONSTANTS.RDM_25,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_31]: {\r\n Statement: 'Develop and keep requirements updated for the solution and its components.',\r\n Level: 3,\r\n Abbreviation: 'RDM 3.1',\r\n Id: MODEL_CONSTANTS.RDM_31,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_32]: {\r\n Statement: 'Develop operational concepts and scenarios.',\r\n Level: 3,\r\n Abbreviation: 'RDM 3.2',\r\n Id: MODEL_CONSTANTS.RDM_32,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_33]: {\r\n Statement: 'Allocate the requirements to be implemented.',\r\n Level: 3,\r\n Abbreviation: 'RDM 3.3',\r\n Id: MODEL_CONSTANTS.RDM_33,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_34]: {\r\n Statement: 'Identify, develop, and keep updated interface or connection requirements.',\r\n Level: 3,\r\n Abbreviation: 'RDM 3.4',\r\n Id: MODEL_CONSTANTS.RDM_34,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_35]: {\r\n Statement: 'Ensure that requirements are necessary and sufficient.',\r\n Level: 3,\r\n Abbreviation: 'RDM 3.5',\r\n Id: MODEL_CONSTANTS.RDM_35,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_36]: {\r\n Statement: 'Balance stakeholder needs and constraints.',\r\n Level: 3,\r\n Abbreviation: 'RDM 3.6',\r\n Id: MODEL_CONSTANTS.RDM_36,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RDM_37]: {\r\n Statement: 'Validate requirements to ensure the resulting solution will perform as intended in the target environment.',\r\n Level: 3,\r\n Abbreviation: 'RDM 3.7',\r\n Id: MODEL_CONSTANTS.RDM_37,\r\n PracticeAreaID: MODEL_CONSTANTS.RDM\r\n },\r\n [MODEL_CONSTANTS.RSK_11]:{\r\n Statement: 'Identify and record risks or opportunities and keep them updated.',\r\n Level: 1,\r\n Abbreviation: 'RSK 1.1',\r\n Id: MODEL_CONSTANTS.RSK_11,\r\n PracticeAreaID: MODEL_CONSTANTS.RSK\r\n },\r\n [MODEL_CONSTANTS.RSK_21]: {\r\n Statement: 'Analyze identified risks or opportunities.',\r\n Level: 2,\r\n Abbreviation: 'RSK 2.1',\r\n Id: MODEL_CONSTANTS.RSK_21,\r\n PracticeAreaID: MODEL_CONSTANTS.RSK\r\n },\r\n [MODEL_CONSTANTS.RSK_22]:{\r\n Statement: 'Monitor identified risks or opportunities and communicate status to affected stakeholders.',\r\n Level: 2,\r\n Abbreviation: 'RSK 2.2',\r\n Id: MODEL_CONSTANTS.RSK_22,\r\n PracticeAreaID: MODEL_CONSTANTS.RSK\r\n },\r\n [MODEL_CONSTANTS.RSK_31]:{\r\n Statement: 'Identify and use risk or opportunity categories.',\r\n Level: 3,\r\n Abbreviation: 'RSK 3.1',\r\n Id: MODEL_CONSTANTS.RSK_31,\r\n PracticeAreaID: MODEL_CONSTANTS.RSK\r\n },\r\n [MODEL_CONSTANTS.RSK_32]:{\r\n Statement: 'Define and use parameters for risk or opportunity analysis and handling.',\r\n Level: 3,\r\n Abbreviation: 'RSK 3.2',\r\n Id: MODEL_CONSTANTS.RSK_32,\r\n PracticeAreaID: MODEL_CONSTANTS.RSK\r\n },\r\n [MODEL_CONSTANTS.RSK_33]:{\r\n Statement: 'Develop and keep updated a risk or opportunity management strategy.',\r\n Level: 3,\r\n Abbreviation: 'RSK 3.3',\r\n Id: MODEL_CONSTANTS.RSK_33,\r\n PracticeAreaID: MODEL_CONSTANTS.RSK\r\n },\r\n [MODEL_CONSTANTS.RSK_34]:{\r\n Statement: 'Develop and keep updated risk or opportunity management plans.',\r\n Level: 3,\r\n Abbreviation: 'RSK 3.4',\r\n Id: MODEL_CONSTANTS.RSK_34,\r\n PracticeAreaID: MODEL_CONSTANTS.RSK\r\n },\r\n [MODEL_CONSTANTS.RSK_35]:{\r\n Statement: 'Manage risks or opportunities by implementing planned risk or opportunity management activities.',\r\n Level: 3,\r\n Abbreviation: 'RSK 3.5',\r\n Id: MODEL_CONSTANTS.RSK_35,\r\n PracticeAreaID: MODEL_CONSTANTS.RSK\r\n },\r\n [MODEL_CONSTANTS.SDM_11]: {\r\n Statement: 'Use the service system to deliver services.',\r\n Level: 1,\r\n Abbreviation: 'SDM 1.1',\r\n Id: MODEL_CONSTANTS.SDM_11,\r\n PracticeAreaID: MODEL_CONSTANTS.SDM\r\n },\r\n [MODEL_CONSTANTS.SDM_21]: {\r\n Statement: 'Develop, record, keep updated, and follow service agreements.',\r\n Level: 2,\r\n Abbreviation: 'SDM 2.1',\r\n Id: MODEL_CONSTANTS.SDM_21,\r\n PracticeAreaID: MODEL_CONSTANTS.SDM\r\n },\r\n [MODEL_CONSTANTS.SDM_22]: {\r\n Statement: 'Receive and process service requests in accordance with service agreements.',\r\n Level: 2,\r\n Abbreviation: 'SDM 2.2',\r\n Id: MODEL_CONSTANTS.SDM_22,\r\n PracticeAreaID: MODEL_CONSTANTS.SDM\r\n },\r\n [MODEL_CONSTANTS.SDM_23]:{\r\n Statement: 'Deliver services in accordance with service agreements.',\r\n Level: 2,\r\n Abbreviation: 'SDM 2.3',\r\n Id: MODEL_CONSTANTS.SDM_23,\r\n PracticeAreaID: MODEL_CONSTANTS.SDM\r\n },\r\n [MODEL_CONSTANTS.SDM_24]:{\r\n Statement: 'Analyze existing service agreements and service data to prepare for updated or new agreements.',\r\n Level: 2,\r\n Abbreviation: 'SDM 2.4',\r\n Id: MODEL_CONSTANTS.SDM_24,\r\n PracticeAreaID: MODEL_CONSTANTS.SDM\r\n },\r\n [MODEL_CONSTANTS.SDM_25]:{\r\n Statement: 'Develop, record, keep updated, and follow the approach for operating and changing the service system.',\r\n Level: 2,\r\n Abbreviation: 'SDM 2.5',\r\n Id: MODEL_CONSTANTS.SDM_25,\r\n PracticeAreaID: MODEL_CONSTANTS.SDM\r\n },\r\n [MODEL_CONSTANTS.SDM_26]:{\r\n Statement: 'Confirm the readiness of the service system to support the delivery of services.',\r\n Level: 2,\r\n Abbreviation: 'SDM 2.6',\r\n Id: MODEL_CONSTANTS.SDM_26,\r\n PracticeAreaID: MODEL_CONSTANTS.SDM\r\n },\r\n [MODEL_CONSTANTS.SDM_31]: {\r\n Statement: 'Develop, record, keep updated, and use organizational standard service systems and agreements.',\r\n Level: 3,\r\n Abbreviation: 'SDM 3.1',\r\n Id: MODEL_CONSTANTS.SDM_31,\r\n PracticeAreaID: MODEL_CONSTANTS.SDM\r\n },\r\n [MODEL_CONSTANTS.STSM_11]: {\r\n Statement: 'Develop a list of current services.',\r\n Level: 1,\r\n Abbreviation: 'STSM 1.1',\r\n Id: MODEL_CONSTANTS.STSM_11,\r\n PracticeAreaID: MODEL_CONSTANTS.STSM\r\n },\r\n [MODEL_CONSTANTS.STSM_21]: {\r\n Statement: 'Develop, keep updated, and use descriptions of current services.',\r\n Level: 2,\r\n Abbreviation: 'STSM 2.1',\r\n Id: MODEL_CONSTANTS.STSM_21,\r\n PracticeAreaID: MODEL_CONSTANTS.STSM\r\n },\r\n [MODEL_CONSTANTS.STSM_22]: {\r\n Statement: 'Collect, record, and analyze data about strategic needs and capabilities for service delivery.',\r\n Level: 2,\r\n Abbreviation: 'STSM 2.2',\r\n Id: MODEL_CONSTANTS.STSM_22,\r\n PracticeAreaID: MODEL_CONSTANTS.STSM\r\n },\r\n [MODEL_CONSTANTS.STSM_23]: {\r\n Statement: 'Develop, keep updated, and follow an approach for providing new or changed services derived from strategic needs and capabilities.',\r\n Level: 2,\r\n Abbreviation: 'STSM 2.3',\r\n Id: MODEL_CONSTANTS.STSM_23,\r\n PracticeAreaID: MODEL_CONSTANTS.STSM\r\n },\r\n [MODEL_CONSTANTS.STSM_31]: {\r\n Statement: 'Develop, keep updated, and use the set of organizational standard service descriptions and service levels.',\r\n Level: 3,\r\n Abbreviation: 'STSM 3.1',\r\n Id: MODEL_CONSTANTS.STSM_31,\r\n PracticeAreaID: MODEL_CONSTANTS.STSM\r\n },\r\n [MODEL_CONSTANTS.SAM_11]: {\r\n Statement: 'Identify, evaluate, and select suppliers.',\r\n Level: 1,\r\n Abbreviation: 'SAM 1.1',\r\n Id: MODEL_CONSTANTS.SAM_11,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_12]: {\r\n Statement: 'Develop and record the supplier agreement.',\r\n Level: 1,\r\n Abbreviation: 'SAM 1.2',\r\n Id: MODEL_CONSTANTS.SAM_12,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_13]: {\r\n Statement: 'Accept or reject the supplier deliverables.',\r\n Level: 1,\r\n Abbreviation: 'SAM 1.3',\r\n Id: MODEL_CONSTANTS.SAM_13,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_14]: {\r\n Statement: 'Process supplier invoices.',\r\n Level: 1,\r\n Abbreviation: 'SAM 1.4',\r\n Id: MODEL_CONSTANTS.SAM_14,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_21]: {\r\n Statement: 'Identify evaluation criteria, potential suppliers, and distribute supplier requests.',\r\n Level: 2,\r\n Abbreviation: 'SAM 2.1',\r\n Id: MODEL_CONSTANTS.SAM_21,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_22]: {\r\n Statement: 'Evaluate supplier responses according to recorded evaluation criteria and select suppliers.',\r\n Level: 2,\r\n Abbreviation: 'SAM 2.2',\r\n Id: MODEL_CONSTANTS.SAM_22,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_23]: {\r\n Statement: 'Manage supplier activities as specified in the supplier agreement and keep agreement updated.',\r\n Level: 2,\r\n Abbreviation: 'SAM 2.3',\r\n Id: MODEL_CONSTANTS.SAM_23,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_24]: {\r\n Statement: 'Verify that the supplier agreement is satisfied before accepting the acquired supplier deliverable.',\r\n Level: 2,\r\n Abbreviation: 'SAM 2.4',\r\n Id: MODEL_CONSTANTS.SAM_24,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n }, \r\n [MODEL_CONSTANTS.SAM_25]: {\r\n Statement: 'Manage invoices submitted by the supplier according to the supplier agreements.',\r\n Level: 2,\r\n Abbreviation: 'SAM 2.5',\r\n Id: MODEL_CONSTANTS.SAM_25,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n }, \r\n [MODEL_CONSTANTS.SAM_31]: {\r\n Statement: 'Conduct technical reviews of supplier performance activities and selected deliverables.',\r\n Level: 3,\r\n Abbreviation: 'SAM 3.1',\r\n Id: MODEL_CONSTANTS.SAM_31,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_32]: {\r\n Statement: 'Manage supplier performance and processes based on criteria in the supplier agreement.',\r\n Level: 3,\r\n Abbreviation: 'SAM 3.2',\r\n Id: MODEL_CONSTANTS.SAM_32,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SAM_41]: {\r\n Statement: 'Select measures and apply analytical techniques to quantitatively manage supplier performance to achieve quality and process performance objectives.',\r\n Level: 4,\r\n Abbreviation: 'SAM 4.1',\r\n Id: MODEL_CONSTANTS.SAM_41,\r\n PracticeAreaID: MODEL_CONSTANTS.SAM\r\n },\r\n [MODEL_CONSTANTS.SSS_11]: {\r\n Statement: 'Determine the type of acquisition.',\r\n Level: 1,\r\n Abbreviation: 'SSS 1.1',\r\n Id: MODEL_CONSTANTS.SSS_11,\r\n PracticeAreaID: MODEL_CONSTANTS.SSS\r\n },\r\n [MODEL_CONSTANTS.SSS_12]: {\r\n Statement: 'Identify potential suppliers and distribute requests for proposals.',\r\n Level: 1,\r\n Abbreviation: 'SSS 1.2',\r\n Id: MODEL_CONSTANTS.SSS_12,\r\n PracticeAreaID: MODEL_CONSTANTS.SSS\r\n },\r\n [MODEL_CONSTANTS.SSS_13]: {\r\n Statement: 'Evaluate proposals and select suppliers.',\r\n Level: 1,\r\n Abbreviation: 'SSS 1.3',\r\n Id: MODEL_CONSTANTS.SSS_13,\r\n PracticeAreaID: MODEL_CONSTANTS.SSS\r\n },\r\n [MODEL_CONSTANTS.SSS_21]: {\r\n Statement: 'Develop a solicitation package and keep it updated',\r\n Level: 2,\r\n Abbreviation: 'SSS 2.1',\r\n Id: MODEL_CONSTANTS.SSS_21,\r\n PracticeAreaID: MODEL_CONSTANTS.SSS\r\n },\r\n [MODEL_CONSTANTS.SSS_22]: {\r\n Statement: 'Identify qualified potential suppliers and distribute the solicitation package for their response.',\r\n Level: 2,\r\n Abbreviation: 'SSS 2.2',\r\n Id: MODEL_CONSTANTS.SSS_22,\r\n PracticeAreaID: MODEL_CONSTANTS.SSS\r\n },\r\n [MODEL_CONSTANTS.SSS_23]: {\r\n Statement: 'Evaluate proposed solutions according to recorded evaluation criteria and select suppliers.',\r\n Level: 2,\r\n Abbreviation: 'SSS 2.3',\r\n Id: MODEL_CONSTANTS.SSS_23,\r\n PracticeAreaID: MODEL_CONSTANTS.SSS\r\n }, \r\n [MODEL_CONSTANTS.SSS_31]: {\r\n Statement: 'Develop, keep updated, and follow negotiation approaches for soliciting, evaluating, and selecting suppliers.',\r\n Level: 3,\r\n Abbreviation: 'SSS 3.1',\r\n Id: MODEL_CONSTANTS.SSS_31,\r\n PracticeAreaID: MODEL_CONSTANTS.SSS\r\n },\r\n [MODEL_CONSTANTS.TS_11]: {\r\n Statement: 'Build a solution to meet requirements.',\r\n Level: 1,\r\n Abbreviation: 'TS 1.1',\r\n Id: MODEL_CONSTANTS.TS_11,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_21]: {\r\n Statement: 'Design and build a solution to meet requirements.',\r\n Level: 2,\r\n Abbreviation: 'TS 2.1',\r\n Id: MODEL_CONSTANTS.TS_21,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_22]: {\r\n Statement: 'Evaluate the design and address identified issues.',\r\n Level: 2,\r\n Abbreviation: 'TS 2.2',\r\n Id: MODEL_CONSTANTS.TS_22,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_23]: {\r\n Statement: 'Provide guidance on use of the solution.',\r\n Level: 2,\r\n Abbreviation: 'TS 2.3',\r\n Id: MODEL_CONSTANTS.TS_23,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_31]: {\r\n Statement: 'Develop criteria for design decisions.',\r\n Level: 3,\r\n Abbreviation: 'TS 3.1',\r\n Id: MODEL_CONSTANTS.TS_31,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_32]: {\r\n Statement: 'Develop alternative solutions for selected components.',\r\n Level: 3,\r\n Abbreviation: 'TS 3.2',\r\n Id: MODEL_CONSTANTS.TS_32,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_33]: {\r\n Statement: 'Perform a build, buy, or reuse analysis.',\r\n Level: 3,\r\n Abbreviation: 'TS 3.3',\r\n Id: MODEL_CONSTANTS.TS_33,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_34]: {\r\n Statement: 'Select solutions based on design criteria.',\r\n Level: 3,\r\n Abbreviation: 'TS 3.4',\r\n Id: MODEL_CONSTANTS.TS_34,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_35]: {\r\n Statement: 'Develop, keep updated, and use information needed to implement the design.',\r\n Level: 3,\r\n Abbreviation: 'TS 3.5',\r\n Id: MODEL_CONSTANTS.TS_35,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.TS_36]: {\r\n Statement: 'Design solution interfaces or connections using established criteria.',\r\n Level: 3,\r\n Abbreviation: 'TS 3.6',\r\n Id: MODEL_CONSTANTS.TS_36,\r\n PracticeAreaID: MODEL_CONSTANTS.TS\r\n },\r\n [MODEL_CONSTANTS.VV_11]: {\r\n Statement: 'Perform verification to ensure the requirements are implemented and record and communicate results.',\r\n Level: 1,\r\n Abbreviation: 'VV 1.1',\r\n Id: MODEL_CONSTANTS.VV_11,\r\n PracticeAreaID: MODEL_CONSTANTS.VV\r\n },\r\n [MODEL_CONSTANTS.VV_12]: {\r\n Statement: 'Perform validation to ensure the solution will function as intended in its target environment and record and communicate results.',\r\n Level: 1,\r\n Abbreviation: 'VV 1.2',\r\n Id: MODEL_CONSTANTS.VV_12,\r\n PracticeAreaID: MODEL_CONSTANTS.VV\r\n },\r\n [MODEL_CONSTANTS.VV_21]: {\r\n Statement: 'Select components and methods for verification and validation.',\r\n Level: 2,\r\n Abbreviation: 'VV 2.1',\r\n Id: MODEL_CONSTANTS.VV_21,\r\n PracticeAreaID: MODEL_CONSTANTS.VV\r\n },\r\n [MODEL_CONSTANTS.VV_22]: {\r\n Statement: 'Develop, keep updated, and use the environment needed to support verification and validation.',\r\n Level: 2,\r\n Abbreviation: 'VV 2.2',\r\n Id: MODEL_CONSTANTS.VV_22,\r\n PracticeAreaID: MODEL_CONSTANTS.VV\r\n },\r\n [MODEL_CONSTANTS.VV_23]: {\r\n Statement: 'Develop, keep updated, and follow procedures for verification and validation.',\r\n Level: 2,\r\n Abbreviation: 'VV 2.3',\r\n Id: MODEL_CONSTANTS.VV_23,\r\n PracticeAreaID: MODEL_CONSTANTS.VV\r\n },\r\n [MODEL_CONSTANTS.VV_31]: {\r\n Statement: 'Develop, keep updated, and use criteria for verification and validation.',\r\n Level: 3,\r\n Abbreviation: 'VV 3.1',\r\n Id: MODEL_CONSTANTS.VV_31,\r\n PracticeAreaID: MODEL_CONSTANTS.VV\r\n },\r\n [MODEL_CONSTANTS.VV_32]: {\r\n Statement: 'Analyze and communicate verification and validation results.',\r\n Level: 3,\r\n Abbreviation: 'VV 3.2',\r\n Id: MODEL_CONSTANTS.VV_32,\r\n PracticeAreaID: MODEL_CONSTANTS.VV\r\n }\r\n};\r\n\r\nexport { PRACTICES }","import { MODEL_CONSTANTS } from './modelconstants';\r\n\r\nconst PRACTICE_AREA_RELATIONSHIPS = {\r\n [MODEL_CONSTANTS.CAR]: [\r\n {Id: MODEL_CONSTANTS.CAR_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.CAR_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.CAR_22, Level: 2}, \r\n {Id: MODEL_CONSTANTS.CAR_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.CAR_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.CAR_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.CAR_34, Level: 3},\r\n {Id: MODEL_CONSTANTS.CAR_35, Level: 3},\r\n {Id: MODEL_CONSTANTS.CAR_41, Level: 4},\r\n {Id: MODEL_CONSTANTS.CAR_42, Level: 4},\r\n {Id: MODEL_CONSTANTS.CAR_51, Level: 5}\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n {Id: MODEL_CONSTANTS.CM_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.CM_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.CM_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.CM_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.CM_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.CM_25, Level: 2},\r\n {Id: MODEL_CONSTANTS.CM_26, Level: 2}\r\n ],\r\n [MODEL_CONSTANTS.CONT]: [\r\n {Id: MODEL_CONSTANTS.CONT_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.CONT_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.CONT_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.CONT_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.CONT_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.CONT_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.CONT_33, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n {Id: MODEL_CONSTANTS.DAR_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.DAR_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.DAR_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.DAR_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.DAR_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.DAR_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.DAR_25, Level: 2},\r\n {Id: MODEL_CONSTANTS.DAR_31, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n {Id: MODEL_CONSTANTS.EST_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.EST_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.EST_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.EST_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.EST_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.EST_32, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.EVSD]: [\r\n {Id: MODEL_CONSTANTS.EVSD_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.EVSD_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.EVSD_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.EVSD_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.EVSD_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.EVSD_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.EVSD_33, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n {Id: MODEL_CONSTANTS.GOV_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.GOV_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.GOV_22, Level: 2}, \r\n {Id: MODEL_CONSTANTS.GOV_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.GOV_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.GOV_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.GOV_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.GOV_41, Level: 4}\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n {Id: MODEL_CONSTANTS.II_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.II_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.II_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.II_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.II_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.II_33, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.IRP]: [\r\n {Id: MODEL_CONSTANTS.IRP_11, Level: 1}, \r\n {Id: MODEL_CONSTANTS.IRP_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.IRP_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.IRP_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.IRP_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.IRP_32, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n {Id: MODEL_CONSTANTS.MPM_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.MPM_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.MPM_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.MPM_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.MPM_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.MPM_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.MPM_25, Level: 2},\r\n {Id: MODEL_CONSTANTS.MPM_26, Level: 2},\r\n {Id: MODEL_CONSTANTS.MPM_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.MPM_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.MPM_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.MPM_34, Level: 3},\r\n {Id: MODEL_CONSTANTS.MPM_35, Level: 3},\r\n {Id: MODEL_CONSTANTS.MPM_36, Level: 3},\r\n {Id: MODEL_CONSTANTS.MPM_41, Level: 4},\r\n {Id: MODEL_CONSTANTS.MPM_42, Level: 4},\r\n {Id: MODEL_CONSTANTS.MPM_43, Level: 4},\r\n {Id: MODEL_CONSTANTS.MPM_44, Level: 4},\r\n {Id: MODEL_CONSTANTS.MPM_45, Level: 4},\r\n {Id: MODEL_CONSTANTS.MPM_51, Level: 5},\r\n {Id: MODEL_CONSTANTS.MPM_52, Level: 5},\r\n {Id: MODEL_CONSTANTS.MPM_53, Level: 5}\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n {Id: MODEL_CONSTANTS.MC_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.MC_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.MC_21, Level: 2}, \r\n {Id: MODEL_CONSTANTS.MC_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.MC_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.MC_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.MC_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.MC_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.MC_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.MC_34, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n {Id: MODEL_CONSTANTS.OT_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.OT_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.OT_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.OT_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.OT_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.OT_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.OT_34, Level: 3},\r\n {Id: MODEL_CONSTANTS.OT_35, Level: 3},\r\n {Id: MODEL_CONSTANTS.OT_36, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n {Id: MODEL_CONSTANTS.PR_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.PR_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.PR_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.PR_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.PR_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.PR_31, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n {Id: MODEL_CONSTANTS.PLAN_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.PLAN_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.PLAN_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.PLAN_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.PLAN_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.PLAN_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.PLAN_25, Level: 2},\r\n {Id: MODEL_CONSTANTS.PLAN_26, Level: 2},\r\n {Id: MODEL_CONSTANTS.PLAN_27, Level: 2},\r\n {Id: MODEL_CONSTANTS.PLAN_28, Level: 2},\r\n {Id: MODEL_CONSTANTS.PLAN_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.PLAN_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.PLAN_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.PLAN_34, Level: 3},\r\n {Id: MODEL_CONSTANTS.PLAN_41, Level: 4}\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n {Id: MODEL_CONSTANTS.PAD_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.PAD_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.PAD_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.PAD_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.PAD_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.PAD_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.PAD_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.PAD_34, Level: 3},\r\n {Id: MODEL_CONSTANTS.PAD_35, Level: 3},\r\n {Id: MODEL_CONSTANTS.PAD_36, Level: 3}\r\n //{Id: MODEL_CONSTANTS.PAD_37, Level: 3} //removed in 3.0\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n {Id: MODEL_CONSTANTS.PCM_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.PCM_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.PCM_13, Level: 1}, \r\n {Id: MODEL_CONSTANTS.PCM_21, Level: 2}, \r\n {Id: MODEL_CONSTANTS.PCM_22, Level: 2}, \r\n {Id: MODEL_CONSTANTS.PCM_31, Level: 3}, \r\n {Id: MODEL_CONSTANTS.PCM_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.PCM_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.PCM_34, Level: 3}, \r\n {Id: MODEL_CONSTANTS.PCM_35, Level: 3},\r\n {Id: MODEL_CONSTANTS.PCM_36, Level: 3},\r\n {Id: MODEL_CONSTANTS.PCM_41, Level: 4}\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n {Id: MODEL_CONSTANTS.PQA_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.PQA_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.PQA_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.PQA_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.PQA_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.PQA_31, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.PI]: [\r\n {Id: MODEL_CONSTANTS.PI_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.PI_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.PI_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.PI_23, Level: 2}, \r\n {Id: MODEL_CONSTANTS.PI_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.PI_25, Level: 2},\r\n {Id: MODEL_CONSTANTS.PI_26, Level: 2},\r\n {Id: MODEL_CONSTANTS.PI_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.PI_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.PI_33, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n {Id: MODEL_CONSTANTS.RDM_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.RDM_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.RDM_22, Level: 2}, \r\n {Id: MODEL_CONSTANTS.RDM_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.RDM_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.RDM_25, Level: 2},\r\n //{Id: MODEL_CONSTANTS.RDM_26, Level: 2}, removed in 3.0\r\n {Id: MODEL_CONSTANTS.RDM_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.RDM_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.RDM_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.RDM_34, Level: 3},\r\n {Id: MODEL_CONSTANTS.RDM_35, Level: 3},\r\n {Id: MODEL_CONSTANTS.RDM_36, Level: 3},\r\n {Id: MODEL_CONSTANTS.RDM_37, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.RSK]:[\r\n {Id: MODEL_CONSTANTS.RSK_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.RSK_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.RSK_22, Level: 2}, \r\n {Id: MODEL_CONSTANTS.RSK_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.RSK_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.RSK_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.RSK_34, Level: 3},\r\n {Id: MODEL_CONSTANTS.RSK_35, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.SDM]: [\r\n {Id: MODEL_CONSTANTS.SDM_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.SDM_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.SDM_22, Level: 2}, \r\n {Id: MODEL_CONSTANTS.SDM_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.SDM_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.SDM_25, Level: 2},\r\n {Id: MODEL_CONSTANTS.SDM_26, Level: 2},\r\n {Id: MODEL_CONSTANTS.SDM_31, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.STSM]:[\r\n {Id: MODEL_CONSTANTS.STSM_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.STSM_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.STSM_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.STSM_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.STSM_31, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.SAM]:[\r\n {Id: MODEL_CONSTANTS.SAM_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.SAM_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.SAM_13, Level: 1},\r\n {Id: MODEL_CONSTANTS.SAM_14, Level: 1},\r\n {Id: MODEL_CONSTANTS.SAM_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.SAM_22, Level: 2}, \r\n {Id: MODEL_CONSTANTS.SAM_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.SAM_24, Level: 2},\r\n {Id: MODEL_CONSTANTS.SAM_25, Level: 2},\r\n {Id: MODEL_CONSTANTS.SAM_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.SAM_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.SAM_41, Level: 4}\r\n ],\r\n [MODEL_CONSTANTS.SSS]: [\r\n {Id: MODEL_CONSTANTS.SSS_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.SSS_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.SSS_13, Level: 1},\r\n {Id: MODEL_CONSTANTS.SSS_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.SSS_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.SSS_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.SSS_31, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.TS]:[\r\n {Id: MODEL_CONSTANTS.TS_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.TS_21, Level: 2}, \r\n {Id: MODEL_CONSTANTS.TS_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.TS_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.TS_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.TS_32, Level: 3},\r\n {Id: MODEL_CONSTANTS.TS_33, Level: 3},\r\n {Id: MODEL_CONSTANTS.TS_34, Level: 3},\r\n {Id: MODEL_CONSTANTS.TS_35, Level: 3},\r\n {Id: MODEL_CONSTANTS.TS_36, Level: 3}\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n {Id: MODEL_CONSTANTS.VV_11, Level: 1},\r\n {Id: MODEL_CONSTANTS.VV_12, Level: 1},\r\n {Id: MODEL_CONSTANTS.VV_21, Level: 2},\r\n {Id: MODEL_CONSTANTS.VV_22, Level: 2},\r\n {Id: MODEL_CONSTANTS.VV_23, Level: 2},\r\n {Id: MODEL_CONSTANTS.VV_31, Level: 3},\r\n {Id: MODEL_CONSTANTS.VV_32, Level: 3}\r\n ]\r\n};\r\n\r\nconst PRACTICES_AREAS_BY_MATURITY_LEVEL = {\r\n DEV: {\r\n 2: [\r\n MODEL_CONSTANTS.CM,\r\n MODEL_CONSTANTS.DAR,\r\n MODEL_CONSTANTS.PQA,\r\n MODEL_CONSTANTS.PR,\r\n MODEL_CONSTANTS.EST,\r\n MODEL_CONSTANTS.GOV,\r\n MODEL_CONSTANTS.SAM,\r\n MODEL_CONSTANTS.VV,\r\n MODEL_CONSTANTS.II,\r\n MODEL_CONSTANTS.PI,\r\n MODEL_CONSTANTS.MC,\r\n MODEL_CONSTANTS.PLAN,\r\n MODEL_CONSTANTS.CAR,\r\n MODEL_CONSTANTS.RSK,\r\n MODEL_CONSTANTS.MPM,\r\n MODEL_CONSTANTS.OT,\r\n MODEL_CONSTANTS.PCM,\r\n MODEL_CONSTANTS.TS,\r\n MODEL_CONSTANTS.PAD,\r\n MODEL_CONSTANTS.RDM\r\n ],\r\n 3: [\r\n MODEL_CONSTANTS.CM,\r\n MODEL_CONSTANTS.DAR,\r\n MODEL_CONSTANTS.PQA,\r\n MODEL_CONSTANTS.PR,\r\n MODEL_CONSTANTS.EST,\r\n MODEL_CONSTANTS.GOV,\r\n MODEL_CONSTANTS.SAM,\r\n MODEL_CONSTANTS.VV,\r\n MODEL_CONSTANTS.II,\r\n MODEL_CONSTANTS.PI,\r\n MODEL_CONSTANTS.MC,\r\n MODEL_CONSTANTS.PLAN,\r\n MODEL_CONSTANTS.CAR,\r\n MODEL_CONSTANTS.RSK,\r\n MODEL_CONSTANTS.MPM,\r\n MODEL_CONSTANTS.OT,\r\n MODEL_CONSTANTS.PCM,\r\n MODEL_CONSTANTS.TS,\r\n MODEL_CONSTANTS.PAD,\r\n MODEL_CONSTANTS.RDM\r\n ],\r\n 4: [\r\n MODEL_CONSTANTS.CM,\r\n MODEL_CONSTANTS.DAR,\r\n MODEL_CONSTANTS.PQA,\r\n MODEL_CONSTANTS.PR,\r\n MODEL_CONSTANTS.EST,\r\n MODEL_CONSTANTS.VV,\r\n MODEL_CONSTANTS.II,\r\n MODEL_CONSTANTS.PI,\r\n MODEL_CONSTANTS.MC,\r\n MODEL_CONSTANTS.RSK,\r\n MODEL_CONSTANTS.OT,\r\n MODEL_CONSTANTS.TS,\r\n MODEL_CONSTANTS.PAD,\r\n MODEL_CONSTANTS.PCM,\r\n MODEL_CONSTANTS.RDM,\r\n MODEL_CONSTANTS.GOV,\r\n MODEL_CONSTANTS.PLAN,\r\n MODEL_CONSTANTS.SAM,\r\n MODEL_CONSTANTS.CAR,\r\n MODEL_CONSTANTS.MPM\r\n ],\r\n 5:[\r\n MODEL_CONSTANTS.CM,\r\n MODEL_CONSTANTS.DAR,\r\n MODEL_CONSTANTS.PQA,\r\n MODEL_CONSTANTS.PR,\r\n MODEL_CONSTANTS.EST,\r\n MODEL_CONSTANTS.VV,\r\n MODEL_CONSTANTS.II,\r\n MODEL_CONSTANTS.PI,\r\n MODEL_CONSTANTS.MC,\r\n MODEL_CONSTANTS.RSK,\r\n MODEL_CONSTANTS.OT,\r\n MODEL_CONSTANTS.TS,\r\n MODEL_CONSTANTS.PAD,\r\n MODEL_CONSTANTS.PCM,\r\n MODEL_CONSTANTS.RDM,\r\n MODEL_CONSTANTS.GOV,\r\n MODEL_CONSTANTS.PLAN,\r\n MODEL_CONSTANTS.SAM,\r\n MODEL_CONSTANTS.CAR,\r\n MODEL_CONSTANTS.MPM\r\n ]\r\n },\r\n SVC:{\r\n 2: [\r\n MODEL_CONSTANTS.CM,\r\n MODEL_CONSTANTS.DAR,\r\n MODEL_CONSTANTS.PQA,\r\n MODEL_CONSTANTS.PR,\r\n MODEL_CONSTANTS.SDM,\r\n MODEL_CONSTANTS.STSM,\r\n MODEL_CONSTANTS.EST,\r\n MODEL_CONSTANTS.GOV,\r\n MODEL_CONSTANTS.IRP,\r\n MODEL_CONSTANTS.SAM,\r\n MODEL_CONSTANTS.VV,\r\n MODEL_CONSTANTS.CONT,\r\n MODEL_CONSTANTS.II,\r\n MODEL_CONSTANTS.MC,\r\n MODEL_CONSTANTS.PLAN,\r\n MODEL_CONSTANTS.CAR,\r\n MODEL_CONSTANTS.RSK,\r\n MODEL_CONSTANTS.MPM,\r\n MODEL_CONSTANTS.OT,\r\n MODEL_CONSTANTS.PCM,\r\n MODEL_CONSTANTS.PAD,\r\n MODEL_CONSTANTS.RDM\r\n ],\r\n 3: [\r\n MODEL_CONSTANTS.CM,\r\n MODEL_CONSTANTS.DAR,\r\n MODEL_CONSTANTS.PQA,\r\n MODEL_CONSTANTS.PR,\r\n MODEL_CONSTANTS.SDM,\r\n MODEL_CONSTANTS.STSM,\r\n MODEL_CONSTANTS.EST,\r\n MODEL_CONSTANTS.GOV,\r\n MODEL_CONSTANTS.IRP,\r\n MODEL_CONSTANTS.SAM,\r\n MODEL_CONSTANTS.VV,\r\n MODEL_CONSTANTS.CONT,\r\n MODEL_CONSTANTS.II,\r\n MODEL_CONSTANTS.MC,\r\n MODEL_CONSTANTS.PLAN,\r\n MODEL_CONSTANTS.CAR,\r\n MODEL_CONSTANTS.RSK,\r\n MODEL_CONSTANTS.MPM,\r\n MODEL_CONSTANTS.OT,\r\n MODEL_CONSTANTS.PCM,\r\n MODEL_CONSTANTS.PAD,\r\n MODEL_CONSTANTS.RDM\r\n ],\r\n 4: [\r\n MODEL_CONSTANTS.CM,\r\n MODEL_CONSTANTS.DAR,\r\n MODEL_CONSTANTS.PQA,\r\n MODEL_CONSTANTS.PR,\r\n MODEL_CONSTANTS.SDM,\r\n MODEL_CONSTANTS.STSM,\r\n MODEL_CONSTANTS.EST,\r\n MODEL_CONSTANTS.IRP,\r\n MODEL_CONSTANTS.VV,\r\n MODEL_CONSTANTS.CONT,\r\n MODEL_CONSTANTS.II,\r\n MODEL_CONSTANTS.MC,\r\n MODEL_CONSTANTS.RSK,\r\n MODEL_CONSTANTS.OT,\r\n MODEL_CONSTANTS.PAD,\r\n MODEL_CONSTANTS.PCM,\r\n MODEL_CONSTANTS.RDM,\r\n MODEL_CONSTANTS.GOV,\r\n MODEL_CONSTANTS.PLAN,\r\n MODEL_CONSTANTS.SAM,\r\n MODEL_CONSTANTS.CAR,\r\n MODEL_CONSTANTS.MPM\r\n ],\r\n 5: [\r\n MODEL_CONSTANTS.CM,\r\n MODEL_CONSTANTS.DAR,\r\n MODEL_CONSTANTS.PQA,\r\n MODEL_CONSTANTS.PR,\r\n MODEL_CONSTANTS.SDM,\r\n MODEL_CONSTANTS.STSM,\r\n MODEL_CONSTANTS.EST,\r\n MODEL_CONSTANTS.IRP,\r\n MODEL_CONSTANTS.VV,\r\n MODEL_CONSTANTS.CONT,\r\n MODEL_CONSTANTS.II,\r\n MODEL_CONSTANTS.MC,\r\n MODEL_CONSTANTS.RSK,\r\n MODEL_CONSTANTS.OT,\r\n MODEL_CONSTANTS.PAD,\r\n MODEL_CONSTANTS.PCM,\r\n MODEL_CONSTANTS.RDM,\r\n MODEL_CONSTANTS.GOV,\r\n MODEL_CONSTANTS.PLAN,\r\n MODEL_CONSTANTS.SAM,\r\n MODEL_CONSTANTS.CAR,\r\n MODEL_CONSTANTS.MPM\r\n ]\r\n }\r\n};\r\n\r\nexport { PRACTICE_AREA_RELATIONSHIPS, PRACTICES_AREAS_BY_MATURITY_LEVEL };","import { MODEL_CONSTANTS } from './modelconstants';\r\n\r\nconst VIEWS = {\r\n [MODEL_CONSTANTS.DEV_LEVEL_2] : {\r\n [MODEL_CONSTANTS.CAR]: [\r\n MODEL_CONSTANTS.CAR_11,\r\n MODEL_CONSTANTS.CAR_21,\r\n MODEL_CONSTANTS.CAR_22\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n MODEL_CONSTANTS.DAR_11,\r\n MODEL_CONSTANTS.DAR_12,\r\n MODEL_CONSTANTS.DAR_21,\r\n MODEL_CONSTANTS.DAR_22,\r\n MODEL_CONSTANTS.DAR_23,\r\n MODEL_CONSTANTS.DAR_24,\r\n MODEL_CONSTANTS.DAR_25\r\n ],\r\n [MODEL_CONSTANTS.RSK]: [\r\n MODEL_CONSTANTS.RSK_11,\r\n MODEL_CONSTANTS.RSK_21,\r\n MODEL_CONSTANTS.RSK_22\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n MODEL_CONSTANTS.OT_11,\r\n MODEL_CONSTANTS.OT_21,\r\n MODEL_CONSTANTS.OT_22\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n MODEL_CONSTANTS.PCM_11,\r\n MODEL_CONSTANTS.PCM_12,\r\n MODEL_CONSTANTS.PCM_13,\r\n MODEL_CONSTANTS.PCM_21,\r\n MODEL_CONSTANTS.PCM_22\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n MODEL_CONSTANTS.PAD_11,\r\n MODEL_CONSTANTS.PAD_21,\r\n MODEL_CONSTANTS.PAD_22,\r\n MODEL_CONSTANTS.PAD_23\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n MODEL_CONSTANTS.PR_11,\r\n MODEL_CONSTANTS.PR_21,\r\n MODEL_CONSTANTS.PR_22,\r\n MODEL_CONSTANTS.PR_23,\r\n MODEL_CONSTANTS.PR_24\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n MODEL_CONSTANTS.VV_11,\r\n MODEL_CONSTANTS.VV_12,\r\n MODEL_CONSTANTS.VV_21,\r\n MODEL_CONSTANTS.VV_22,\r\n MODEL_CONSTANTS.VV_23\r\n ],\r\n [MODEL_CONSTANTS.TS]: [\r\n MODEL_CONSTANTS.TS_11,\r\n MODEL_CONSTANTS.TS_21,\r\n MODEL_CONSTANTS.TS_22,\r\n MODEL_CONSTANTS.TS_23\r\n ],\r\n [MODEL_CONSTANTS.PI]: [\r\n MODEL_CONSTANTS.PI_11,\r\n MODEL_CONSTANTS.PI_21,\r\n MODEL_CONSTANTS.PI_22,\r\n MODEL_CONSTANTS.PI_23,\r\n MODEL_CONSTANTS.PI_24,\r\n MODEL_CONSTANTS.PI_25,\r\n MODEL_CONSTANTS.PI_26\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n MODEL_CONSTANTS.MPM_11,\r\n MODEL_CONSTANTS.MPM_12,\r\n MODEL_CONSTANTS.MPM_21,\r\n MODEL_CONSTANTS.MPM_22,\r\n MODEL_CONSTANTS.MPM_23,\r\n MODEL_CONSTANTS.MPM_24,\r\n MODEL_CONSTANTS.MPM_25,\r\n MODEL_CONSTANTS.MPM_26\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n MODEL_CONSTANTS.PQA_11,\r\n MODEL_CONSTANTS.PQA_21,\r\n MODEL_CONSTANTS.PQA_22,\r\n MODEL_CONSTANTS.PQA_23,\r\n MODEL_CONSTANTS.PQA_24\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n MODEL_CONSTANTS.CM_11,\r\n MODEL_CONSTANTS.CM_21,\r\n MODEL_CONSTANTS.CM_22,\r\n MODEL_CONSTANTS.CM_23,\r\n MODEL_CONSTANTS.CM_24,\r\n MODEL_CONSTANTS.CM_25,\r\n MODEL_CONSTANTS.CM_26\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n MODEL_CONSTANTS.MC_11,\r\n MODEL_CONSTANTS.MC_12,\r\n MODEL_CONSTANTS.MC_21,\r\n MODEL_CONSTANTS.MC_22,\r\n MODEL_CONSTANTS.MC_23,\r\n MODEL_CONSTANTS.MC_24\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n MODEL_CONSTANTS.PLAN_11,\r\n MODEL_CONSTANTS.PLAN_12,\r\n MODEL_CONSTANTS.PLAN_21,\r\n MODEL_CONSTANTS.PLAN_22,\r\n MODEL_CONSTANTS.PLAN_23,\r\n MODEL_CONSTANTS.PLAN_24,\r\n MODEL_CONSTANTS.PLAN_25,\r\n MODEL_CONSTANTS.PLAN_26,\r\n MODEL_CONSTANTS.PLAN_27,\r\n MODEL_CONSTANTS.PLAN_28\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n MODEL_CONSTANTS.EST_11,\r\n MODEL_CONSTANTS.EST_21,\r\n MODEL_CONSTANTS.EST_22,\r\n MODEL_CONSTANTS.EST_23\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n MODEL_CONSTANTS.RDM_11,\r\n MODEL_CONSTANTS.RDM_21,\r\n MODEL_CONSTANTS.RDM_22,\r\n MODEL_CONSTANTS.RDM_23,\r\n MODEL_CONSTANTS.RDM_24,\r\n MODEL_CONSTANTS.RDM_25\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n MODEL_CONSTANTS.GOV_11,\r\n MODEL_CONSTANTS.GOV_21,\r\n MODEL_CONSTANTS.GOV_22,\r\n MODEL_CONSTANTS.GOV_23,\r\n MODEL_CONSTANTS.GOV_24\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n MODEL_CONSTANTS.II_11,\r\n MODEL_CONSTANTS.II_21,\r\n MODEL_CONSTANTS.II_22\r\n ] \r\n },\r\n [MODEL_CONSTANTS.DEV_LEVEL_3]: {\r\n [MODEL_CONSTANTS.CAR]: [\r\n MODEL_CONSTANTS.CAR_11,\r\n MODEL_CONSTANTS.CAR_21,\r\n MODEL_CONSTANTS.CAR_22,\r\n MODEL_CONSTANTS.CAR_31,\r\n MODEL_CONSTANTS.CAR_32,\r\n MODEL_CONSTANTS.CAR_33,\r\n MODEL_CONSTANTS.CAR_34,\r\n MODEL_CONSTANTS.CAR_35\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n MODEL_CONSTANTS.DAR_11,\r\n MODEL_CONSTANTS.DAR_12,\r\n MODEL_CONSTANTS.DAR_21,\r\n MODEL_CONSTANTS.DAR_22,\r\n MODEL_CONSTANTS.DAR_23,\r\n MODEL_CONSTANTS.DAR_24,\r\n MODEL_CONSTANTS.DAR_25,\r\n MODEL_CONSTANTS.DAR_31\r\n ],\r\n [MODEL_CONSTANTS.RSK]: [\r\n MODEL_CONSTANTS.RSK_11,\r\n MODEL_CONSTANTS.RSK_21,\r\n MODEL_CONSTANTS.RSK_22,\r\n MODEL_CONSTANTS.RSK_31,\r\n MODEL_CONSTANTS.RSK_32,\r\n MODEL_CONSTANTS.RSK_33,\r\n MODEL_CONSTANTS.RDM_34,\r\n MODEL_CONSTANTS.RSK_35\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n MODEL_CONSTANTS.OT_11,\r\n MODEL_CONSTANTS.OT_21,\r\n MODEL_CONSTANTS.OT_22,\r\n MODEL_CONSTANTS.OT_31,\r\n MODEL_CONSTANTS.OT_32,\r\n MODEL_CONSTANTS.OT_33,\r\n MODEL_CONSTANTS.OT_34,\r\n MODEL_CONSTANTS.OT_35,\r\n MODEL_CONSTANTS.OT_36,\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n MODEL_CONSTANTS.PCM_11,\r\n MODEL_CONSTANTS.PCM_12,\r\n MODEL_CONSTANTS.PCM_13,\r\n MODEL_CONSTANTS.PCM_21,\r\n MODEL_CONSTANTS.PCM_22,\r\n MODEL_CONSTANTS.PCM_31,\r\n MODEL_CONSTANTS.PCM_32,\r\n MODEL_CONSTANTS.PCM_33,\r\n MODEL_CONSTANTS.PCM_34,\r\n MODEL_CONSTANTS.PCM_35,\r\n MODEL_CONSTANTS.PCM_36\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n MODEL_CONSTANTS.PAD_11,\r\n MODEL_CONSTANTS.PAD_21,\r\n MODEL_CONSTANTS.PAD_22,\r\n MODEL_CONSTANTS.PAD_23,\r\n MODEL_CONSTANTS.PAD_31,\r\n MODEL_CONSTANTS.PAD_32,\r\n MODEL_CONSTANTS.PAD_33,\r\n MODEL_CONSTANTS.PAD_34,\r\n MODEL_CONSTANTS.PAD_35,\r\n MODEL_CONSTANTS.PAD_36,\r\n MODEL_CONSTANTS.PAD_37\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n MODEL_CONSTANTS.PR_11,\r\n MODEL_CONSTANTS.PR_21,\r\n MODEL_CONSTANTS.PR_22,\r\n MODEL_CONSTANTS.PR_23,\r\n MODEL_CONSTANTS.PR_24,\r\n MODEL_CONSTANTS.PR_31\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n MODEL_CONSTANTS.VV_11,\r\n MODEL_CONSTANTS.VV_12,\r\n MODEL_CONSTANTS.VV_21,\r\n MODEL_CONSTANTS.VV_22,\r\n MODEL_CONSTANTS.VV_23,\r\n MODEL_CONSTANTS.VV_31,\r\n MODEL_CONSTANTS.VV_32\r\n ],\r\n [MODEL_CONSTANTS.TS]: [\r\n MODEL_CONSTANTS.TS_11,\r\n MODEL_CONSTANTS.TS_21,\r\n MODEL_CONSTANTS.TS_22,\r\n MODEL_CONSTANTS.TS_23,\r\n MODEL_CONSTANTS.TS_31,\r\n MODEL_CONSTANTS.TS_32,\r\n MODEL_CONSTANTS.TS_33,\r\n MODEL_CONSTANTS.TS_34,\r\n MODEL_CONSTANTS.TS_35,\r\n MODEL_CONSTANTS.TS_36,\r\n ],\r\n [MODEL_CONSTANTS.PI]: [\r\n MODEL_CONSTANTS.PI_11,\r\n MODEL_CONSTANTS.PI_21,\r\n MODEL_CONSTANTS.PI_22,\r\n MODEL_CONSTANTS.PI_23,\r\n MODEL_CONSTANTS.PI_24,\r\n MODEL_CONSTANTS.PI_25,\r\n MODEL_CONSTANTS.PI_26,\r\n MODEL_CONSTANTS.PI_31,\r\n MODEL_CONSTANTS.PI_32,\r\n MODEL_CONSTANTS.PI_33\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n MODEL_CONSTANTS.MPM_11,\r\n MODEL_CONSTANTS.MPM_12,\r\n MODEL_CONSTANTS.MPM_21,\r\n MODEL_CONSTANTS.MPM_22,\r\n MODEL_CONSTANTS.MPM_23,\r\n MODEL_CONSTANTS.MPM_24,\r\n MODEL_CONSTANTS.MPM_25,\r\n MODEL_CONSTANTS.MPM_26,\r\n MODEL_CONSTANTS.MPM_31,\r\n MODEL_CONSTANTS.MPM_32,\r\n MODEL_CONSTANTS.MPM_33,\r\n MODEL_CONSTANTS.MPM_34,\r\n MODEL_CONSTANTS.MPM_35,\r\n MODEL_CONSTANTS.MPM_36\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n MODEL_CONSTANTS.PQA_11,\r\n MODEL_CONSTANTS.PQA_21,\r\n MODEL_CONSTANTS.PQA_22,\r\n MODEL_CONSTANTS.PQA_23,\r\n MODEL_CONSTANTS.PQA_24,\r\n MODEL_CONSTANTS.PQA_31\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n MODEL_CONSTANTS.CM_11,\r\n MODEL_CONSTANTS.CM_21,\r\n MODEL_CONSTANTS.CM_22,\r\n MODEL_CONSTANTS.CM_23,\r\n MODEL_CONSTANTS.CM_24,\r\n MODEL_CONSTANTS.CM_25,\r\n MODEL_CONSTANTS.CM_26\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n MODEL_CONSTANTS.MC_11,\r\n MODEL_CONSTANTS.MC_12,\r\n MODEL_CONSTANTS.MC_21,\r\n MODEL_CONSTANTS.MC_22,\r\n MODEL_CONSTANTS.MC_23,\r\n MODEL_CONSTANTS.MC_24,\r\n MODEL_CONSTANTS.MC_31,\r\n MODEL_CONSTANTS.MC_32,\r\n MODEL_CONSTANTS.MC_33,\r\n MODEL_CONSTANTS.MC_34\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n MODEL_CONSTANTS.PLAN_11,\r\n MODEL_CONSTANTS.PLAN_12,\r\n MODEL_CONSTANTS.PLAN_21,\r\n MODEL_CONSTANTS.PLAN_22,\r\n MODEL_CONSTANTS.PLAN_23,\r\n MODEL_CONSTANTS.PLAN_24,\r\n MODEL_CONSTANTS.PLAN_25,\r\n MODEL_CONSTANTS.PLAN_26,\r\n MODEL_CONSTANTS.PLAN_27,\r\n MODEL_CONSTANTS.PLAN_28,\r\n MODEL_CONSTANTS.PLAN_31,\r\n MODEL_CONSTANTS.PLAN_32,\r\n MODEL_CONSTANTS.PLAN_33,\r\n MODEL_CONSTANTS.PLAN_34\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n MODEL_CONSTANTS.EST_11,\r\n MODEL_CONSTANTS.EST_21,\r\n MODEL_CONSTANTS.EST_22,\r\n MODEL_CONSTANTS.EST_23,\r\n MODEL_CONSTANTS.EST_31,\r\n MODEL_CONSTANTS.EST_32\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n MODEL_CONSTANTS.RDM_11,\r\n MODEL_CONSTANTS.RDM_21,\r\n MODEL_CONSTANTS.RDM_22,\r\n MODEL_CONSTANTS.RDM_23,\r\n MODEL_CONSTANTS.RDM_24,\r\n MODEL_CONSTANTS.RDM_25,\r\n MODEL_CONSTANTS.RDM_26,\r\n MODEL_CONSTANTS.RDM_31,\r\n MODEL_CONSTANTS.RDM_32,\r\n MODEL_CONSTANTS.RDM_33,\r\n MODEL_CONSTANTS.RDM_34,\r\n MODEL_CONSTANTS.RDM_35,\r\n MODEL_CONSTANTS.RDM_36,\r\n MODEL_CONSTANTS.RDM_37\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n MODEL_CONSTANTS.GOV_11,\r\n MODEL_CONSTANTS.GOV_21,\r\n MODEL_CONSTANTS.GOV_22,\r\n MODEL_CONSTANTS.GOV_23,\r\n MODEL_CONSTANTS.GOV_24,\r\n MODEL_CONSTANTS.GOV_31,\r\n MODEL_CONSTANTS.GOV_32\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n MODEL_CONSTANTS.II_11,\r\n MODEL_CONSTANTS.II_21,\r\n MODEL_CONSTANTS.II_22,\r\n MODEL_CONSTANTS.II_31,\r\n MODEL_CONSTANTS.II_32,\r\n MODEL_CONSTANTS.II_33\r\n ] \r\n },\r\n [MODEL_CONSTANTS.DEV_LEVEL_4]: {\r\n [MODEL_CONSTANTS.CAR]: [\r\n MODEL_CONSTANTS.CAR_11,\r\n MODEL_CONSTANTS.CAR_21,\r\n MODEL_CONSTANTS.CAR_22,\r\n MODEL_CONSTANTS.CAR_31,\r\n MODEL_CONSTANTS.CAR_32,\r\n MODEL_CONSTANTS.CAR_33,\r\n MODEL_CONSTANTS.CAR_34,\r\n MODEL_CONSTANTS.CAR_35,\r\n MODEL_CONSTANTS.CAR_41,\r\n MODEL_CONSTANTS.CAR_42\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n MODEL_CONSTANTS.DAR_11,\r\n MODEL_CONSTANTS.DAR_12,\r\n MODEL_CONSTANTS.DAR_21,\r\n MODEL_CONSTANTS.DAR_22,\r\n MODEL_CONSTANTS.DAR_23,\r\n MODEL_CONSTANTS.DAR_24,\r\n MODEL_CONSTANTS.DAR_25,\r\n MODEL_CONSTANTS.DAR_31\r\n ],\r\n [MODEL_CONSTANTS.RSK]: [\r\n MODEL_CONSTANTS.RSK_11,\r\n MODEL_CONSTANTS.RSK_21,\r\n MODEL_CONSTANTS.RSK_22,\r\n MODEL_CONSTANTS.RSK_31,\r\n MODEL_CONSTANTS.RSK_32,\r\n MODEL_CONSTANTS.RSK_33,\r\n MODEL_CONSTANTS.RSK_34,\r\n MODEL_CONSTANTS.RSK_35\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n MODEL_CONSTANTS.OT_11,\r\n MODEL_CONSTANTS.OT_21,\r\n MODEL_CONSTANTS.OT_22,\r\n MODEL_CONSTANTS.OT_31,\r\n MODEL_CONSTANTS.OT_32,\r\n MODEL_CONSTANTS.OT_33,\r\n MODEL_CONSTANTS.OT_34,\r\n MODEL_CONSTANTS.OT_35,\r\n MODEL_CONSTANTS.OT_36,\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n MODEL_CONSTANTS.PCM_11,\r\n MODEL_CONSTANTS.PCM_12,\r\n MODEL_CONSTANTS.PCM_13,\r\n MODEL_CONSTANTS.PCM_21,\r\n MODEL_CONSTANTS.PCM_22,\r\n MODEL_CONSTANTS.PCM_31,\r\n MODEL_CONSTANTS.PCM_32,\r\n MODEL_CONSTANTS.PCM_33,\r\n MODEL_CONSTANTS.PCM_34,\r\n MODEL_CONSTANTS.PCM_35,\r\n MODEL_CONSTANTS.PCM_36,\r\n MODEL_CONSTANTS.PCM_41\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n MODEL_CONSTANTS.PAD_11,\r\n MODEL_CONSTANTS.PAD_21,\r\n MODEL_CONSTANTS.PAD_22,\r\n MODEL_CONSTANTS.PAD_23,\r\n MODEL_CONSTANTS.PAD_31,\r\n MODEL_CONSTANTS.PAD_32,\r\n MODEL_CONSTANTS.PAD_33,\r\n MODEL_CONSTANTS.PAD_34,\r\n MODEL_CONSTANTS.PAD_35,\r\n MODEL_CONSTANTS.PAD_36,\r\n MODEL_CONSTANTS.PAD_37\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n MODEL_CONSTANTS.PR_11,\r\n MODEL_CONSTANTS.PR_21,\r\n MODEL_CONSTANTS.PR_22,\r\n MODEL_CONSTANTS.PR_23,\r\n MODEL_CONSTANTS.PR_24,\r\n MODEL_CONSTANTS.PR_31\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n MODEL_CONSTANTS.VV_11,\r\n MODEL_CONSTANTS.VV_12,\r\n MODEL_CONSTANTS.VV_21,\r\n MODEL_CONSTANTS.VV_22,\r\n MODEL_CONSTANTS.VV_23,\r\n MODEL_CONSTANTS.VV_31,\r\n MODEL_CONSTANTS.VV_32\r\n ],\r\n [MODEL_CONSTANTS.TS]: [\r\n MODEL_CONSTANTS.TS_11,\r\n MODEL_CONSTANTS.TS_21,\r\n MODEL_CONSTANTS.TS_22,\r\n MODEL_CONSTANTS.TS_23,\r\n MODEL_CONSTANTS.TS_31,\r\n MODEL_CONSTANTS.TS_32,\r\n MODEL_CONSTANTS.TS_33,\r\n MODEL_CONSTANTS.TS_34,\r\n MODEL_CONSTANTS.TS_35,\r\n MODEL_CONSTANTS.TS_36,\r\n ],\r\n [MODEL_CONSTANTS.PI]: [\r\n MODEL_CONSTANTS.PI_11,\r\n MODEL_CONSTANTS.PI_21,\r\n MODEL_CONSTANTS.PI_22,\r\n MODEL_CONSTANTS.PI_23,\r\n MODEL_CONSTANTS.PI_24,\r\n MODEL_CONSTANTS.PI_25,\r\n MODEL_CONSTANTS.PI_26,\r\n MODEL_CONSTANTS.PI_31,\r\n MODEL_CONSTANTS.PI_32,\r\n MODEL_CONSTANTS.PI_33\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n MODEL_CONSTANTS.MPM_11,\r\n MODEL_CONSTANTS.MPM_12,\r\n MODEL_CONSTANTS.MPM_21,\r\n MODEL_CONSTANTS.MPM_22,\r\n MODEL_CONSTANTS.MPM_23,\r\n MODEL_CONSTANTS.MPM_24,\r\n MODEL_CONSTANTS.MPM_25,\r\n MODEL_CONSTANTS.MPM_26,\r\n MODEL_CONSTANTS.MPM_31,\r\n MODEL_CONSTANTS.MPM_32,\r\n MODEL_CONSTANTS.MPM_33,\r\n MODEL_CONSTANTS.MPM_34,\r\n MODEL_CONSTANTS.MPM_35,\r\n MODEL_CONSTANTS.MPM_36,\r\n MODEL_CONSTANTS.MPM_41,\r\n MODEL_CONSTANTS.MPM_42,\r\n MODEL_CONSTANTS.MPM_43,\r\n MODEL_CONSTANTS.MPM_44,\r\n MODEL_CONSTANTS.MPM_45\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n MODEL_CONSTANTS.PQA_11,\r\n MODEL_CONSTANTS.PQA_21,\r\n MODEL_CONSTANTS.PQA_22,\r\n MODEL_CONSTANTS.PQA_23,\r\n MODEL_CONSTANTS.PQA_24,\r\n MODEL_CONSTANTS.PQA_31\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n MODEL_CONSTANTS.CM_11,\r\n MODEL_CONSTANTS.CM_21,\r\n MODEL_CONSTANTS.CM_22,\r\n MODEL_CONSTANTS.CM_23,\r\n MODEL_CONSTANTS.CM_24,\r\n MODEL_CONSTANTS.CM_25,\r\n MODEL_CONSTANTS.CM_26\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n MODEL_CONSTANTS.MC_11,\r\n MODEL_CONSTANTS.MC_12,\r\n MODEL_CONSTANTS.MC_21,\r\n MODEL_CONSTANTS.MC_22,\r\n MODEL_CONSTANTS.MC_23,\r\n MODEL_CONSTANTS.MC_24,\r\n MODEL_CONSTANTS.MC_31,\r\n MODEL_CONSTANTS.MC_32,\r\n MODEL_CONSTANTS.MC_33,\r\n MODEL_CONSTANTS.MC_34\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n MODEL_CONSTANTS.PLAN_11,\r\n MODEL_CONSTANTS.PLAN_12,\r\n MODEL_CONSTANTS.PLAN_21,\r\n MODEL_CONSTANTS.PLAN_22,\r\n MODEL_CONSTANTS.PLAN_23,\r\n MODEL_CONSTANTS.PLAN_24,\r\n MODEL_CONSTANTS.PLAN_25,\r\n MODEL_CONSTANTS.PLAN_26,\r\n MODEL_CONSTANTS.PLAN_27,\r\n MODEL_CONSTANTS.PLAN_28,\r\n MODEL_CONSTANTS.PLAN_31,\r\n MODEL_CONSTANTS.PLAN_32,\r\n MODEL_CONSTANTS.PLAN_33,\r\n MODEL_CONSTANTS.PLAN_34,\r\n MODEL_CONSTANTS.PLAN_41\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n MODEL_CONSTANTS.EST_11,\r\n MODEL_CONSTANTS.EST_21,\r\n MODEL_CONSTANTS.EST_22,\r\n MODEL_CONSTANTS.EST_23,\r\n MODEL_CONSTANTS.EST_31,\r\n MODEL_CONSTANTS.EST_32\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n MODEL_CONSTANTS.RDM_11,\r\n MODEL_CONSTANTS.RDM_21,\r\n MODEL_CONSTANTS.RDM_22,\r\n MODEL_CONSTANTS.RDM_23,\r\n MODEL_CONSTANTS.RDM_24,\r\n MODEL_CONSTANTS.RDM_25,\r\n MODEL_CONSTANTS.RDM_26,\r\n MODEL_CONSTANTS.RDM_31,\r\n MODEL_CONSTANTS.RDM_32,\r\n MODEL_CONSTANTS.RDM_33,\r\n MODEL_CONSTANTS.RDM_34,\r\n MODEL_CONSTANTS.RDM_35,\r\n MODEL_CONSTANTS.RDM_36,\r\n MODEL_CONSTANTS.RDM_37\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n MODEL_CONSTANTS.GOV_11,\r\n MODEL_CONSTANTS.GOV_21,\r\n MODEL_CONSTANTS.GOV_22,\r\n MODEL_CONSTANTS.GOV_23,\r\n MODEL_CONSTANTS.GOV_24,\r\n MODEL_CONSTANTS.GOV_31,\r\n MODEL_CONSTANTS.GOV_32,\r\n MODEL_CONSTANTS.GOV_41\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n MODEL_CONSTANTS.II_11,\r\n MODEL_CONSTANTS.II_21,\r\n MODEL_CONSTANTS.II_22,\r\n MODEL_CONSTANTS.II_31,\r\n MODEL_CONSTANTS.II_32,\r\n MODEL_CONSTANTS.II_33\r\n ] \r\n },\r\n [MODEL_CONSTANTS.DEV_LEVEL_5]:{\r\n [MODEL_CONSTANTS.CAR]: [\r\n MODEL_CONSTANTS.CAR_11,\r\n MODEL_CONSTANTS.CAR_21,\r\n MODEL_CONSTANTS.CAR_22,\r\n MODEL_CONSTANTS.CAR_31,\r\n MODEL_CONSTANTS.CAR_32,\r\n MODEL_CONSTANTS.CAR_33,\r\n MODEL_CONSTANTS.CAR_34,\r\n MODEL_CONSTANTS.CAR_35,\r\n MODEL_CONSTANTS.CAR_41,\r\n MODEL_CONSTANTS.CAR_42,\r\n MODEL_CONSTANTS.CAR_51\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n MODEL_CONSTANTS.DAR_11,\r\n MODEL_CONSTANTS.DAR_12,\r\n MODEL_CONSTANTS.DAR_21,\r\n MODEL_CONSTANTS.DAR_22,\r\n MODEL_CONSTANTS.DAR_23,\r\n MODEL_CONSTANTS.DAR_24,\r\n MODEL_CONSTANTS.DAR_25,\r\n MODEL_CONSTANTS.DAR_31\r\n ],\r\n [MODEL_CONSTANTS.RSK]: [\r\n MODEL_CONSTANTS.RSK_11,\r\n MODEL_CONSTANTS.RSK_21,\r\n MODEL_CONSTANTS.RSK_22,\r\n MODEL_CONSTANTS.RSK_31,\r\n MODEL_CONSTANTS.RSK_32,\r\n MODEL_CONSTANTS.RSK_33,\r\n MODEL_CONSTANTS.RSK_34,\r\n MODEL_CONSTANTS.RSK_35\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n MODEL_CONSTANTS.OT_11,\r\n MODEL_CONSTANTS.OT_21,\r\n MODEL_CONSTANTS.OT_22,\r\n MODEL_CONSTANTS.OT_31,\r\n MODEL_CONSTANTS.OT_32,\r\n MODEL_CONSTANTS.OT_33,\r\n MODEL_CONSTANTS.OT_34,\r\n MODEL_CONSTANTS.OT_35,\r\n MODEL_CONSTANTS.OT_36,\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n MODEL_CONSTANTS.PCM_11,\r\n MODEL_CONSTANTS.PCM_12,\r\n MODEL_CONSTANTS.PCM_13,\r\n MODEL_CONSTANTS.PCM_21,\r\n MODEL_CONSTANTS.PCM_22,\r\n MODEL_CONSTANTS.PCM_31,\r\n MODEL_CONSTANTS.PCM_32,\r\n MODEL_CONSTANTS.PCM_33,\r\n MODEL_CONSTANTS.PCM_34,\r\n MODEL_CONSTANTS.PCM_35,\r\n MODEL_CONSTANTS.PCM_36,\r\n MODEL_CONSTANTS.PCM_41\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n MODEL_CONSTANTS.PAD_11,\r\n MODEL_CONSTANTS.PAD_21,\r\n MODEL_CONSTANTS.PAD_22,\r\n MODEL_CONSTANTS.PAD_23,\r\n MODEL_CONSTANTS.PAD_31,\r\n MODEL_CONSTANTS.PAD_32,\r\n MODEL_CONSTANTS.PAD_33,\r\n MODEL_CONSTANTS.PAD_34,\r\n MODEL_CONSTANTS.PAD_35,\r\n MODEL_CONSTANTS.PAD_36,\r\n MODEL_CONSTANTS.PAD_37\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n MODEL_CONSTANTS.PR_11,\r\n MODEL_CONSTANTS.PR_21,\r\n MODEL_CONSTANTS.PR_22,\r\n MODEL_CONSTANTS.PR_23,\r\n MODEL_CONSTANTS.PR_24,\r\n MODEL_CONSTANTS.PR_31\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n MODEL_CONSTANTS.VV_11,\r\n MODEL_CONSTANTS.VV_12,\r\n MODEL_CONSTANTS.VV_21,\r\n MODEL_CONSTANTS.VV_22,\r\n MODEL_CONSTANTS.VV_23,\r\n MODEL_CONSTANTS.VV_31,\r\n MODEL_CONSTANTS.VV_32\r\n ],\r\n [MODEL_CONSTANTS.TS]: [\r\n MODEL_CONSTANTS.TS_11,\r\n MODEL_CONSTANTS.TS_21,\r\n MODEL_CONSTANTS.TS_22,\r\n MODEL_CONSTANTS.TS_23,\r\n MODEL_CONSTANTS.TS_31,\r\n MODEL_CONSTANTS.TS_32,\r\n MODEL_CONSTANTS.TS_33,\r\n MODEL_CONSTANTS.TS_34,\r\n MODEL_CONSTANTS.TS_35,\r\n MODEL_CONSTANTS.TS_36,\r\n ],\r\n [MODEL_CONSTANTS.PI]: [\r\n MODEL_CONSTANTS.PI_11,\r\n MODEL_CONSTANTS.PI_21,\r\n MODEL_CONSTANTS.PI_22,\r\n MODEL_CONSTANTS.PI_23,\r\n MODEL_CONSTANTS.PI_24,\r\n MODEL_CONSTANTS.PI_25,\r\n MODEL_CONSTANTS.PI_26,\r\n MODEL_CONSTANTS.PI_31,\r\n MODEL_CONSTANTS.PI_32,\r\n MODEL_CONSTANTS.PI_33\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n MODEL_CONSTANTS.MPM_11,\r\n MODEL_CONSTANTS.MPM_12,\r\n MODEL_CONSTANTS.MPM_21,\r\n MODEL_CONSTANTS.MPM_22,\r\n MODEL_CONSTANTS.MPM_23,\r\n MODEL_CONSTANTS.MPM_24,\r\n MODEL_CONSTANTS.MPM_25,\r\n MODEL_CONSTANTS.MPM_26,\r\n MODEL_CONSTANTS.MPM_31,\r\n MODEL_CONSTANTS.MPM_32,\r\n MODEL_CONSTANTS.MPM_33,\r\n MODEL_CONSTANTS.MPM_34,\r\n MODEL_CONSTANTS.MPM_35,\r\n MODEL_CONSTANTS.MPM_36,\r\n MODEL_CONSTANTS.MPM_41,\r\n MODEL_CONSTANTS.MPM_42,\r\n MODEL_CONSTANTS.MPM_43,\r\n MODEL_CONSTANTS.MPM_44,\r\n MODEL_CONSTANTS.MPM_45,\r\n MODEL_CONSTANTS.MPM_51,\r\n MODEL_CONSTANTS.MPM_52,\r\n MODEL_CONSTANTS.MPM_53\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n MODEL_CONSTANTS.PQA_11,\r\n MODEL_CONSTANTS.PQA_21,\r\n MODEL_CONSTANTS.PQA_22,\r\n MODEL_CONSTANTS.PQA_23,\r\n MODEL_CONSTANTS.PQA_24,\r\n MODEL_CONSTANTS.PQA_31\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n MODEL_CONSTANTS.CM_11,\r\n MODEL_CONSTANTS.CM_21,\r\n MODEL_CONSTANTS.CM_22,\r\n MODEL_CONSTANTS.CM_23,\r\n MODEL_CONSTANTS.CM_24,\r\n MODEL_CONSTANTS.CM_25,\r\n MODEL_CONSTANTS.CM_26\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n MODEL_CONSTANTS.MC_11,\r\n MODEL_CONSTANTS.MC_12,\r\n MODEL_CONSTANTS.MC_21,\r\n MODEL_CONSTANTS.MC_22,\r\n MODEL_CONSTANTS.MC_23,\r\n MODEL_CONSTANTS.MC_24,\r\n MODEL_CONSTANTS.MC_31,\r\n MODEL_CONSTANTS.MC_32,\r\n MODEL_CONSTANTS.MC_33,\r\n MODEL_CONSTANTS.MC_34\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n MODEL_CONSTANTS.PLAN_11,\r\n MODEL_CONSTANTS.PLAN_12,\r\n MODEL_CONSTANTS.PLAN_21,\r\n MODEL_CONSTANTS.PLAN_22,\r\n MODEL_CONSTANTS.PLAN_23,\r\n MODEL_CONSTANTS.PLAN_24,\r\n MODEL_CONSTANTS.PLAN_25,\r\n MODEL_CONSTANTS.PLAN_26,\r\n MODEL_CONSTANTS.PLAN_27,\r\n MODEL_CONSTANTS.PLAN_28,\r\n MODEL_CONSTANTS.PLAN_31,\r\n MODEL_CONSTANTS.PLAN_32,\r\n MODEL_CONSTANTS.PLAN_33,\r\n MODEL_CONSTANTS.PLAN_34,\r\n MODEL_CONSTANTS.PLAN_41\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n MODEL_CONSTANTS.EST_11,\r\n MODEL_CONSTANTS.EST_21,\r\n MODEL_CONSTANTS.EST_22,\r\n MODEL_CONSTANTS.EST_23,\r\n MODEL_CONSTANTS.EST_31,\r\n MODEL_CONSTANTS.EST_32\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n MODEL_CONSTANTS.RDM_11,\r\n MODEL_CONSTANTS.RDM_21,\r\n MODEL_CONSTANTS.RDM_22,\r\n MODEL_CONSTANTS.RDM_23,\r\n MODEL_CONSTANTS.RDM_24,\r\n MODEL_CONSTANTS.RDM_25,\r\n MODEL_CONSTANTS.RDM_26,\r\n MODEL_CONSTANTS.RDM_31,\r\n MODEL_CONSTANTS.RDM_32,\r\n MODEL_CONSTANTS.RDM_33,\r\n MODEL_CONSTANTS.RDM_34,\r\n MODEL_CONSTANTS.RDM_35,\r\n MODEL_CONSTANTS.RDM_36,\r\n MODEL_CONSTANTS.RDM_37\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n MODEL_CONSTANTS.GOV_11,\r\n MODEL_CONSTANTS.GOV_21,\r\n MODEL_CONSTANTS.GOV_22,\r\n MODEL_CONSTANTS.GOV_23,\r\n MODEL_CONSTANTS.GOV_24,\r\n MODEL_CONSTANTS.GOV_31,\r\n MODEL_CONSTANTS.GOV_32,\r\n MODEL_CONSTANTS.GOV_41\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n MODEL_CONSTANTS.II_11,\r\n MODEL_CONSTANTS.II_21,\r\n MODEL_CONSTANTS.II_22,\r\n MODEL_CONSTANTS.II_31,\r\n MODEL_CONSTANTS.II_32,\r\n MODEL_CONSTANTS.II_33\r\n ] \r\n },\r\n [MODEL_CONSTANTS.SVCS_LEVEL_2]: {\r\n [MODEL_CONSTANTS.CAR]: [\r\n MODEL_CONSTANTS.CAR_11,\r\n MODEL_CONSTANTS.CAR_21,\r\n MODEL_CONSTANTS.CAR_22\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n MODEL_CONSTANTS.DAR_11,\r\n MODEL_CONSTANTS.DAR_12,\r\n MODEL_CONSTANTS.DAR_21,\r\n MODEL_CONSTANTS.DAR_22,\r\n MODEL_CONSTANTS.DAR_23,\r\n MODEL_CONSTANTS.DAR_24,\r\n MODEL_CONSTANTS.DAR_25\r\n ],\r\n [MODEL_CONSTANTS.RSK]: [\r\n MODEL_CONSTANTS.RSK_11,\r\n MODEL_CONSTANTS.RSK_21,\r\n MODEL_CONSTANTS.RSK_22\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n MODEL_CONSTANTS.OT_11,\r\n MODEL_CONSTANTS.OT_21,\r\n MODEL_CONSTANTS.OT_22\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n MODEL_CONSTANTS.PCM_11,\r\n MODEL_CONSTANTS.PCM_12,\r\n MODEL_CONSTANTS.PCM_13,\r\n MODEL_CONSTANTS.PCM_21,\r\n MODEL_CONSTANTS.PCM_22\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n MODEL_CONSTANTS.PAD_11,\r\n MODEL_CONSTANTS.PAD_21,\r\n MODEL_CONSTANTS.PAD_22,\r\n MODEL_CONSTANTS.PAD_23\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n MODEL_CONSTANTS.PR_11,\r\n MODEL_CONSTANTS.PR_21,\r\n MODEL_CONSTANTS.PR_22,\r\n MODEL_CONSTANTS.PR_23,\r\n MODEL_CONSTANTS.PR_24\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n MODEL_CONSTANTS.VV_11,\r\n MODEL_CONSTANTS.VV_12,\r\n MODEL_CONSTANTS.VV_21,\r\n MODEL_CONSTANTS.VV_22,\r\n MODEL_CONSTANTS.VV_23\r\n ],\r\n [MODEL_CONSTANTS.IRP]: [\r\n MODEL_CONSTANTS.IRP_11,\r\n MODEL_CONSTANTS.IRP_21,\r\n MODEL_CONSTANTS.IRP_22,\r\n MODEL_CONSTANTS.IRP_23\r\n ],\r\n [MODEL_CONSTANTS.CONT]: [\r\n MODEL_CONSTANTS.CONT_11,\r\n MODEL_CONSTANTS.CONT_21,\r\n MODEL_CONSTANTS.CONT_22,\r\n MODEL_CONSTANTS.CONT_23\r\n ],\r\n [MODEL_CONSTANTS.STSM]: [\r\n MODEL_CONSTANTS.STSM_11,\r\n MODEL_CONSTANTS.STSM_21,\r\n MODEL_CONSTANTS.STSM_22,\r\n MODEL_CONSTANTS.STSM_23\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n MODEL_CONSTANTS.MPM_11,\r\n MODEL_CONSTANTS.MPM_12,\r\n MODEL_CONSTANTS.MPM_21,\r\n MODEL_CONSTANTS.MPM_22,\r\n MODEL_CONSTANTS.MPM_23,\r\n MODEL_CONSTANTS.MPM_24,\r\n MODEL_CONSTANTS.MPM_25,\r\n MODEL_CONSTANTS.MPM_26\r\n ],\r\n [MODEL_CONSTANTS.SDM]: [\r\n MODEL_CONSTANTS.SDM_11,\r\n MODEL_CONSTANTS.SDM_21,\r\n MODEL_CONSTANTS.SDM_22,\r\n MODEL_CONSTANTS.SDM_23,\r\n MODEL_CONSTANTS.SDM_24,\r\n MODEL_CONSTANTS.SDM_25,\r\n MODEL_CONSTANTS.SDM_26\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n MODEL_CONSTANTS.PQA_11,\r\n MODEL_CONSTANTS.PQA_21,\r\n MODEL_CONSTANTS.PQA_22,\r\n MODEL_CONSTANTS.PQA_23,\r\n MODEL_CONSTANTS.PQA_24\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n MODEL_CONSTANTS.CM_11,\r\n MODEL_CONSTANTS.CM_21,\r\n MODEL_CONSTANTS.CM_22,\r\n MODEL_CONSTANTS.CM_23,\r\n MODEL_CONSTANTS.CM_24,\r\n MODEL_CONSTANTS.CM_25,\r\n MODEL_CONSTANTS.CM_26\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n MODEL_CONSTANTS.MC_11,\r\n MODEL_CONSTANTS.MC_12,\r\n MODEL_CONSTANTS.MC_21,\r\n MODEL_CONSTANTS.MC_22,\r\n MODEL_CONSTANTS.MC_23,\r\n MODEL_CONSTANTS.MC_24\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n MODEL_CONSTANTS.PLAN_11,\r\n MODEL_CONSTANTS.PLAN_12,\r\n MODEL_CONSTANTS.PLAN_21,\r\n MODEL_CONSTANTS.PLAN_22,\r\n MODEL_CONSTANTS.PLAN_23,\r\n MODEL_CONSTANTS.PLAN_24,\r\n MODEL_CONSTANTS.PLAN_25,\r\n MODEL_CONSTANTS.PLAN_26,\r\n MODEL_CONSTANTS.PLAN_27,\r\n MODEL_CONSTANTS.PLAN_28\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n MODEL_CONSTANTS.EST_11,\r\n MODEL_CONSTANTS.EST_21,\r\n MODEL_CONSTANTS.EST_22,\r\n MODEL_CONSTANTS.EST_23\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n MODEL_CONSTANTS.RDM_11,\r\n MODEL_CONSTANTS.RDM_21,\r\n MODEL_CONSTANTS.RDM_22,\r\n MODEL_CONSTANTS.RDM_23,\r\n MODEL_CONSTANTS.RDM_24,\r\n MODEL_CONSTANTS.RDM_25\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n MODEL_CONSTANTS.GOV_11,\r\n MODEL_CONSTANTS.GOV_21,\r\n MODEL_CONSTANTS.GOV_22,\r\n MODEL_CONSTANTS.GOV_23,\r\n MODEL_CONSTANTS.GOV_24\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n MODEL_CONSTANTS.II_11,\r\n MODEL_CONSTANTS.II_21,\r\n MODEL_CONSTANTS.II_22\r\n ] \r\n },\r\n [MODEL_CONSTANTS.SVCS_LEVEL_3]: {\r\n [MODEL_CONSTANTS.CAR]: [\r\n MODEL_CONSTANTS.CAR_11,\r\n MODEL_CONSTANTS.CAR_21,\r\n MODEL_CONSTANTS.CAR_22,\r\n MODEL_CONSTANTS.CAR_31,\r\n MODEL_CONSTANTS.CAR_32,\r\n MODEL_CONSTANTS.CAR_33,\r\n MODEL_CONSTANTS.CAR_34,\r\n MODEL_CONSTANTS.CAR_35\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n MODEL_CONSTANTS.DAR_11,\r\n MODEL_CONSTANTS.DAR_12,\r\n MODEL_CONSTANTS.DAR_21,\r\n MODEL_CONSTANTS.DAR_22,\r\n MODEL_CONSTANTS.DAR_23,\r\n MODEL_CONSTANTS.DAR_24,\r\n MODEL_CONSTANTS.DAR_25,\r\n MODEL_CONSTANTS.DAR_31\r\n ],\r\n [MODEL_CONSTANTS.RSK]: [\r\n MODEL_CONSTANTS.RSK_11,\r\n MODEL_CONSTANTS.RSK_21,\r\n MODEL_CONSTANTS.RSK_22,\r\n MODEL_CONSTANTS.RSK_31,\r\n MODEL_CONSTANTS.RSK_32,\r\n MODEL_CONSTANTS.RSK_33,\r\n MODEL_CONSTANTS.RSK_34,\r\n MODEL_CONSTANTS.RSK_35\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n MODEL_CONSTANTS.OT_11,\r\n MODEL_CONSTANTS.OT_21,\r\n MODEL_CONSTANTS.OT_22,\r\n MODEL_CONSTANTS.OT_31,\r\n MODEL_CONSTANTS.OT_32,\r\n MODEL_CONSTANTS.OT_33,\r\n MODEL_CONSTANTS.OT_34,\r\n MODEL_CONSTANTS.OT_35,\r\n MODEL_CONSTANTS.OT_36,\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n MODEL_CONSTANTS.PCM_11,\r\n MODEL_CONSTANTS.PCM_12,\r\n MODEL_CONSTANTS.PCM_13,\r\n MODEL_CONSTANTS.PCM_21,\r\n MODEL_CONSTANTS.PCM_22,\r\n MODEL_CONSTANTS.PCM_31,\r\n MODEL_CONSTANTS.PCM_32,\r\n MODEL_CONSTANTS.PCM_33,\r\n MODEL_CONSTANTS.PCM_34,\r\n MODEL_CONSTANTS.PCM_35,\r\n MODEL_CONSTANTS.PCM_36\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n MODEL_CONSTANTS.PAD_11,\r\n MODEL_CONSTANTS.PAD_21,\r\n MODEL_CONSTANTS.PAD_22,\r\n MODEL_CONSTANTS.PAD_23,\r\n MODEL_CONSTANTS.PAD_31,\r\n MODEL_CONSTANTS.PAD_32,\r\n MODEL_CONSTANTS.PAD_33,\r\n MODEL_CONSTANTS.PAD_34,\r\n MODEL_CONSTANTS.PAD_35,\r\n MODEL_CONSTANTS.PAD_36,\r\n MODEL_CONSTANTS.PAD_37\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n MODEL_CONSTANTS.PR_11,\r\n MODEL_CONSTANTS.PR_21,\r\n MODEL_CONSTANTS.PR_22,\r\n MODEL_CONSTANTS.PR_23,\r\n MODEL_CONSTANTS.PR_24,\r\n MODEL_CONSTANTS.PR_31\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n MODEL_CONSTANTS.VV_11,\r\n MODEL_CONSTANTS.VV_12,\r\n MODEL_CONSTANTS.VV_21,\r\n MODEL_CONSTANTS.VV_22,\r\n MODEL_CONSTANTS.VV_23,\r\n MODEL_CONSTANTS.VV_31,\r\n MODEL_CONSTANTS.VV_32\r\n ],\r\n [MODEL_CONSTANTS.IRP]: [\r\n MODEL_CONSTANTS.IRP_11,\r\n MODEL_CONSTANTS.IRP_21,\r\n MODEL_CONSTANTS.IRP_22,\r\n MODEL_CONSTANTS.IRP_23,\r\n MODEL_CONSTANTS.IRP_31,\r\n MODEL_CONSTANTS.IRP_32\r\n ],\r\n [MODEL_CONSTANTS.CONT]: [\r\n MODEL_CONSTANTS.CONT_11,\r\n MODEL_CONSTANTS.CONT_21,\r\n MODEL_CONSTANTS.CONT_22,\r\n MODEL_CONSTANTS.CONT_23,\r\n MODEL_CONSTANTS.CONT_31,\r\n MODEL_CONSTANTS.CONT_32,\r\n MODEL_CONSTANTS.CONT_33\r\n ],\r\n [MODEL_CONSTANTS.STSM]: [\r\n MODEL_CONSTANTS.STSM_11,\r\n MODEL_CONSTANTS.STSM_21,\r\n MODEL_CONSTANTS.STSM_22,\r\n MODEL_CONSTANTS.STSM_23,\r\n MODEL_CONSTANTS.STSM_31\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n MODEL_CONSTANTS.MPM_11,\r\n MODEL_CONSTANTS.MPM_12,\r\n MODEL_CONSTANTS.MPM_21,\r\n MODEL_CONSTANTS.MPM_22,\r\n MODEL_CONSTANTS.MPM_23,\r\n MODEL_CONSTANTS.MPM_24,\r\n MODEL_CONSTANTS.MPM_25,\r\n MODEL_CONSTANTS.MPM_26,\r\n MODEL_CONSTANTS.MPM_31,\r\n MODEL_CONSTANTS.MPM_32,\r\n MODEL_CONSTANTS.MPM_33,\r\n MODEL_CONSTANTS.MPM_34,\r\n MODEL_CONSTANTS.MPM_35,\r\n MODEL_CONSTANTS.MPM_36\r\n ],\r\n [MODEL_CONSTANTS.SDM]: [\r\n MODEL_CONSTANTS.SDM_11,\r\n MODEL_CONSTANTS.SDM_21,\r\n MODEL_CONSTANTS.SDM_22,\r\n MODEL_CONSTANTS.SDM_23,\r\n MODEL_CONSTANTS.SDM_24,\r\n MODEL_CONSTANTS.SDM_25,\r\n MODEL_CONSTANTS.SDM_26,\r\n MODEL_CONSTANTS.SDM_31\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n MODEL_CONSTANTS.PQA_11,\r\n MODEL_CONSTANTS.PQA_21,\r\n MODEL_CONSTANTS.PQA_22,\r\n MODEL_CONSTANTS.PQA_23,\r\n MODEL_CONSTANTS.PQA_24,\r\n MODEL_CONSTANTS.PQA_31\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n MODEL_CONSTANTS.CM_11,\r\n MODEL_CONSTANTS.CM_21,\r\n MODEL_CONSTANTS.CM_22,\r\n MODEL_CONSTANTS.CM_23,\r\n MODEL_CONSTANTS.CM_24,\r\n MODEL_CONSTANTS.CM_25,\r\n MODEL_CONSTANTS.CM_26\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n MODEL_CONSTANTS.MC_11,\r\n MODEL_CONSTANTS.MC_12,\r\n MODEL_CONSTANTS.MC_21,\r\n MODEL_CONSTANTS.MC_22,\r\n MODEL_CONSTANTS.MC_23,\r\n MODEL_CONSTANTS.MC_24,\r\n MODEL_CONSTANTS.MC_31,\r\n MODEL_CONSTANTS.MC_32,\r\n MODEL_CONSTANTS.MC_33,\r\n MODEL_CONSTANTS.MC_34\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n MODEL_CONSTANTS.PLAN_11,\r\n MODEL_CONSTANTS.PLAN_12,\r\n MODEL_CONSTANTS.PLAN_21,\r\n MODEL_CONSTANTS.PLAN_22,\r\n MODEL_CONSTANTS.PLAN_23,\r\n MODEL_CONSTANTS.PLAN_24,\r\n MODEL_CONSTANTS.PLAN_25,\r\n MODEL_CONSTANTS.PLAN_26,\r\n MODEL_CONSTANTS.PLAN_27,\r\n MODEL_CONSTANTS.PLAN_28,\r\n MODEL_CONSTANTS.PLAN_31,\r\n MODEL_CONSTANTS.PLAN_32,\r\n MODEL_CONSTANTS.PLAN_33,\r\n MODEL_CONSTANTS.PLAN_34\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n MODEL_CONSTANTS.EST_11,\r\n MODEL_CONSTANTS.EST_21,\r\n MODEL_CONSTANTS.EST_22,\r\n MODEL_CONSTANTS.EST_23,\r\n MODEL_CONSTANTS.EST_31,\r\n MODEL_CONSTANTS.EST_32\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n MODEL_CONSTANTS.RDM_11,\r\n MODEL_CONSTANTS.RDM_21,\r\n MODEL_CONSTANTS.RDM_22,\r\n MODEL_CONSTANTS.RDM_23,\r\n MODEL_CONSTANTS.RDM_24,\r\n MODEL_CONSTANTS.RDM_25,\r\n MODEL_CONSTANTS.RDM_26,\r\n MODEL_CONSTANTS.RDM_31,\r\n MODEL_CONSTANTS.RDM_32,\r\n MODEL_CONSTANTS.RDM_33,\r\n MODEL_CONSTANTS.RDM_34,\r\n MODEL_CONSTANTS.RDM_35,\r\n MODEL_CONSTANTS.RDM_36,\r\n MODEL_CONSTANTS.RDM_37\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n MODEL_CONSTANTS.GOV_11,\r\n MODEL_CONSTANTS.GOV_21,\r\n MODEL_CONSTANTS.GOV_22,\r\n MODEL_CONSTANTS.GOV_23,\r\n MODEL_CONSTANTS.GOV_24,\r\n MODEL_CONSTANTS.GOV_31,\r\n MODEL_CONSTANTS.GOV_32\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n MODEL_CONSTANTS.II_11,\r\n MODEL_CONSTANTS.II_21,\r\n MODEL_CONSTANTS.II_22,\r\n MODEL_CONSTANTS.II_31,\r\n MODEL_CONSTANTS.II_32,\r\n MODEL_CONSTANTS.II_33\r\n ] \r\n },\r\n [MODEL_CONSTANTS.SVCS_LEVEL_4]: {\r\n [MODEL_CONSTANTS.CAR]: [\r\n MODEL_CONSTANTS.CAR_11,\r\n MODEL_CONSTANTS.CAR_21,\r\n MODEL_CONSTANTS.CAR_22,\r\n MODEL_CONSTANTS.CAR_31,\r\n MODEL_CONSTANTS.CAR_32,\r\n MODEL_CONSTANTS.CAR_33,\r\n MODEL_CONSTANTS.CAR_34,\r\n MODEL_CONSTANTS.CAR_35,\r\n MODEL_CONSTANTS.CAR_41,\r\n MODEL_CONSTANTS.CAR_42\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n MODEL_CONSTANTS.DAR_11,\r\n MODEL_CONSTANTS.DAR_12,\r\n MODEL_CONSTANTS.DAR_21,\r\n MODEL_CONSTANTS.DAR_22,\r\n MODEL_CONSTANTS.DAR_23,\r\n MODEL_CONSTANTS.DAR_24,\r\n MODEL_CONSTANTS.DAR_25,\r\n MODEL_CONSTANTS.DAR_31\r\n ],\r\n [MODEL_CONSTANTS.RSK]: [\r\n MODEL_CONSTANTS.RSK_11,\r\n MODEL_CONSTANTS.RSK_21,\r\n MODEL_CONSTANTS.RSK_22,\r\n MODEL_CONSTANTS.RSK_31,\r\n MODEL_CONSTANTS.RSK_32,\r\n MODEL_CONSTANTS.RSK_33,\r\n MODEL_CONSTANTS.RSK_34,\r\n MODEL_CONSTANTS.RSK_35\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n MODEL_CONSTANTS.OT_11,\r\n MODEL_CONSTANTS.OT_21,\r\n MODEL_CONSTANTS.OT_22,\r\n MODEL_CONSTANTS.OT_31,\r\n MODEL_CONSTANTS.OT_32,\r\n MODEL_CONSTANTS.OT_33,\r\n MODEL_CONSTANTS.OT_34,\r\n MODEL_CONSTANTS.OT_35,\r\n MODEL_CONSTANTS.OT_36,\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n MODEL_CONSTANTS.PCM_11,\r\n MODEL_CONSTANTS.PCM_12,\r\n MODEL_CONSTANTS.PCM_13,\r\n MODEL_CONSTANTS.PCM_21,\r\n MODEL_CONSTANTS.PCM_22,\r\n MODEL_CONSTANTS.PCM_31,\r\n MODEL_CONSTANTS.PCM_32,\r\n MODEL_CONSTANTS.PCM_33,\r\n MODEL_CONSTANTS.PCM_34,\r\n MODEL_CONSTANTS.PCM_35,\r\n MODEL_CONSTANTS.PCM_36,\r\n MODEL_CONSTANTS.PCM_41\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n MODEL_CONSTANTS.PAD_11,\r\n MODEL_CONSTANTS.PAD_21,\r\n MODEL_CONSTANTS.PAD_22,\r\n MODEL_CONSTANTS.PAD_23,\r\n MODEL_CONSTANTS.PAD_31,\r\n MODEL_CONSTANTS.PAD_32,\r\n MODEL_CONSTANTS.PAD_33,\r\n MODEL_CONSTANTS.PAD_34,\r\n MODEL_CONSTANTS.PAD_35,\r\n MODEL_CONSTANTS.PAD_36,\r\n MODEL_CONSTANTS.PAD_37\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n MODEL_CONSTANTS.PR_11,\r\n MODEL_CONSTANTS.PR_21,\r\n MODEL_CONSTANTS.PR_22,\r\n MODEL_CONSTANTS.PR_23,\r\n MODEL_CONSTANTS.PR_24,\r\n MODEL_CONSTANTS.PR_31\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n MODEL_CONSTANTS.VV_11,\r\n MODEL_CONSTANTS.VV_12,\r\n MODEL_CONSTANTS.VV_21,\r\n MODEL_CONSTANTS.VV_22,\r\n MODEL_CONSTANTS.VV_23,\r\n MODEL_CONSTANTS.VV_31,\r\n MODEL_CONSTANTS.VV_32\r\n ],\r\n [MODEL_CONSTANTS.IRP]: [\r\n MODEL_CONSTANTS.IRP_11,\r\n MODEL_CONSTANTS.IRP_21,\r\n MODEL_CONSTANTS.IRP_22,\r\n MODEL_CONSTANTS.IRP_23,\r\n MODEL_CONSTANTS.IRP_31,\r\n MODEL_CONSTANTS.IRP_32\r\n ],\r\n [MODEL_CONSTANTS.CONT]: [\r\n MODEL_CONSTANTS.CONT_11,\r\n MODEL_CONSTANTS.CONT_21,\r\n MODEL_CONSTANTS.CONT_22,\r\n MODEL_CONSTANTS.CONT_23,\r\n MODEL_CONSTANTS.CONT_31,\r\n MODEL_CONSTANTS.CONT_32,\r\n MODEL_CONSTANTS.CONT_33\r\n ],\r\n [MODEL_CONSTANTS.STSM]: [\r\n MODEL_CONSTANTS.STSM_11,\r\n MODEL_CONSTANTS.STSM_21,\r\n MODEL_CONSTANTS.STSM_22,\r\n MODEL_CONSTANTS.STSM_23,\r\n MODEL_CONSTANTS.STSM_31\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n MODEL_CONSTANTS.MPM_11,\r\n MODEL_CONSTANTS.MPM_12,\r\n MODEL_CONSTANTS.MPM_21,\r\n MODEL_CONSTANTS.MPM_22,\r\n MODEL_CONSTANTS.MPM_23,\r\n MODEL_CONSTANTS.MPM_24,\r\n MODEL_CONSTANTS.MPM_25,\r\n MODEL_CONSTANTS.MPM_26,\r\n MODEL_CONSTANTS.MPM_31,\r\n MODEL_CONSTANTS.MPM_32,\r\n MODEL_CONSTANTS.MPM_33,\r\n MODEL_CONSTANTS.MPM_34,\r\n MODEL_CONSTANTS.MPM_35,\r\n MODEL_CONSTANTS.MPM_36,\r\n MODEL_CONSTANTS.MPM_41,\r\n MODEL_CONSTANTS.MPM_42,\r\n MODEL_CONSTANTS.MPM_43,\r\n MODEL_CONSTANTS.MPM_44,\r\n MODEL_CONSTANTS.MPM_45\r\n ],\r\n [MODEL_CONSTANTS.SDM]: [\r\n MODEL_CONSTANTS.SDM_11,\r\n MODEL_CONSTANTS.SDM_21,\r\n MODEL_CONSTANTS.SDM_22,\r\n MODEL_CONSTANTS.SDM_23,\r\n MODEL_CONSTANTS.SDM_24,\r\n MODEL_CONSTANTS.SDM_25,\r\n MODEL_CONSTANTS.SDM_26,\r\n MODEL_CONSTANTS.SDM_31\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n MODEL_CONSTANTS.PQA_11,\r\n MODEL_CONSTANTS.PQA_21,\r\n MODEL_CONSTANTS.PQA_22,\r\n MODEL_CONSTANTS.PQA_23,\r\n MODEL_CONSTANTS.PQA_24,\r\n MODEL_CONSTANTS.PQA_31\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n MODEL_CONSTANTS.CM_11,\r\n MODEL_CONSTANTS.CM_21,\r\n MODEL_CONSTANTS.CM_22,\r\n MODEL_CONSTANTS.CM_23,\r\n MODEL_CONSTANTS.CM_24,\r\n MODEL_CONSTANTS.CM_25,\r\n MODEL_CONSTANTS.CM_26\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n MODEL_CONSTANTS.MC_11,\r\n MODEL_CONSTANTS.MC_12,\r\n MODEL_CONSTANTS.MC_21,\r\n MODEL_CONSTANTS.MC_22,\r\n MODEL_CONSTANTS.MC_23,\r\n MODEL_CONSTANTS.MC_24,\r\n MODEL_CONSTANTS.MC_31,\r\n MODEL_CONSTANTS.MC_32,\r\n MODEL_CONSTANTS.MC_33,\r\n MODEL_CONSTANTS.MC_34\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n MODEL_CONSTANTS.PLAN_11,\r\n MODEL_CONSTANTS.PLAN_12,\r\n MODEL_CONSTANTS.PLAN_21,\r\n MODEL_CONSTANTS.PLAN_22,\r\n MODEL_CONSTANTS.PLAN_23,\r\n MODEL_CONSTANTS.PLAN_24,\r\n MODEL_CONSTANTS.PLAN_25,\r\n MODEL_CONSTANTS.PLAN_26,\r\n MODEL_CONSTANTS.PLAN_27,\r\n MODEL_CONSTANTS.PLAN_28,\r\n MODEL_CONSTANTS.PLAN_31,\r\n MODEL_CONSTANTS.PLAN_32,\r\n MODEL_CONSTANTS.PLAN_33,\r\n MODEL_CONSTANTS.PLAN_34,\r\n MODEL_CONSTANTS.PLAN_41\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n MODEL_CONSTANTS.EST_11,\r\n MODEL_CONSTANTS.EST_21,\r\n MODEL_CONSTANTS.EST_22,\r\n MODEL_CONSTANTS.EST_23,\r\n MODEL_CONSTANTS.EST_31,\r\n MODEL_CONSTANTS.EST_32\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n MODEL_CONSTANTS.RDM_11,\r\n MODEL_CONSTANTS.RDM_21,\r\n MODEL_CONSTANTS.RDM_22,\r\n MODEL_CONSTANTS.RDM_23,\r\n MODEL_CONSTANTS.RDM_24,\r\n MODEL_CONSTANTS.RDM_25,\r\n MODEL_CONSTANTS.RDM_26,\r\n MODEL_CONSTANTS.RDM_31,\r\n MODEL_CONSTANTS.RDM_32,\r\n MODEL_CONSTANTS.RDM_33,\r\n MODEL_CONSTANTS.RDM_34,\r\n MODEL_CONSTANTS.RDM_35,\r\n MODEL_CONSTANTS.RDM_36,\r\n MODEL_CONSTANTS.RDM_37\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n MODEL_CONSTANTS.GOV_11,\r\n MODEL_CONSTANTS.GOV_21,\r\n MODEL_CONSTANTS.GOV_22,\r\n MODEL_CONSTANTS.GOV_23,\r\n MODEL_CONSTANTS.GOV_24,\r\n MODEL_CONSTANTS.GOV_31,\r\n MODEL_CONSTANTS.GOV_32,\r\n MODEL_CONSTANTS.GOV_41\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n MODEL_CONSTANTS.II_11,\r\n MODEL_CONSTANTS.II_21,\r\n MODEL_CONSTANTS.II_22,\r\n MODEL_CONSTANTS.II_31,\r\n MODEL_CONSTANTS.II_32,\r\n MODEL_CONSTANTS.II_33\r\n ] \r\n },\r\n [MODEL_CONSTANTS.SVCS_LEVEL_5]: {\r\n [MODEL_CONSTANTS.CAR]: [\r\n MODEL_CONSTANTS.CAR_11,\r\n MODEL_CONSTANTS.CAR_21,\r\n MODEL_CONSTANTS.CAR_22,\r\n MODEL_CONSTANTS.CAR_31,\r\n MODEL_CONSTANTS.CAR_32,\r\n MODEL_CONSTANTS.CAR_33,\r\n MODEL_CONSTANTS.CAR_34,\r\n MODEL_CONSTANTS.CAR_35,\r\n MODEL_CONSTANTS.CAR_41,\r\n MODEL_CONSTANTS.CAR_42,\r\n MODEL_CONSTANTS.CAR_51\r\n ],\r\n [MODEL_CONSTANTS.DAR]: [\r\n MODEL_CONSTANTS.DAR_11,\r\n MODEL_CONSTANTS.DAR_12,\r\n MODEL_CONSTANTS.DAR_21,\r\n MODEL_CONSTANTS.DAR_22,\r\n MODEL_CONSTANTS.DAR_23,\r\n MODEL_CONSTANTS.DAR_24,\r\n MODEL_CONSTANTS.DAR_25,\r\n MODEL_CONSTANTS.DAR_31\r\n ],\r\n [MODEL_CONSTANTS.RSK]: [\r\n MODEL_CONSTANTS.RSK_11,\r\n MODEL_CONSTANTS.RSK_21,\r\n MODEL_CONSTANTS.RSK_22,\r\n MODEL_CONSTANTS.RSK_31,\r\n MODEL_CONSTANTS.RSK_32,\r\n MODEL_CONSTANTS.RSK_33,\r\n MODEL_CONSTANTS.RSK_34,\r\n MODEL_CONSTANTS.RSK_35\r\n ],\r\n [MODEL_CONSTANTS.OT]: [\r\n MODEL_CONSTANTS.OT_11,\r\n MODEL_CONSTANTS.OT_21,\r\n MODEL_CONSTANTS.OT_22,\r\n MODEL_CONSTANTS.OT_31,\r\n MODEL_CONSTANTS.OT_32,\r\n MODEL_CONSTANTS.OT_33,\r\n MODEL_CONSTANTS.OT_34,\r\n MODEL_CONSTANTS.OT_35,\r\n MODEL_CONSTANTS.OT_36,\r\n ],\r\n [MODEL_CONSTANTS.PCM]: [\r\n MODEL_CONSTANTS.PCM_11,\r\n MODEL_CONSTANTS.PCM_12,\r\n MODEL_CONSTANTS.PCM_13,\r\n MODEL_CONSTANTS.PCM_21,\r\n MODEL_CONSTANTS.PCM_22,\r\n MODEL_CONSTANTS.PCM_31,\r\n MODEL_CONSTANTS.PCM_32,\r\n MODEL_CONSTANTS.PCM_33,\r\n MODEL_CONSTANTS.PCM_34,\r\n MODEL_CONSTANTS.PCM_35,\r\n MODEL_CONSTANTS.PCM_36,\r\n MODEL_CONSTANTS.PCM_41\r\n ],\r\n [MODEL_CONSTANTS.PAD]: [\r\n MODEL_CONSTANTS.PAD_11,\r\n MODEL_CONSTANTS.PAD_21,\r\n MODEL_CONSTANTS.PAD_22,\r\n MODEL_CONSTANTS.PAD_23,\r\n MODEL_CONSTANTS.PAD_31,\r\n MODEL_CONSTANTS.PAD_32,\r\n MODEL_CONSTANTS.PAD_33,\r\n MODEL_CONSTANTS.PAD_34,\r\n MODEL_CONSTANTS.PAD_35,\r\n MODEL_CONSTANTS.PAD_36,\r\n MODEL_CONSTANTS.PAD_37\r\n ],\r\n [MODEL_CONSTANTS.PR]: [\r\n MODEL_CONSTANTS.PR_11,\r\n MODEL_CONSTANTS.PR_21,\r\n MODEL_CONSTANTS.PR_22,\r\n MODEL_CONSTANTS.PR_23,\r\n MODEL_CONSTANTS.PR_24,\r\n MODEL_CONSTANTS.PR_31\r\n ],\r\n [MODEL_CONSTANTS.VV]: [\r\n MODEL_CONSTANTS.VV_11,\r\n MODEL_CONSTANTS.VV_12,\r\n MODEL_CONSTANTS.VV_21,\r\n MODEL_CONSTANTS.VV_22,\r\n MODEL_CONSTANTS.VV_23,\r\n MODEL_CONSTANTS.VV_31,\r\n MODEL_CONSTANTS.VV_32\r\n ],\r\n [MODEL_CONSTANTS.IRP]: [\r\n MODEL_CONSTANTS.IRP_11,\r\n MODEL_CONSTANTS.IRP_21,\r\n MODEL_CONSTANTS.IRP_22,\r\n MODEL_CONSTANTS.IRP_23,\r\n MODEL_CONSTANTS.IRP_31,\r\n MODEL_CONSTANTS.IRP_32\r\n ],\r\n [MODEL_CONSTANTS.CONT]: [\r\n MODEL_CONSTANTS.CONT_11,\r\n MODEL_CONSTANTS.CONT_21,\r\n MODEL_CONSTANTS.CONT_22,\r\n MODEL_CONSTANTS.CONT_23,\r\n MODEL_CONSTANTS.CONT_31,\r\n MODEL_CONSTANTS.CONT_32,\r\n MODEL_CONSTANTS.CONT_33\r\n ],\r\n [MODEL_CONSTANTS.STSM]: [\r\n MODEL_CONSTANTS.STSM_11,\r\n MODEL_CONSTANTS.STSM_21,\r\n MODEL_CONSTANTS.STSM_22,\r\n MODEL_CONSTANTS.STSM_23,\r\n MODEL_CONSTANTS.STSM_31\r\n ],\r\n [MODEL_CONSTANTS.MPM]: [\r\n MODEL_CONSTANTS.MPM_11,\r\n MODEL_CONSTANTS.MPM_12,\r\n MODEL_CONSTANTS.MPM_21,\r\n MODEL_CONSTANTS.MPM_22,\r\n MODEL_CONSTANTS.MPM_23,\r\n MODEL_CONSTANTS.MPM_24,\r\n MODEL_CONSTANTS.MPM_25,\r\n MODEL_CONSTANTS.MPM_26,\r\n MODEL_CONSTANTS.MPM_31,\r\n MODEL_CONSTANTS.MPM_32,\r\n MODEL_CONSTANTS.MPM_33,\r\n MODEL_CONSTANTS.MPM_34,\r\n MODEL_CONSTANTS.MPM_35,\r\n MODEL_CONSTANTS.MPM_36,\r\n MODEL_CONSTANTS.MPM_41,\r\n MODEL_CONSTANTS.MPM_42,\r\n MODEL_CONSTANTS.MPM_43,\r\n MODEL_CONSTANTS.MPM_44,\r\n MODEL_CONSTANTS.MPM_45,\r\n MODEL_CONSTANTS.MPM_51,\r\n MODEL_CONSTANTS.MPM_52,\r\n MODEL_CONSTANTS.MPM_53\r\n ],\r\n [MODEL_CONSTANTS.SDM]: [\r\n MODEL_CONSTANTS.SDM_11,\r\n MODEL_CONSTANTS.SDM_21,\r\n MODEL_CONSTANTS.SDM_22,\r\n MODEL_CONSTANTS.SDM_23,\r\n MODEL_CONSTANTS.SDM_24,\r\n MODEL_CONSTANTS.SDM_25,\r\n MODEL_CONSTANTS.SDM_26,\r\n MODEL_CONSTANTS.SDM_31\r\n ],\r\n [MODEL_CONSTANTS.PQA]: [\r\n MODEL_CONSTANTS.PQA_11,\r\n MODEL_CONSTANTS.PQA_21,\r\n MODEL_CONSTANTS.PQA_22,\r\n MODEL_CONSTANTS.PQA_23,\r\n MODEL_CONSTANTS.PQA_24,\r\n MODEL_CONSTANTS.PQA_31\r\n ],\r\n [MODEL_CONSTANTS.CM]: [\r\n MODEL_CONSTANTS.CM_11,\r\n MODEL_CONSTANTS.CM_21,\r\n MODEL_CONSTANTS.CM_22,\r\n MODEL_CONSTANTS.CM_23,\r\n MODEL_CONSTANTS.CM_24,\r\n MODEL_CONSTANTS.CM_25,\r\n MODEL_CONSTANTS.CM_26\r\n ],\r\n [MODEL_CONSTANTS.MC]: [\r\n MODEL_CONSTANTS.MC_11,\r\n MODEL_CONSTANTS.MC_12,\r\n MODEL_CONSTANTS.MC_21,\r\n MODEL_CONSTANTS.MC_22,\r\n MODEL_CONSTANTS.MC_23,\r\n MODEL_CONSTANTS.MC_24,\r\n MODEL_CONSTANTS.MC_31,\r\n MODEL_CONSTANTS.MC_32,\r\n MODEL_CONSTANTS.MC_33,\r\n MODEL_CONSTANTS.MC_34\r\n ],\r\n [MODEL_CONSTANTS.PLAN]: [\r\n MODEL_CONSTANTS.PLAN_11,\r\n MODEL_CONSTANTS.PLAN_12,\r\n MODEL_CONSTANTS.PLAN_21,\r\n MODEL_CONSTANTS.PLAN_22,\r\n MODEL_CONSTANTS.PLAN_23,\r\n MODEL_CONSTANTS.PLAN_24,\r\n MODEL_CONSTANTS.PLAN_25,\r\n MODEL_CONSTANTS.PLAN_26,\r\n MODEL_CONSTANTS.PLAN_27,\r\n MODEL_CONSTANTS.PLAN_28,\r\n MODEL_CONSTANTS.PLAN_31,\r\n MODEL_CONSTANTS.PLAN_32,\r\n MODEL_CONSTANTS.PLAN_33,\r\n MODEL_CONSTANTS.PLAN_34,\r\n MODEL_CONSTANTS.PLAN_41\r\n ],\r\n [MODEL_CONSTANTS.EST]: [\r\n MODEL_CONSTANTS.EST_11,\r\n MODEL_CONSTANTS.EST_21,\r\n MODEL_CONSTANTS.EST_22,\r\n MODEL_CONSTANTS.EST_23,\r\n MODEL_CONSTANTS.EST_31,\r\n MODEL_CONSTANTS.EST_32\r\n ],\r\n [MODEL_CONSTANTS.RDM]: [\r\n MODEL_CONSTANTS.RDM_11,\r\n MODEL_CONSTANTS.RDM_21,\r\n MODEL_CONSTANTS.RDM_22,\r\n MODEL_CONSTANTS.RDM_23,\r\n MODEL_CONSTANTS.RDM_24,\r\n MODEL_CONSTANTS.RDM_25,\r\n MODEL_CONSTANTS.RDM_26,\r\n MODEL_CONSTANTS.RDM_31,\r\n MODEL_CONSTANTS.RDM_32,\r\n MODEL_CONSTANTS.RDM_33,\r\n MODEL_CONSTANTS.RDM_34,\r\n MODEL_CONSTANTS.RDM_35,\r\n MODEL_CONSTANTS.RDM_36,\r\n MODEL_CONSTANTS.RDM_37\r\n ],\r\n [MODEL_CONSTANTS.GOV]: [\r\n MODEL_CONSTANTS.GOV_11,\r\n MODEL_CONSTANTS.GOV_21,\r\n MODEL_CONSTANTS.GOV_22,\r\n MODEL_CONSTANTS.GOV_23,\r\n MODEL_CONSTANTS.GOV_24,\r\n MODEL_CONSTANTS.GOV_31,\r\n MODEL_CONSTANTS.GOV_32,\r\n MODEL_CONSTANTS.GOV_41\r\n ],\r\n [MODEL_CONSTANTS.II]: [\r\n MODEL_CONSTANTS.II_11,\r\n MODEL_CONSTANTS.II_21,\r\n MODEL_CONSTANTS.II_22,\r\n MODEL_CONSTANTS.II_31,\r\n MODEL_CONSTANTS.II_32,\r\n MODEL_CONSTANTS.II_33\r\n ] \r\n }\r\n};\r\n\r\nexport { VIEWS };","import { MODEL_CONSTANTS } from './modelconstants';\r\n\r\nconst DEFAULT_QUESTIONS = {\r\n [MODEL_CONSTANTS.CAR_21]: \"How do you select outcomes to be analyzed? \\nVALUE: How does this lead to effort focused on outcomes with the greatest impact?\", \r\n [MODEL_CONSTANTS.CAR_22]: \"How are the outcomes analyzed and the causes addressed? \\nVALUE: How does this help reduce cost and time?\", \r\n [MODEL_CONSTANTS.CAR_31]: \"How are root causes of the outcomes determined? What organizational process is followed? \\nVALUE: How does this increase the likelihood of meeting objectives?\", \r\n [MODEL_CONSTANTS.CAR_32]: \"How are actions identified that address the root causes? \\nVALUE: How does this reduce cost and time?\", \r\n [MODEL_CONSTANTS.CAR_33]: \"How are actions selected and implemented? \\nVALUE: How does this ensure the most impact and the likelihood of meeting objectives?\", \r\n [MODEL_CONSTANTS.CAR_34]: \"How are the root causes, selected actions, and completion of actions documented? \\nVALUE: How does recording this information leverage savings and increase productivity across the organization?\", \r\n [MODEL_CONSTANTS.CAR_35]: \"How are the implemented actions monitored for effectiveness? How are the effective changes submitted to the organization? \\nVALUE: How does this allow other projects to take advantage of the increased savings/productivity?\", \r\n [MODEL_CONSTANTS.CAR_41]: \"\", \r\n [MODEL_CONSTANTS.CAR_42]: \"\", \r\n [MODEL_CONSTANTS.CAR_51]: \"\", \r\n [MODEL_CONSTANTS.CM_21]: \"How do you identify and document which items are going to be placed under configuration management? \\nVALUE: How do you ensure the right version is always being delivered?\", \r\n [MODEL_CONSTANTS.CM_22]: \"Would you please describe your CM system and how it is used? \\nVALUE: How do you reduce the cost and effort needed to ensure work product integrity?\", \r\n [MODEL_CONSTANTS.CM_23]: \"Would you please describe how and when you establish baselines and for what work products? \\nVALUE: How do you ensure the integrity of the work products?\", \r\n [MODEL_CONSTANTS.CM_24]: \"How are change requests generated and how do you track changes to the configuration items? \\nVALUE: How are changes to CIs approved?\", \r\n [MODEL_CONSTANTS.CM_25]: \"What types of records are maintained that describe the configuration items? \\nVALUE: How do these records prevent rework?\", \r\n [MODEL_CONSTANTS.CM_26]: \"How do you ensure that all configuration items are part of the correct baseline at the time of release? \\nVALUE: How do you ensure the customer receives the agreed-on and correct version of work products?\", \r\n [MODEL_CONSTANTS.CONT_21]: \"How do you identify and prioritize the functions critical to the continuation of the organization's services? \\nVALUE: How does this enable continued operation of essential functions during an emergency or significant disruption?\", \r\n [MODEL_CONSTANTS.CONT_22]: \"How do you identify and prioritize the resources critical to the continuation of the organization's services? \\nVALUE: How does this increase customer satisfaction and enable continued operation of essential resources during an emergency or significant disruption?\", \r\n [MODEL_CONSTANTS.CONT_23]: \"How do you plan for the continuity of the organization's services in the event of an emergency or significant disruption? Where is this plan documented? \\nVALUE: How does this minimize impact on customer satisfaction?\", \r\n [MODEL_CONSTANTS.CONT_31]: \"How do you develop and maintain training materials for service continuity? \\nVALUE: How does this ensure organizational preparedness in response to significant disruptions?\", \r\n [MODEL_CONSTANTS.CONT_32]: \"How is the continuity training provided and what feedback is obtained after the training? \\nVALUE: How does this maximize the organization's ability to restore or continue essential functions for the business?\", \r\n [MODEL_CONSTANTS.CONT_33]: \"How do you prepare, conduct, and analyze results from verification and validation of the continuity plan? \\nVALUE: How does this increase confidence and likelihood that the continuity plan is effective?\", \r\n [MODEL_CONSTANTS.DAR_21]: \"What guidelines are in place for determining when to follow a formal decision process? \\nVALUE: How does this reduce costs by focusing on the most important decisions?\", \r\n [MODEL_CONSTANTS.DAR_22]: \"For a given decision, is criteria used for evaluating alternatives? \\nVALUE: How does this enable consistent selection of the optimal solution?\", \r\n [MODEL_CONSTANTS.DAR_23]: \"For a given decision, how are alternative solutions identified? \\nVALUE: How does this increase the quality of the solution?\", \r\n [MODEL_CONSTANTS.DAR_24]: \"For a given decision, how do you select the evaluation method(s) to be used when evaluating the alternatives? \\nVALUE: How does this optimize the cost, schedule, and performance for the decision being made?\", \r\n [MODEL_CONSTANTS.DAR_25]: \"For a given decision, how were the alternative solutions evaluated over the criteria and a selection made? \\nVALUE: How does this ensure the optimal solution is selected?\", \r\n [MODEL_CONSTANTS.DAR_31]: \"How do you develop and maintain a role-based decision authority? \\nVALUE: How does this reduce risk in ensuring the right level of management is reviewing/approving the decision?\", \r\n [MODEL_CONSTANTS.EST_21]: \"Would you please describe how the work to be performed is scoped? How do you determine what tasks need to be performed? \\nVALUE: How do you ensure the entire solution is addressed?\", \r\n [MODEL_CONSTANTS.EST_22]: \"How are size estimates generated? \\nVALUE: How do you ensure the accuracy of estimates?\", \r\n [MODEL_CONSTANTS.EST_23]: \"Please describe how effort and cost is estimated for the project. Are the estimates based on rationale (e.g. historical data)? Where is the rationale documented? \\nVALUE: How do you ensure repeatable estimates and the accuracy of the rationale upon which they are based?\", \r\n [MODEL_CONSTANTS.EST_31]: \"What estimation methods does the organization have? How are they improved? \\nVALUE: How do you ensure repeatable and consistent estimates?\", \r\n [MODEL_CONSTANTS.EST_32]: \"How was the organization's measurement repository used to estimate? \\nVALUE: How do you increase estimation precision, accuracy, and consistency?\", \r\n [MODEL_CONSTANTS.EVSD_21]: \"Please describe the approach for virtual solution delivery. \\nWhere is the approach documented?\",\r\n [MODEL_CONSTANTS.EVSD_22]: \"Please describe how the organization determines the effectiveness of the virtual solution delivery approach. Have any corrective actions been taken as a result of the review?\",\r\n [MODEL_CONSTANTS.EVSD_31]: \"Please describe the organization's approach for virtual solution delivery. Where is the approach documented? How was the approach deployed to the organization?\",\r\n [MODEL_CONSTANTS.EVSD_32]: \"Please describe how the organization reviews the implementation of its virtual solution delivery approach to ensure its continued effectiveness.\",\r\n [MODEL_CONSTANTS.EVSD_33]: \"What corrective or other actions have been taken to ensure the organization's virtual solution delivery approach remains effective and efficient?\",\r\n [MODEL_CONSTANTS.GOV_21]: \"Is there an organizational policy in place for process implementation and improvement? Where is it documented? How is it communicated? \\nVALUE: How does the policy increase the likelihood of meeting organizational needs and objectives?\", \r\n [MODEL_CONSTANTS.GOV_22]: \"How does senior management ensure resources and training are provided for process development, implementation, and improvement? \\nVALUE: How do the resources provided ensure senior management's priorities are met?\", \r\n [MODEL_CONSTANTS.GOV_23]: \"How does senior management identify their information needs and provide oversight using that information? \\nVALUE: How does the alignment of information needs to providing effective oversight ensure business objectives are met?\", \r\n [MODEL_CONSTANTS.GOV_24]: \"What are some ways senior management holds people accountable for adhering to the organizational policies? \\nVALUE: How does this accountability ensure business objectives are met?\", \r\n [MODEL_CONSTANTS.GOV_31]: \"How does Senior Management ensure that measures supporting organization objectives are collected, analyzed, and used? \\nVALUE: How do the measures increase the organization's ability to successfully deliver products and services?\", \r\n [MODEL_CONSTANTS.GOV_32]: \"How does Senior Management ensure that competencies and processes are aligned with the organizational objectives? \\nVALUE: How does this alignment improve the capability of the organization? \", \r\n [MODEL_CONSTANTS.GOV_41]: \"\", \r\n [MODEL_CONSTANTS.II_21]: \"What tools do you use to perform your job? Do you have enough resources (tools, labor, money) to perform your work? What training is required by the organization for people performing the various processes? What training have you received? \\nVALUE: How does having sufficient resources ensure successful projects?\", \r\n [MODEL_CONSTANTS.II_22]: \"How are processes maintained? How do you ensure the processes are being followed? \\nVALUE: How do you ensure the processes are effective and reflect the critical activities?\", \r\n [MODEL_CONSTANTS.II_31]: \"How are the organizational processes used to plan, perform, and manage work? \\nVALUE: How does this increase organizational learning and overall effectiveness?\", \r\n [MODEL_CONSTANTS.II_32]: \"How is adherence to the processes determined? How is effectiveness of the processes determined? \\nVALUE: How does this lead to process improvement?\", \r\n [MODEL_CONSTANTS.II_33]: \"What types of information are submitted by projects to the organization? \\nVALUE: How is this information used to keep the processes maintained and relevant?\", \r\n [MODEL_CONSTANTS.IRP_21]: \"Please describe your approach for incident resolution and prevention? \\nVALUE: How does this ensure customer satisfaction?\", \r\n [MODEL_CONSTANTS.IRP_22]: \"How are incidents resolved and monitored to closure? \\nVALUE: How does this maximize the effectiveness of incident resolution?\", \r\n [MODEL_CONSTANTS.IRP_23]: \"How is the status of incidents communicated and to whom? \\nVALUE: How does this minimize disruptions to work by ensuring affected stakeholders have a common understanding of the incident status?\", \r\n [MODEL_CONSTANTS.IRP_31]: \"Please describe the mechanism for identifying and resolving incidents? How are incidents categorized and prioritized? Who is responsible for tracking and determining resolution? \\nVALUE: How does this maximize reuse of information about past incidents to help resolve future incidents?\", \r\n [MODEL_CONSTANTS.IRP_32]: \"How are incidents selected for analysis? What actions are taken to prevent future occurrence of the incident? \\nVALUE: How does this increase customer satisfaction?\", \r\n [MODEL_CONSTANTS.MPM_21]: \"Please describe how you derive your measurement and performance objectives? \\nVALUE: How does this increase the likelihood of achieving business results?\", \r\n [MODEL_CONSTANTS.MPM_22]: \"Where do you describe your measures? What are examples of some of the information captured for each measure? \\nVALUE: How does this increase the consistency of the measures?\", \r\n [MODEL_CONSTANTS.MPM_23]: \"How is the measurement data collected? \\nVALUE: How does the data improve decisions?\", \r\n [MODEL_CONSTANTS.MPM_24]: \"How is the measurement data analyzed? \\nVALUE: How does the analysis provide insight into performance?\", \r\n [MODEL_CONSTANTS.MPM_25]: \"How is the measurement data and results stored? \\nVALUE: How does this enable analysis of performance?\", \r\n [MODEL_CONSTANTS.MPM_26]: \"How does the analysis of measures highlight issues and possible actions? \\nVALUE: How does this result in meeting objectives?\", \r\n [MODEL_CONSTANTS.MPM_31]: \"Please describe how you develop and maintain organizational measure and performance objectives that are tied to business objectives? \\nVALUE: How does this lead to business success?\", \r\n [MODEL_CONSTANTS.MPM_32]: \"What organizational standards and processes are in place for describing measures? \\nVALUE: How does this enable a consistent collection, understanding, and use of the measurement data?\", \r\n [MODEL_CONSTANTS.MPM_33]: \"How do you ensure the integrity of the measurement data being collected? \\nVALUE: How does this lead to an increased confidence in the data resulting in better decisions?\", \r\n [MODEL_CONSTANTS.MPM_34]: \"How is the organization's measurement repository maintained and used? \\nVALUE: How does the use of the organization's measurement repository result in successful work?\", \r\n [MODEL_CONSTANTS.MPM_35]: \"How is organizational performance analyzed and who is involved? What performance improvements have been made as a result? \\nVALUE: How does this lead to business success?\", \r\n [MODEL_CONSTANTS.MPM_36]: \"How are performance results communicated to the organization? \\nVALUE: How does this increase understanding and buy-in from the organization\", \r\n [MODEL_CONSTANTS.MPM_41]: \"\", \r\n [MODEL_CONSTANTS.MPM_42]: \"\", \r\n [MODEL_CONSTANTS.MPM_43]: \"\", \r\n [MODEL_CONSTANTS.MPM_44]: \"\", \r\n [MODEL_CONSTANTS.MPM_45]: \"\", \r\n [MODEL_CONSTANTS.MPM_51]: \"\", \r\n [MODEL_CONSTANTS.MPM_52]: \"\", \r\n [MODEL_CONSTANTS.MPM_53]: \"\", \r\n [MODEL_CONSTANTS.MC_21]: \"How is the project's effort, cost and progress monitored against the plan? \\nVALUE: How does this increase the likelihood of meeting objectives?\",\r\n [MODEL_CONSTANTS.MC_22]: \"How is stakeholder involvement and commitments monitored? \\nVALUE: How does this lead to the successful delivery of work?\",\r\n [MODEL_CONSTANTS.MC_23]: \"How do you monitor the transition to operations and support? \\nVALUE: How does this ensure a smooth and successful transition?\",\r\n [MODEL_CONSTANTS.MC_24]: \"What types of issues might arise from monitoring actuals vs. planned? How are corrective actions addressing the issues captured and tracked to closure? \\nVALUE: How does this increase the probability that objectives will be met?\",\r\n [MODEL_CONSTANTS.MC_31]: \"How do you manage the work being performed? \\nVALUE: How does this improve the likelihood of achieving objectives?\",\r\n [MODEL_CONSTANTS.MC_32]: \"How are critical dependencies managed? \\nVALUE: How does this increase the likelihood of meeting objectives?\",\r\n [MODEL_CONSTANTS.MC_33]: \"How is the work environment monitored? \\nVALUE: How does this ensure objectives are met?\",\r\n [MODEL_CONSTANTS.MC_34]: \"How are issues with and between stakeholders identified, managed, and resolved? \\nVALUE: How does this increase the likelihood of meeting objectives?\",\r\n [MODEL_CONSTANTS.OT_21]: \"How are organizational training needs identified and where are they documented? \\nVALUE: How does this reduce cost by providing training needed to perform the work?\", \r\n [MODEL_CONSTANTS.OT_22]: \"How is organizational training conducted and what records are maintained? \\nVALUE: How does this ensure that only individuals without the necessary knowledge/skills are trained.\", \r\n [MODEL_CONSTANTS.OT_31]: \"How are the organization's long-term and short-term training needs developed and maintained? Where are they documented? \\nVALUE: How does this maximize the likelihood of meeting objectives by ensuring individuals have the appropriate knowledge/skills?\",\r\n [MODEL_CONSTANTS.OT_32]: \"How are training needs and the delivery of that training coordinated between all levels in the organization? \\nVALUE: How does this ensure efficient and effective allocation of training resources?\", \r\n [MODEL_CONSTANTS.OT_33]: \"How are the identified training needs planned and implemented? \\nVALUE: How does this ensure personnel are trained so that they can efficiently and effectively perform their work?\", \r\n [MODEL_CONSTANTS.OT_34]: \"What capability has been put in place by the organization to address each organizational training need? \\nVALUE: How do this ensure personnel are trained so that they can efficiently and effectively perform their work?\", \r\n [MODEL_CONSTANTS.OT_35]: \"How is the effectiveness of the organization's training assessed? \\nVALUE: How does this keep the training program relevant and valuable?\", \r\n [MODEL_CONSTANTS.OT_36]: \"How are training records established and used? \\nVALUE: How does this reflect how well the training program supports the achievement of business and performance goals?\",\r\n [MODEL_CONSTANTS.PR_21]: \"What procedures and supporting materials are available for performing peer reviews? \\nVALUE: How does this maximize the efficiency and effectiveness of finding issues in peer reviews?\", \r\n [MODEL_CONSTANTS.PR_22]: \"How are work products selected for peer review? Where are the work products documented? \\nVALUE: How does this help manage cost and provide return on investment?\", \r\n [MODEL_CONSTANTS.PR_23]: \"How are peer reviews conducted? \\nVALUE: How does this lead to thorough and consistent reviews where issues are identified?\", \r\n [MODEL_CONSTANTS.PR_24]: \"How are issues identified in a peer review resolved? \\nVALUE: How does this lead to reduced rework and cost and increased quality?\", \r\n [MODEL_CONSTANTS.PR_31]: \"How are peer review results and data from the preparation and conduct analyzed? How often is the analysis performed? \\nVALUE: How does this increase the efficiency and effectiveness of peer reviews?\", \r\n [MODEL_CONSTANTS.PLAN_21]: \"How is the approach to performing work developed and maintained? \\nVALUE: How does this maximize success?\", \r\n [MODEL_CONSTANTS.PLAN_22]: \"Please describe how you plan for training needs? \\nVALUE: How does this lead to a more efficient and effective use of resources?\", \r\n [MODEL_CONSTANTS.PLAN_23]: \"How are the budget and schedule for the work developed and maintained? \\nVALUE: How does a budget and schedule enable timely management and corrective action?\", \r\n [MODEL_CONSTANTS.PLAN_24]: \"How is the involvement of stakeholders planned? \\nVALUE: How does this ensure stakeholder needs are addressed?\", \r\n [MODEL_CONSTANTS.PLAN_25]: \"How is the transition to operations and support planned? \\nVALUE: How does this minimize surprises and rework?\", \r\n [MODEL_CONSTANTS.PLAN_26]: \"How are adjustments made to the plan to address resource availability? \\nVALUE: How does this increase the likelihood that there are sufficient resources for the work that has to be performed?\", \r\n [MODEL_CONSTANTS.PLAN_27]: \"Would you please describe the key elements of the plan? How is the plan maintained? \\nVALUE: How does a project plan ensure effective and efficient communication leading to the achievement of objectives?\", \r\n [MODEL_CONSTANTS.PLAN_28]: \"How is the plan reviewed and who commits to the plan? \\nVALUE: How does this lead to reduced rework and the likelihood of achieving objectives?\", \r\n [MODEL_CONSTANTS.PLAN_31]: \"How was the process for performing the work developed from the organization processes? What tailoring was performed? \\nVALUE: How does this lead to a more efficient and effective achievement of objectives?\", \r\n [MODEL_CONSTANTS.PLAN_32]: \"How was the process for performing the work, and the organization's process assets and measurement repository used to develop the plan? \\nVALUE: How does this increase the likelihood that objectives will be met?\", \r\n [MODEL_CONSTANTS.PLAN_33]: \"How are critical dependencies managed? \\nVALUE: How does this reduce risk and increase the likelihood of a successful work effort?\", \r\n [MODEL_CONSTANTS.PLAN_34]: \"How is the work environment planned and how does it align with the organization's standards? \\nVALUE: How does this lead to increased productivity?\", \r\n [MODEL_CONSTANTS.PLAN_41]: \"\", \r\n [MODEL_CONSTANTS.PAD_21]: \"How do you determine what process assets will be needed for the work being performed? \\nVALUE: How does this ensure that resources will be focused only on the process assets needed to perform the work?\", \r\n [MODEL_CONSTANTS.PAD_22]: \"How do you develop, buy, or reuse process assets? How do you determine if a build/buy/reuse analysis is needed? \\nVALUE: How does this minimize cost, effort, and time?\", \r\n [MODEL_CONSTANTS.PAD_23]: \"How are the process assets made available to those individuals performing the work? \\nVALUE: How does this reduce cost and time needed to perform the work?\", \r\n [MODEL_CONSTANTS.PAD_31]: \"What approach is used for developing and maintaining a process asset? How is that approach maintained? \\nVALUE: How does this minimize cost?\", \r\n [MODEL_CONSTANTS.PAD_32]: \"How is the organization's process architecture developed and maintained? What makes up the process architecture? \\nVALUE: How does the process architecture ensure processes that add value?\", \r\n [MODEL_CONSTANTS.PAD_33]: \"How are process assets developed, maintained, and made available to the organization? \\nVALUE: How does this enable work to be done more efficiently and effectively?\", \r\n [MODEL_CONSTANTS.PAD_34]: \"Please describe your tailoring guidelines and criteria. Where are these guidelines documented and how are they used? \\nVALUE: How does this prevent unnecessary work by a team?\", \r\n //[MODEL_CONSTANTS.PAD_35]: \"PRIMARY: Where are the organization’s processes and process assets made available for use? How is it maintained? \\nVALUE: How does the process asset library reduce time and effort?\", \r\n [MODEL_CONSTANTS.PAD_35]: \"What work environment standards does the organization employ? Where are these standards documented? How often are they updated? \\nVALUE: How is productivity and consistency increased through these standards?\", \r\n [MODEL_CONSTANTS.PAD_36]: \"What organizational measurement and analysis standards are available for use? How are they maintained? \\nVALUE: How does this support consistent use of measurements and the related analysis for better decision making?\", \r\n [MODEL_CONSTANTS.PCM_21]: \"How are improvements identified to the process assets? \\nVALUE: How does this ensure that resources will only be allocated to the most critical business needs and objectives?\", \r\n [MODEL_CONSTANTS.PCM_22]: \"How are plans established and maintained for implementing process improvements? \\nVALUE: How does this enable more efficient and effective improvement efforts?\", \r\n [MODEL_CONSTANTS.PCM_31]: \"How are process improvement objectives developed and maintained? How do they tie to the business objectives? \\nVALUE: How does this ensure process improvements focus on business objectives?\", \r\n [MODEL_CONSTANTS.PCM_32]: \"What processes are the largest contributors to meeting business objectives? How/when are those processes identified? \\nVALUE: How does this maximize the impact of the improvement activities?\", \r\n [MODEL_CONSTANTS.PCM_33]: \"How do you research new processes, techniques, methods, and tools for possible improvement opportunities? \\nVALUE: How does this maximize process innovation to more efficiently and effectively achieve objectives?\",\r\n [MODEL_CONSTANTS.PCM_34]: \"How is the deployment, training, and support of process improvements planned? \\nVALUE: How does this ensure the improvements add value to the organization?\", \r\n [MODEL_CONSTANTS.PCM_35]: \"How are process improvements deployed to the organization? \\nVALUE: How do you ensure an efficient, effective, and coordinated process deployment?\", \r\n [MODEL_CONSTANTS.PCM_36]: \"How is the effectiveness of the deployed process improvements evaluated? How is that evaluation captured? \\nVALUE: How does this ensure the improvements are contributing to meeting the organization's process and performance improvement objectives?\", \r\n [MODEL_CONSTANTS.PCM_41]: \"\", \r\n [MODEL_CONSTANTS.PQA_21]: \"How is the approach to quality assurance planned and what historical data was used? \\nVALUE: How is cost reduced and quality increased as a result?\", \r\n [MODEL_CONSTANTS.PQA_22]: \"How are the actual processes and work products audited? \\nVALUE: How does this lead to the delivery of high-quality solutions?\", \r\n [MODEL_CONSTANTS.PQA_23]: \"How are non-compliance issues communicated and resolved? \\nVALUE: How does this lead to less rework and customer satisfaction?\", \r\n [MODEL_CONSTANTS.PQA_24]: \"How are the quality assurance activities documented? \\nVALUE: How does the recording of current quality assurance activities impact future activities? \", \r\n [MODEL_CONSTANTS.PQA_31]: \"How are opportunities for improvement identified during an audit? \\nVALUE: How does this lead to an increased organizational capability?\",\r\n [MODEL_CONSTANTS.PI_21]: \"What is the integration approach and where is it documented? \\nVALUE: How does this ensure the product will meet customer requirements?\", \r\n [MODEL_CONSTANTS.PI_22]: \"What is the integration environment and where is it documented and maintained? \\nVALUE: How does this ensure correct integration?\", \r\n [MODEL_CONSTANTS.PI_23]: \"What procedures are in place for integration and where are they documented? \\nVALUE: How does this improve the likelihood of producing a solution that works correctly and meets the customer's requirements?\", \r\n [MODEL_CONSTANTS.PI_24]: \"How do you ensure each component has been identified and operates according to its allocated requirements and design? \\nVALUE: How does this reduce total development cost, integration cycle time, and rework?\", \r\n [MODEL_CONSTANTS.PI_25]: \"How are the integrated components evaluated to ensure they meet the allocated requirements and design? \\nVALUE: How does this ensure the customer requirements are correctly implemented?\", \r\n [MODEL_CONSTANTS.PI_26]: \"Was integration performed in accordance with the integration strategy? How are the results of integration documented? \\nVALUE: How does this ensure a solution that meets the requirements and design?\", \r\n [MODEL_CONSTANTS.PI_31]: \"What reviews of interface descriptions are performed? Are interface relationships/dependencies maintained over the life of the project? \\nVALUE: How does this reduce rework and missed project objectives?\", \r\n [MODEL_CONSTANTS.PI_32]: \"How do you ensure prior to integration that each interface complies with the applicable interface description? \\nVALUE: How does this reduce rework due to interface incompatibility?\", \r\n [MODEL_CONSTANTS.PI_33]: \"How are the integrated components evaluated and how are the results documented? \\nVALUE: How does this reduce the risk of interface failure within the integrated components?\", \r\n [MODEL_CONSTANTS.RDM_21]: \"How do you discuss customer (and other stakeholder) needs, expectations, and constraints? \\nVALUE: How does this increase the likelihood that the customer will be satisfied?\", \r\n [MODEL_CONSTANTS.RDM_22]: \"How are customer needs, expectations, and constraints transformed into a set of prioritized requirements? \\nVALUE: How does this lead to increased customer satisfaction?\", \r\n //[MODEL_CONSTANTS.RDM_23]: \"How do you reach agreement with the customer (and/or other relevant stakeholders) on the requirements? Where are the requirements documented? \\nVALUE: How does this increase customer satisfaction?\",\r\n [MODEL_CONSTANTS.RDM_23]: \"How is commitment to the requirements obtained from project team members? \\nVALUE: How does this lead to fewer delays and rework?\", \r\n [MODEL_CONSTANTS.RDM_24]: \"How is requirements traceability captured? What critical components trace to the requirements? \\nVALUE: How does this ensure better consistency and increase the likelihood of customer satisfaction?\", \r\n [MODEL_CONSTANTS.RDM_25]: \"How do you ensure that work products remain consistent with the requirements? \\nVALUE: How does this lead to less rework?\", \r\n [MODEL_CONSTANTS.RDM_31]: \"How are requirements developed and maintained? Where are they documented? \\nVALUE: How does this ensure customer needs and expectations are consistently addressed?\", \r\n [MODEL_CONSTANTS.RDM_32]: \"How do you establish or define operational concepts and user scenarios? How are they documented? \\nVALUE: How does this ensure increased understanding and commitment from the customer?\", \r\n [MODEL_CONSTANTS.RDM_33]: \"How are requirements allocated and to what are they allocated? \\nVALUE: How does this increase customer satisfaction?\", \r\n [MODEL_CONSTANTS.RDM_34]: \"How are interface requirements identified and maintained? \\nVALUE: How does this lead to reduced rework and risk?\",\r\n [MODEL_CONSTANTS.RDM_35]: \"How are requirements reviewed/evaluated and what criteria is used? \\nVALUE: How does this lead to less rework?\", \r\n [MODEL_CONSTANTS.RDM_36]: \"How are risks related to stakeholder needs/constraints monitored? How are stakeholder needs/constraints balanced with available resources, training, and budget? \\nVALUE: How does this lead to increased stakeholder satisfaction?\", \r\n [MODEL_CONSTANTS.RDM_37]: \"How do you ensure that you have captured the correct requirements that will result in a service or solution that performs as intended in the target environment? \\nVALUE: How does this lead to increased customer satisfaction?\", \r\n [MODEL_CONSTANTS.RSK_21]: \"How are risks or opportunities analyzed? \\nVALUE: How does this increase the likelihood of achieving objectives?\", \r\n [MODEL_CONSTANTS.RSK_22]: \"How are risks or opportunities monitored and how is their status communicated? \\nVALUE: How does this enable timely corrective or leveraging actions?\",\r\n [MODEL_CONSTANTS.RSK_31]: \"What risk or opportunity categories are used for risk identification? \\nVALUE: How does this help focus attention on uncertainties that will impact the achievement of objectives?\",\r\n [MODEL_CONSTANTS.RSK_32]: \"Please describe what parameters were used for risks or opportunities and how the parameters are documented for each risk/opportunity? \\nVALUE: How does this focus risk/opportunity management activities on those that are the highest priority?\",\r\n [MODEL_CONSTANTS.RSK_33]: \"How is the risk or opportunity management strategy/approach documented and maintained? \\nVALUE: How does this increase the likelihood of achieving objectives?\",\r\n [MODEL_CONSTANTS.RSK_34]: \"What type of risk or opportunity management plans are developed and maintained? Where are they documented? \\nVALUE: How does this minimize the impact of risks or maximize the benefits of opportunities?\",\r\n [MODEL_CONSTANTS.RSK_35]: \"How are risk or opportunities managed? \\nVALUE: How does this reduce unforeseen occurrences and increase business value?\",\r\n [MODEL_CONSTANTS.SDM_21]: \"Please describe how contracts are established and maintained. \\nVALUE: How does this enhance customer satisfaction by aligning service delivery with their expectations?\",\r\n [MODEL_CONSTANTS.SDM_22]: \"What is a service request? How are they received and processed? \\nVALUE: How does this enhance service delivery to better meet customer expectations?\", \r\n [MODEL_CONSTANTS.SDM_23]: \"How are services delivered to satisfy the contract? \\nVALUE: How does this increase customer satisfaction?\",\r\n [MODEL_CONSTANTS.SDM_24]: \"How are existing data and service agreements used in preparing for new/updated agreements? \\nVALUE: How does this align service delivery capability and customer expectations?\",\r\n [MODEL_CONSTANTS.SDM_25]: \"What is the service system? What is the approach for operating and changing the service system? Where is that documented? \\nVALUE: How does this increase the likelihood that services and changes to them will meet customer expectations?\",\r\n [MODEL_CONSTANTS.SDM_26]: \"How do you confirm the readiness of the service system to support service delivery? \\nVALUE: How does this improve customer satisfaction?\",\r\n [MODEL_CONSTANTS.SDM_31]: \"What organizational standard service systems have been defined and where are they documented? Are there specific agreements for use with those service systems? \\nVALUE: How does this maximize the availability and consistency of the service system to meet customer needs?\", \r\n [MODEL_CONSTANTS.STSM_21]: \"Where are the organization's services described and maintained? \\nVALUE: How does this enable consistent service delivery that aligns with customer needs?\", \r\n [MODEL_CONSTANTS.STSM_22]: \"How is data concerning strategic needs and service delivery capability collected, documented, and analyzed? \\nVALUE: How does this focus the organization on the needs and objectives that have the greatest impact on customer satisfaction.\", \r\n [MODEL_CONSTANTS.STSM_23]: \"How do you develop and maintain an approach for providing new or updated services derived from strategic needs? \\nVALUE: How does this focus resources on identifying services that best anticipate and meet market needs?\", \r\n [MODEL_CONSTANTS.STSM_31]: \"What are the organization's standard services and service descriptions? Where are they documented? \\nVALUE: How does this minimize cost and achieve faster time to market for new or changed services?\", \r\n [MODEL_CONSTANTS.SAM_21]: \"How is an agreement with the supplier developed and maintained? \\nVALUE: How does this improve the likelihood that the supplier will provide the correct deliverable?\", \r\n [MODEL_CONSTANTS.SAM_22]: \"How are supplier activities monitored against the supplier agreement? \\nVALUE: How does this improve the likelihood that the supplier will provide a quality deliverable?\", \r\n [MODEL_CONSTANTS.SAM_23]: \"How is the deliverable provided by the supplier accepted? \\nVALUE: How does this decrease the risk of an unsatisfactory deliverable?\", \r\n [MODEL_CONSTANTS.SAM_24]: \"How are invoices approved and managed against the supplier agreement? \\nVALUE: How does this ensure a good relationship between the acquirer and supplier?\", \r\n [MODEL_CONSTANTS.SAM_31]: \"How are specific technical deliverables selected for additional review? What type of review is performed by the acquirer? \\nVALUE: How does this lead to increased confidence by the acquirer that the supplier will provide a quality deliverable on time?\", \r\n [MODEL_CONSTANTS.SAM_32]: \"How are specific processes and deliverables selected for monitoring? Which processes and deliverables were monitored and how? \\nVALUE: How does this lead to increased visibility into the supplier's capability/performance resulting in reduced risk?\", \r\n [MODEL_CONSTANTS.SAM_41]: \"\",\r\n [MODEL_CONSTANTS.TS_21]: \"How is the design documented? How do you ensure all requirements have been addressed in the design? \\nVALUE: How does this enable the implementation of a cost-effective solution that meets requirements and avoids rework?\", \r\n [MODEL_CONSTANTS.TS_22]: \"How is the design reviewed and issues addressed? \\nVALUE: How does this ensure that the solution meets requirements?\", \r\n [MODEL_CONSTANTS.TS_23]: \"What types of user documentation is developed? \\nVALUE: How does this ensure that the solution is usable and maintainable?\", \r\n [MODEL_CONSTANTS.TS_31]: \"How are design decisions made and documented? Were criteria identified and used? \\nVALUE: How does this increase the likelihood of producing a design that meets customer requirements and constraints?\", \r\n [MODEL_CONSTANTS.TS_32]: \"How are design decisions made and documented? Were alternatives identified and evaluated? \\nVALUE: How does this ensure the most beneficial solution is identified and selected?\", \r\n [MODEL_CONSTANTS.TS_33]: \"How are make, buy or reuse decisions made? Who is involved? Is criteria identified and used? How is this information documented? \\nVALUE: How does this ensure the most effective way to implement the design has been chosen?\", \r\n [MODEL_CONSTANTS.TS_34]: \"How are design decisions made and documented? Were criteria identified and used? \\nVALUE: How does this ensure the most efficient and effective solution is selected to meet the customer's requirements?\", \r\n [MODEL_CONSTANTS.TS_35]: \"What comprises the information needed to implement the design (i.e., Technical Data Package)? \\nVALUE: How does this avoid rework by ensuring the solution implementers have everything they need to develop the solution?\", \r\n [MODEL_CONSTANTS.TS_36]: \"How is the interface design captured? What criteria have been established for the interfaces? \\nVALUE: How does this reduce the likelihood of failure and rework during testing and maximize performance?\", \r\n [MODEL_CONSTANTS.VV_21]: \"What types of verification and validation does the project perform? How are work products selected for verification/validation and how is that documented? \\nVALUE: How does this produce solutions that meet or exceed customer expectations?\", \r\n [MODEL_CONSTANTS.VV_22]: \"How is the environment for verification and validation determined and documented? \\nVALUE: How does this minimize project delays by ensuring the applicable environment is ready when needed?\", \r\n [MODEL_CONSTANTS.VV_23]: \"What procedures for verification and validation are developed and maintained? How are results from verification and validation captured? \\nVALUE: How does the use of verification/validation procedures reduce cost and ensure more predictable performance?\", \r\n [MODEL_CONSTANTS.VV_31]: \"How are expected or acceptable verification/validation results indicated? \\nVALUE: How does this ensure the verification and validation activities focus on critical needs?\", \r\n [MODEL_CONSTANTS.VV_32]: \"What analysis of the verification/validation results are performed, how are those results communicated, and to whom? \\nVALUE: How does this improve verification and validation effectiveness over time?\"\r\n};\r\n\r\nexport { DEFAULT_QUESTIONS }","import { Auth } from 'aws-amplify';\r\nimport { VIEWS, PRACTICE_AREAS } from '../model/modelcontent';\r\n\r\n//Returns an object that contains the correct authorization \r\n// and content-type headers for a typical API request along with\r\n// an optional body\r\nasync function getDefaultAPIHeaders(body = null){\r\n const currentSession = await Auth.currentSession();\r\n return {\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n Authorization: currentSession.idToken.jwtToken\r\n },\r\n body: body\r\n };\r\n}\r\n\r\n//Formats the node info data into an API path that can be used to make back end calls\r\nfunction getNodeAPIPath(nodeInfo, apiType){\r\n return nodeInfo ? `${apiType}/${nodeInfo.appraisalId}/${nodeInfo.projectId}/${nodeInfo.nodeId}` : \"\"\r\n}\r\n\r\nfunction createMergeConflictData(serverText, clientText, revNumber){\r\n return {\r\n client:{\r\n text: clientText,\r\n revNumber: revNumber\r\n },\r\n server: {\r\n text: serverText,\r\n revNumber: revNumber\r\n }\r\n };\r\n}\r\n\r\nconst Constants = {\r\n USER_PATH: '/users',\r\n APPRAISAL_PATH: '/appraisals',\r\n INTERVIEW_PATH: '/interviews',\r\n INTERVIEW_QUESTIONS_PATH: '/interviewquestions',\r\n APPRAISAL_STATE_PATH: '/appraisalstate',\r\n APPRAISAL_ITEM_PATH: '/appraisalitem',\r\n APPRAISAL_EVIDENCE_PATH: '/appraisalevidence',\r\n API_PATH: 'api'\r\n}\r\n\r\nfunction sortPracticeAreas(practiceAreas) {\r\n return practiceAreas.sort((a, b)=>{\r\n if(a.Id > b.Id || a.id > b.id){\r\n return 1;\r\n } else if (a.Id === b.Id || a.id === b.id){\r\n return 0;\r\n } else{\r\n return -1;\r\n }\r\n });\r\n}\r\n\r\nconst modelContentUtils = {\r\n getPracticeAreasFromView: (view, sort = true, returnNamesOnly = false) =>{\r\n const practiceAreaIds = VIEWS[view];\r\n const practiceAreas = Object.keys(practiceAreaIds).map(k=>{\r\n const pa = PRACTICE_AREAS[k];\r\n if(!returnNamesOnly){\r\n return pa;\r\n } else {\r\n return {\r\n id: pa.Id,\r\n name: pa.Name \r\n }\r\n }\r\n });\r\n if(sort){\r\n return sortPracticeAreas(practiceAreas);\r\n } else {\r\n return practiceAreas;\r\n }\r\n },\r\n getPracticeAreasFromAppraisalProjects: (appraisalProjects, sort = true, returnNamesOnly = false) =>{\r\n let appraisalPracticeAreaIds = [];\r\n for(let i = 0; i < appraisalProjects.length; i++){\r\n let currentProject = appraisalProjects[i];\r\n for(let j = 0; j < currentProject.practiceAreas.length; j++){\r\n appraisalPracticeAreaIds.push(currentProject.practiceAreas[j]);\r\n }\r\n appraisalPracticeAreaIds = Array.from(new Set(appraisalPracticeAreaIds));\r\n }\r\n const practiceAreas = appraisalPracticeAreaIds.map(k=>{\r\n const pa = PRACTICE_AREAS[k];\r\n if(!returnNamesOnly){\r\n return pa;\r\n } else {\r\n return {\r\n id: pa.Id,\r\n name: pa.Name \r\n }\r\n }\r\n });\r\n if(sort){\r\n return sortPracticeAreas(practiceAreas);\r\n } else {\r\n return practiceAreas;\r\n }\r\n },\r\n getMaturityLevelFromView: (view) => {\r\n const levelRegex = /\\d/;\r\n const matches = view.match(levelRegex);\r\n return matches[0];\r\n }\r\n};\r\n\r\nconst emailUtils = {\r\n validateEmailCase: (event) => {\r\n const code = event.charCode ? String.fromCharCode(event.charCode)\r\n : event.clipboardData.getData('text');\r\n const matches = code.match(new RegExp(\"[A-Z]\"));\r\n if(matches){\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n\r\nfunction getCurrentDateTime() {\r\n var d = new Date();\r\n var hr = d.getHours();\r\n var min = d.getMinutes();\r\n if (min < 10) {\r\n min = \"0\" + min;\r\n }\r\n var ampm = \"AM\";\r\n if (hr === 0){\r\n hr = 12;\r\n }\r\n else if (hr === 12){\r\n ampm = \"PM\";\r\n }\r\n else if (hr > 12) {\r\n hr -= 12;\r\n ampm = \"PM\";\r\n }\r\n\r\n var date = d.getDate();\r\n var month = d.getMonth();\r\n var year = d.getFullYear();\r\n return month + 1 + \"-\" + date + \"-\" + year + \" \" + hr + \":\" + min + \" \" + ampm;\r\n}\r\n\r\nexport { Constants, getDefaultAPIHeaders, modelContentUtils, emailUtils, getNodeAPIPath, createMergeConflictData, getCurrentDateTime };","import { useState, useCallback } from 'react';\r\n\r\n//Simple custom hook that manages an array\r\n// of objects and exposes easy-to-use\r\n// wrappers for common use casess\r\n// Note - This hook makes the assumption\r\n// that the objects it is managing contain a unique key property\r\n// called id.\r\nfunction useArray(initial){\r\n const [value, setValue] = useState(initial);\r\n return{\r\n value,\r\n setValue,\r\n //Adds an item to the array.\r\n add: useCallback(a => setValue(v => [...v, a]), []),\r\n //Clears the array.\r\n clear: useCallback(()=> setValue(()=>[]), []),\r\n //Removes an object from the array by id.\r\n removeById: useCallback(\r\n id => setValue((arr)=>arr.filter((v) => v && v.id !== id)),\r\n []\r\n ),\r\n //Removes an object from the array by index.\r\n removeIndex: useCallback(\r\n index=>\r\n setValue((v) => {\r\n v.splice(index, 1);\r\n return v;\r\n }),\r\n []\r\n ),\r\n // replaces an object in the array with the given id with the given object i.\r\n replace: useCallback(\r\n (id, i) => setValue((arr)=> {\r\n const replaceIndex = arr.findIndex((el)=>el.id === id);\r\n if(replaceIndex !== -1){\r\n let newArrary = arr.slice();\r\n newArrary[replaceIndex] = i;\r\n return newArrary;\r\n }\r\n return arr;\r\n }), []),\r\n //Don't need to use a callback here\r\n // because getById doesn't mutate the array.\r\n getById: function(id){\r\n return value.find((el)=>el.id === id)\r\n }\r\n };\r\n}\r\n\r\nexport default useArray;","import { useEffect, useRef } from 'react';\r\n\r\n//Hook that takes a callback function and calls it every\r\n// delay milliseconds until the component that started it is unmounted.\r\nfunction useInterval(callback, delay){\r\n const savedCallback = useRef();\r\n\r\n //Remember the most recently passed in callback\r\n useEffect(()=>{\r\n savedCallback.current = callback;\r\n }, [callback]);\r\n\r\n //Setup the timer and tear it down on unmount\r\n useEffect(()=>{\r\n function tick(){\r\n savedCallback.current();\r\n }\r\n if(delay !== null){\r\n let id = setInterval(tick, delay);\r\n return () => clearInterval(id);\r\n }\r\n }, [delay]);\r\n}\r\n\r\nexport default useInterval;","import React from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\n\r\nconst LoadingComponent = ({isLoading, children}) => { \r\n return(\r\n isLoading ? \r\n
\r\n \r\n
\r\n : children\r\n )\r\n}\r\nexport default LoadingComponent;","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faPlay, faChevronDown, \r\n faChevronUp, faCircle, faEllipsisH, faTimes, faCheck, faAdjust, faThumbsUp, faThumbsDown, faTrash, \r\n faChevronCircleUp, faChevronCircleDown, faQuestion, faPlusCircle, faEdit, faPaintBrush } from '@fortawesome/free-solid-svg-icons';\r\nimport React from 'react';\r\n\r\nconst HIGHLIGHT_YELLOW = \"yellow\";\r\nconst HIGHLIGHT_YELLOW_ICON = ();\r\nconst HIGHLIGHT_CHARTREUSE = \"lightgreen\";\r\nconst HIGHLIGHT_CHARTREUSE_ICON = ();\r\nconst HIGHLIGHT_TURQUOISE = \"lightblue\";\r\nconst HIGHLIGHT_TURQUOISE_ICON = ();\r\nconst HIGHLIGHT_HOT_PINK = \"lightpink\";\r\nconst HIGHLIGHT_HOT_PINK_ICON = ();\r\nconst HIGHLIGHT_ROYAL_BLUE = \"orange\";\r\nconst HIGHLIGHT_ROYAL_BLUE_ICON = ();\r\nconst HIGHLIGHT_DEFAULT_BUTTON = \"transparent\"\r\nconst HIGHLIGHT_DEFAULT_BUTTON_ICON = ();\r\n\r\nconst NOT_EXAMINED = \"Not Examined\";\r\nconst NOT_EXAMINED_ICON = ();\r\nconst NOT_EXAMINED_ICON_EVAL = ();\r\nconst NOT_YET_IMPLEMENTED = \"Not Yet Implemented\";\r\nconst NOT_YET_IMPLEMENTED_ICON = ();\r\nconst NOT_YET_IMPLEMENTED_ICON_EVAL = ();\r\nconst MAJOR_ISSUES = \"Major Issues\";\r\nconst MAJOR_ISSUES_ICON = ();\r\nconst MAJOR_ISSUES_ICON_EVAL = ();\r\nconst MINOR_ISSUES = \"Minor Issues\";\r\nconst MINOR_ISSUES_ICON = ();\r\nconst MINOR_ISSUES_ICON_EVAL = ();\r\nconst NO_ISSUES = \"No Issues\";\r\nconst NO_ISSUES_ICON = ();\r\nconst NO_ISSUES_ICON_EVAL = ();\r\nconst DOES_NOT_MEET = \"Does Not Meet\";\r\nconst DOES_NOT_MEET_ICON = ();\r\nconst DOES_NOT_MEET_ICON_EVAL = ();\r\nconst PARTIALLY_MEETS = \"Partially Meets\";\r\nconst PARTIALLY_MEETS_ICON = ();\r\nconst PARTIALLY_MEETS_ICON_EVAL = ();\r\nconst LARGELY_MEETS = \"Largely Meets\";\r\nconst LARGELY_MEETS_ICON = ();\r\nconst LARGELY_MEETS_ICON_EVAL = ();\r\nconst FULLY_MEETS = \"Fully Meets\";\r\nconst FULLY_MEETS_ICON = ();\r\nconst FULLY_MEETS_ICON_EVAL = ();\r\nconst HIGH_RISK = \"High Risk\";\r\nconst HIGH_RISK_ICON = ();\r\nconst HIGH_RISK_ICON_RATINGS = ();\r\nconst LOW_RISK = \"Low Risk\";\r\nconst LOW_RISK_ICON = ();\r\nconst LOW_RISK_ICON_RATINGS = ();\r\nconst UNSATISFIED = \"Unsatisfied\";\r\nconst UNSATISFIED_ICON = ();\r\nconst UNSATISFIED_ICON_RATINGS = ();\r\nconst SATISFIED = \"Satisfied\";\r\nconst SATISFIED_ICON = ();\r\nconst SATISFIED_ICON_RATINGS = ();\r\nconst COPY = \"Copy\";\r\nconst COPY_ICON = (\"Copy\");\r\nconst PASTE = \"Paste\";\r\nconst PASTE_ICON = (\"Paste\");\r\nconst VALID = \"Valid\";\r\nconst VALID_ICON = ();\r\nconst INVALID = \"Invalid\";\r\nconst NOT_VALID_ICON = ();\r\nconst NOT_REVIEWED = \"Not Reviewed\";\r\nconst NOT_REVIEWED_ICON = ();\r\nconst DELETE = \"Delete\";\r\nconst DELETE_ICON = ();\r\nconst ADD = \"Add\";\r\nconst ADD_ICON = ();\r\nconst EDIT = \"Edit\";\r\nconst EDIT_ICON = ();\r\nconst SORT_UP = \"Move selected items to the top\";\r\nconst SORT_UP_ICON = ();\r\nconst SORT_DOWN = \"Move selected items to the bottom\";\r\nconst SORT_DOWN_ICON = ();\r\n\r\nconst CHECK_ICON = ();\r\nconst X_ICON = ();\r\n\r\nconst customIconContainerStyle = {\r\n fontSize:\".5rem\"\r\n}\r\n\r\nconst customIconStyle = {\r\n fontSize:'16px',\r\n marginRight:'1px',\r\n color:\"rgb(0, 168, 168)\"\r\n}\r\n\r\nconst customIconContainerStyle_Ratings = {\r\n fontSize:\"1.5rem\"\r\n}\r\n\r\nconst customIconStyle_Ratings = {\r\n fontSize:'36px',\r\n marginRight:'1px',\r\n color:\"rgb(0, 168, 168)\"\r\n}\r\n\r\nconst TWO = \"Two\";\r\nconst TWO_ICON = (\r\n \r\n 2\r\n \r\n);\r\nconst TWO_ICON_RATINGS = (\r\n \r\n 2\r\n \r\n);\r\n\r\nconst THREE = \"Three\";\r\nconst THREE_ICON = (\r\n \r\n 3\r\n \r\n);\r\nconst THREE_ICON_RATINGS = (\r\n \r\n 3\r\n \r\n);\r\n\r\nconst FOUR = \"Four\";\r\nconst FOUR_ICON = (\r\n \r\n 4\r\n \r\n);\r\nconst FOUR_ICON_RATINGS = (\r\n \r\n 4\r\n \r\n);\r\n\r\nconst FIVE = \"Five\";\r\nconst FIVE_ICON = (\r\n \r\n 5\r\n \r\n);\r\nconst FIVE_ICON_RATINGS = (\r\n \r\n 5\r\n \r\n);\r\n\r\nconst OUT_OF_SCOPE = \"Out of scope\";\r\nconst OUT_OF_SCOPE_ICON = (\r\n \r\n OS\r\n \r\n);\r\nconst OUT_OF_SCOPE_ICON_RATINGS = (\r\n \r\n OS\r\n \r\n);\r\n\r\nconst NOT_RATED = \"Not Rated\";\r\nconst NOT_RATED_ICON = (\r\n \r\n NR\r\n \r\n);\r\nconst NOT_RATED_ICON_RATINGS = (\r\n \r\n NR\r\n \r\n);\r\n\r\nconst HIGHLIGHT_OPTIONS = [\r\n {value: HIGHLIGHT_DEFAULT_BUTTON, label: HIGHLIGHT_DEFAULT_BUTTON_ICON},\r\n {value: HIGHLIGHT_YELLOW, label: HIGHLIGHT_YELLOW_ICON},\r\n {value: HIGHLIGHT_CHARTREUSE, label:HIGHLIGHT_CHARTREUSE_ICON},\r\n {value: HIGHLIGHT_TURQUOISE, label: HIGHLIGHT_TURQUOISE_ICON},\r\n {value: HIGHLIGHT_HOT_PINK, label: HIGHLIGHT_HOT_PINK_ICON},\r\n {value: HIGHLIGHT_ROYAL_BLUE, label: HIGHLIGHT_ROYAL_BLUE_ICON}\r\n];\r\n\r\nconst PA_OPTIONS = [\r\n {value: NOT_EXAMINED, label: NOT_EXAMINED_ICON},\r\n {value: TWO, label: TWO_ICON},\r\n {value: THREE, label: THREE_ICON},\r\n {value: FOUR, label: FOUR_ICON},\r\n {value: FIVE, label: FIVE_ICON},\r\n {value: OUT_OF_SCOPE, label: OUT_OF_SCOPE_ICON},\r\n {value: NOT_RATED, label: NOT_RATED_ICON}\r\n];\r\n\r\nconst PA_GROUP_OPTIONS = [\r\n {value: NOT_EXAMINED, label: NOT_EXAMINED_ICON},\r\n {value: LOW_RISK, label: LOW_RISK_ICON},\r\n {value: HIGH_RISK, label: HIGH_RISK_ICON},\r\n {value: SATISFIED, label: SATISFIED_ICON},\r\n {value: UNSATISFIED, label: UNSATISFIED_ICON}\r\n];\r\n\r\nconst RATINGS_LEGEND_MAP = [\r\n {value: NOT_EXAMINED, label: NOT_EXAMINED_ICON},\r\n {value: OUT_OF_SCOPE, label: OUT_OF_SCOPE_ICON},\r\n {value: NOT_RATED, label: NOT_RATED_ICON},\r\n {value: LOW_RISK, label: LOW_RISK_ICON},\r\n {value: HIGH_RISK, label: HIGH_RISK_ICON},\r\n {value: SATISFIED, label: SATISFIED_ICON},\r\n {value: UNSATISFIED, label: UNSATISFIED_ICON}\r\n];\r\n\r\nconst PRACTICES_OPTIONS = [\r\n {value: NOT_EXAMINED, label: NOT_EXAMINED_ICON},\r\n {value: DOES_NOT_MEET, label: DOES_NOT_MEET_ICON},\r\n {value: PARTIALLY_MEETS, label: PARTIALLY_MEETS_ICON},\r\n {value: LARGELY_MEETS, label: LARGELY_MEETS_ICON},\r\n {value: FULLY_MEETS, label: FULLY_MEETS_ICON},\r\n {value: NOT_YET_IMPLEMENTED, label: NOT_YET_IMPLEMENTED_ICON},\r\n {value: MAJOR_ISSUES, label: MAJOR_ISSUES_ICON},\r\n {value: MINOR_ISSUES, label: MINOR_ISSUES_ICON},\r\n {value: NO_ISSUES, label: NO_ISSUES_ICON}\r\n];\r\n\r\nconst MAPPING_OPTIONS = [\r\n {value: NOT_REVIEWED, label: NOT_REVIEWED_ICON},\r\n {value: VALID, label: VALID_ICON},\r\n {value: INVALID, label: NOT_VALID_ICON}\r\n];\r\n\r\nconst ICON_MAP = {\r\n [NOT_EXAMINED]: NOT_EXAMINED_ICON,\r\n [NOT_YET_IMPLEMENTED]: NOT_YET_IMPLEMENTED_ICON,\r\n [MAJOR_ISSUES]: MAJOR_ISSUES_ICON,\r\n [MINOR_ISSUES]: MINOR_ISSUES_ICON,\r\n [NO_ISSUES]: NO_ISSUES_ICON,\r\n [DOES_NOT_MEET]: DOES_NOT_MEET_ICON,\r\n [PARTIALLY_MEETS]: PARTIALLY_MEETS_ICON,\r\n [LARGELY_MEETS]: LARGELY_MEETS_ICON,\r\n [FULLY_MEETS]: FULLY_MEETS_ICON,\r\n [LOW_RISK]: LOW_RISK_ICON,\r\n [HIGH_RISK]: HIGH_RISK_ICON,\r\n [UNSATISFIED]: UNSATISFIED_ICON,\r\n [SATISFIED]: SATISFIED_ICON,\r\n [NOT_REVIEWED]: NOT_REVIEWED_ICON,\r\n [INVALID]: NOT_VALID_ICON,\r\n [VALID]: VALID_ICON,\r\n [TWO]: TWO_ICON,\r\n [THREE]: THREE_ICON,\r\n [FOUR]: FOUR_ICON,\r\n [FIVE]: FIVE_ICON,\r\n [OUT_OF_SCOPE]: OUT_OF_SCOPE_ICON,\r\n [NOT_RATED]: NOT_RATED_ICON,\r\n}\r\n\r\nconst PRACTICE_EVAL_ICON_MAP = {\r\n [NOT_EXAMINED]: NOT_EXAMINED_ICON_EVAL,\r\n [MAJOR_ISSUES]: MAJOR_ISSUES_ICON_EVAL,\r\n [MINOR_ISSUES]: MINOR_ISSUES_ICON_EVAL,\r\n [NO_ISSUES]: NO_ISSUES_ICON_EVAL,\r\n [DOES_NOT_MEET]: DOES_NOT_MEET_ICON_EVAL,\r\n [PARTIALLY_MEETS]: PARTIALLY_MEETS_ICON_EVAL,\r\n [LARGELY_MEETS]: LARGELY_MEETS_ICON_EVAL,\r\n [FULLY_MEETS]: FULLY_MEETS_ICON_EVAL,\r\n [NOT_YET_IMPLEMENTED]: NOT_YET_IMPLEMENTED_ICON_EVAL\r\n}\r\n\r\nconst RATINGS_ICON_MAP = {\r\n [NOT_EXAMINED]: NOT_EXAMINED_ICON_EVAL,\r\n [LOW_RISK]: LOW_RISK_ICON_RATINGS,\r\n [HIGH_RISK]: HIGH_RISK_ICON_RATINGS,\r\n [UNSATISFIED]: UNSATISFIED_ICON_RATINGS,\r\n [SATISFIED]: SATISFIED_ICON_RATINGS,\r\n [TWO]: TWO_ICON_RATINGS,\r\n [THREE]: THREE_ICON_RATINGS,\r\n [FOUR]: FOUR_ICON_RATINGS,\r\n [FIVE]: FIVE_ICON_RATINGS,\r\n [OUT_OF_SCOPE]: OUT_OF_SCOPE_ICON_RATINGS,\r\n [NOT_RATED]: NOT_RATED_ICON_RATINGS\r\n}\r\n\r\nconst HIGHLIGHT_COLOR_MAP = {\r\n [HIGHLIGHT_YELLOW]: HIGHLIGHT_YELLOW_ICON,\r\n [HIGHLIGHT_CHARTREUSE]: HIGHLIGHT_CHARTREUSE_ICON,\r\n [HIGHLIGHT_TURQUOISE]: HIGHLIGHT_TURQUOISE_ICON,\r\n [HIGHLIGHT_HOT_PINK]: HIGHLIGHT_HOT_PINK_ICON,\r\n [HIGHLIGHT_ROYAL_BLUE]: HIGHLIGHT_ROYAL_BLUE_ICON,\r\n [HIGHLIGHT_DEFAULT_BUTTON]: HIGHLIGHT_DEFAULT_BUTTON_ICON\r\n};\r\n\r\nconst COMMC_OPERATION_ICONS = {\r\n [COPY]: COPY_ICON,\r\n [PASTE]: PASTE_ICON,\r\n [SORT_UP]: SORT_UP_ICON,\r\n [SORT_DOWN]: SORT_DOWN_ICON,\r\n [DELETE]: DELETE_ICON,\r\n [ADD]: ADD_ICON,\r\n [EDIT]: EDIT_ICON\r\n};\r\n\r\n//Need to be able to re-size these icons in some places, so create a dictionary of\r\n// the raw icon objects with some additional information so that other components can\r\n// wrap them in a FontAwesomeIcon themselves.\r\nconst RAW_ICONS = {\r\n [VALID]: {\r\n icon: faThumbsUp,\r\n color: \"lime\",\r\n title: \"Valid\"\r\n },\r\n [INVALID]: {\r\n icon: faThumbsDown,\r\n color: \"red\",\r\n title: \"Invalid\"\r\n },\r\n [NOT_REVIEWED]: {\r\n icon: faQuestion,\r\n color: \"black\",\r\n title: \"Not Reviewed\"\r\n }\r\n};\r\n\r\nexport {PA_OPTIONS, PA_GROUP_OPTIONS, RATINGS_LEGEND_MAP, PRACTICES_OPTIONS, MAPPING_OPTIONS, ICON_MAP, PRACTICE_EVAL_ICON_MAP, RATINGS_ICON_MAP, COMMC_OPERATION_ICONS, RAW_ICONS, CHECK_ICON, X_ICON, HIGHLIGHT_OPTIONS, HIGHLIGHT_COLOR_MAP}","import React, { useState } from 'react';\r\nimport Select, { components } from 'react-select'\r\nimport \"./TreeView.css\";\r\nimport { PA_OPTIONS, PA_GROUP_OPTIONS, PRACTICES_OPTIONS, ICON_MAP } from '../../utils/IconMap';\r\n\r\nconst customStyles={\r\n indicatorSeparator: base=> (\r\n {\r\n ...base,\r\n display: 'none'\r\n }\r\n ),\r\n indicatorsContainer: base=> (\r\n {\r\n ...base,\r\n display: 'none'\r\n }\r\n ),\r\n menu: base=> (\r\n {\r\n ...base,\r\n width: 'auto'\r\n }\r\n ),\r\n menuList: base=> (\r\n {\r\n ...base,\r\n display: \"flex\",\r\n flexWrap: \"wrap\", \r\n width: \"120px\", \r\n backgroundColor: \"white\"\r\n }\r\n ) \r\n \r\n}\r\n\r\nfunction TreeNode(props){\r\n const [nodeRating, setNodeRating] = useState({value: props.node.state.rating, label: ICON_MAP[props.node.state.rating]});\r\n const handleLinkClicked = (e) => {\r\n e.preventDefault();\r\n props.handleNodeClicked({\r\n nodeId: props.node.state.nodeId,\r\n isPractice: props.node.state.isPractice,\r\n isGroup: props.node.state.isGroup,\r\n name: props.node.name\r\n });\r\n }\r\n\r\n const handleNodeRatingChanged = (rating) => {\r\n setNodeRating({value: rating.value, label: ICON_MAP[rating.value]});\r\n props.nodeRatingChanged(props.node, rating.value);\r\n }\r\n \r\n const Option = (props) => {\r\n return(\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n const GetOptions = () => {\r\n if(props.node.state.isPractice){\r\n return PRACTICES_OPTIONS;\r\n }\r\n else if (props.node.state.isGroup){\r\n return PA_GROUP_OPTIONS;\r\n }\r\n else{\r\n return PA_OPTIONS;\r\n }\r\n }\r\n\r\n let highlightStyle = {backgroundColor: props.node.state.highlight}\r\n\r\n const getHighlightStyle = () => {\r\n if(props.node.state.highlight){\r\n return highlightStyle;\r\n }\r\n else{\r\n return null;\r\n }\r\n }\r\n\r\n return(\r\n
e.stopPropagation()}>\r\n \r\n handleLinkClicked(e)}>{props.node.name}\r\n
\r\n )\r\n}\r\n\r\nexport default TreeNode;","import React from 'react';\r\nimport Tree from 'react-virtualized-tree/lib/index';\r\nimport { Expandable } from 'react-virtualized-tree/lib/renderers';\r\nimport TreeNode from '../../containers/Tree/TreeNode';\r\nimport 'react-virtualized/styles.css';\r\nimport 'react-virtualized-tree/lib/main.css';\r\nimport 'material-icons/css/material-icons.min.css';\r\n\r\n//Wraps the tree for the Tree control to make it simple to wrap inside of a Loading Component\r\nconst TreePresenter = ({nodesDisabled, nodes, handleNodesChanged, handleNodeRatingChanged, handleNodeClicked}) => {\r\n return (\r\n \r\n {({style, node, ...rest}) => {\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\nexport default TreePresenter;","import React, { useState, useEffect } from 'react';\r\nimport { Modal, FormGroup, FormLabel, Button, Row, Col, FormControl } from 'react-bootstrap';\r\nimport './MergeConflictModal.css';\r\nimport '../modal.css';\r\n\r\nfunction MergeConflictModal(props) {\r\n const [value, setValue] = useState(\"server\");\r\n const [mergedText, setMergedText] = useState('');\r\n\r\n const textAreaStyle = {\r\n width: \"100%\",\r\n paddingLeft: '5px',\r\n borderBottomColor: 'dimgray',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white'\r\n };\r\n\r\n useEffect(() => {\r\n if (props.canMerge) {\r\n setMergedText(props.conflict != null ? props.conflict.server.text + '\\n\\n'\r\n + props.conflict.client.text : '');\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.conflict]);\r\n\r\n const onSelectionChanged = (value) => {\r\n setValue(value);\r\n }\r\n\r\n const updateMergedText = (value) => {\r\n setMergedText(value);\r\n }\r\n\r\n const handleMergeConflict = () => {\r\n props.closeModal();\r\n if (value === \"merged\") {\r\n const merged = {\r\n revNumber: props.conflict.client.revNumber,\r\n text: mergedText\r\n };\r\n props.handleMergeConflict(merged, value);\r\n } else {\r\n props.handleMergeConflict(props.conflict[value], value);\r\n }\r\n setValue(\"server\");\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {' '}Resolve Edit Conflict {props.modalTitleFragment && \"- \" + props.modalTitleFragment}\r\n \r\n \r\n \r\n \r\n \r\n Server Value\r\n
\r\n onSelectionChanged(e.target.value))} />\r\n {props.renderConflictContent ? props.renderConflictContent(props.conflict.server)\r\n : \r\n }\r\n
\r\n
\r\n \r\n Your Value\r\n
\r\n onSelectionChanged(e.target.value))} />\r\n {props.renderConflictContent ? props.renderConflictContent(props.conflict.client)\r\n : \r\n }\r\n
\r\n
\r\n {props.canMerge &&\r\n \r\n Merged Value\r\n
\r\n onSelectionChanged(e.target.value))} checked={value === \"merged\"} />\r\n updateMergedText(e.target.value)}\r\n onFocus={() => setValue(\"merged\")}\r\n value={mergedText}\r\n style={textAreaStyle} />\r\n
\r\n
\r\n }\r\n
\r\n \r\n
\r\n \r\n handleMergeConflict()}\r\n >Ok{' '}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default MergeConflictModal;","import React from 'react';\r\nimport { Modal, Button, Row, Col } from 'react-bootstrap';\r\nimport '../modal.css';\r\n\r\nfunction NetworkErrorModal(props){\r\n\r\n function reload(){\r\n window.location.reload(false);\r\n }\r\n\r\n return(\r\n \r\n \r\n \r\n Network Error\r\n \r\n \r\n \r\n \r\n Any pending changes may be lost. Reloading will return you to the homepage when the connection is reestablished. \r\n

\r\n \r\n
\r\n \r\n
\r\n \r\n reload()}\r\n >Reload{' '} \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default NetworkErrorModal;","import React, { useState, useEffect } from 'react';\r\nimport { Button, Container, InputGroup, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faAngleDoubleDown, faAngleDoubleUp, faRedo } from '@fortawesome/free-solid-svg-icons'\r\nimport Select from 'react-select';\r\nimport { API } from 'aws-amplify';\r\nimport uuid from 'uuid';\r\nimport { Constants, getDefaultAPIHeaders } from '../../utils/helpers';\r\nimport useArray from '../../hooks/useArray';\r\nimport useInterval from '../../hooks/useInterval';\r\nimport { PRACTICE_AREAS, PRACTICES, PRACTICE_AREA_RELATIONSHIPS } from '../../model/modelcontent';\r\nimport './TreeView.css';\r\nimport LoadingComponent from '../../presenters/LoadingComponent';\r\nimport TreePresenter from '../../presenters/Tree/TreePresenter';\r\nimport MergeConflictModal from '../MergeConflictModal';\r\nimport { ICON_MAP } from '../../utils/IconMap'\r\nimport styled from 'styled-components';\r\nimport NetworkErrorModal from '../../presenters/NetworkErrorModal';\r\n\r\nconst Styles = styled.div`\r\n}\r\n .w-20 {\r\n width: 20%!important; \r\n background-color: rgb(0,168,168)!important; \r\n}\r\n\r\n.w-80 {\r\n width: 80%!important;\r\n}\r\n\r\n.custom-btn {\r\n background:rgb(0, 168, 168);\r\n color: white;\r\n border: none;\r\n justify-content: center; \r\n padding: .5rem; \r\n cursor: default;\r\n min-width: 100px; \r\n }\r\n\r\n .custom-btn.disabled {\r\n opacity: 1;\r\n }\r\n`;\r\n\r\nconst FETCH_INTERVAL = 300000 //Five minutes\r\n\r\n//A hash map of the node ratings. Used so we can remember the tree's expanded and collapsed states until the page refreshes.\r\nlet expandedStates = {};\r\n\r\n//Returns the practices for a given practice area and maturity level\r\nfunction getPracticesForPracticeArea(practiceArea, maturityLevel) {\r\n const practiceRelationships = PRACTICE_AREA_RELATIONSHIPS[practiceArea];\r\n const filtered = practiceRelationships.filter(r => (r.Level === maturityLevel)).map(r => {\r\n return r.Id\r\n });\r\n let practices = [];\r\n for (let i = 0; i < filtered.length; i++) {\r\n const practice = PRACTICES[filtered[i]];\r\n practices.push(practice);\r\n }\r\n return practices;\r\n}\r\n\r\nfunction getRating(stateData, id) {\r\n return stateData[id] !== undefined ? stateData[id].rating : \"Not Examined\";\r\n}\r\n\r\nfunction getRevNumber(stateData, id) {\r\n return stateData[id] !== undefined ? stateData[id].revNumber : undefined;\r\n}\r\n\r\nfunction getHighlight(stateData, id) {\r\n return stateData[id] !== undefined ? stateData[id].highlight : undefined;\r\n}\r\n\r\nfunction getExpandedState(appraisalId, projectId, nodeId) {\r\n return expandedStates[`${appraisalId}/${projectId}/${nodeId}`] || false;\r\n}\r\n\r\n//Creates a single (data) node in the tree\r\nfunction buildTreeNode(name, nodeId, appraisalId, projectId, stateData, isPractice, isGroup) {\r\n return {\r\n id: uuid.v1(),\r\n name: name,\r\n state: {\r\n nodeId: nodeId,\r\n expanded: getExpandedState(appraisalId, projectId, nodeId),\r\n rating: getRating(stateData, nodeId),\r\n revNumber: getRevNumber(stateData, nodeId),\r\n highlight: getHighlight(stateData, nodeId),\r\n isPractice: isPractice,\r\n isGroup: isGroup\r\n }\r\n }\r\n}\r\n\r\n//Builds the tree data that's dispalyed in the tree. This function is called\r\n// every time the rating of a tree changes\r\nfunction buildTreeData(appraisalId, project, setNodes, maturityLevel, stateData, setStateLoading) {\r\n setStateLoading(true);\r\n let nodes = [];\r\n for (let i = 0; i < project.practiceAreas.length; i++) {\r\n //First build the practice area node.\r\n const practiceAreaInfo = PRACTICE_AREAS[project.practiceAreas[i]];\r\n let paNode = buildTreeNode(practiceAreaInfo.Name, practiceAreaInfo.Id, appraisalId, project.id,\r\n stateData, false, false);\r\n let groups = [];\r\n\r\n for (let j = 1; j <= maturityLevel; j++) {\r\n const currentPractices = getPracticesForPracticeArea(project.practiceAreas[i], j);\r\n if (currentPractices.length > 0) {\r\n const practiceNodes = currentPractices.map(p => {\r\n return buildTreeNode(p.Abbreviation || \"\", p.Id, appraisalId, project.id, stateData, true, false);\r\n });\r\n let groupNode = buildTreeNode(`Level ${j}`, practiceAreaInfo.LevelIds[j], appraisalId,\r\n project.id, stateData, false, true);\r\n groupNode.children = practiceNodes;\r\n groups.push(groupNode);\r\n }\r\n }\r\n paNode.children = groups;\r\n nodes.push(paNode);\r\n }\r\n setNodes(nodes);\r\n setStateLoading(false);\r\n return nodes;\r\n}\r\n\r\nfunction refreshTree(nodes, setNodes) {\r\n let newNodes = [];\r\n for (let i = 0; i < nodes.length; i++) {\r\n newNodes.push(nodes[i]);\r\n }\r\n setNodes(newNodes);\r\n}\r\n\r\n//Parses the maturity level from the view string.\r\nfunction getMaturityLevel(view) {\r\n const levelRegex = /\\d/;\r\n const matches = view.match(levelRegex);\r\n return matches[0];\r\n}\r\n\r\n//Fetches the data from the back end needed by thist page. Includes the the appraisal data, project data, and the node ratings.\r\nasync function fetchData(setAppraisals, setProjects, setNodes, setSelectedAppraisal, setSelectedProject, setControlLoading, getProjectData, setShowNetworkErrorModal) {\r\n try {\r\n const appraisals = await API.get(Constants.API_PATH, Constants.APPRAISAL_PATH, await getDefaultAPIHeaders())\r\n .catch(err => {\r\n if (err.message === \"Network Error\") {\r\n setShowNetworkErrorModal(true);\r\n }\r\n });\r\n const formattedAppraisals = appraisals.map(a => {\r\n return {\r\n id: a.appraisal_id,\r\n name: a.appraisal_name,\r\n view: a.appraisal_view\r\n }\r\n });\r\n if (appraisals.length > 0) {\r\n setAppraisals(formattedAppraisals);\r\n const storedAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let selectedAppraisal = {}\r\n if (!storedAppraisalId) {\r\n selectedAppraisal = {\r\n id: appraisals[0].appraisal_id,\r\n name: appraisals[0].appraisal_name,\r\n view: appraisals[0].appraisal_view\r\n }\r\n } else {\r\n selectedAppraisal = formattedAppraisals.find(a => a.id === storedAppraisalId);\r\n if (!selectedAppraisal) {\r\n selectedAppraisal = {\r\n id: appraisals[0].appraisal_id,\r\n name: appraisals[0].appraisal_name,\r\n view: appraisals[0].appraisal_view\r\n }\r\n }\r\n }\r\n localStorage.setItem(\"selectedAppraisal\", selectedAppraisal.id);\r\n setSelectedAppraisal(selectedAppraisal);\r\n await getProjectData(selectedAppraisal.id, setProjects, setSelectedProject, setNodes);\r\n }\r\n else {\r\n console.log('No appraisals were found.');\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n setControlLoading(false);\r\n}\r\n\r\n//Formats the response from the back end call to retreive the node ratings.\r\nfunction formatStateData(data) {\r\n let retVal = {};\r\n data.forEach(sd => {\r\n retVal[sd.node_id] = {\r\n rating: sd.node_state,\r\n revNumber: sd.revision_number,\r\n highlight: sd.highlight\r\n };\r\n });\r\n return retVal;\r\n}\r\n\r\n//Gets the ratings for the tree nodes.\r\nasync function getStateData(appraisalId, projectId) {\r\n try {\r\n const result = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_STATE_PATH}/${appraisalId}/${projectId}`, await getDefaultAPIHeaders());\r\n return formatStateData(result);\r\n } catch (e) {\r\n return e;\r\n }\r\n}\r\n\r\nasync function handleNodeRatingError(err, localRating, selectedAppraisal, selectedProject, setNodes, setMergeConflictData, setShowMergeConflictModal, setStateLoading, setShowNetworkErrorModal) {\r\n\r\n console.log(err);\r\n\r\n if (err.message === \"Network Error\") {\r\n setShowNetworkErrorModal(true);\r\n }\r\n else {\r\n //Only show the merge conflict dialog if the ratings actually differ.\r\n if (err.response.status === 412 && err.response.data.node_state !== localRating) {\r\n setMergeConflictData({\r\n client: {\r\n appraisalId: err.response.data.appraisal_id,\r\n projectId: err.response.data.project_id,\r\n nodeId: err.response.data.node_id,\r\n revNumber: err.response.data.revision_number,\r\n text: localRating\r\n },\r\n server: {\r\n appraisalId: err.response.data.appraisal_id,\r\n projectId: err.response.data.project_id,\r\n nodeId: err.response.data.node_id,\r\n revNumber: err.response.data.revision_number,\r\n text: err.response.data.node_state\r\n }\r\n });\r\n setShowMergeConflictModal(true);\r\n } //If the ratings don't differ, we just want to resend the error body and rebuild the tree\r\n // to automatically resolve the conflict\r\n else {\r\n API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(err.response.data))\r\n .then(data => {\r\n const stateData = formatStateData(data);\r\n buildTreeData(selectedAppraisal.id, selectedProject, setNodes, getMaturityLevel(selectedAppraisal.view), stateData, setStateLoading);\r\n })\r\n }\r\n }\r\n}\r\n\r\n//Stores the expanded states of the tree into a hashmap. This information isn't stored on the back end\r\n//so we need to keep track of it here.\r\nfunction saveExpandedStates(nodes, appraisalId, projectId) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n const node = nodes[i];\r\n expandedStates[`${appraisalId}/${projectId}/${node.state.nodeId}`] = node.state.expanded || false;\r\n if (node.children && node.children.length > 0) {\r\n saveExpandedStates(node.children, appraisalId, projectId);\r\n }\r\n }\r\n}\r\n\r\n//Rendering function for the merge conflict dialog. Allows us to show \r\n// the node rating image and text instead of just the text in the event of a conflict.\r\nfunction renderMergeConflictContent(data) {\r\n if (data) {\r\n const style = {\r\n marginLeft: \"5px\"\r\n }\r\n let faIcon = ICON_MAP[data.text];\r\n return (\r\n \r\n
\r\n {faIcon}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nasync function refreshTreeData(selectedAppraisal, selectedProject, setNodes, setStateLoading) {\r\n if (selectedAppraisal && selectedAppraisal.view && selectedProject) {\r\n\r\n setStateLoading(true);\r\n const stateData = await getStateData(selectedAppraisal.id, selectedProject.id)\r\n buildTreeData(selectedAppraisal.id, selectedProject, setNodes, getMaturityLevel(selectedAppraisal.view), stateData, setStateLoading);\r\n }\r\n}\r\n\r\nfunction TreeControl(props) {\r\n const [showNetworkErrorModal, setShowNetworkErrorModal] = useState(false);\r\n const [controlLoading, setControlLoading] = useState(true);\r\n const [nodes, setNodes] = useState([]);\r\n const [stateLoading, setStateLoading] = useState(false);\r\n const appraisals = useArray([]);\r\n const projects = useArray([]);\r\n const [selectedAppraisal, setSelectedAppraisal] = useState({});\r\n const [selectedProject, setSelectedProject] = useState({});\r\n const [showMergeConflictModal, setShowMergeConflictModal] = useState(false);\r\n const [mergeConflictData, setMergeConflictData] = useState({});\r\n\r\n useEffect(() => {\r\n const getData = () => fetchData(appraisals.setValue, projects.setValue, setNodes, setSelectedAppraisal, setSelectedProject, setControlLoading, getProjectData, setShowNetworkErrorModal);\r\n getData();\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n refreshTreeData(selectedAppraisal, selectedProject, setNodes, setStateLoading);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.refreshTrigger]);\r\n\r\n useEffect(() => {\r\n setStateLoading(true);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.treeLoadingTrigger]);\r\n\r\n useInterval(() => fetchData(appraisals.setValue, projects.setValue, setNodes, setSelectedAppraisal, setSelectedProject, setControlLoading), FETCH_INTERVAL);\r\n\r\n function onRefreshClicked() {\r\n refreshTreeData(selectedAppraisal, selectedProject, setNodes, setStateLoading);\r\n }\r\n\r\n //Gets the practice areas and practices for a single project. \r\n async function getProjectData(appraisalId, setProjects, setSelectedProject, setNodes) {\r\n try {\r\n const currentAppraisalData = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_PATH}/${appraisalId}`, await getDefaultAPIHeaders());\r\n const formattedProjectData = currentAppraisalData.projects.map(p => {\r\n return {\r\n id: p.project_id,\r\n name: p.project_name,\r\n practiceAreas: p.practice_areas\r\n }\r\n });\r\n setProjects(formattedProjectData);\r\n const maturityLevel = getMaturityLevel(currentAppraisalData.appraisal_view);\r\n const storedProjectId = localStorage.getItem(\"selectedProject\");\r\n let selectedProject = {};\r\n if (!storedProjectId) {\r\n selectedProject = {\r\n id: currentAppraisalData.projects[0].project_id,\r\n name: currentAppraisalData.projects[0].project_name,\r\n practiceAreas: currentAppraisalData.projects[0].practice_areas\r\n }\r\n } else {\r\n selectedProject = formattedProjectData.find(p => p.id === storedProjectId);\r\n if (!selectedProject) {\r\n selectedProject = {\r\n id: currentAppraisalData.projects[0].project_id,\r\n name: currentAppraisalData.projects[0].project_name,\r\n practiceAreas: currentAppraisalData.projects[0].practice_areas\r\n }\r\n }\r\n }\r\n localStorage.setItem(\"selectedProject\", selectedProject.id);\r\n setSelectedProject(selectedProject);\r\n const stateData = await getStateData(currentAppraisalData.id, selectedProject.id);\r\n let nodes = buildTreeData(appraisalId, selectedProject, setNodes, maturityLevel, stateData, setStateLoading);\r\n selectFirstNodeOnLoad(nodes[0], appraisalId, selectedProject.id);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n const handleSelectedAppraisalChanged = async (appraisal) => {\r\n props.updateNodeInfo(null);\r\n const newAppraisal = appraisals.getById(appraisal.value);\r\n setSelectedAppraisal(newAppraisal);\r\n setControlLoading(true);\r\n\r\n sessionStorage.setItem('copyBuffer', \"\");\r\n sessionStorage.setItem('copyInterviewsBuffer', \"\");\r\n\r\n localStorage.setItem(\"selectedAppraisal\", newAppraisal.id);\r\n await getProjectData(newAppraisal.id, projects.setValue, setSelectedProject, setNodes);\r\n setControlLoading(false);\r\n }\r\n\r\n const handleSelectedProjectChanged = async (project) => {\r\n props.updateNodeInfo(null);\r\n const newProject = projects.getById(project.value);\r\n setSelectedProject(newProject);\r\n localStorage.setItem(\"selectedProject\", newProject.id);\r\n setControlLoading(true);\r\n try {\r\n const stateData = await getStateData(selectedAppraisal.id, newProject.id);\r\n let nodes = buildTreeData(selectedAppraisal.id, newProject, setNodes, getMaturityLevel(selectedAppraisal.view), stateData, setStateLoading);\r\n selectFirstNodeOnLoad(nodes[0], selectedAppraisal.id, newProject.id);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n setControlLoading(false);\r\n }\r\n\r\n function selectFirstNodeOnLoad(node, appraisalId, projectId) {\r\n props.updateNodeInfo(\r\n {\r\n appraisalId: appraisalId,\r\n projectId: projectId,\r\n nodeId: node.state.nodeId,\r\n isPractice: node.state.isPractice,\r\n isGroup: node.state.isGroup,\r\n name: node.name\r\n }\r\n );\r\n }\r\n\r\n const handleNodeClicked = (nodeInfo) => {\r\n props.updateNodeInfo(\r\n {\r\n appraisalId: selectedAppraisal.id,\r\n projectId: selectedProject.id,\r\n nodeId: nodeInfo.nodeId,\r\n isPractice: nodeInfo.isPractice,\r\n isGroup: nodeInfo.isGroup,\r\n name: nodeInfo.name\r\n }\r\n );\r\n }\r\n\r\n const handleNodesChanged = (nodes) => {\r\n setNodes(nodes);\r\n saveExpandedStates(nodes, selectedAppraisal.id, selectedProject.id);\r\n }\r\n\r\n const handleNodeRatingChanged = async (node, newRating) => {\r\n setStateLoading(true);\r\n\r\n const body = {\r\n appraisal_id: selectedAppraisal.id,\r\n project_id: selectedProject.id,\r\n node_id: node.state.nodeId,\r\n node_state: newRating,\r\n revision_number: node.state.revNumber\r\n };\r\n API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n .then(data => {\r\n const stateData = formatStateData(data);\r\n buildTreeData(selectedAppraisal.id, selectedProject, setNodes, getMaturityLevel(selectedAppraisal.view), stateData, setStateLoading);\r\n })\r\n .catch(err => {\r\n handleNodeRatingError(err, newRating, selectedAppraisal, selectedProject, setNodes, setMergeConflictData, setShowMergeConflictModal, setStateLoading, setShowNetworkErrorModal);\r\n });\r\n }\r\n\r\n const closeMergeConflictModal = () => {\r\n setShowMergeConflictModal(false);\r\n }\r\n\r\n const handleRatingMergeConflict = async (selection, value) => {\r\n if (value === \"client\") {\r\n const body = {\r\n appraisal_id: selection.appraisalId,\r\n project_id: selection.projectId,\r\n node_id: selection.nodeId,\r\n node_state: selection.text,\r\n revision_number: selection.revNumber\r\n };\r\n API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n .then(data => {\r\n const stateData = formatStateData(data);\r\n buildTreeData(selectedAppraisal.id, selectedProject, setNodes, getMaturityLevel(selectedAppraisal.view), stateData, setStateLoading);\r\n })\r\n .catch(err => {\r\n handleNodeRatingError(err, selection.text, selectedAppraisal, selectedProject, setNodes, setMergeConflictData, setShowMergeConflictModal, setStateLoading, setShowNetworkErrorModal);\r\n });\r\n } else {\r\n getStateData(selection.appraisalId, selection.projectId)\r\n .then(data => {\r\n buildTreeData(selectedAppraisal.id, selectedProject, setNodes, getMaturityLevel(selectedAppraisal.view), data, setStateLoading);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n }\r\n\r\n function setExpanded(expanded) {\r\n nodes.forEach(e => {\r\n e.state.expanded = expanded;\r\n if (e.children && e.children.length > 0) {\r\n e.children.forEach(child => {\r\n child.state.expanded = expanded;\r\n });\r\n }\r\n });\r\n setNodes(nodes);\r\n saveExpandedStates(nodes, selectedAppraisal.id, selectedProject.id);\r\n refreshTree(nodes, setNodes);\r\n }\r\n\r\n function expandAll() {\r\n setExpanded(true);\r\n }\r\n\r\n function collapseAll() {\r\n setExpanded(false);\r\n }\r\n\r\n const appraisalOptions = appraisals.value.sort((a, b) => a.name.localeCompare(b.name)).map(a => {\r\n return {\r\n value: a.id,\r\n label: a.name\r\n }\r\n });\r\n\r\n const projectOptions = projects.value.sort((a, b) => a.name.localeCompare(b.name)).map(p => {\r\n return {\r\n value: p.id,\r\n label: p.name\r\n }\r\n });\r\n\r\n const customSelectStyles = {\r\n singleValue: (base, state) => ({\r\n ...base,\r\n color: 'dimgray'\r\n }),\r\n option: (base, state) => ({\r\n ...base,\r\n color: 'dimgray'\r\n }),\r\n control: (base, state) => ({\r\n ...base,\r\n borderRight: '0 !important',\r\n borderTop: '0 !important',\r\n borderBottom: '1px solid lightgray !important',\r\n boxShadow: '0 !important',\r\n outline: 'none !important'\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n ({\r\n ...theme,\r\n borderRadius: 0,\r\n colors: {\r\n ...theme.colors,\r\n primary25: 'rgba(0,168,168, 0.2)',\r\n primary: 'rgba(0,168,168, 0.5)',\r\n },\r\n })}\r\n options={projectOptions} value={selectedProject && { value: selectedProject.id, label: selectedProject.name }}\r\n onChange={(e) => handleSelectedProjectChanged(e)} />\r\n \r\n
\r\n
\r\n \r\n Collapse All}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Expand All}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Refresh Model}>\r\n \r\n \r\n \r\n \r\n \r\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 TreeControl;","import React, { useState, useEffect } from 'react';\r\nimport Select, { components } from 'react-select'\r\nimport { HIGHLIGHT_OPTIONS, HIGHLIGHT_COLOR_MAP } from '../utils/IconMap';\r\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\r\n\r\nconst customSelectStyles = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderLeft: '0 !important',\r\n borderRight: '0 !important',\r\n borderTop: '0 !important',\r\n borderBottom: '0 !important',\r\n boxShadow: '0 !important',\r\n outline: 'none !important'\r\n }),\r\n indicatorSeparator: base => ({\r\n ...base,\r\n display: 'none'\r\n }),\r\n indicatorsContainer: base => ({\r\n ...base,\r\n display: 'none'\r\n }),\r\n menu: base => ({\r\n ...base,\r\n width: \"auto\"\r\n }),\r\n menuList: base => ({\r\n ...base,\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n width: \"120px\",\r\n height: \"120px\",\r\n backgroundColor: \"white\"\r\n })\r\n}\r\n\r\nfunction HighlightColorPicker(props) {\r\n const [highlightColor, setHighlightColor] = useState({ value: \"transparent\", label: HIGHLIGHT_COLOR_MAP[\"transparent\"] });\r\n\r\n useEffect(() => {\r\n setHighlightColor({ value: props.nodeHighlight, label: HIGHLIGHT_COLOR_MAP[props.nodeHighlight] });\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n , [props.nodeInfo, props.nodeHighlight]);\r\n\r\n const handleHighlightColorChanged = (highlight) => {\r\n setHighlightColor({ value: highlight.value, label: HIGHLIGHT_COLOR_MAP[highlight.value] });\r\n props.onHighlightColorPicked(highlight.value);\r\n props.setNodeHighlight(highlight.value);\r\n }\r\n\r\n const GetOptions = () => {\r\n return HIGHLIGHT_OPTIONS;\r\n }\r\n const Option = (props) => {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n return (\r\n Highlight Practice}>\r\n \r\n handleHighlightColorChanged(e)}\r\n menuPlacement={\"auto\"}\r\n clearable={true}>\r\n \r\n \r\n \r\n )\r\n}\r\nexport default HighlightColorPicker;","import React from 'react';\r\nimport ToggleButton from 'react-toggle-button';\r\nimport './ToggleButtonLoadingWrapper.css';\r\n\r\nconst ToggleButtonLoadingWrapper = ({ value, onToggle }) => {\r\n return(\r\n
\r\n \r\n onToggle()} inactiveLabel=\"No\" activeLabel=\"Yes\"/>\r\n
\r\n );\r\n}\r\n\r\nexport default ToggleButtonLoadingWrapper;","import React, { useState} from 'react';\r\nimport { API } from 'aws-amplify';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport { PRACTICE_AREAS, PRACTICES, MODEL_CONSTANTS } from '../model/modelcontent';\r\nimport HighlightColorPicker from '../containers/HighlightColorPicker';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ToggleButtonLoadingWrapper from './ToggleButtonLoadingWrapper';\r\nimport { Container, Table, Row, Col, Button, Tooltip, OverlayTrigger } from 'react-bootstrap';\r\nimport styled from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faRedo } from '@fortawesome/free-solid-svg-icons'\r\nimport NetworkErrorModal from '../presenters/NetworkErrorModal';\r\n\r\nconst Styles = styled.div`\r\n.td {\r\n font-size: small; \r\n }\r\n\r\n.th {\r\n text-align: left; \r\n font-size: 16px; \r\n }\r\n\r\n .no-border{\r\n border: none;\r\n }\r\n`;\r\n\r\n\r\n//Renders the read-only information for the practice areas and practices within the Node Page.\r\nconst NodePageModelInfo = ({ nodeInfo, nodeHighlight, setNodeHighlight, practiceAffirmed, setPracticeAffirmed, affirmedLoading, setTreeControlLoading, onNodeHighlight, onPracticeAffirmed, refreshPage }) => {\r\n\r\n const [showNetworkErrorModal, setShowNetworkErrorModal] = useState(false);\r\n \r\n async function onHighlightColorPicked(highlightColor) {\r\n\r\n setTreeControlLoading();\r\n\r\n //save highlight color\r\n highlightColor = highlightColor.replace(\" \", \"\").toLowerCase();\r\n const body = {\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId,\r\n node_id: nodeInfo.nodeId,\r\n affirmed: practiceAffirmed,\r\n highlight: highlightColor,\r\n revision_number: 999\r\n };\r\n\r\n try {\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n\r\n onNodeHighlight();\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n const updatePracticeAffirmed = async () => {\r\n\r\n setTreeControlLoading();\r\n \r\n const body = {\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId,\r\n node_id: nodeInfo.nodeId,\r\n affirmed: !practiceAffirmed,\r\n revision_number: 999\r\n };\r\n setPracticeAffirmed(!practiceAffirmed);\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n \r\n onPracticeAffirmed();\r\n }\r\n\r\n if (nodeInfo.isGroup) {\r\n let objectName = Object.keys(MODEL_CONSTANTS).find(key => MODEL_CONSTANTS[key] === nodeInfo.nodeId);\r\n let abbreviation = objectName.substring(0, objectName.indexOf(\"_\"));\r\n\r\n \r\n \r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Refresh Page}>\r\n \r\n refreshPage()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{abbreviation} - {nodeInfo.name}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return (\r\n !nodeInfo.isPractice ?\r\n \r\n
\r\n \r\n \r\n Refresh Page}>\r\n \r\n refreshPage()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{PRACTICE_AREAS[nodeInfo.nodeId].Name}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Intent{PRACTICE_AREAS[nodeInfo.nodeId].Intent}
Value{PRACTICE_AREAS[nodeInfo.nodeId].Value}
\r\n\r\n
\r\n
\r\n
\r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Refresh Page}>\r\n \r\n refreshPage()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{PRACTICES[nodeInfo.nodeId].Abbreviation}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{PRACTICES[nodeInfo.nodeId].Statement}
\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default NodePageModelInfo;","import React, { useRef, useState } from 'react';\r\nimport { API } from 'aws-amplify';\r\nimport { Container, InputGroup, Button } from 'react-bootstrap';\r\nimport { Constants, getDefaultAPIHeaders, createMergeConflictData } from '../utils/helpers';\r\nimport styled from 'styled-components';\r\nimport TextareaAutosize from 'react-textarea-autosize'\r\nimport NetworkErrorModal from '../presenters/NetworkErrorModal';\r\n\r\n\r\nconst Styles = styled.div`\r\n}\r\n .w-18 {\r\n width: 20%!important; \r\n background-color: rgb(0,168,168)!important; \r\n}\r\n\r\n.custom-btn {\r\n background:rgb(0, 168, 168);\r\n color: white;\r\n border: none;\r\n justify-content: center; \r\n padding: .5rem; \r\n cursor: default;\r\n }\r\n\r\n .custom-btn.disabled {\r\n opacity: 1;\r\n }\r\n`;\r\n\r\nconst Finding = ({ finding, setFinding, nodeInfo, handleFindingUpdated, showMergeConflictModal }) => {\r\n const findingTextRef = useRef(finding.text);\r\n const [showNetworkErrorModal, setShowNetworkErrorModal] = useState(false);\r\n\r\n const handleFindingTextChanged = (value) => {\r\n setFinding(prevState => (\r\n {\r\n ...prevState,\r\n [finding.key]: {\r\n ...prevState[finding.key],\r\n text: value,\r\n },\r\n dirty: true\r\n }\r\n ));\r\n }\r\n\r\n const handlePutFindingError = async (err) => {\r\n console.log(err);\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n else{\r\n if (err.response.status === 412) {\r\n if (err.response.data.item_data !== finding.text) {\r\n showMergeConflictModal(\r\n createMergeConflictData(err.response.data.item_data, finding.text, err.response.data.revision_number),\r\n handleMergeConflict, finding.header, true\r\n );\r\n } else {\r\n API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(err.response.data))\r\n .then(data => {\r\n findingTextRef.current = err.response.data.item_data;\r\n handleFindingUpdated(data);\r\n });\r\n }\r\n } else {\r\n handleFindingTextChanged(findingTextRef.current);\r\n }\r\n }\r\n }\r\n\r\n const handleMergeConflict = async (selection, value) => {\r\n if (value !== \"server\") {\r\n const body = {\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId,\r\n node_id: nodeInfo.nodeId,\r\n item_type: finding.key,\r\n item_data: selection.text !== \"\" ? selection.text : null,\r\n revision_number: selection.revNumber\r\n }\r\n API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n .then(data => {\r\n findingTextRef.current = finding.text;\r\n handleFindingUpdated(data);\r\n }).catch(err => {\r\n handlePutFindingError(err);\r\n });\r\n } else {\r\n setFinding(prevState => (\r\n {\r\n ...prevState,\r\n [finding.key]: {\r\n ...prevState[finding.key],\r\n text: selection.text,\r\n revNumber: selection.revNumber\r\n }\r\n }\r\n ));\r\n }\r\n }\r\n\r\n const handleBlur = async () => {\r\n if (findingTextRef.current !== finding.text) {\r\n const body = {\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId,\r\n node_id: nodeInfo.nodeId,\r\n item_type: finding.key,\r\n item_data: finding.text !== \"\" ? finding.text : null,\r\n revision_number: finding.revNumber\r\n }\r\n API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n .then(data => {\r\n findingTextRef.current = finding.text;\r\n handleFindingUpdated(data);\r\n }).catch(err => {\r\n handlePutFindingError(err);\r\n });\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleFindingTextChanged(e.target.value)}\r\n onBlur={() => handleBlur()} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Finding;","import React from 'react';\r\nimport { Container, Row, Col, Image } from 'react-bootstrap';\r\nimport Finding from './Finding';\r\nimport logo from '../assets/node-page-bottom.png';\r\n\r\nfunction Findings({ findings, setFindings, nodeInfo, handleFindingUpdated, showMergeConflictModal }) {\r\n return (\r\n \r\n
\r\n \r\n
\r\n {\r\n nodeInfo.isPractice ?\r\n \r\n
\r\n \r\n \r\n \r\n
\r\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 Findings;","import React, { useState } from 'react';\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport ToggleButton from 'react-toggle-button';\r\nimport { faClipboard } from '@fortawesome/free-solid-svg-icons';\r\nimport { API } from 'aws-amplify';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport NetworkErrorModal from '../presenters/NetworkErrorModal';\r\n\r\nconst VALID_INDEX = 0;\r\nconst REVIEWED_INDEX = 1;\r\nconst PROCESS_INDEX = 2;\r\nconst VALID = \"V\";\r\nconst INVALID = \"I\";\r\nconst REVIEWED = \"R\";\r\nconst NOT_REVIEWED = \"N\";\r\nconst PROCESS = \"P\";\r\nconst NOT_PROCESS = \"E\";\r\n\r\nconst checkBoxStyle = {\r\n width: \"15px\",\r\n height: \"15px\"\r\n};\r\n\r\nfunction getItemState(index, state) {\r\n return state[index];\r\n}\r\n\r\nconst EvidenceItem = ({ item, nodeInfo, updateSelected }) => {\r\n const [showNetworkErrorModal, setShowNetworkErrorModal] = useState(false);\r\n const [isValid, setIsValid] = useState(getItemState(VALID_INDEX, item.state) === VALID ? true : false);\r\n const [isReviewed, setIsReviewed] = useState(getItemState(REVIEWED_INDEX, item.state) === REVIEWED ? true : false);\r\n const [isProcess, setIsProcess] = useState(getItemState(PROCESS_INDEX, item.state) === PROCESS ? true : false);\r\n //Assigning unique keys for each data column so\r\n // that react can perform precise rerendering\r\n const selectedChkBox = item.id + \"selectedChkBox\";\r\n const locationKey = item.id + \"location\";\r\n const commentsKey = item.id + \"comments\";\r\n const validKey = item.id + \"valid\";\r\n const reviewedKey = item.id + \"reviewed\";\r\n\r\n let isLinkable = false;\r\n\r\n if (item.isHyperlink || item.isHyperlink === undefined) {\r\n isLinkable = true;\r\n }\r\n\r\n const handleLinkClicked = (event) => {\r\n event.preventDefault();\r\n window.open(item.location, '_blank');\r\n }\r\n\r\n const getStateString = (itemIndex, state) => {\r\n let validCode = isValid ? VALID : INVALID;\r\n let reviewedCode = isReviewed ? REVIEWED : NOT_REVIEWED;\r\n let processCode = isProcess ? PROCESS : NOT_PROCESS;\r\n\r\n if (itemIndex === VALID_INDEX) {\r\n if (state) { validCode = VALID; }\r\n else { validCode = INVALID; }\r\n }\r\n else if (itemIndex === REVIEWED_INDEX) {\r\n if (state) { reviewedCode = REVIEWED; }\r\n else { reviewedCode = NOT_REVIEWED; }\r\n }\r\n else if (itemIndex === PROCESS_INDEX) {\r\n if (state) { processCode = PROCESS; }\r\n else { processCode = NOT_PROCESS; }\r\n }\r\n return validCode + reviewedCode + processCode;\r\n }\r\n\r\n const handleUpdateEvidenceState = async (itemIndex, state) => {\r\n let newState = getStateString(itemIndex, state);\r\n\r\n const body = {\r\n appraisal_evidence_id: item.id,\r\n revision_number: item.revNumber,\r\n evidence_notes: item.comments,\r\n evidence_fileName: item.fileName,\r\n evidence_path: item.location,\r\n isHyperlink: item.isHyperlink,\r\n evidence_state: newState.toString(),\r\n node_id: nodeInfo.nodeId,\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId\r\n };\r\n try {\r\n API.put(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n });\r\n\r\n item.revNumber = item.revNumber + 1;\r\n item.state = newState.toString();\r\n\r\n if (itemIndex === VALID_INDEX) {\r\n setIsValid(state);\r\n }\r\n else if (itemIndex === REVIEWED_INDEX) {\r\n setIsReviewed(state);\r\n }\r\n else if (itemIndex === PROCESS_INDEX) {\r\n setIsProcess(state);\r\n }\r\n }\r\n catch (e) {\r\n console.log('Update evidence state failure' + e);\r\n }\r\n }\r\n\r\n const handleCopyPathClicked = (e) => {\r\n navigator.clipboard.writeText(item.location.replace(/\"/g, ''));\r\n }\r\n\r\n const toggleIsValid = (e) => {\r\n handleUpdateEvidenceState(VALID_INDEX, !e);\r\n }\r\n\r\n const toggleIsReviewed = (e) => {\r\n handleUpdateEvidenceState(REVIEWED_INDEX, !e);\r\n }\r\n\r\n const toggleIsProcess = (e) => {\r\n handleUpdateEvidenceState(PROCESS_INDEX, !e);\r\n }\r\n\r\n return (\r\n \r\n \r\n updateSelected(e, item.id)}\r\n checked={item.selected}\r\n style={checkBoxStyle}\r\n />\r\n \r\n \r\n Copy Path}>\r\n \r\n handleCopyPathClicked(e)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.location}}>\r\n { isLinkable ?\r\n handleLinkClicked(e)}>{item.fileName}\r\n :\r\n

{item.fileName}

\r\n }\r\n
\r\n \r\n \r\n

{item.comments}

\r\n \r\n toggleIsValid(e)} inactiveLabel=\"No\" activeLabel=\"Yes\" />\r\n toggleIsReviewed(e)} inactiveLabel=\"No\" activeLabel=\"Yes\" />\r\n toggleIsProcess(e)} inactiveLabel=\"No\" activeLabel=\"Yes\" />\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default EvidenceItem;","import React, { useState, useRef } from 'react';\r\nimport { API } from 'aws-amplify';\r\nimport { Modal, FormGroup, FormControl, Button, FormCheck, Row, Col, Spinner } from 'react-bootstrap';\r\nimport './EvidenceModal.css';\r\nimport '../modal.css';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport NetworkErrorModal from '../presenters/NetworkErrorModal';\r\n\r\nconst EvidenceModal = ({ modalState, setModalState, evidence, nodeInfo, formatEvidenceData }) => {\r\n const [showNetworkErrorModal, setShowNetworkErrorModal] = useState(false);\r\n const [actionMade, setActionMade] = useState(false);\r\n const [actionLoading, setActionLoading] = useState(false);\r\n const [locationError, setLocationError] = useState(false);\r\n const [fileNameError, setFileNameError] = useState(false);\r\n const browseRef = useRef({});\r\n const autoFocus = React.createRef();\r\n\r\n const handleClose = () => {\r\n setModalState((prevState) => (\r\n {\r\n ...prevState,\r\n showModal: false\r\n }\r\n ));\r\n setLocationError(false);\r\n setFileNameError(false);\r\n }\r\n\r\n const handleModalStateChanged = (name, value) => {\r\n if (name === \"browseLocation\") {\r\n //TODO - add validation before setting the state.\r\n setModalState((prevState) => (\r\n {\r\n ...prevState,\r\n location: browseRef.current.files[0].path\r\n }\r\n ));\r\n setLocationError(false);\r\n } else {\r\n setModalState((prevState) => (\r\n {\r\n ...prevState,\r\n [name]: value\r\n }\r\n ));\r\n if (name === \"location\") {\r\n\r\n //we try to autopopulate the fileName (work product name field) based on input from the location box\r\n if (value === \"\") {\r\n setLocationError(true);\r\n setModalState((prevState) => (\r\n {\r\n ...prevState,\r\n fileName: \"\"\r\n }\r\n ));\r\n }\r\n else {\r\n setLocationError(false);\r\n if (value.includes('/') || value.includes('\\\\')) {\r\n let workProductName = value.replace(/^.*[\\\\/]/, '').replace(/\"/g, '');\r\n\r\n setModalState((prevState) => (\r\n {\r\n ...prevState,\r\n fileName: workProductName\r\n }\r\n ));\r\n }\r\n }\r\n }\r\n if (name === \"fileName\") {\r\n setFileNameError(value === \"\");\r\n }\r\n }\r\n }\r\n\r\n const handleClick = async () => {\r\n if (modalState.location.trim() !== \"\" && modalState.fileName.trim() !== \"\") {\r\n\r\n if(actionMade) return;\r\n\r\n setActionMade(true);\r\n setActionLoading(true);\r\n setLocationError(false);\r\n setFileNameError(false);\r\n\r\n if (modalState.titleFragment === \"Add\") {\r\n const body = {\r\n node_id: nodeInfo.nodeId,\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId,\r\n evidence_fileName: modalState.fileName,\r\n evidence_path: modalState.location.replace(/\"/g, ''),\r\n evidence_notes: modalState.comments || \"-\",\r\n evidence_state: \"VRE\",\r\n isHyperlink: modalState.isHyperlink\r\n };\r\n try {\r\n const data = await API.post(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if (err.message === \"Network Error\") {\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n formatEvidenceData(data, evidence);\r\n }\r\n catch (e) {\r\n console.log('evidence post failure' + e);\r\n }\r\n } else {\r\n const body = {\r\n node_id: nodeInfo.nodeId,\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId,\r\n evidence_fileName: modalState.fileName,\r\n evidence_path: modalState.location.replace(/\"/g, ''),\r\n evidence_notes: modalState.comments || '-',\r\n evidence_state: modalState.state,\r\n revision_number: modalState.revNumber,\r\n appraisal_evidence_id: modalState.id,\r\n isHyperlink: modalState.isHyperlink\r\n };\r\n try {\r\n const data = await API.put(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if (err.message === \"Network Error\") {\r\n setShowNetworkErrorModal(true);\r\n }\r\n });\r\n formatEvidenceData(data, evidence);\r\n }\r\n catch (e) {\r\n //if the error code is 412, it was unable to put, retry put with returned revision number\r\n if (e.response.status === 412) {\r\n console.log('edit evidence revision mismatch, retrying.')\r\n const body = {\r\n node_id: nodeInfo.nodeId,\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId,\r\n evidence_fileName: modalState.fileName,\r\n evidence_path: modalState.location.replace(/\"/g, ''),\r\n evidence_notes: modalState.comments || '-',\r\n evidence_state: modalState.state,\r\n revision_number: e.response.data.revision_number,\r\n appraisal_evidence_id: modalState.id,\r\n isHyperlink: modalState.isHyperlink\r\n };\r\n try {\r\n const data = await API.put(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if (err.message === \"Network Error\") {\r\n setShowNetworkErrorModal(true);\r\n }\r\n });\r\n formatEvidenceData(data, evidence);\r\n console.log('edit evidence retry successful.')\r\n }\r\n catch (e) {\r\n console.log('evidence post failure' + e);\r\n }\r\n }\r\n else {\r\n console.log('evidence post failure' + e);\r\n }\r\n }\r\n }\r\n setModalState((prevState) => (\r\n {\r\n ...prevState,\r\n showModal: false\r\n }\r\n ));\r\n setActionLoading(false);\r\n } else {\r\n if (modalState.location.trim() === \"\") {\r\n setLocationError(true);\r\n }\r\n if (modalState.fileName.trim() === \"\") {\r\n setFileNameError(true);\r\n }\r\n }\r\n }\r\n\r\n const isHyperlinkChanged = () => {\r\n setModalState((prevState) => (\r\n {\r\n ...prevState,\r\n isHyperlink: !modalState.isHyperlink\r\n }\r\n ));\r\n }\r\n\r\n const onModalOpened = () => {\r\n autoFocus.current.focus();\r\n setActionMade(false);\r\n }\r\n\r\n const fileNameStyle = fileNameError ? {\r\n borderBottomColor: 'red',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white'\r\n }\r\n : {\r\n borderBottomColor: 'dimgray',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white'\r\n };\r\n const fileNameTitle = fileNameError ? \"The Work Product Name field must not be empty\" : \"\";\r\n const locationStyle = locationError ? {\r\n borderBottomColor: 'red',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white'\r\n }\r\n : {\r\n borderBottomColor: 'dimgray',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white'\r\n };\r\n const locationTitle = locationError ? \"The Location field must not be empty\" : \"\";\r\n const textAreaStyle = {\r\n borderBottomColor: 'dimgray',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white',\r\n color: 'dimgray'\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {modalState.titleFragment} Evidence\r\n \r\n \r\n \r\n \r\n \r\n
\r\n handleModalStateChanged(e.target.name, e.target.value)}\r\n value={modalState.location}\r\n placeholder='File Location' />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n handleModalStateChanged(e.target.name, e.target.value)}\r\n value={modalState.fileName}\r\n placeholder='Work Product Name' />\r\n
\r\n
\r\n \r\n handleModalStateChanged(e.target.name, e.target.value)}\r\n value={modalState.comments}\r\n placeholder='Comments' />\r\n \r\n
\r\n \r\n
\r\n \r\n handleClick()}\r\n >\r\n {actionLoading &&\r\n }\r\n {!actionLoading ? \"Save\" : ''}\r\n {' '}\r\n \r\n\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default EvidenceModal;","import React from 'react';\r\nimport { Modal, Button, Row, Col } from 'react-bootstrap';\r\nimport '../modal.css';\r\n\r\nfunction ConfirmDeleteModal(props){\r\n\r\n return(\r\n props.close()} animation bsSize=\"large\">\r\n \r\n \r\n Confirm Delete\r\n \r\n \r\n \r\n \r\n {props.deleteQuestion} \r\n

\r\n {props.deleteImpact}\r\n
\r\n \r\n
\r\n \r\n props.deleteAction()}\r\n >Yes{' '} \r\n props.close()}\r\n >No{' '} \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ConfirmDeleteModal;","import React, { useState } from 'react';\r\nimport { API } from 'aws-amplify';\r\nimport { Container, Row, Table, Button, ButtonToolbar, ButtonGroup, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport EvidenceItem from '../presenters/EvidenceItem';\r\nimport EvidenceModal from './EvidenceModal';\r\nimport './Evidence.css';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport ConfirmDeleteModal from '../presenters/ConfirmDeleteModal';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCopy, faPaste, faPlus, faMinus, faEdit, faArrowUp, faArrowDown } from '@fortawesome/free-solid-svg-icons'\r\nimport styled from 'styled-components';\r\nimport NetworkErrorModal from '../presenters/NetworkErrorModal';\r\n\r\nconst Styles = styled.div`\r\n.table{\r\n table-layout: auto;\r\n}\r\n\r\n.thead{\r\n background-color: rgb(0,168,168); \r\n font-size: 16px; \r\n color: white; \r\n}\r\n\r\n.w {\r\n width: 40px;\r\n }\r\n\r\n.buttons { \r\n display: block; \r\n text-align: right; \r\n}\r\n \r\n.buttons .btn { \r\n float: none; \r\n}\r\n`;\r\n\r\nconst Evidence = ({ evidence, nodeInfo, formatEvidenceData }) => {\r\n const [showNetworkErrorModal, setShowNetworkErrorModal] = useState(false);\r\n const [evidenceModalState, setEvidenceModalState] = useState({});\r\n const [deleteLoading, setDeleteLoading] = useState(false);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n\r\n const DELETE_QUESTION = \"Delete the selected evidence?\";\r\n const DELETE_IMPACT = \"This action cannot be undone.\";\r\n\r\n const enabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'auto'\r\n }\r\n\r\n const disabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'none'\r\n }\r\n\r\n const updateSelected = (e, id) => {\r\n let item = evidence.getById(id);\r\n item.selected = e.target.checked;\r\n evidence.replace(id, item);\r\n };\r\n\r\n const handleAddClicked = () => {\r\n setEvidenceModalState({\r\n showModal: true,\r\n fileName: '',\r\n location: '',\r\n comments: '',\r\n titleFragment: 'Add',\r\n isHyperlink: true\r\n });\r\n }\r\n\r\n const handleShowDeleteModal = (event) => {\r\n setShowDeleteModal(true);\r\n }\r\n\r\n const handleDelete = async () => {\r\n setShowDeleteModal(false);\r\n setDeleteLoading(true);\r\n const items = evidence.value.filter(e => e.selected === true);\r\n for (let i = 0; i < items.length; i++) {\r\n const item = items[i];\r\n let body = {\r\n appraisal_evidence_id: item.id,\r\n };\r\n if (i === items.length - 1) {\r\n body = {\r\n ...body,\r\n node_id: nodeInfo.nodeId,\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId\r\n };\r\n }\r\n try {\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n\r\n evidence.removeById(item.id);\r\n }\r\n catch (e) {\r\n console.log('Delete evidence failure' + e);\r\n }\r\n }\r\n setDeleteLoading(false);\r\n }\r\n\r\n const closeDeleteModal = () => {\r\n setShowDeleteModal(false);\r\n }\r\n\r\n const handleReOrder = async (moveUp) => {\r\n //make a copy of the array so we don't refresh the control while moving\r\n let newEvidence = [];\r\n for(let i = 0; i < evidence.value.length; i++){\r\n newEvidence.push(evidence.value[i]);\r\n }\r\n\r\n if (moveUp) {\r\n for (let i = 0; i < newEvidence.length; i++) {\r\n let e = newEvidence[i];\r\n\r\n //if the item is selected, save off the item above it, and swap the items\r\n if (e.selected) {\r\n let temp = newEvidence[i-1];\r\n newEvidence[i-1] = e;\r\n newEvidence[i] = temp;\r\n }\r\n }\r\n } else {\r\n for (let i = newEvidence.length - 1; i >= 0; i--) {\r\n let e = newEvidence[i];\r\n //if the item is selected, save off the item below it, and swap the items\r\n if (e.selected) {\r\n let temp = newEvidence[i+1];\r\n newEvidence[i+1] = e;\r\n newEvidence[i] = temp;\r\n }\r\n }\r\n }\r\n evidence.setValue(newEvidence);\r\n const evidenceIds = newEvidence.map(e => e.id);\r\n const body = {\r\n node_id: nodeInfo.nodeId,\r\n appraisal_id: nodeInfo.appraisalId,\r\n project_id: nodeInfo.projectId,\r\n reorder: evidenceIds\r\n };\r\n API.put(Constants.API_PATH, `${Constants.APPRAISAL_EVIDENCE_PATH}/reorder`,\r\n await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n evidence.setValue(evidence.value);\r\n });\r\n }\r\n\r\n const handleCopyClicked = async () => {\r\n const items = evidence.value.filter(e => e.selected === true).map(i => {\r\n return {\r\n ...i,\r\n selected: false\r\n };\r\n });\r\n sessionStorage.setItem('copyBuffer', JSON.stringify(items));\r\n }\r\n\r\n const itemsAreSelected = () => {\r\n const items = evidence.value.filter(e => e.selected === true);\r\n return items.length > 0;\r\n }\r\n\r\n const singleItemSelected = () => {\r\n const items = evidence.value.filter(e => e.selected === true);\r\n return items.length === 1;\r\n }\r\n\r\n const reOrderUpDisabled = () => {\r\n const hasItemsSelected = itemsAreSelected();\r\n if(hasItemsSelected){\r\n //if any selected item is at the top of the list, we cannot move up\r\n for(let i = 0; i < evidence.value.length; i++){\r\n let e = evidence.value[i];\r\n if(e.selected && evidence.value.indexOf(e) === 0){\r\n return false;\r\n }\r\n }\r\n }\r\n return (hasItemsSelected && evidence.value.length > 1);\r\n }\r\n\r\n const reOrderDownDisabled = () => {\r\n const hasItemsSelected = itemsAreSelected();\r\n if(hasItemsSelected){\r\n //if any selected item is at the bottom of the list, we cannot move down\r\n for(let i = 0; i < evidence.value.length; i++){\r\n let e = evidence.value[i];\r\n if(e.selected && evidence.value.indexOf(e) >= evidence.value.length-1){\r\n return false;\r\n }\r\n }\r\n }\r\n return (hasItemsSelected && evidence.value.length > 1);\r\n }\r\n\r\n const handleEvidenceEditClicked = () => {\r\n const items = evidence.value.filter(e => e.selected === true);\r\n const item = items[0];\r\n setEvidenceModalState({\r\n showModal: true,\r\n fileName: item.fileName,\r\n location: item.location,\r\n comments: item.comments,\r\n titleFragment: 'Edit',\r\n revNumber: item.revNumber,\r\n state: item.state,\r\n id: item.id,\r\n isHyperlink: item.isHyperlink\r\n });\r\n }\r\n\r\n const handlePasteClicked = async () => {\r\n let pasteItems = sessionStorage.getItem(\"copyBuffer\");\r\n if (pasteItems) {\r\n pasteItems = JSON.parse(pasteItems);\r\n for (let i = 0; i < pasteItems.length; i++) {\r\n let item = pasteItems[i];\r\n const body = {\r\n project_id: nodeInfo.projectId,\r\n appraisal_id: nodeInfo.appraisalId,\r\n node_id: nodeInfo.nodeId,\r\n evidence_fileName: item.fileName,\r\n evidence_path: item.location,\r\n evidence_notes: item.comments,\r\n evidence_state: item.state,\r\n isHyperlink: item.isHyperlink\r\n };\r\n const data = await API.post(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n formatEvidenceData(data, evidence);\r\n }\r\n }\r\n }\r\n\r\n //TODO - do we need to assume this list is returned to us from the server sorted?\r\n const wrappedEvidence = evidence.value.map(e => {\r\n return (\r\n \r\n \r\n \r\n )\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Copy}>\r\n \r\n handleCopyClicked()}>\r\n \r\n \r\n \r\n \r\n Paste}>\r\n handlePasteClicked()}>\r\n \r\n \r\n \r\n \r\n \r\n Edit}>\r\n \r\n handleEvidenceEditClicked()}>\r\n \r\n \r\n \r\n \r\n Delete Evidence}>\r\n \r\n handleShowDeleteModal()}\r\n isLoading={deleteLoading}\r\n disabled={!itemsAreSelected()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Move Up}>\r\n \r\n handleReOrder(true)}>\r\n \r\n \r\n \r\n \r\n Move Down}>\r\n \r\n handleReOrder(false)}\r\n disabled={!reOrderDownDisabled()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Add Evidence}>\r\n handleAddClicked()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {wrappedEvidence}\r\n \r\n
Work Product NameCommentValidReviewedProcess
\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 Evidence;","import React from 'react';\r\n\r\nconst checkBoxStyle = {\r\n width: \"15px\",\r\n height: \"15px\",\r\n color:'dimgray'\r\n };\r\n\r\nconst InterviewItem = ({interview, interviewSessions, updateSelected}) => {\r\n const chkBoxKey = interview.id + \"chkBox\";\r\n const questionKey = interview.id + \"question\"; \r\n\r\n const sessionsAndDurationRows = interviewSessions.filter(is=>interview.sessions.includes(is.id)).map(is=>{\r\n return(\r\n \r\n {`${is.interviewee}`} \r\n {`${is.hours}`} \r\n \r\n );\r\n });\r\n \r\n return (\r\n \r\n \r\n updateSelected(e, interview.id)}\r\n checked={interview.selected}\r\n style={checkBoxStyle}\r\n />\r\n \r\n \r\n

{interview.question}

\r\n \r\n \r\n
\r\n
\r\n {sessionsAndDurationRows}\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\nexport default InterviewItem;","import React, { useState, useEffect } from 'react';\r\nimport { Modal, FormCheck, FormLabel, Row, Col, Button, Spinner, FormControl } from 'react-bootstrap';\r\nimport { API } from 'aws-amplify';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport { DEFAULT_QUESTIONS } from '../model/modelcontent';\r\nimport { PRACTICES } from '../model/modelcontent';\r\nimport NetworkErrorModal from '../presenters/NetworkErrorModal';\r\n\r\nconst DEFAULT_QUESTION = \"Default Question\";\r\nconst questionErrorText = \"You must enter an interview question.\";\r\nconst interviewSessionErrorText = \"At least one interview session must be selected.\";\r\n\r\nconst InterviewsModal = ({ showModal, setShowModal, titleFragment, interviewSessions, formatInterviewData, interviews, interview, nodeInfo }) => {\r\n const [showNetworkErrorModal, setShowNetworkErrorModal] = useState(false);\r\n const [actionMade, setActionMade] = useState(false);\r\n const [okLoading, setOkLoading] = useState(false);\r\n const [questionError, setQuestionError] = useState(false);\r\n const [interviewSessionError, setInterviewQuestionError] = useState(false);\r\n const [questionText, setQuestionText] = useState('');\r\n const autoFocus = React.createRef();\r\n\r\n //Syncing up the local state when the showModal property changes\r\n useEffect(() => {\r\n if (showModal === true) {\r\n setActionMade(false);\r\n let defaultQuestion = getDefaultQuestion(nodeInfo.nodeId);\r\n const question = interview ? interview.question : defaultQuestion;\r\n setQuestionText(question);\r\n validateQuestionField(question);\r\n validateInterviewSessions();\r\n } else {\r\n const transformedSessions = interviewSessions.value.map(is => {\r\n return {\r\n ...is,\r\n selected: false\r\n }\r\n });\r\n interviewSessions.setValue(transformedSessions);\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [showModal]);\r\n\r\n function getDefaultQuestion(nodeId) {\r\n\r\n let defaultQuestion = DEFAULT_QUESTIONS[nodeId];\r\n if (!defaultQuestion) {\r\n return \"\";\r\n }\r\n return defaultQuestion;\r\n }\r\n\r\n function validateInterviewSessions() {\r\n //one interview session must be checked to proceed\r\n let hasSelection = false;\r\n interviewSessions.value.forEach(e => {\r\n if (e.selected) {\r\n hasSelection = true;\r\n }\r\n });\r\n setInterviewQuestionError(!hasSelection);\r\n }\r\n\r\n function validateIterviewSessionsOnChange(currentChangedID, currentChangedStatus) {\r\n //one interview session must be checked to proceed\r\n let hasSelection = false;\r\n //check the currently changing checkbox\r\n if (currentChangedStatus) {\r\n hasSelection = true;\r\n }\r\n //check remaining checkboxes\r\n interviewSessions.value.forEach(e => {\r\n if (e.id !== currentChangedID) {\r\n if (e.selected) {\r\n hasSelection = true;\r\n }\r\n }\r\n });\r\n setInterviewQuestionError(!hasSelection);\r\n }\r\n\r\n function validateQuestionField(value) {\r\n if (value === \"\" || value.trim().length === 0) {\r\n setQuestionError(true);\r\n }\r\n else {\r\n setQuestionError(false);\r\n }\r\n }\r\n\r\n function onQuestionChanged(value) {\r\n setQuestionText(value);\r\n validateQuestionField(value);\r\n }\r\n\r\n const handleClick = async (e) => {\r\n\r\n if(actionMade) return;\r\n setActionMade(true);\r\n\r\n setOkLoading(true);\r\n const selectedSessions = interviewSessions.value.filter(is => is.selected === true);\r\n const selectedSessionIds = selectedSessions.map(is => {\r\n return is.id\r\n });\r\n\r\n if (titleFragment === \"Add\") {\r\n const body = {\r\n appraisal_id: nodeInfo.appraisalId,\r\n node_id: nodeInfo.nodeId,\r\n project_id: nodeInfo.projectId,\r\n question: questionText,\r\n sessions: selectedSessionIds\r\n }\r\n try {\r\n const data = await API.post(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n formatInterviewData(data, interviews);\r\n }\r\n catch (e) {\r\n console.log(\"add interview question failure\" + e);\r\n }\r\n } else {\r\n let body = {\r\n appraisal_id: nodeInfo.appraisalId,\r\n node_id: nodeInfo.nodeId,\r\n project_id: nodeInfo.projectId,\r\n interview_question_id: interview.id,\r\n question: questionText,\r\n sessions: selectedSessionIds,\r\n revision_number: interview.revNumber\r\n }\r\n try {\r\n const data = await API.put(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n formatInterviewData(data, interviews);\r\n }\r\n catch (e) {\r\n if (e.response.status === 412) {\r\n body = {\r\n ...body,\r\n revision_number: e.response.data.revision_number\r\n }\r\n try {\r\n const data = await API.put(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n formatInterviewData(data, interviews);\r\n }\r\n catch (e) {\r\n console.log(\"Merge conflict resolution failed\" + e);\r\n }\r\n }\r\n }\r\n }\r\n setOkLoading(false);\r\n setShowModal(false);\r\n }\r\n\r\n const handleInterviewSessionSelectionChanged = (id) => {\r\n let interviewSession = interviewSessions.getById(id);\r\n interviewSession = { ...interviewSession, selected: !interviewSession.selected };\r\n interviewSessions.replace(id, interviewSession);\r\n\r\n let isid = id;\r\n validateIterviewSessionsOnChange(isid, interviewSession.selected);\r\n }\r\n\r\n const textAreaErrorStyle = {\r\n width: \"100%\",\r\n paddingLeft: '5px',\r\n borderBottomColor: 'red',\r\n borderRightColor: 'dimgray',\r\n borderLeftColor: 'dimgray',\r\n borderTopColor: 'dimgray',\r\n color: 'dimgray',\r\n marginBottom: '1rem'\r\n };\r\n\r\n const textAreaStyle = {\r\n width: \"100%\",\r\n paddingLeft: '5px',\r\n borderBottomColor: 'dimgray',\r\n borderRightColor: 'dimgray',\r\n borderLeftColor: 'dimgray',\r\n borderTopColor: 'dimgray',\r\n color: 'dimgray',\r\n marginBottom: '1rem'\r\n };\r\n\r\n const isCheckboxes = interviewSessions.value.map(is => {\r\n return (\r\n handleInterviewSessionSelectionChanged(is.id)}\r\n label={`${is.interviewee} - ${is.hours} hrs`}>\r\n \r\n );\r\n })\r\n\r\n return (\r\n
\r\n setShowModal(false)} animation onEntered={() => autoFocus.current.focus()}>\r\n \r\n \r\n {titleFragment} Interview\r\n \r\n \r\n \r\n \r\n Practice Statement\r\n
{PRACTICES[nodeInfo.nodeId].Statement}


\r\n
\r\n Interview Question(s)\r\n onQuestionChanged(e.target.value)}>\r\n Interview Sessions\r\n \r\n {isCheckboxes}\r\n
\r\n \r\n \r\n \r\n \r\n handleClick()}\r\n >\r\n {okLoading &&\r\n }\r\n {!okLoading ? \"Save\" : ' Saving'}\r\n {' '}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\nexport default InterviewsModal;","import React, { useState, useRef } from 'react';\r\nimport { Container, Row, Table, Button, ButtonGroup, ButtonToolbar, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport { API } from 'aws-amplify';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport './Interviews.css';\r\nimport InterviewItem from '../presenters/InterviewItem';\r\nimport InterviewsModal from './InterviewsModal';\r\nimport ConfirmDeleteModal from '../presenters/ConfirmDeleteModal';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCopy, faPaste, faPlus, faMinus, faEdit } from '@fortawesome/free-solid-svg-icons';\r\nimport styled from 'styled-components';\r\nimport NetworkErrorModal from '../presenters/NetworkErrorModal';\r\n\r\nconst Styles = styled.div`\r\n.table{\r\n table-layout: auto;\r\n}\r\n\r\n.thead{\r\n background-color: rgb(0,168,168); \r\n font-size: 16px; \r\n color: white; \r\n}\r\n`;\r\n\r\nconst Interviews = ({ interviews, interviewSessions, formatInterviewData, nodeInfo }) => {\r\n const [showNetworkErrorModal, setShowNetworkErrorModal] = useState(false);\r\n const [deleteLoading, setDeleteLoading] = useState(false);\r\n const [showInterviewsModal, setShowInterviewsModal] = useState(false);\r\n const [modalTitleFragment, setModalTitleFragment] = useState(\"Add\");\r\n const selectedInterviewRef = useRef(null);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n\r\n const DELETE_QUESTION = \"Delete the selected interview session(s)?\";\r\n const DELETE_IMPACT = \"This action cannot be undone.\";\r\n\r\n const enabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'auto'\r\n }\r\n\r\n const disabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'none'\r\n }\r\n\r\n\r\n const itemsAreSelected = () => {\r\n const items = interviews.value.filter(e => e.selected === true);\r\n return items.length > 0;\r\n }\r\n\r\n const singleItemSelected = () => {\r\n const items = interviews.value.filter(e => e.selected === true);\r\n return items.length === 1;\r\n }\r\n\r\n const handleEditClicked = async (id) => {\r\n const items = interviews.value.filter(e => e.selected === true);\r\n let interview = items[0];\r\n selectedInterviewRef.current = interview;\r\n\r\n //Getting the interview sessions that should be marked as selected based on the selected interview's sessions\r\n const selectedInterviewSessions = interviewSessions.value.filter(is => interview.sessions.includes(is.id))\r\n .map(is => {\r\n return {\r\n ...is,\r\n selected: true\r\n }\r\n });\r\n selectedInterviewSessions.forEach(sis => interviewSessions.replace(sis.id, sis));\r\n setModalTitleFragment(\"Edit\");\r\n setShowInterviewsModal(true);\r\n }\r\n\r\n const updateSelected = (e, id) => {\r\n let item = interviews.getById(id);\r\n item.selected = e.target.checked;\r\n interviews.replace(id, item);\r\n };\r\n\r\n const handleAddClicked = () => {\r\n setModalTitleFragment(\"Add\");\r\n setShowInterviewsModal(true);\r\n }\r\n\r\n const handleShowDeleteModal = (event) => {\r\n setShowDeleteModal(true);\r\n }\r\n\r\n const handleDelete = async () => {\r\n setShowDeleteModal(false);\r\n setDeleteLoading(true);\r\n const deletedInterviews = interviews.value.filter(i => i.selected === true);\r\n for (let i = 0; i < deletedInterviews.length; i++) {\r\n const deletedInterview = deletedInterviews[i];\r\n const body = {\r\n interview_question_id: deletedInterview.id,\r\n appraisal_id: nodeInfo.appraisal_id,\r\n project_id: nodeInfo.project_id,\r\n node_id: nodeInfo.node_id,\r\n sessions: deletedInterview.sessions,\r\n question: deletedInterview.question,\r\n revision_number: deletedInterview.revNumber\r\n };\r\n try {\r\n await API.del(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n interviews.removeById(deletedInterview.id);\r\n } catch (e) {\r\n console.log(\"Delete interview question failure \" + e);\r\n }\r\n }\r\n setDeleteLoading(false);\r\n }\r\n\r\n const closeDeleteModal = () => {\r\n setShowDeleteModal(false);\r\n }\r\n\r\n const handleCopyClicked = async () => {\r\n const items = interviews.value.filter(e => e.selected === true).map(i => {\r\n return {\r\n ...i,\r\n selected: false\r\n };\r\n });\r\n sessionStorage.setItem('copyInterviewsBuffer', JSON.stringify(items));\r\n }\r\n\r\n const handlePasteClicked = async () => {\r\n let pasteItems = sessionStorage.getItem(\"copyInterviewsBuffer\");\r\n if (pasteItems) {\r\n pasteItems = JSON.parse(pasteItems);\r\n for (let i = 0; i < pasteItems.length; i++) {\r\n let item = pasteItems[i];\r\n const body = {\r\n project_id: nodeInfo.projectId,\r\n appraisal_id: nodeInfo.appraisalId,\r\n node_id: nodeInfo.nodeId,\r\n interview_question_id: item.id,\r\n sessions: item.sessions,\r\n question: item.question\r\n };\r\n const data = await API.post(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n if(err.message === \"Network Error\"){\r\n setShowNetworkErrorModal(true);\r\n }\r\n return;\r\n });\r\n formatInterviewData(data, interviews);\r\n }\r\n }\r\n }\r\n\r\n const wrappedInterviews = interviews.value.map(i => {\r\n return (\r\n \r\n \r\n \r\n )\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Copy}>\r\n \r\n handleCopyClicked()}>\r\n \r\n \r\n \r\n \r\n Paste}>\r\n handlePasteClicked()}>\r\n \r\n \r\n \r\n \r\n \r\n Add Question}>\r\n \r\n handleAddClicked()}>\r\n \r\n \r\n \r\n \r\n Delete Question}>\r\n \r\n handleShowDeleteModal()}\r\n isLoading={deleteLoading}\r\n disabled={!itemsAreSelected()}>\r\n \r\n \r\n \r\n \r\n Edit Question}>\r\n \r\n handleEditClicked()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {wrappedInterviews}\r\n \r\n \r\n
QuestionSessionDuration (Hrs)
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Interviews;","import React from 'react';\r\nimport { Tabs, Tab, Row, Col } from 'react-bootstrap';\r\nimport \"./TabControl.css\";\r\nimport Evidence from '../containers/Evidence';\r\nimport Interviews from '../containers/Interviews';\r\nimport LoadingComponent from './LoadingComponent';\r\nimport { Container } from 'react-bootstrap';\r\n\r\n\r\nconst TabControl = ({ evidence, interviews, interviewSessions, formatInterviewData, nodeInfo, evidenceLoading, interviewsLoading, formatEvidenceData }) => {\r\n return (\r\n nodeInfo.isPractice &&\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 TabControl","import React, { useState, useEffect } from 'react';\r\nimport { API } from 'aws-amplify';\r\nimport { Constants, getDefaultAPIHeaders, getNodeAPIPath } from '../utils/helpers';\r\nimport NodePageModelInfo from '../presenters/NodePageModelInfo';\r\nimport Findings from '../presenters/Findings';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport MergeConflictModal from './MergeConflictModal';\r\nimport useArray from '../hooks/useArray';\r\nimport TabControl from '../presenters/TabControl';\r\nimport './NodePage.css';\r\n\r\n//Returns an object that contains the finding item primitives. Using this so I can\r\n// create one in one line without having object declarations everywhere.\r\nfunction createFindingItem(apiId, key, text, header, revNumber){\r\n return{\r\n apiId: apiId,\r\n key: key,\r\n text: text,\r\n header: header,\r\n revNumber: revNumber,\r\n }\r\n}\r\n\r\n//Fetches the initial node page state (findings, evidence, etc..)\r\nasync function fetchData(nodeInfo, nodePageFindings, setNodePageFindings, setNodeHighlight, setPracticeAffirmed, evidence, interviews, interviewSessions, setFindingsLoading, setEvidenceLoading, setInterviewsLoading, setAffirmedLoading,formatFindingData){\r\n if(nodeInfo){\r\n \r\n //save the newly loaded node id into session storage for state checking purposes\r\n sessionStorage.setItem('currentNode', nodeInfo.nodeId);\r\n\r\n try{\r\n const data = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_ITEM_PATH), await getDefaultAPIHeaders());\r\n formatFindingData(data, nodePageFindings, setNodePageFindings);\r\n }catch(e){\r\n console.log('Findings get failure' + e);\r\n }\r\n setFindingsLoading(false);\r\n if(nodeInfo.isPractice){\r\n try{\r\n const affirmedData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_STATE_PATH), await getDefaultAPIHeaders());\r\n if(affirmedData.highlight){\r\n setNodeHighlight(affirmedData.highlight);\r\n }\r\n else{\r\n setNodeHighlight(\"transparent\");\r\n }\r\n setPracticeAffirmed(affirmedData.affirmed || false);\r\n } catch(e) {\r\n setNodeHighlight(\"transparent\");\r\n setPracticeAffirmed(false); // the affirmation has not been set\r\n }\r\n setAffirmedLoading(false);\r\n try{\r\n const evidenceData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_EVIDENCE_PATH), await getDefaultAPIHeaders());\r\n formatEvidenceData(evidenceData, evidence);\r\n } catch(e){\r\n console.log('Evidence get failure:' + e);\r\n }\r\n setEvidenceLoading(false);\r\n try{\r\n const interviewSessionData = await API.get(Constants.API_PATH, `${Constants.INTERVIEW_PATH}/${nodeInfo.appraisalId}`, await getDefaultAPIHeaders());\r\n formatInterviewSessionData(interviewSessionData, interviewSessions);\r\n } catch(e){\r\n console.log('Interview Session get failure ' + e);\r\n }\r\n try{\r\n const interviewData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.INTERVIEW_QUESTIONS_PATH), await getDefaultAPIHeaders());\r\n formatInterviewData(interviewData, interviews);\r\n }\r\n catch(e){\r\n console.log('Interviews get failure ' + e);\r\n }\r\n setInterviewsLoading(false);\r\n }\r\n }\r\n}\r\n\r\nfunction formatEvidenceData(data, evidence){\r\n evidence.clear();\r\n\r\n data.forEach(e=>{\r\n evidence.add({\r\n id: e.appraisal_evidence_id,\r\n fileName: e.evidence_fileName,\r\n location: e.evidence_path,\r\n comments: e.evidence_notes,\r\n state: e.evidence_state,\r\n revNumber: e.revision_number,\r\n isHyperlink: e.isHyperlink\r\n });\r\n });\r\n}\r\n\r\nfunction formatInterviewData(data, interviews){\r\n interviews.clear();\r\n\r\n data.forEach(i=>{\r\n interviews.add({\r\n id: i.interview_question_id,\r\n sessions: i.sessions,\r\n question: i.question,\r\n revNumber: i.revision_number,\r\n markedForDelete: false\r\n });\r\n })\r\n}\r\n\r\nfunction formatInterviewSessionData(data, interviewSessions){\r\n interviewSessions.clear();\r\n\r\n data.forEach(is=>{\r\n interviewSessions.add({\r\n id: is.interview_session_id,\r\n hours: is.hours,\r\n interviewee: is.interviewee,\r\n selected: false\r\n });\r\n });\r\n}\r\n\r\nconst NodePage = ({nodeInfo, onNodeHighlight, onPracticeAffirmed, setTreeControlLoading}) => {\r\n const [nodePageFindings, setNodePageFindings] = useState({\r\n notes: createFindingItem(\"\", \"notes\", \"\", \"Notes\", undefined),\r\n strengths: createFindingItem(\"\", \"strengths\", \"\", \"Strengths\", undefined),\r\n weaknesses: createFindingItem(\"\", \"weaknesses\", \"\", \"Weaknesses\", undefined),\r\n improvement_opportunities: createFindingItem(\"\", \"improvement_opportunities\", \"\", \"Improvement Opportunities\", undefined)\r\n });\r\n const [nodeHighlight, setNodeHighlight] = useState(\"transparent\");\r\n const [practiceAffirmed, setPracticeAffirmed] = useState(false);\r\n const nodeEvidence = useArray([]);\r\n const nodeInterviews = useArray([]);\r\n const appraisalInterviewSessions = useArray([]);\r\n const [findingsLoading, setFindingsLoading] = useState(true);\r\n const [evidenceLoading, setEvidenceLoading] = useState(true);\r\n const [interviewsLoading, setInterviewsLoading] = useState(true);\r\n const [affirmedLoading, setAffirmedLoading] = useState(true);\r\n const [mergeConflictModalState, setMergeConflictModalState] = useState({});\r\n\r\n //Gets \r\n useEffect(() => {\r\n setAffirmedLoading(true);\r\n setFindingsLoading(true);\r\n setEvidenceLoading(true);\r\n setInterviewsLoading(true);\r\n setNodeHighlight(\"transparent\");\r\n const getData = () => fetchData(nodeInfo, nodePageFindings, setNodePageFindings,setNodeHighlight, setPracticeAffirmed, nodeEvidence, nodeInterviews, appraisalInterviewSessions, setFindingsLoading, setEvidenceLoading, setInterviewsLoading, setAffirmedLoading,formatFindingData);\r\n getData();\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n , [nodeInfo]);\r\n\r\n\r\n \r\n //Formats data that came from the back end and sets the node page's state\r\n function formatFindingData(data, nodePageFindings, setNodePageFindings){\r\n\r\n let findings = {};\r\n data.forEach(d=>{\r\n switch(d.item_type){\r\n case \"notes\":\r\n findings.notes = createFindingItem(d.appraisal_item_id, \"notes\", \r\n d.item_data, \"Notes\", d.revision_number);\r\n break;\r\n case \"strengths\":\r\n findings.strengths = createFindingItem(d.appraisal_item_id, \"strengths\",\r\n d.item_data, \"Strengths\", d.revision_number);\r\n break;\r\n case \"weaknesses\":\r\n findings.weaknesses = createFindingItem(d.appraisal_item_id, \"weaknesses\",\r\n d.item_data, \"Weaknesses \", d.revision_number);\r\n break;\r\n case \"improvement_opportunities\":\r\n findings.improvement_opportunities = createFindingItem(d.appraisal_item_id, \"improvement_opportunities\", \r\n d.item_data, \"Improvement Opportunities\", d.revision_number);\r\n break;\r\n default: \r\n break;\r\n }\r\n });\r\n //If the API didn't give us back any information for the finding, then we want to set it to the default initialization state.\r\n setNodePageFindings({\r\n notes: findings.notes || createFindingItem(\"\", \"notes\", \"\", \"Notes\", undefined),\r\n strengths: findings.strengths || createFindingItem(\"\", \"strengths\", \"\", \"Strengths\", undefined),\r\n weaknesses: findings.weaknesses || createFindingItem(\"\", \"weaknesses\", \"\", \"Weaknesses\", undefined),\r\n improvement_opportunities: findings.improvement_opportunities || createFindingItem(\"\", \"improvement_opportunities\", \"\", \"Improvement Opportunities\", undefined),\r\n dirty: false\r\n });\r\n }\r\n\r\n const handleFindingUpdated = (data) => {\r\n if(!data[0]){\r\n return;\r\n }\r\n let responseNodeId = data[0].node_id;\r\n let loadedNodeId = sessionStorage.getItem('currentNode');\r\n \r\n //only repopulate the findings controls if we are still on the same node page\r\n if(responseNodeId === loadedNodeId){\r\n formatFindingData(data, nodePageFindings, setNodePageFindings);\r\n }\r\n }\r\n\r\n function refreshPage(){\r\n setAffirmedLoading(true);\r\n setFindingsLoading(true);\r\n setEvidenceLoading(true);\r\n setInterviewsLoading(true);\r\n fetchData(nodeInfo, nodePageFindings, setNodePageFindings,setNodeHighlight, setPracticeAffirmed, nodeEvidence, nodeInterviews, appraisalInterviewSessions, setFindingsLoading, setEvidenceLoading, setInterviewsLoading, setAffirmedLoading, formatFindingData);\r\n }\r\n\r\n const showMergeConflictModal = (mergeConflictData, mergeConflictHandler, modalTitleFragment, canMerge = false, mergeConflictRenderer = null) => {\r\n setMergeConflictModalState({\r\n showMergeConflictModal: true,\r\n mergeConflictData: mergeConflictData,\r\n mergeConflictHandler: mergeConflictHandler,\r\n mergeConflictRenderer: mergeConflictRenderer,\r\n modalTitleFragment: modalTitleFragment,\r\n canMerge: canMerge\r\n });\r\n }\r\n\r\n const hideMergeConflictModal = () => {\r\n setMergeConflictModalState(prevState=>(\r\n {\r\n ...prevState,\r\n showMergeConflictModal: false\r\n }\r\n ));\r\n }\r\n\r\n //TODO - change evidence loading when we have integrated to have it's own variable (instead of keying off the findings loading)\r\n return(\r\n nodeInfo ? \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n : null\r\n )\r\n}\r\n\r\nexport default NodePage;","import React, { useState } from 'react'\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\nimport TreeControl from './Tree/TreeControl';\r\nimport NodePage from './NodePage';\r\nimport './Home.css';\r\n\r\n\r\nfunction Home(props) {\r\n const [nodeInfo, setNodeInfo] = useState(null);\r\n const [refreshTrigger, setRefreshTrigger] = useState(true);\r\n const [treeLoadingTrigger, setTreeLoadingTrigger] = useState(true);\r\n\r\n const updateNodeInfo = (nodeInfo) => {\r\n setNodeInfo(nodeInfo);\r\n }\r\n\r\n const onNodeHighlight = () => {\r\n setRefreshTrigger(!refreshTrigger);\r\n }\r\n\r\n const onPracticeAffirmed = () => {\r\n setRefreshTrigger(!refreshTrigger);\r\n }\r\n\r\n const setTreeControlLoading = () => {\r\n setTreeLoadingTrigger(!treeLoadingTrigger);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Home;\r\n","import React from 'react';\r\nimport {Image as Pic, Container, Row, Col } from 'react-bootstrap';\r\nimport styled from 'styled-components';\r\nimport logo from '../assets/icon_cropped.png';\r\n\r\nconst Styles = styled.div`\r\n.App-logo {\r\n height: 20vmin;\r\n pointer-events: none; \r\n z-index: 0; \r\n margin-top: 50px;\r\n }\r\n \r\n @media (prefers-reduced-motion: no-preference) {\r\n .App-logo {\r\n animation: App-logo-spin infinite 20s linear;\r\n }\r\n }\r\n \r\n@keyframes App-logo-spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n } \r\n }\r\n`;\r\n\r\nexport const Image = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n)","import React, { useState } from 'react';\r\nimport { Form, FormGroup, FormControl, FormText, Row, Col, Container, Button, Spinner } from 'react-bootstrap';\r\nimport { Image } from '../components/Image';\r\n\r\nconst allowedSpecialCharacters = \"^ $ * . [ ] { } ( ) ? \\\" ! @ # % & / \\\\ , > < ' : ; | _ ~ ` - + =\";\r\nconst PASSWORD_HELP_TEXT = () => (\r\n
\r\n

Password Rules:

\r\n
    \r\n
  • Must be at least eight characters in length.
  • \r\n
  • Cannot contain spaces.
  • \r\n
  • Must contain one uppercase character.
  • \r\n
  • Must contain one lowercase character.
  • \r\n
  • Must contain one number.
  • \r\n
  • Must contain one special character.
  • \r\n
  • Allowed special characters: {allowedSpecialCharacters}
  • \r\n
\r\n
\r\n);\r\n\r\n//8 characters, 1 Uppercase, 1 Lowercase, 1 number, 1 special character\r\nconst PASSWORD_PATTERN = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[\\^$*.[\\]\\\\{}()?\"!@#%&/,><':;|_\\+\\-\\=~`])\\S{8,99}$/;\r\nconst PASSWORDS_SAME_HELP_TEXT = \"The new password must be different from the temporary password\";\r\n\r\n//Form for updating password\r\nfunction UpdatePasswordForm(props) {\r\n const [password, setPassword] = useState('');\r\n const [confirmPassword, setConfirmPassword] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isPasswordValid, setIsPasswordValid] = useState(false);\r\n const [isConfirmedPasswordValid, setIsConfirmedPasswordValid] = useState(false);\r\n const [infoBlockText, setInfoBlockText] = useState(\"\");\r\n const [helpBlockText, setHelpBlockText] = useState(PASSWORD_HELP_TEXT);\r\n\r\n const validateField = (fieldText) => {\r\n return fieldText.match(PASSWORD_PATTERN) ? true : false;\r\n }\r\n\r\n const handleChangePassword = (event) => {\r\n setPassword(event.target.value);\r\n setIsPasswordValid(validateField(event.target.value));\r\n }\r\n\r\n const handleChangeConfirmedPassword = (event) => {\r\n setConfirmPassword(event.target.value);\r\n setIsConfirmedPasswordValid(validateField(event.target.value));\r\n }\r\n\r\n //form submit event handler\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n if (password !== props.oldPassword) {\r\n setHelpBlockText(PASSWORD_HELP_TEXT);\r\n setIsLoading(true);\r\n props.handleUpdatePassword(password);\r\n setIsLoading(false);\r\n } else {\r\n setInfoBlockText(PASSWORDS_SAME_HELP_TEXT)\r\n }\r\n }\r\n\r\n const handleSubmitWithEnter = async e => {\r\n if (!isConfirmedPasswordValid || !isPasswordValid || password !== confirmPassword) {\r\n return;\r\n }\r\n if (password !== props.oldPassword) {\r\n setHelpBlockText(PASSWORD_HELP_TEXT);\r\n setIsLoading(true);\r\n props.handleUpdatePassword(password);\r\n setIsLoading(false);\r\n } else {\r\n setInfoBlockText(PASSWORDS_SAME_HELP_TEXT)\r\n }\r\n }\r\n\r\n const handleEnterPress = (e) => {\r\n var code = e.keyCode || e.which;\r\n if (code === 13) {\r\n handleSubmitWithEnter();\r\n }\r\n }\r\n\r\n\r\n const textAreaErrorStyle = {\r\n border: \"1px solid red\",\r\n width: \"100%\",\r\n paddingLeft: '5px'\r\n };\r\n\r\n const textAreaStyle = {\r\n width: \"100%\",\r\n paddingLeft: '5px'\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
handleSubmit(event)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleEnterPress(e)}\r\n style={isConfirmedPasswordValid ? textAreaStyle : textAreaErrorStyle}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {infoBlockText}\r\n {helpBlockText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading &&\r\n }\r\n {!isLoading ? \"Submit\" : ' Submitting....'}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default UpdatePasswordForm;","import React, { useState, useEffect } from 'react';\r\nimport { Container, Modal, FormGroup, Button, Spinner, FormControl, FormText, Row, Col } from 'react-bootstrap';\r\nimport '../modal.css';\r\nimport { emailUtils } from '../utils/helpers';\r\nimport { Auth } from 'aws-amplify';\r\n\r\nconst allowedSpecialCharacters = \"^ $ * . [ ] { } ( ) ? \\\" ! @ # % & / \\\\ , > < ' : ; | _ ~ ` - + =\";\r\nconst PASSWORD_HELP_TEXT = () => (\r\n
\r\n

Password Rules:

\r\n
    \r\n
  • Must be at least eight characters in length.
  • \r\n
  • Cannot contain spaces.
  • \r\n
  • Must contain one uppercase character.
  • \r\n
  • Must contain one lowercase character.
  • \r\n
  • Must contain one number.
  • \r\n
  • Must contain one special character.
  • \r\n
  • Allowed special characters: {allowedSpecialCharacters}
  • \r\n
\r\n
\r\n);\r\n\r\n//8 characters, 1 Uppercase, 1 Lowercase, 1 number, 1 special character\r\nconst PASSWORD_PATTERN = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[\\^$*.[\\]\\\\{}()?\"!@#%&/,><':;|_\\+\\-\\=~`])\\S{8,99}$/;\r\nconst RESET_ERROR_TEXT = \"Error resetting password. Please check your code and try again.\";\r\n\r\nfunction ResetPasswordModal(props) {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [showResetModal, setShowResetModal] = useState(false);\r\n const [showFinishedModal, setShowFinishedModal] = useState(false);\r\n const [resetEmail, setResetEmail] = useState('');\r\n const [resetCode, setResetCode] = useState('');\r\n const [isEmailValid, setIsEmailValid] = useState(false);\r\n const [password, setPassword] = useState('');\r\n const [confirmPassword, setConfirmPassword] = useState('');\r\n const [isPasswordValid, setIsPasswordValid] = useState(false);\r\n const [isConfirmedPasswordValid, setIsConfirmedPasswordValid] = useState(false);\r\n const [requestErrorText, setRequestErrorText] = useState(\"\");\r\n const [infoBlockText, setInfoBlockText] = useState(\"\");\r\n\r\n\r\n //reset when modal is shown\r\n useEffect(() => {\r\n if (props.showConfirmationModal === true) {\r\n setResetEmail('');\r\n setIsEmailValid(false);\r\n setShowFinishedModal(false);\r\n setRequestErrorText('');\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showConfirmationModal]);\r\n\r\n const tryHideModal = (e) => {\r\n props.setShowConfirmationModal(false)\r\n }\r\n\r\n const validateField = (fieldText) => {\r\n return fieldText.match(PASSWORD_PATTERN) ? true : false;\r\n }\r\n\r\n const validateEmailField = (fieldText) => {\r\n //don't allow empty or only whitespace\r\n return fieldText.trim().length === 0 ? false : true;\r\n }\r\n\r\n const handleChangePassword = (event) => {\r\n setPassword(event.target.value);\r\n setIsPasswordValid(validateField(event.target.value));\r\n }\r\n\r\n const handleChangeConfirmedPassword = (event) => {\r\n setConfirmPassword(event.target.value);\r\n setIsConfirmedPasswordValid(validateField(event.target.value));\r\n }\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n setIsLoading(true);\r\n try {\r\n await resetPassword();\r\n } catch {\r\n setInfoBlockText(RESET_ERROR_TEXT)\r\n }\r\n }\r\n\r\n const handleSubmitWithEnter = async e => {\r\n if (!isConfirmedPasswordValid || !isPasswordValid || password !== confirmPassword) {\r\n return;\r\n }\r\n setIsLoading(true);\r\n await resetPassword();\r\n }\r\n\r\n const handleEnterPress = (e) => {\r\n if(props.showConfirmationModal){\r\n emailUtils.validateEmailCase(e);\r\n }\r\n \r\n var code = e.keyCode || e.which;\r\n if (code === 13) {\r\n if(props.showConfirmationModal){\r\n onConfirmation();\r\n }\r\n else if(showResetModal){\r\n handleSubmitWithEnter();\r\n }\r\n }\r\n }\r\n\r\n const onConfirmation = () => {\r\n if(isEmailValid){\r\n Auth.forgotPassword(resetEmail)\r\n .then(data => handleResetCodeSendSuccess(data))\r\n .catch(err => handleResetCodeSendError(err));\r\n }\r\n }\r\n\r\n function handleResetCodeSendSuccess(data) {\r\n props.setShowConfirmationModal(false);\r\n setShowResetModal(true);\r\n }\r\n\r\n function handleResetCodeSendError(err) {\r\n if (err.code === \"UserNotFoundException\") {\r\n setRequestErrorText(\"Email address not found. Contact gayli.craver@cepedasystems.com for assistance.\");\r\n }\r\n else if (err.code === \"NotAuthorizedException\") {\r\n setRequestErrorText(\"User does not have a password set. Check your email for a temporary password. Contact gayli.craver@cepedasystems.com for assistance.\")\r\n }\r\n else if (err.code === \"LimitExceededException\") {\r\n setRequestErrorText(\"Reset attempts exceeded. Try again later. Contact gayli.craver@cepedasystems.com for assistance.\");\r\n }\r\n else {\r\n setRequestErrorText(\"Failed to send reset code. Contact gayli.craver@cepedasystems.com for assistance.\");\r\n }\r\n }\r\n\r\n const onFinishedAcknowledge = () => {\r\n setShowFinishedModal(false);\r\n window.location.reload();\r\n }\r\n\r\n const handleChangeEmail = (event) => {\r\n setResetEmail(event.target.value);\r\n setIsEmailValid(validateEmailField(event.target.value));\r\n }\r\n\r\n const handleChangeResetCode = (event) => {\r\n setResetCode(event.target.value);\r\n }\r\n\r\n async function resetPassword() {\r\n await Auth.forgotPasswordSubmit(resetEmail, resetCode, password)\r\n .then(data => handleResetSuccess(data))\r\n .catch(err => handleResetError(err));\r\n }\r\n\r\n function handleResetSuccess(data) {\r\n setShowResetModal(false);\r\n setShowFinishedModal(true);\r\n\r\n setIsLoading(false);\r\n }\r\n\r\n function handleResetError(err) {\r\n if (err.code === \"CodeMismatchException\") {\r\n setInfoBlockText(\"Invalid verification code provided, please try again. Contact gayli.craver@cepedasystems.com for assistance.\");\r\n }\r\n else {\r\n setRequestErrorText(\"Failed to reset password. Contact gayli.craver@cepedasystems.com for assistance.\");\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n const textAreaErrorStyle = {\r\n border: \"1px solid red\",\r\n width: \"100%\",\r\n paddingLeft: '5px'\r\n };\r\n\r\n const textAreaStyle = {\r\n width: \"100%\",\r\n paddingLeft: '5px'\r\n };\r\n\r\n return (\r\n \r\n tryHideModal(false)}\r\n animation\r\n style={{ backgroundColor: 'rgba(0,0,0,0.2)' }}\r\n size='sm'>\r\n \r\n \r\n {' '}Reset Password\r\n \r\n \r\n \r\n \r\n \r\n Enter your email address to send a recovery code.\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n handleEnterPress(e)}\r\n onPaste={(event) => emailUtils.validateEmailCase(event)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {requestErrorText}\r\n \r\n \r\n \r\n
\r\n \r\n onConfirmation()}\r\n >Ok\r\n tryHideModal(false)}\r\n >Cancel\r\n \r\n
\r\n\r\n setShowResetModal(false)}\r\n animation\r\n disabled={showFinishedModal}\r\n >\r\n \r\n \r\n {' '}Reset Password\r\n \r\n \r\n \r\n \r\n \r\n A reset code has been sent to {resetEmail}.\r\n Please complete the form to reset your password.\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleEnterPress(e)}\r\n style={isConfirmedPasswordValid ? textAreaStyle : textAreaErrorStyle}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {infoBlockText}\r\n {PASSWORD_HELP_TEXT()}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {isLoading &&\r\n }\r\n {!isLoading ? \"Reset\" : 'Resetting...'}\r\n {' '}\r\n setShowResetModal(false)}>\r\n Cancel\r\n {' '}\r\n \r\n
\r\n\r\n setShowFinishedModal(false)}\r\n animation\r\n style={{ backgroundColor: 'rgba(0,0,0,0.2)' }}\r\n size='sm'>\r\n \r\n \r\n {' '}Success\r\n \r\n \r\n \r\n \r\n \r\n \r\n Password reset successfully.\r\n Please log in.\r\n \r\n \r\n \r\n \r\n \r\n \r\n onFinishedAcknowledge()}\r\n >Ok\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ResetPasswordModal;","import React, { useState } from 'react';\r\nimport {Form, FormGroup, FormControl, FormText, Row, Col, Container, Button, Spinner } from 'react-bootstrap';\r\nimport { Image } from '../components/Image';\r\nimport { emailUtils } from '../utils/helpers';\r\nimport { Auth } from 'aws-amplify';\r\nimport UpdatePasswordForm from '../containers/UpdatePasswordForm';\r\nimport ResetPasswordModal from '../containers/ResetPasswordModal';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'\r\n\r\nfunction Login(props) {\r\n const [username, setUserName] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isEmailValid, setIsEmailValid] = useState(false);\r\n const [isPasswordValid, setIsPasswordValid] = useState(false);\r\n const [updatePasswordRequired, setUpdatePasswordRequired] = useState(false);\r\n const [showBadPasswordModal, setShowBadPasswordModal] = useState(false);\r\n const [showResetPasswordModal, setShowResetPasswordModal] = useState(false);\r\n const [cognitoUser, setCognitoUser] = useState({});\r\n const [helpBlockState, setHelpBlockState] = useState({});\r\n\r\n //Sets the current session after successful login\r\n // before redirecting to the home page.\r\n const redirectToHomePage = async () => {\r\n const newSession = await Auth.currentSession();\r\n props.userHasAuthenticated(newSession);\r\n props.history.push(\"/\");\r\n }\r\n\r\n //Disables the login button\r\n const validateField = (fieldText) => {\r\n //don't allow empty or only whitespace\r\n return fieldText.trim().length === 0 ? false : true;\r\n }\r\n\r\n const handleChangeEmail = (event) => {\r\n setUserName(event.target.value);\r\n setIsEmailValid(validateField(event.target.value));\r\n }\r\n\r\n const handleChangePassword = (event) => {\r\n setPassword(event.target.value);\r\n setIsPasswordValid(validateField(event.target.value))\r\n }\r\n\r\n\r\n //Login form submit handler\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n setIsLoading(true);\r\n try {\r\n const user = await Auth.signIn(username, password);\r\n setCognitoUser(user);\r\n if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {\r\n setUpdatePasswordRequired(true);\r\n } else {\r\n redirectToHomePage();\r\n }\r\n } catch (e) {\r\n if (e.code === 'UserNotFoundException' || e.code === 'NotAuthorizedException') {\r\n setHelpBlockState({\r\n visible: true,\r\n helpText: 'Incorrect Login credentials. Please try again.'\r\n });\r\n }\r\n else if (e.code === 'UserLambdaValidationException') {\r\n const helpText = e.message.replace('PostAuthentication failed with error ', '');\r\n setHelpBlockState({\r\n visible: true,\r\n helpText: helpText.slice(0, -1)\r\n });\r\n }\r\n else if (e.code === 'PasswordResetRequiredException') {\r\n setHelpBlockState({\r\n visible: true,\r\n helpText: \"This user has been flagged for password reset. Please use the \\\"Forgot Password?\\\" link below or contact gayli.craver@cepedasystems.com for assistance.\"\r\n });\r\n }\r\n console.log(e.code);\r\n console.log(e.message);\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n const handleSubmitWithEnter = async e => {\r\n if(!isEmailValid || !isPasswordValid){\r\n return;\r\n }\r\n setIsLoading(true);\r\n try {\r\n const user = await Auth.signIn(username, password);\r\n setCognitoUser(user);\r\n if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {\r\n setUpdatePasswordRequired(true);\r\n } else {\r\n redirectToHomePage();\r\n }\r\n } catch (e) {\r\n if (e.code === 'UserNotFoundException' || e.code === 'NotAuthorizedException') {\r\n setHelpBlockState({\r\n visible: true,\r\n helpText: 'Your username and/or password does not match our records. Please try again.'\r\n });\r\n }\r\n else if (e.code === 'UserLambdaValidationException') {\r\n const helpText = e.message.replace('PostAuthentication failed with error ', '');\r\n setHelpBlockState({\r\n visible: true,\r\n helpText: helpText.slice(0, -1)\r\n });\r\n }\r\n else if (e.code === 'PasswordResetRequiredException') {\r\n setHelpBlockState({\r\n visible: true,\r\n helpText: \"This user has been flagged for password reset. Please use the \\\"Forgot Password?\\\" link below or contact gayli.craver@cepedasystems.com for assistance.\"\r\n });\r\n }\r\n console.log(e.code);\r\n console.log(e.message);\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n\r\n //Sets the state of the login form to render\r\n // an update password form if it is required.\r\n const handleUpdatePassword = async newPassword => {\r\n try {\r\n console.log(cognitoUser);\r\n await Auth.completeNewPassword(\r\n cognitoUser,\r\n newPassword\r\n );\r\n redirectToHomePage();\r\n }\r\n catch (e) {\r\n setShowBadPasswordModal(true);\r\n }\r\n }\r\n const handleEnterPress = (e) => {\r\n var code = e.keyCode || e.which;\r\n if(code === 13){\r\n handleSubmitWithEnter();\r\n }\r\n }\r\n\r\n const handleForgotPassword = (e) => {\r\n setShowResetPasswordModal(true)\r\n }\r\n\r\n const textAreaErrorStyle = {\r\n border: \"1px solid red\",\r\n width: \"100%\",\r\n paddingLeft: '5px'\r\n };\r\n\r\n const textAreaStyle = {\r\n width: \"100%\",\r\n paddingLeft: '5px'\r\n };\r\n\r\n const renderLoginForm = () => {\r\n return (\r\n \r\n \r\n \r\n
handleSubmit(event)}>\r\n \r\n \r\n \r\n \r\n emailUtils.validateEmailCase(event)}\r\n onPaste={(event) => emailUtils.validateEmailCase(event)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleEnterPress(e)} \r\n style={isPasswordValid ? textAreaStyle : textAreaErrorStyle}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {helpBlockState.helpText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading &&\r\n }\r\n {!isLoading ? \"Login\" : ' Logging In...'}\r\n {' '}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Forgot Password?\r\n {' '}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n const renderUpdatePasswordForm = () => {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n {!updatePasswordRequired ? (renderLoginForm()) :\r\n (renderUpdatePasswordForm())}\r\n
\r\n );\r\n}\r\nexport default Login;\r\n","import { Auth } from 'aws-amplify';\r\n\r\nconst API_NAME = 'api';\r\n\r\n//Refreshes the authorization header for making API calls\r\nasync function getDefaultAPIHeaders(body = null){\r\n const currentSession = await Auth.currentSession();\r\n return {\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n Authorization: currentSession.idToken.jwtToken\r\n },\r\n body: body\r\n };\r\n}\r\n\r\n//Returns an object that describes the results of the API calls.\r\n//@param error - boolean to indicate if the call was successful\r\n//@param returnValue - the results of the API call\r\nclass APIResult {\r\n constructor(error, returnValue){\r\n this.error = error;\r\n this.returnValue = returnValue;\r\n }\r\n}\r\n\r\n//Converts a back end object to its front end representation\r\n//@param dataMapping - the data mapping from DATA_MAPPINGS to use for the conversion\r\n//@param backEndItem - the back end item to convert to a front end item\r\nfunction convertToFrontEnd(dataMapping, backEndItem){\r\n let newItem = {};\r\n Object.keys(dataMapping).forEach(k=>{\r\n newItem[k] = backEndItem[dataMapping[k]];\r\n });\r\n return newItem;\r\n}\r\n\r\nfunction convertToBackEnd(dataMapping, frontEndItem, defaultValues){\r\n let newItem = {};\r\n const mappingKeys = Object.keys(dataMapping);\r\n const mappingValues = Object.values(dataMapping);\r\n for(let i = 0; i < mappingValues.length; i++){\r\n newItem[mappingValues[i]] = frontEndItem[mappingKeys[i]];\r\n }\r\n if(defaultValues){\r\n Object.keys(defaultValues).forEach(k=>{\r\n delete newItem[k];\r\n })\r\n }\r\n return newItem;\r\n}\r\n\r\nexport { APIResult, convertToFrontEnd, convertToBackEnd, getDefaultAPIHeaders, API_NAME };","import { API } from 'aws-amplify';\r\nimport { APIResult, convertToFrontEnd, convertToBackEnd, getDefaultAPIHeaders, API_NAME } from './apiUtils';\r\n\r\nconst API_PATH = '/organizations';\r\n\r\nconst DATA_MAPPING = {\r\n id: \"organization_id\",\r\n name: \"orgName\",\r\n address: \"address\",\r\n contactInfo: \"contactInfo\",\r\n isActive: \"isActive\"\r\n}\r\n\r\nconst DEFAULT_VALUES = {\r\n markedForDelete: false\r\n}\r\n\r\nclass OrgRepository {\r\n constructor(defaultValues = DEFAULT_VALUES){\r\n this.defaultValues = defaultValues;\r\n }\r\n\r\n async getAll(){\r\n const resolved = API.get(API_NAME, API_PATH, await getDefaultAPIHeaders())\r\n .then(d=>{\r\n const retVal = d.map(i=>{\r\n let newItem = convertToFrontEnd(DATA_MAPPING, i);\r\n\r\n if(this.defaultValues){\r\n newItem = {\r\n ...newItem,\r\n ...this.defaultValues\r\n }\r\n }\r\n return newItem;\r\n });\r\n return new APIResult(false, retVal);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async getOne(item){\r\n const resolved = API.get(API_NAME, `${API_PATH}/${item.id}`, await getDefaultAPIHeaders())\r\n .then(data=>{\r\n let retVal = convertToFrontEnd(DATA_MAPPING, data);\r\n //The purpose of this spread is to preserve the values of the item\r\n // that are front-end only (such as whether or not they are selected)\r\n // and update the values that are from the back end.\r\n retVal = {\r\n ...item,\r\n ...retVal\r\n };\r\n return new APIResult(false, retVal);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async createOne(item){\r\n const body = convertToBackEnd(DATA_MAPPING, item, this.defaultValues);\r\n const resolved = API.post(API_NAME, `${API_PATH}`, await getDefaultAPIHeaders(body))\r\n .then(data=>{\r\n return new APIResult(false, data);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async updateOne(item){\r\n const body = convertToBackEnd(DATA_MAPPING, item, this.defaultValues);\r\n const resolved = API.put(API_NAME, `${API_PATH}/${item.id}`, await getDefaultAPIHeaders(body))\r\n .then(data=>{\r\n let retVal = convertToFrontEnd(DATA_MAPPING, data);\r\n retVal = {\r\n ...item,\r\n retVal\r\n };\r\n return new APIResult(false, retVal);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async deleteOne(item){\r\n const resolved = API.del(API_NAME, `${API_PATH}/${item.id}`, await getDefaultAPIHeaders())\r\n .then(data=>{\r\n return new APIResult(false, null);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n}\r\n\r\nexport { OrgRepository };","function arrayEquals(arrayOne, arrayTwo){\r\n // if the other array is a falsy value, return\r\n if (!arrayOne)\r\n return false;\r\n if(!arrayTwo)\r\n return false;\r\n\r\n // compare lengths - can save a lot of time \r\n if (arrayTwo.length !== arrayOne.length)\r\n return false;\r\n\r\n for (var i = 0, l=arrayTwo.length; i < l; i++) {\r\n // Check if we have nested arrays\r\n if (arrayTwo[i] instanceof Array && arrayOne[i] instanceof Array) {\r\n // recurse into the nested arrays\r\n if (!arrayEquals(arrayOne[i], arrayTwo[i]))\r\n return false; \r\n } \r\n else if (arrayTwo[i] !== arrayOne[i]) { \r\n // Warning - two different object instances will never be equal: {x:20} != {x:20}\r\n return false; \r\n } \r\n } \r\n return true;\r\n}\r\n\r\nexport default arrayEquals;","import { API } from 'aws-amplify';\r\nimport { APIResult, convertToFrontEnd, convertToBackEnd, getDefaultAPIHeaders, API_NAME } from './apiUtils';\r\nimport { PRACTICE_AREAS } from '../../model/modelcontent';\r\nimport arrayEquals from '../libs';\r\n\r\nconst API_PATH = '/appraisals';\r\n\r\nconst APPRAISAL_DATA_MAPPING = {\r\n id: \"appraisal_id\",\r\n name: \"appraisal_name\",\r\n projects: \"projects\",\r\n view: \"appraisal_view\",\r\n organization: \"organization_id\"\r\n}\r\n\r\nconst PROJECT_DATA_MAPPING = {\r\n name: \"project_name\",\r\n practiceAreas: \"practice_areas\",\r\n id: \"project_id\"\r\n}\r\n\r\nconst DEFAULT_VALUES = {\r\n markedForDelete: false\r\n}\r\n\r\nconst PA_DEFAULT_VALUES = {\r\n SelectedForAdd: false,\r\n SelectedForRemove: false,\r\n MappedByAnyProject: false\r\n}\r\n\r\nfunction getEditBody(beforeEdit, afterEdit){\r\n let body = {};\r\n //TODO - Uncomment and remove code below when the edit paradigm has been completely\r\n // shifted over to only passing changed values.\r\n // if(beforeEdit.name !== afterEdit.name){\r\n // body = {...body, appraisal_name: afterEdit.name};\r\n // }\r\n // if(beforeEdit.organization !== afterEdit.organization){\r\n // body = {...body, organization_id: afterEdit.organization};\r\n // }\r\n // if(beforeEdit.view !== afterEdit.view){\r\n // body = {...body, appraisal_view: afterEdit.view };\r\n // }\r\n body = {...body, appraisal_name: afterEdit.name, organization_id: afterEdit.organization, appraisal_view: afterEdit.view};\r\n //End TODO\r\n const added = afterEdit.projects.filter(p=>{\r\n return beforeEdit.projects.find(bep=>bep.id === p.id) === undefined\r\n });\r\n if(added.length > 0){\r\n const projects = added.map(p=>{\r\n return{\r\n project_name: p.name,\r\n project_id: p.id,\r\n practice_areas: p.practiceAreas.map(pa=>{\r\n return pa.Id;\r\n })\r\n }\r\n });\r\n body = {...body, added: projects};\r\n }\r\n const deleted = beforeEdit.projects.filter(p=>{\r\n return afterEdit.projects.find(bep=>bep.id === p.id) === undefined\r\n });\r\n if(deleted.length > 0) {\r\n const projects = deleted.map(p=>p.id);\r\n body = {...body, deleted: projects};\r\n }\r\n let modified = [];\r\n const foundProject = (projects, project) => {\r\n return projects.find(p=>p.id === project.id);\r\n }\r\n for(let i = 0; i < beforeEdit.projects.length; i++){\r\n let project = foundProject(afterEdit.projects, beforeEdit.projects[i]);\r\n if(project){\r\n const beforePAs = beforeEdit.projects[i].practiceAreas.map(pa=>pa.Id);\r\n const afterPAs = project.practiceAreas.map(pa=>pa.Id);\r\n const beforeName = beforeEdit.projects[i].name;\r\n const afterName = project.name;\r\n\r\n if(!arrayEquals(beforePAs, afterPAs) || beforeName !== afterName){\r\n modified.push(project);\r\n }\r\n }\r\n }\r\n if(modified.length > 0){\r\n const projects = modified.map(p=>{\r\n return{\r\n project_name: p.name,\r\n project_id: p.id,\r\n practice_areas: p.practiceAreas.map(pa=>{\r\n return pa.Id\r\n })\r\n }\r\n });\r\n body = {...body, modified: projects};\r\n }\r\n return body;\r\n}\r\n\r\nclass AppraisalRepository {\r\n constructor(defaultValues = DEFAULT_VALUES, paDefaultValues = PA_DEFAULT_VALUES, projectDefaultValues = null){\r\n this.defaultValues = DEFAULT_VALUES;\r\n this.paDefaultValues = paDefaultValues;\r\n this.projectDefaultValues = projectDefaultValues;\r\n }\r\n\r\n async getAll(){\r\n const resolved = API.get(API_NAME, API_PATH, await getDefaultAPIHeaders())\r\n .then(d=>{\r\n const retVal = d.map(i=>{\r\n let newItem = convertToFrontEnd(APPRAISAL_DATA_MAPPING, i);\r\n\r\n if(this.defaultValues){\r\n newItem = {\r\n ...newItem,\r\n ...this.defaultValues\r\n }\r\n }\r\n newItem.projects = [];\r\n return newItem;\r\n });\r\n return new APIResult(false, retVal);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async getOne(id, getPracticeAreaInfo = true){\r\n const resolved = API.get(API_NAME, `${API_PATH}/${id}`, await getDefaultAPIHeaders())\r\n .then(data=>{\r\n let newItem = convertToFrontEnd(APPRAISAL_DATA_MAPPING, data);\r\n newItem.projects = newItem.projects.map(p=>{\r\n let newProject = convertToFrontEnd(PROJECT_DATA_MAPPING, p);\r\n if(this.projectDefaultValues){\r\n newProject = {\r\n ...newProject,\r\n ...this.projectDefaultValues\r\n }\r\n }\r\n return newProject;\r\n });\r\n if(getPracticeAreaInfo){\r\n newItem.projects.forEach(p=>{\r\n p.practiceAreas = p.practiceAreas.map(pa=>{\r\n let newPa = {\r\n ...PRACTICE_AREAS[pa]\r\n };\r\n if(this.paDefaultValues){\r\n newPa = {\r\n ...newPa,\r\n ...this.paDefaultValues\r\n }\r\n }\r\n return newPa;\r\n });\r\n });\r\n }\r\n return new APIResult(false, newItem);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async createOne(item){\r\n let newItem = { ...item };\r\n let projectItems = newItem.projects.map(p=>{\r\n return convertToBackEnd(PROJECT_DATA_MAPPING, p)\r\n });\r\n projectItems.forEach(p=>{\r\n p.practice_areas = p.practice_areas.map(pa=>pa.Id);\r\n })\r\n newItem.projects = projectItems;\r\n const fullOrg = newItem.organization;\r\n newItem.organization = newItem.organization.id;\r\n const body = convertToBackEnd(APPRAISAL_DATA_MAPPING, newItem);\r\n\r\n const resolved = API.post(API_NAME, API_PATH, await getDefaultAPIHeaders(body))\r\n .then(data=>{\r\n let retVal = convertToFrontEnd(APPRAISAL_DATA_MAPPING, data);\r\n retVal = {\r\n ...retVal,\r\n organization: fullOrg,\r\n projects: []\r\n };\r\n if(this.defaultValues){\r\n retVal = {\r\n ...retVal,\r\n ...this.defaultValues\r\n }\r\n }\r\n return new APIResult(false, retVal);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async updateOne(itemBefore, itemAfter){\r\n const editBody = getEditBody(itemBefore, itemAfter);\r\n const resolved = API.put(API_NAME, `${API_PATH}/${itemBefore.id}`, await getDefaultAPIHeaders(editBody))\r\n .then(data=>{\r\n return new APIResult(false, data);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async deleteOne(id){\r\n const resolved = API.del(API_NAME, `${API_PATH}/${id}`, await getDefaultAPIHeaders())\r\n .then(data=>{\r\n return new APIResult(false, null);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n}\r\n\r\nexport { AppraisalRepository };","import { API } from 'aws-amplify';\r\nimport { APIResult, convertToFrontEnd, getDefaultAPIHeaders, API_NAME } from './apiUtils';\r\n\r\nconst API_PATH = '/appraisalstate';\r\n\r\nconst DATA_MAPPING = {\r\n affirmed: \"affirmed\",\r\n id: \"compound_id\",\r\n appraisalId: \"appraisal_id\",\r\n nodeId: \"node_id\",\r\n state: \"node_state\",\r\n projectId: \"project_id\",\r\n revNumber: \"revision_number\"\r\n}\r\n\r\nclass AppraisalStateRepository{\r\n constructor(defaultValues = null){\r\n this.defaultValues = defaultValues;\r\n }\r\n\r\n async getAll(appraisalId, projectId){\r\n const resolved = API.get(API_NAME, `${API_PATH}/${appraisalId}/${projectId}`, await getDefaultAPIHeaders())\r\n .then(d=>{\r\n const retVal = d.map(i=>{\r\n let newItem = convertToFrontEnd(DATA_MAPPING, i);\r\n\r\n if(this.defaultValues){\r\n newItem = {\r\n ...newItem,\r\n ...this.defaultValues\r\n }\r\n }\r\n newItem.projects = [];\r\n return newItem;\r\n });\r\n return new APIResult(false, retVal);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async getOne(appraisalId, projectId, item){\r\n const resolved = API.get(API_NAME, `${API_PATH}/${appraisalId}/${projectId}/${item.id}`, await getDefaultAPIHeaders())\r\n .then(data=>{\r\n let retVal = convertToFrontEnd(DATA_MAPPING, data);\r\n //The purpose of this spread is to preserve the values of the item\r\n // that are front-end only (such as whether or not they are selected)\r\n // and update the values that are from the back end.\r\n retVal = {\r\n ...item,\r\n ...retVal\r\n };\r\n return new APIResult(false, retVal);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n\r\n async updateOne(appraisalId, projectId, nodeId, state, revNumber){\r\n const body = {\r\n appraisal_id: appraisalId,\r\n project_id: projectId,\r\n node_id: nodeId,\r\n node_state: state,\r\n revision_number: revNumber\r\n }\r\n const resolved = API.put(API_NAME, API_PATH, await getDefaultAPIHeaders(body))\r\n .then(data=>{\r\n let retVal = [];\r\n for(let i = 0; i < data.length; i++){\r\n retVal.push(convertToFrontEnd(DATA_MAPPING, data[i]));\r\n }\r\n return new APIResult(false, retVal);\r\n }).catch(err=>{\r\n return new APIResult(true, err);\r\n });\r\n return resolved;\r\n }\r\n}\r\n\r\nexport { AppraisalStateRepository };","import React from 'react';\r\nimport { Dropdown, ButtonGroup } from 'react-bootstrap';\r\n\r\n\r\nfunction UserTableItem(props){ \r\n const menuItems = props.orgs.map(o=>{\r\n return(\r\n props.handleOrgSelection(e)}>{o.name}\r\n \r\n )\r\n });\r\n\r\n const chkBoxId = `${props.user.id}_chkBox`;\r\n const labelId = `${props.user.id}_label`;\r\n const dropDownId = `${props.user.id}_dd`;\r\n return (\r\n \r\n \r\n props.updateSelected(e, props.user.id)}\r\n checked={props.user.selected}/>\r\n \r\n \r\n \r\n \r\n {props.user.selectedOrg} \r\n \r\n \r\n {menuItems}\r\n \r\n {' '}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default UserTableItem;","import React, { useState, useEffect } from 'react';\r\nimport { API } from 'aws-amplify';\r\nimport { OrgRepository } from '../utils/repositories';\r\nimport { ButtonToolbar, Row, Button, Table, FormLabel, Container, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport ConfirmDeleteModal from '../presenters/ConfirmDeleteModal';\r\nimport UserItem from '../presenters/UserItem';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport useArray from '../hooks/useArray';\r\nimport { getDefaultAPIHeaders, Constants } from '../utils/helpers';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faUserMinus } from '@fortawesome/free-solid-svg-icons'\r\n\r\nconst DELETE_QUESTION = \"Remove access for this user?\";\r\nconst DELETE_IMAPCT = \"This action cannot be undone.\";\r\n\r\nasync function fetchData(setOrgData, setUserData, setTableLoading) {\r\n setTableLoading(true);\r\n const orgRepo = new OrgRepository();\r\n const orgData = await orgRepo.getAll();\r\n if (!orgData.error) {\r\n let activeOrgs = orgData.returnValue.filter(x => x.isActive);\r\n activeOrgs.push({\r\n id: \"(None)\",\r\n name: \"(None)\"\r\n });\r\n setOrgData(activeOrgs);\r\n }\r\n else {\r\n console.log('error getting org data: ', orgData.returnValue);\r\n }\r\n\r\n try {\r\n const userData = await API.get(Constants.API_PATH, Constants.USER_PATH, await getDefaultAPIHeaders());\r\n const filteredUsers = userData;//.filter(x => x.organization_id === org);\r\n let activeUsers = [];\r\n filteredUsers.forEach(o => {\r\n const matchOrgItem = orgData.returnValue.find(org => org.id === o.organization_id);\r\n\r\n var matchOrgName = '(None)';\r\n if (matchOrgItem !== undefined) {\r\n matchOrgName = matchOrgItem.name;\r\n }\r\n if(matchOrgItem === undefined || matchOrgItem.isActive){\r\n activeUsers.push({\r\n id: o.user_id,\r\n email: o.email,\r\n selectedOrg: matchOrgName,\r\n markedForDelete: false\r\n });\r\n }\r\n });\r\n setUserData(activeUsers);\r\n } catch (e) {\r\n console.log('error getting user data: ', e);\r\n }\r\n setTableLoading(false);\r\n}\r\n\r\nfunction Users(props) {\r\n const [tableLoading, setTableLoading] = useState(true);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const usersArray = useArray([]);\r\n const orgsArray = useArray([]);\r\n\r\n const enabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'auto'\r\n }\r\n\r\n const disabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'none'\r\n }\r\n\r\n useEffect(() => {\r\n const getData = () => fetchData(orgsArray.setValue, usersArray.setValue, setTableLoading);\r\n getData();\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.refreshTrigger]);\r\n\r\n const handleShowDeleteModal = (event) => {\r\n setShowDeleteModal(true);\r\n }\r\n\r\n const handleDelete = async () => {\r\n setShowDeleteModal(false);\r\n const itemsToRemove = usersArray.value.filter(el => el.selected === true);\r\n\r\n for (let i = 0; i < itemsToRemove.length; i++) {\r\n const itemToRemove = itemsToRemove[i];\r\n try {\r\n await API.del(Constants.API_PATH, `${Constants.USER_PATH}/${itemToRemove.id}`, await getDefaultAPIHeaders());\r\n usersArray.removeById(itemToRemove.id);\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n }\r\n\r\n const handleUpdateDelete = (event, id) => {\r\n const checked = event.target.checked;\r\n const orgItem = usersArray.getById(id);\r\n orgItem.markedForDelete = checked;\r\n usersArray.replace(id, orgItem);\r\n }\r\n\r\n const updateSelected = (e, id) => {\r\n let item = usersArray.getById(id);\r\n item.selected = e.target.checked;\r\n usersArray.replace(id, item);\r\n };\r\n\r\n const itemsAreSelected = () => {\r\n const items = usersArray.value.filter(e => e.selected === true);\r\n return items.length > 0;\r\n }\r\n\r\n const closeDeleteModal = () => {\r\n setShowDeleteModal(false);\r\n }\r\n\r\n const handleOrgSelection = async (event) => {\r\n const ids = event.split('/');\r\n const userId = ids[0];\r\n let orgId = ids[1];\r\n let user = usersArray.getById(userId);\r\n const organization = orgsArray.getById(orgId);\r\n user = {\r\n ...user,\r\n selectedOrg: organization.name\r\n };\r\n if(orgId === \"(None)\"){\r\n orgId = \"\";\r\n }\r\n usersArray.replace(userId, user);\r\n try {\r\n API.put(Constants.API_PATH, `${Constants.USER_PATH}/${userId}`, await getDefaultAPIHeaders({ organization_id: orgId }));\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n const userTableItems = usersArray.value.map(u => {\r\n return (\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Users\r\n \r\n \r\n \r\n \r\n Delete User}>\r\n \r\n handleShowDeleteModal()}\r\n disabled={!itemsAreSelected()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {userTableItems}\r\n \r\n
OrgUser
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\nexport default Users;","import React, { useState } from 'react';\r\nimport { OrgRepository } from '../utils/Repositories/OrgRepository';\r\nimport { Modal, FormGroup, FormControl, Button, Spinner, Row, Col } from 'react-bootstrap';\r\nimport './OrganizationModal.css';\r\nimport { AsYouType } from 'libphonenumber-js';\r\nimport '../modal.css';\r\n\r\nconst NUM_ZERO = 48;\r\nconst NUM_NINE = 57;\r\nconst NUMPAD_0 = 96;\r\nconst NUMPAD_9 = 105;\r\nconst BACK_SPACE = 8;\r\nconst MAX_LENGTH = 16;\r\n\r\nconst TooltipConstants = {\r\n NAME_TOOLTIP_1: \"Name must not be empty.\",\r\n NAME_TOOLTIP_2: \"An organization with that name already exists.\",\r\n NOT_CHANGED: \"Organization information has not changed.\"\r\n}\r\n\r\n//Modal the handles adding and editing an organization\r\nfunction OrganizationModal(props){\r\n const [isOkLoading, setIsOkLoading] = useState(false);\r\n const [hasValidationError, setHasValidationError] = useState(false);\r\n const autoFocus = React.createRef();\r\n\r\n const handleClick = async (e) => {\r\n setIsOkLoading(true);\r\n let error = false;\r\n const orgRepo = new OrgRepository();\r\n switch(props.modalTitleFragment){\r\n case \"Add\":\r\n error = validateAdd();\r\n if(!error.foundError){\r\n let newOrg = {\r\n markedForDelete:false,\r\n name: props.modalState.name,\r\n address: props.modalState.address,\r\n contactInfo: props.modalState.contactInfo,\r\n isActive:true\r\n }\r\n try{\r\n const result = await orgRepo.createOne(newOrg);\r\n newOrg = {\r\n ...newOrg,\r\n id: result.returnValue\r\n };\r\n props.orgsArray.add(newOrg);\r\n } catch(e){\r\n console.log(e);\r\n }\r\n } else{\r\n props.setModalState(prevState=>({...prevState, nameError: error.nameError, nameTooltip: error.nameTooltip}));\r\n }\r\n break;\r\n case \"Edit\":\r\n error = validateEdit();\r\n if(!error.foundError){\r\n const org = {\r\n id: props.modalState.id,\r\n name: props.modalState.name,\r\n address: props.modalState.address,\r\n contactInfo: props.modalState.contactInfo,\r\n isActive: props.editOrg.isActive\r\n };\r\n const result = await orgRepo.updateOne(org);\r\n if(!result.error){\r\n props.orgsArray.replace(org.id, result.returnValue);\r\n } else {\r\n console.log(result.returnValue);\r\n }\r\n } else{\r\n props.setModalState(prevState=>({...prevState, nameError: error.nameError, nameTooltip: error.nameTooltip,\r\n addressError: error.addressError, addressTooltip: error.addressTooltip, contactInfoError: error.contactInfoError,\r\n contactInfoTooltip: error.contactInfoTooltip})); \r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n setIsOkLoading(false);\r\n if(!error.foundError){\r\n props.close();\r\n }\r\n }\r\n\r\n const handleNameChange = (value) => {\r\n let error = false;\r\n switch(props.modalTitleFragment){\r\n case \"Add\":\r\n error = validateAdd(value);\r\n props.setModalState(prevState=>({...prevState, name: value, nameError: error.nameError, nameTooltip: error.nameTooltip}));\r\n break;\r\n case \"Edit\":\r\n error = validateEdit(value);\r\n props.setModalState(prevState=>({...prevState, name: value, nameError: error.nameError, nameTooltip: error.nameTooltip,\r\n addressError: error.addressError, addressTooltip: error.addressTooltip, contactInfoError: error.contactInfoError,\r\n contactInfoTooltip: error.contactInfoTooltip}));\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const handleAddressChange = (value) => {\r\n if(props.modalTitleFragment === \"Edit\"){\r\n const error = validateEdit(null, value);\r\n props.setModalState(prevState=>({...prevState, address: value, nameError: error.nameError, nameTooltip: error.nameTooltip,\r\n addressError: error.addressError, addressTooltip: error.addressTooltip, contactInfoError: error.contactInfoError,\r\n contactInfoTooltip: error.contactInfoTooltip}));\r\n } else {\r\n props.setModalState(prevState=>({...prevState, address: value}));\r\n }\r\n }\r\n\r\n const handleContactInfoChange = (value) => {\r\n //If if the user is deleting the area code,\r\n // then we need to detect that to prevent\r\n // the AsYouType from reformatting (562\r\n // back in to (562) instead of 56\r\n const areaCode = /\\([\\d]+/;\r\n if(areaCode.test(value)){\r\n //Javscript's test method is too greedy to be completely useful\r\n // because it returns a match before evaluating a negative lookahead\r\n // as far as I can tell...\r\n if(!value.includes(')')){\r\n value = value.substr(0, value.length - 1);\r\n }\r\n }\r\n value = new AsYouType('US').input(value);\r\n if(props.modalTitleFragment === \"Edit\"){\r\n const error = validateEdit(null, null, value);\r\n props.setModalState(prevState=>({...prevState, contactInfo: value, nameError: error.nameError, nameTooltip: error.nameTooltip,\r\n addressError: error.addressError, addressTooltip: error.addressTooltip, contactInfoError: error.contactInfoError,\r\n contactInfoTooltip: error.contactInfoTooltip}));\r\n } else {\r\n props.setModalState(prevState=>({...prevState, contactInfo: value}));\r\n }\r\n }\r\n\r\n //Determines if the organizations modal can add.\r\n const validateAdd = (value = null) => {\r\n const name = value !== null ? value : props.modalState.name;\r\n const clashes = props.orgsArray.value.filter(o=>o.name === name);\r\n let foundError = false, nameError = false;\r\n let nameTooltip = \"\";\r\n if(name.length === 0){\r\n foundError = true;\r\n nameError = true;\r\n nameTooltip = TooltipConstants.NAME_TOOLTIP_1\r\n }\r\n if(clashes.length > 0){\r\n foundError = true;\r\n nameError = true;\r\n nameTooltip = TooltipConstants.NAME_TOOLTIP_2\r\n }\r\n \r\n setHasValidationError(nameError);\r\n\r\n return {\r\n foundError: foundError,\r\n nameError: nameError,\r\n nameTooltip: nameTooltip\r\n }\r\n }\r\n\r\n //Determines if the organizations modal can edit\r\n const validateEdit = (nameValue = null, addressValue = null, contactInfoValue = null) => {\r\n let foundError = false, nameError = false, addressError = false, contactInfoError = false;\r\n let nameTooltip = \"\", addressTooltip = \"\", contactInfoTooltip = \"\";\r\n const name = nameValue !== null ? nameValue : props.modalState.name;\r\n const address = addressValue !== null ? addressValue : props.modalState.address;\r\n const contactInfo = contactInfoValue !== null ? contactInfoValue : props.modalState.contactInfo;\r\n const clashes = props.orgsArray.value.filter(o=>o.name === name);\r\n if(clashes.length > 0 && clashes[0].id !== props.editOrg.id){\r\n foundError = true;\r\n nameError = true;\r\n nameTooltip = TooltipConstants.NAME_TOOLTIP_2;\r\n } \r\n else if(props.editOrg.name === name && props.editOrg.address === address && props.editOrg.contactInfo === contactInfo){\r\n foundError = true;\r\n nameError = true;\r\n nameTooltip = TooltipConstants.NOT_CHANGED;\r\n addressError = true;\r\n addressTooltip = TooltipConstants.NOT_CHANGED;\r\n contactInfoError = true;\r\n contactInfoTooltip = TooltipConstants.NOT_CHANGED;\r\n }\r\n else if (name === \"\"){\r\n foundError = true;\r\n nameError = true;\r\n nameTooltip = TooltipConstants.NAME_TOOLTIP_1;\r\n }\r\n \r\n setHasValidationError(nameError);\r\n\r\n return{\r\n foundError: foundError,\r\n nameError: nameError,\r\n nameTooltip: nameTooltip,\r\n addressError: addressError,\r\n addressTooltip: addressTooltip,\r\n contactInfoError: contactInfoError,\r\n contactInfoTooltip: contactInfoTooltip\r\n }\r\n }\r\n\r\n //Prevents non numerics from being entered into the text field\r\n // and limits the field to 14 characters (the max length of a\r\n // US phone number)\r\n const onCIKeyDown = (event) => {\r\n const key = event.which;\r\n if(key === BACK_SPACE) return true;\r\n if( ((key >= NUM_ZERO && key <= NUM_NINE) \r\n || (key >= NUMPAD_0 && key <= NUMPAD_9)) \r\n && (event.target.value.length < MAX_LENGTH) ) return true;\r\n event.preventDefault();\r\n }\r\n\r\n const errorStyle = {\r\n border: \"1px solid red\"\r\n };\r\n const defaultStyle = {};\r\n\r\n return(\r\n props.close(e)} animation onEntered={() => autoFocus.current.focus()}>\r\n \r\n \r\n {props.modalTitleFragment} Organization\r\n \r\n \r\n \r\n \r\n \r\n handleNameChange(event.target.value)}\r\n value={props.modalState.name}\r\n placeholder=\"Name\"\r\n style={props.modalState.nameError ? errorStyle : defaultStyle}\r\n title={props.modalState.nameTooltip}\r\n />\r\n \r\n \r\n handleAddressChange(event.target.value)}\r\n value={props.modalState.address}\r\n placeholder=\"Address\"\r\n style={props.modalState.addressError ? errorStyle : defaultStyle}\r\n title={props.modalState.addressTooltip}\r\n />\r\n \r\n \r\n onCIKeyDown(event)}\r\n type=\"text\"\r\n onChange={(event)=>handleContactInfoChange(event.target.value)}\r\n value={props.modalState.contactInfo}\r\n placeholder=\"Phone Number\"\r\n style={props.modalState.contactInfoError ? errorStyle : defaultStyle}\r\n title={props.modalState.contactInfoTooltip}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n handleClick()}\r\n >\r\n {isOkLoading &&\r\n }\r\n {!isOkLoading ? \"Save\" : ''}\r\n {' '} \r\n \r\n \r\n );\r\n}\r\n\r\nexport default OrganizationModal;","import React, {useState} from 'react';\r\nimport ToggleButton from 'react-toggle-button';\r\n\r\n//An entry in the organizations table\r\nfunction OrganizationItem(props){\r\n //Assigning unique keys for each data column so\r\n // that react can perform precise rerendering\r\n\r\n const [isActive, setIsActive] = useState(props.org.isActive);\r\n\r\n const toggleActive = (e) => {\r\n if(props.updateIsActive(e, props.org.id)){\r\n setIsActive(!e);\r\n }\r\n }\r\n\r\n const deleteChkboxKey = props.org.id + \"dltChk\";\r\n const nameKey = props.org.id + 'nme';\r\n const addressKey = props.org.id + \"addr\";\r\n const contactInfoKey = props.org.id + \"ctnfo\";\r\n const activeKey = props.org.id + \"isActive\";\r\n const editKey = props.org.id + \"edit\";\r\n return(\r\n \r\n \r\n props.updateSelected(e, props.org.id)}\r\n checked={props.org.selected}\r\n disabled={!isActive}\r\n />\r\n \r\n \r\n {props.org.name}\r\n \r\n toggleActive(e)}/>\r\n \r\n );\r\n}\r\nexport default OrganizationItem;","import React, { useState, useRef, useEffect } from 'react';\r\nimport { Button, ButtonToolbar, FormLabel, Row, Col, Table, Container, OverlayTrigger, Tooltip, Modal, Spinner } from 'react-bootstrap';\r\nimport { OrgRepository, AppraisalRepository } from '../utils/repositories';\r\nimport { getDefaultAPIHeaders, Constants } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport useArray from '../hooks/useArray';\r\nimport OrganizationModal from './OrganizationModal';\r\nimport ConfirmDeleteModal from '../presenters/ConfirmDeleteModal';\r\nimport OrganizationItem from '../presenters/OrganizationItem';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport addOrgIcon from '../assets/org-add.png'\r\nimport deleteOrgIcon from '../assets/org-delete.png'\r\nimport editOrgIcon from '../assets/org-edit.png'\r\n\r\nconst DELETE_QUESTION = \"Delete the selected organizations and associated appraisals?\";\r\nconst DELETE_IMPACT = \"This action cannot be undone.\";\r\n\r\n//Initial state for the add/edit modal\r\nconst INITAL_MODAL_STATE = {\r\n id: \"\",\r\n name: \"\",\r\n nameError: false,\r\n nameTooltip: \"\",\r\n address: \"\",\r\n addressError: false,\r\n addressTooltip: \"\",\r\n contactInfo: \"\",\r\n contactInfoError: false,\r\n contactInfoTooltip: \"\",\r\n isActive: true\r\n};\r\n\r\nasync function fetchData(setData, setTableLoading) {\r\n const orgRepo = new OrgRepository();\r\n const apiData = await orgRepo.getAll();\r\n if (!apiData.error) {\r\n setData(apiData.returnValue);\r\n } else {\r\n console.log(apiData.returnValue);\r\n }\r\n\r\n setTableLoading(false);\r\n}\r\n\r\n//Organizations page\r\nfunction Organizations(props) {\r\n const [tableLoading, setTableLoading] = useState(true);\r\n const [showModal, setShowModal] = useState(false);\r\n const [modalState, setModalState] = useState(INITAL_MODAL_STATE);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const [showDeletingModal, setShowDeletingModal] = useState(false);\r\n const [itemBeingDeleted, setItemBeingDeleted] = useState(\"\");\r\n const [itemDeleteStatus, setItemDeleteStatus] = useState(\"\");\r\n const [isOrgDeleting, setIsOrgDeleting] = useState(false);\r\n const [isActive, setIsActive] = useState(true);\r\n const editOrg = useRef({});\r\n\r\n const enabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'auto'\r\n }\r\n\r\n const disabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'none'\r\n }\r\n\r\n //The title of the modal and text of the button of the modal\r\n const modalTitleFragment = useRef('Add');\r\n\r\n //Array to hold the orgs\r\n const orgsArray = useArray([]);\r\n\r\n //Get org data on startup\r\n useEffect(() => {\r\n const getData = () => fetchData(orgsArray.setValue, setTableLoading);\r\n getData();\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n , [props.refreshTrigger]);\r\n\r\n //#region Organizations page event handlers\r\n\r\n const handleAddClicked = (event) => {\r\n modalTitleFragment.current = \"Add\";\r\n\r\n setShowModal(true);\r\n }\r\n\r\n const handleEdit = async () => {\r\n const items = orgsArray.value.filter(e => e.selected === true);\r\n var item = items[0];\r\n\r\n const orgRepo = new OrgRepository();\r\n const result = await orgRepo.getOne(item);\r\n if (!result.error) {\r\n orgsArray.replace(result.returnValue.id, result.returnValue);\r\n modalTitleFragment.current = \"Edit\";\r\n editOrg.current = JSON.parse(JSON.stringify(result.returnValue));\r\n setModalState({\r\n id: result.returnValue.id,\r\n name: result.returnValue.name,\r\n address: result.returnValue.address,\r\n contactInfo: result.returnValue.contactInfo\r\n });\r\n setShowModal(true);\r\n }\r\n else {\r\n console.log(result.returnValue);\r\n }\r\n }\r\n\r\n //Handler for showing the confirm delete modal\r\n const handleShowDeleteModal = (e) => {\r\n e.preventDefault();\r\n setShowDeleteModal(true);\r\n }\r\n\r\n //Handles updating an individual isActive checkbox within the orgs table.\r\n const updateIsActive = async (e, id) => {\r\n let orgItem = orgsArray.getById(id);\r\n const prevValue = orgItem.isActive;\r\n orgItem.isActive = !e;\r\n orgsArray.replace(id, orgItem);\r\n const orgRepo = new OrgRepository();\r\n await orgRepo.updateOne(orgItem)\r\n .then(data => {\r\n if (data.error) {\r\n orgItem = { ...orgItem, isActive: prevValue };\r\n orgsArray.replace(id, orgItem);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n });\r\n uncheckInactive(id);\r\n props.onOrgEditted();\r\n }\r\n\r\n //Handler for closing the OrganizationModal\r\n const handleModalClosed = () => {\r\n setModalState(INITAL_MODAL_STATE);\r\n editOrg.current = {};\r\n setShowModal(false);\r\n\r\n for (let i = 0; i < orgsArray.value.length; i++) {\r\n orgsArray.value[i].selected = false;\r\n }\r\n props.updateSelectedOrg(null);\r\n props.onOrgEditted();\r\n }\r\n\r\n const closeDeleteModal = () => {\r\n setShowDeleteModal(false);\r\n }\r\n\r\n const tryCloseDeletingModal = () => {\r\n if (!isOrgDeleting) {\r\n setShowDeletingModal(false);\r\n }\r\n }\r\n\r\n async function cleanOrgAppraisals(org) {\r\n const appraisalRepo = new AppraisalRepository();\r\n const appraisalData = await appraisalRepo.getAll();\r\n const filteredAppraisals = appraisalData.returnValue.filter(x => x.organization === org);\r\n\r\n for (let i = 0; i < filteredAppraisals.length; i++) {\r\n const item = filteredAppraisals[i];\r\n setItemBeingDeleted(\"Deleting Appraisal: \" + item.name + \":\");\r\n\r\n //clean items from appraisal\r\n setItemDeleteStatus(\"Deleting Practice Data...\");\r\n const itemApiPath = `${Constants.APPRAISAL_ITEM_PATH}/${item.id}`\r\n const itemData = await API.get(Constants.API_PATH, itemApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < itemData.length; j++) {\r\n try {\r\n let body = {\r\n appraisal_item_id: itemData[j].appraisal_item_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal item failure' + e.message);\r\n }\r\n }\r\n\r\n //clean states from appraisal\r\n setItemDeleteStatus(\"Deleting State Data...\");\r\n const stateApiPath = `${Constants.APPRAISAL_STATE_PATH}/${item.id}`\r\n const stateData = await API.get(Constants.API_PATH, stateApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < stateData.length; j++) {\r\n try {\r\n let body = {\r\n compound_id: stateData[j].compound_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal state failure' + e.message);\r\n }\r\n }\r\n\r\n //clean evidence from appraisal\r\n setItemDeleteStatus(\"Deleting Evidence Data...\");\r\n const evidenceApiPath = `${Constants.APPRAISAL_EVIDENCE_PATH}/${item.id}`\r\n const evidenceData = await API.get(Constants.API_PATH, evidenceApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < evidenceData.length; j++) {\r\n let body = {\r\n appraisal_evidence_id: evidenceData[j].appraisal_evidence_id,\r\n };\r\n try {\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal evidence failure' + e);\r\n }\r\n }\r\n\r\n //clean interview questions from appraisal\r\n setItemDeleteStatus(\"Deleting Interview Data...\");\r\n const interviewsApiPath = `${Constants.INTERVIEW_QUESTIONS_PATH}/${item.id}`\r\n const interviewsData = await API.get(Constants.API_PATH, interviewsApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < interviewsData.length; j++) {\r\n try {\r\n let body = {\r\n interview_question_id: interviewsData[j].interview_question_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal interview question failure' + e.message);\r\n }\r\n }\r\n\r\n //delete appraisal entry\r\n setItemDeleteStatus(\"Deleting Appraisal...\");\r\n const result = await appraisalRepo.deleteOne(item.id);\r\n if (result.error) {\r\n console.log(\"Error deleting appraisal: \", result.returnValue);\r\n }\r\n setItemDeleteStatus(\"Appraisal Deleted Successfully.\");\r\n }\r\n setItemBeingDeleted(\"\");\r\n }\r\n\r\n const handleDelete = async () => {\r\n setShowDeleteModal(false);\r\n setIsOrgDeleting(true);\r\n setShowDeletingModal(true);\r\n const itemsToRemove = orgsArray.value.filter(org => org.selected === true);\r\n const orgRepo = new OrgRepository();\r\n for (let i = 0; i < itemsToRemove.length; i++) {\r\n let item = itemsToRemove[i];\r\n\r\n await cleanOrgAppraisals(item.id);\r\n setItemBeingDeleted(\"Deleting Organization: \" + item.name + \":\");\r\n\r\n const result = await orgRepo.deleteOne(item);\r\n if (!result.error) {\r\n orgsArray.removeById(item.id);\r\n props.updateSelectedOrg(null);\r\n props.onOrgEditted();\r\n }\r\n else {\r\n console.log(result.returnValue);\r\n }\r\n }\r\n setItemBeingDeleted(\"\");\r\n setItemDeleteStatus(\"Organization Deletion Complete\");\r\n setIsOrgDeleting(false);\r\n }\r\n\r\n const updateSelected = (e, id) => {\r\n orgsArray.value.forEach(o => {\r\n o.selected = false;\r\n });\r\n let item = orgsArray.getById(id);\r\n item.selected = e.target.checked;\r\n orgsArray.replace(id, item);\r\n\r\n if (orgsArray.value.filter(x => x.selected).length === 1) {\r\n props.updateSelectedOrg(orgsArray.value.filter(x => x.selected)[0]);\r\n }\r\n else {\r\n props.updateSelectedOrg(null);\r\n }\r\n };\r\n\r\n const uncheckInactive = (id) => {\r\n let item = orgsArray.getById(id);\r\n item.selected = false;\r\n orgsArray.replace(id, item);\r\n\r\n if (orgsArray.value.filter(x => x.selected).length === 1) {\r\n props.updateSelectedOrg(orgsArray.value.filter(x => x.selected)[0]);\r\n }\r\n else {\r\n props.updateSelectedOrg(null);\r\n }\r\n }\r\n\r\n const singleItemSelected = () => {\r\n return orgsArray.value.filter(x => x.selected === true).length === 1;\r\n }\r\n\r\n const itemsAreSelected = () => {\r\n return orgsArray.value.filter(x => x.selected === true).length > 0;\r\n }\r\n\r\n const orgTableItems = orgsArray.value.map(org => {\r\n return (\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Organizations\r\n \r\n \r\n \r\n Edit Org}>\r\n \r\n handleEdit(e)}>\r\n {' '}\r\n \r\n \r\n \r\n Delete Org}>\r\n \r\n handleShowDeleteModal(e)}\r\n disabled={!itemsAreSelected()}>\r\n {' '}\r\n \r\n \r\n \r\n Add Org}>\r\n \r\n handleAddClicked(e)}>\r\n {' '}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {orgTableItems}\r\n \r\n \r\n
OrgActive
\r\n
\r\n
\r\n \r\n \r\n tryCloseDeletingModal(e)} >\r\n \r\n \r\n Deleting Organization\r\n \r\n \r\n \r\n \r\n {itemDeleteStatus}\r\n \r\n \r\n \r\n \r\n tryCloseDeletingModal(e)}>\r\n {isOrgDeleting &&\r\n }\r\n {!isOrgDeleting ? \"Close\" : ' Deleting Organization, please wait...'}\r\n {' '}\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\nexport default Organizations;","import React from 'react';\r\n\r\nfunction AppraisalTableItem(props){\r\n const chkBoxId = `${props.appraisal.id}_chkBox`;\r\n const nameLabelId = `${props.appraisal.id}_nameLabel`;\r\n const viewLabelId = `${props.appraisal.id}_levelLabel`;\r\n const colId = `${props.appraisal.id}_organizationLabel`;\r\n const editKey = `${props.appraisal.id}_editButton`;\r\n const interviewKey = `${props.appraisal.id}_interviewButton`;\r\n\r\n return (\r\n \r\n \r\n props.updateSelected(e, props.appraisal.id)}\r\n checked={props.appraisal.selected}/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default AppraisalTableItem;","import React from 'react';\r\nimport { Button } from 'react-bootstrap';\r\nimport './DeleteableListItem.css';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTrash, faEdit } from '@fortawesome/free-solid-svg-icons'\r\n\r\nfunction DeleteableListItem(props) {\r\n const listItemKey = props.id + \"listItem\";\r\n const labelKey = props.id + \"label\";\r\n const buttonKey = props.id + \"button\";\r\n const editButtonKey = props.id + \"editButton\";\r\n\r\n return (\r\n
  • \r\n \r\n props.onEditClicked({id:props.id, name:props.title})}>\r\n \r\n \r\n props.onDeleteClicked(props.id)}>\r\n \r\n \r\n
  • \r\n )\r\n}\r\n\r\nexport default DeleteableListItem;","import React, { useState } from 'react';\r\nimport { FormGroup, FormLabel, FormControl, FormCheck, Button, ListGroup, Modal, Row, Col } from 'react-bootstrap';\r\nimport uuid from 'uuid';\r\nimport DeleteableListItem from './DeleteableListItem';\r\nimport './ApprisalStateMachineBodies.css';\r\nimport '../modal.css';\r\nimport styled from 'styled-components';\r\nimport ConfirmDeleteModal from '../presenters/ConfirmDeleteModal';\r\n\r\nconst Styles = styled.div`\r\n\r\n.custom-btn {\r\n background:rgb(0, 168, 168);\r\n color: white;\r\n border: none; \r\n padding: 0; \r\n } \r\n`;\r\n\r\nconst APPRAISAL_CONSTANTS = {\r\n NAME_ERROR_TOOLTIP: \"Appraisal Name required\",\r\n CLASHING_APPRAISAL_TOOLTIP: \"Appraisal already exists\",\r\n ORG_ERROR_TOOLTIP: \"Organization must be selected\",\r\n LEVEL_ERROR_TOOLTIP: \"Maturity Level must be selected\",\r\n PROJECT_ERROR_TOOLTIP: \"At least one Project required\",\r\n PROJECT_NAME_CLASH_TOOLTIP: \"Project already exists\",\r\n PROJECT_NAME_ERROR_TOOLTIP: \"Invalid project name\",\r\n ADD_PROJECT_TOOLTIP: \"Add Project to Appraisal\"\r\n};\r\n\r\nconst DELETE_PROJECT_QUESTION = \"Delete the selected project? This action will result in loss of data.\";\r\nconst LOWER_ML_QUESTION = \"Are you sure you want to lower the maturity level? This action will result in loss of data.\";\r\nconst REMOVE_SELECTED_PAS_QUESTION = \"Are you sure you want to remove the selected practice area(s)? This action will result in loss of data.\";\r\nconst REMOVE_ALL_PAS_QUESTION = \"Are you sure you want to remove all practice areas? This action will result in loss of data.\";\r\n\r\nfunction AppraisalStateOne(props) {\r\n\r\n const [editProjectError, setEditProjectError] = useState(false);\r\n const [newProjectName, setNewProjectName] = useState(\"\");\r\n const [showEditProjectModal, setShowEditProjectModal] = useState(false);\r\n const [showDeleteProjectModal, setShowDeleteProjectModal] = useState(false);\r\n const [showLowerMLModal, setShowLowerMLModal] = useState(false);\r\n const [projectSelectedForEdit, setProjectSelectedForEdit] = useState(false);\r\n const [projectSelectedForDeletion, setProjectSelectedForDeletion] = useState(false);\r\n const [currentMLForChange, setCurrentMLForChange] = useState(false);\r\n const [selectedMLForChange, setSelectedMLForChange] = useState(false);\r\n const autoFocus = React.createRef();\r\n\r\n const handleFormCheckboxesChanged = (e) => {\r\n let { name, checked } = e.target;\r\n if (name === \"devSelected\" || name === \"svcSelected\") {\r\n props.setFormState(prevState => ({\r\n ...prevState, devSelected: (checked ^ prevState.devSelected),\r\n svcSelected: (checked ^ prevState.svcSelected)\r\n }));\r\n switch (name) {\r\n case \"devSelected\":\r\n for (let i = 0; i < props.projects.value.length; i++) {\r\n let project = props.projects.value[i];\r\n const filteredPracticeAreas = project.practiceAreas.filter(pa => !pa.SvcExclusive);\r\n project.practiceAreas = filteredPracticeAreas;\r\n props.projects.replace(project.id, project);\r\n }\r\n break;\r\n case \"svcSelected\":\r\n for (let i = 0; i < props.projects.value.length; i++) {\r\n let project = props.projects.value[i];\r\n const filteredPracticeAreas = project.practiceAreas.filter(pa => !pa.DevExclusive);\r\n project.practiceAreas = filteredPracticeAreas;\r\n props.projects.replace(project.id, project);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n } \r\n }\r\n\r\n const handleNameChanged = (value) => {\r\n let inError = props.formState.nameError;\r\n let tooltip = props.formState.nameTooltip;\r\n let clashes = props.checkAppraisalClashes(value, null);\r\n if (value === \"\") {\r\n inError = true;\r\n tooltip = APPRAISAL_CONSTANTS.NAME_ERROR_TOOLTIP;\r\n }\r\n if (clashes) {\r\n inError = true;\r\n tooltip = APPRAISAL_CONSTANTS.CLASHING_APPRAISAL_TOOLTIP;\r\n }\r\n else {\r\n inError = false;\r\n tooltip = ''\r\n }\r\n props.setFormState(prevState => ({ ...prevState, name: value, nameError: inError, nameTooltip: tooltip, organizationError: clashes, organizationTooltip: clashes ? APPRAISAL_CONSTANTS.CLASHING_APPRAISAL_TOOLTIP : \"\" }));\r\n }\r\n\r\n const handleLevelChanged = (value) => {\r\n let currentLevel = props.formState.level[props.formState.level.length - 1];\r\n let selectedLevel = value[value.length - 1];\r\n if (currentLevel > selectedLevel) {\r\n setSelectedMLForChange(value);\r\n setCurrentMLForChange(props.formState.level);\r\n setShowLowerMLModal(true);\r\n props.toggleModalOpen();\r\n }\r\n else {\r\n props.setFormState(prevState => ({ ...prevState, level: value, levelError: false, levelTooltip: '' }));\r\n }\r\n }\r\n\r\n const handleLowerML = () => {\r\n let currentLevel = currentMLForChange[currentMLForChange.length - 1];\r\n let selectedLevel = selectedMLForChange[selectedMLForChange.length - 1];\r\n\r\n if (selectedLevel < currentLevel) {\r\n props.handleMaturityLevelDowngrade(currentLevel, selectedLevel);\r\n }\r\n props.setFormState(prevState => ({ ...prevState, level: selectedMLForChange, levelError: false, levelTooltip: '' }));\r\n setShowLowerMLModal(false);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const handleOrgChanged = (value) => {\r\n const clashes = props.checkAppraisalClashes(null, value);\r\n const orgTooltip = clashes ? APPRAISAL_CONSTANTS.CLASHING_APPRAISAL_TOOLTIP : \"\";\r\n const nameError = props.formState.name === \"\" || clashes;\r\n const nameTooltip = clashes ? APPRAISAL_CONSTANTS.CLASHING_APPRAISAL_TOOLTIP : \"\";\r\n props.setFormState(prevState => ({ ...prevState, organization: value, organizationError: clashes, organizationTooltip: orgTooltip, nameError: nameError, nameTooltip: nameTooltip }));\r\n }\r\n\r\n const handleProjectNameChanged = (value) => {\r\n let inError = props.formState.projectNameInError;\r\n let tooltip = \"\";\r\n const clashes = props.projects.value.filter(p => p.name === value);\r\n if (clashes.length > 0) {\r\n inError = true;\r\n tooltip = APPRAISAL_CONSTANTS.PROJECT_NAME_CLASH_TOOLTIP\r\n }\r\n if (value.length > 0 && value.trim().length === 0) {\r\n inError = true;\r\n tooltip = APPRAISAL_CONSTANTS.PROJECT_NAME_ERROR_TOOLTIP\r\n }\r\n if(containsOrgRollup(value.toLowerCase().trim())){\r\n inError = true;\r\n tooltip = APPRAISAL_CONSTANTS.PROJECT_NAME_ERROR_TOOLTIP\r\n }\r\n props.setFormState(prevState => ({ ...prevState, projectName: value, projectNameError: inError, projectNameTooltip: tooltip }));\r\n }\r\n\r\n const containsOrgRollup = (value) => {\r\n let pattern = /(org[A-Za-z0-9\\-\\s]*roll[\\-\\s]*up)/g;\r\n return value.match(pattern) ? true : false;\r\n }\r\n\r\n const addEnabled = () => {\r\n const clashes = props.projects.value.filter(p => p.name === props.formState.projectName);\r\n return props.formState.projectName.trim().length > 0 && clashes.length === 0 \r\n && !containsOrgRollup(props.formState.projectName.toLowerCase().trim());\r\n }\r\n\r\n const handleProjectAdded = () => {\r\n const newProject = {\r\n id: uuid.v1(),\r\n name: props.formState.projectName,\r\n practiceAreas: []\r\n };\r\n props.projects.add(newProject);\r\n props.setFormState(prevState => ({\r\n ...prevState, projectName: '', projectError: false,\r\n projectTooltip: '', projectNameError: false, projectNameTooltip: ''\r\n }));\r\n }\r\n\r\n const closeLowerMLModal = () => {\r\n setShowLowerMLModal(false);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const handleShowEditProjectModal = (project) => {\r\n if (hasAnyModalOpen()) {\r\n return;\r\n }\r\n setNewProjectName(\"\");\r\n setProjectSelectedForEdit(project);\r\n setShowEditProjectModal(true);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const handleProjectNameFieldChanged = (value) => {\r\n\r\n setNewProjectName(value);\r\n\r\n let hasNameCollision = false;\r\n for (let i = 0; i < props.projects.value.length; i++) {\r\n if (value.toLowerCase() === props.projects.value[i].name.toLowerCase()) {\r\n hasNameCollision = true;\r\n }\r\n }\r\n\r\n if (value.toString() === \"\" || hasNameCollision) {\r\n setEditProjectError(true);\r\n }\r\n else if (containsOrgRollup(value.toLowerCase())){\r\n setEditProjectError(true);\r\n }\r\n else {\r\n setEditProjectError(false);\r\n }\r\n }\r\n\r\n const confirmProjectEdit = () => {\r\n if (newProjectName !== \"\" && !editProjectError) {\r\n\r\n //this case has a valid name change\r\n if (!editProjectError) {\r\n for (let i = 0; i < props.projects.value.length; i++) {\r\n if (props.projects.value[i].id === projectSelectedForEdit.id) {\r\n props.projects.value[i].name = newProjectName;\r\n\r\n props.setFormState(prevState => ({\r\n ...prevState, projectName: '', projectError: false,\r\n projectTooltip: '', projectNameError: false, projectNameTooltip: ''\r\n }));\r\n }\r\n }\r\n tryCloseEditProjectModal();\r\n }\r\n\r\n }\r\n else {\r\n setEditProjectError(true);\r\n }\r\n }\r\n\r\n const tryCloseEditProjectModal = () => {\r\n setShowEditProjectModal(false);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const handleShowDeleteProjectModal = (projectId) => {\r\n if (hasAnyModalOpen()) {\r\n return;\r\n }\r\n setProjectSelectedForDeletion(projectId);\r\n setShowDeleteProjectModal(true);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const closeDeleteProjectModal = () => {\r\n setShowDeleteProjectModal(false);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const handleProjectDeleted = () => {\r\n setShowDeleteProjectModal(false);\r\n props.projects.removeById(projectSelectedForDeletion);\r\n //The call above does not actually mutate the value of the projects list until this function falls out of scope,\r\n // hence the check for errors at one instead of zero.\r\n if (props.projects.value.length === 1) {\r\n props.setFormState(prevState => ({\r\n ...prevState, projectError: true,\r\n projectTooltip: APPRAISAL_CONSTANTS.PROJECT_ERROR_TOOLTIP,\r\n projectNameError: false, projectNameTooltip: ''\r\n }));\r\n }\r\n props.toggleModalOpen();\r\n }\r\n\r\n const handleProjectKeyPress = (e) => {\r\n var code = e.keyCode || e.which;\r\n if (code === 13) {\r\n if (addEnabled()) {\r\n handleProjectAdded();\r\n }\r\n }\r\n }\r\n\r\n const hasAnyModalOpen = () => {\r\n return showDeleteProjectModal || showLowerMLModal || props.modalOpen;\r\n }\r\n\r\n const projectItems = props.projects.value.map(p => {\r\n return (\r\n \r\n )\r\n });\r\n\r\n const availableOrgs = props.orgs.filter(o => o.isActive === true).map(o => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n const placeholderOrgOption = (\r\n \r\n );\r\n\r\n const placeholderLevelOption = (\r\n \r\n );\r\n\r\n const selectedOrg = props.formState.organization.length > 0 ? props.formState.organization : placeholderOrgOption.props.value;\r\n const selectedLevel = props.formState.level.length > 0 ? props.formState.level : placeholderLevelOption.props.value;\r\n const errorStyle = {\r\n border: \"1px solid red\",\r\n color: 'dimgray'\r\n };\r\n const defaultStyle = {\r\n color: 'dimgray'\r\n };\r\n\r\n const editProjectTitle = editProjectError ? \"Invalid project name\" : \"\";\r\n const editStyle = editProjectError ? {\r\n borderBottomColor: 'red',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white'\r\n }\r\n : {\r\n borderBottomColor: 'dimgray',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white'\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n handleNameChanged(e.target.value)}\r\n style={props.formState.nameError ? errorStyle : defaultStyle}\r\n title={props.formState.nameTooltip}\r\n />\r\n \r\n \r\n handleOrgChanged(e.target.value)}\r\n value={selectedOrg} >\r\n {placeholderOrgOption}\r\n {availableOrgs}\r\n \r\n \r\n \r\n handleFormCheckboxesChanged(e)}\r\n checked={props.formState.devSelected}\r\n className=\"radioButtons\" style={{ color: 'dimgray' }} label='Development(DEV)'>\r\n {' '}\r\n handleFormCheckboxesChanged(e)}\r\n checked={props.formState.svcSelected}\r\n className=\"radioButtons\" style={{ color: 'dimgray' }} label='Services(SVC)'>\r\n \r\n \r\n handleLevelChanged(e.target.value)}\r\n value={selectedLevel}>\r\n {placeholderLevelOption}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleProjectNameChanged(e.target.value)}\r\n style={props.formState.projectNameError ? errorStyle : defaultStyle}\r\n title={props.formState.projectNameTooltip}\r\n value={props.formState.projectName}\r\n placeholder=\"Project Name\"\r\n name=\"projectName\"\r\n onKeyPress={(e) => handleProjectKeyPress(e)}\r\n className=\"addTextBox\" />\r\n \r\n \r\n {projectItems}\r\n \r\n \r\n \r\n autoFocus.current.focus()}>\r\n \r\n \r\n Change Project Name\r\n \r\n \r\n \r\n \r\n Current Name: {projectSelectedForEdit.name}\r\n



    \r\n \r\n
    \r\n handleProjectNameFieldChanged(e.target.value)}\r\n placeholder='New Project Name' />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Confirm{' '}\r\n Cancel{' '}\r\n \r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nfunction AppraisalStateTwo(props) {\r\n\r\n const [showRemoveSelectedPAsModal, setShowRemoveSelectedPAsModal] = useState(false);\r\n const [showRemoveAllPAsModal, setShowRemoveAllPAsModal] = useState(false);\r\n\r\n const handleProjectSelectionChanged = (projectId) => {\r\n const newProject = props.projects.getById(projectId);\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n const filtered = props.getInitialPracticeAreas(projectId).filter(pa => {\r\n return newProject.practiceAreas.filter(x => x.Optional === false).find(ppa => ppa.Id === pa.Id) === undefined\r\n });\r\n props.practiceAreas.setValue(filtered);\r\n }\r\n\r\n const handleAvailablePracticeAreaSelectionChanged = (e) => {\r\n const options = e.target.options;\r\n let availableSelected = props.practiceAreas.value.slice();\r\n for (let i = 0; i < options.length; i++) {\r\n availableSelected[i].SelectedForAdd = options[i].selected;\r\n }\r\n props.practiceAreas.setValue(availableSelected);\r\n }\r\n\r\n const handleAddSelectedPAsToProject = () => {\r\n const selectedPAs = props.practiceAreas.value.filter(apa => apa.SelectedForAdd === true)\r\n .map(pa => ({ ...pa, SelectedForAdd: false }));\r\n const remainingPAs = props.practiceAreas.value.filter(apa => apa.SelectedForAdd === false).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n newProject.practiceAreas = newProject.practiceAreas.concat(selectedPAs).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n props.projects.replace(newProject.id, newProject);\r\n props.practiceAreas.setValue(remainingPAs);\r\n }\r\n\r\n const addSelectedPAsToProjectDisabled = () => {\r\n return props.practiceAreas.value.find(apa => apa.SelectedForAdd === true);\r\n }\r\n\r\n const addAllPAsToPRojectDisabled = () => {\r\n return props.practiceAreas.value.length > 0;\r\n }\r\n\r\n const handleAddAllPAsToProject = () => {\r\n const practices = props.practiceAreas.value.filter(x => x.Optional === false).map(pa => ({ ...pa, SelectedForAdd: false }));\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n newProject.practiceAreas = newProject.practiceAreas.concat(practices).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });;\r\n\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n props.projects.replace(newProject.id, newProject);\r\n props.practiceAreas.clear();\r\n }\r\n\r\n const removedSelectedPAsFromProjectDisabled = () => {\r\n return props.formState.selectedProject.practiceAreas.find(pa => pa.SelectedForRemove === true);\r\n }\r\n\r\n const removeAllPAsFromProjectDisabled = () => {\r\n return props.formState.selectedProject.practiceAreas.filter(pa => !pa.Optional).length > 0;\r\n }\r\n\r\n const handleProjectPracticeAreaSelectionChanged = (e) => {\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n const options = e.target.options;\r\n for (let i = 0; i < options.length; i++) {\r\n newProject.practiceAreas.find(x => x.Id === options[i].value).SelectedForRemove = options[i].selected;\r\n }\r\n\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n }\r\n\r\n const closeRemovePAModal = () => {\r\n setShowRemoveSelectedPAsModal(false);\r\n setShowRemoveAllPAsModal(false);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const removeSelectedPAsClicked = () => {\r\n setShowRemoveSelectedPAsModal(true);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const removeAllPAsClicked = () => {\r\n setShowRemoveAllPAsModal(true);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const handleRemoveSelectedPAsFromProject = () => {\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n const removing = newProject.practiceAreas.filter(pa => pa.SelectedForRemove === true)\r\n .map(pa => ({ ...pa, SelectedForRemove: false }));\r\n const remaining = newProject.practiceAreas.filter(pa => pa.SelectedForRemove === false).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n newProject.practiceAreas = remaining;\r\n props.practiceAreas.setValue(prevState => {\r\n return prevState.concat(removing).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n });\r\n props.projects.replace(newProject.id, newProject);\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n closeRemovePAModal();\r\n }\r\n\r\n const handleRemoveAllRequiredPAsFromProject = () => {\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n let removing = newProject.practiceAreas.filter(x => x.Optional === false);\r\n newProject.practiceAreas = newProject.practiceAreas.filter( function(x){\r\n return !removing.includes(x);\r\n });\r\n removing = removing.map(pa => ({ ...pa, SelectedForRemove: false }));\r\n \r\n props.practiceAreas.setValue(prevState => {\r\n return prevState.concat(removing).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n });\r\n\r\n props.projects.replace(newProject.id, newProject);\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n closeRemovePAModal();\r\n }\r\n\r\n const projectOptions = props.projects.value.map(p => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n const mappedStyle = {\r\n color: \"green\"\r\n }\r\n\r\n const defaultStyle = {\r\n\r\n }\r\n\r\n const availablePracticeAreas = props.practiceAreas.value.map(pa => {\r\n return (\r\n \r\n )\r\n });\r\n\r\n const projectPracticeAreas = props.formState.selectedProject.practiceAreas.filter(x => x.Optional === false).map(pa => {\r\n return (\r\n \r\n )\r\n }).sort((a, b) => {\r\n if (a.key > b.key) {\r\n return 1;\r\n } else if (a.key === b.key) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });;\r\n\r\n const singlebutton = '<';\r\n const doubleButton = '<<';\r\n\r\n const singleBackButton = '>';\r\n const doubleBackButton = '>>';\r\n\r\n const hasAnyModalOpen = () => {\r\n return showRemoveAllPAsModal || showRemoveSelectedPAsModal || props.modalOpen;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Projects\r\n handleProjectSelectionChanged(e.target.value)}>\r\n {projectOptions}\r\n \r\n \r\n Project Assigned Required Practice Areas\r\n Required Practice Areas\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nfunction AppraisalStateThree(props) {\r\n\r\n const [showRemoveSelectedPAsModal, setShowRemoveSelectedPAsModal] = useState(false);\r\n const [showRemoveAllPAsModal, setShowRemoveAllPAsModal] = useState(false);\r\n\r\n const handleProjectSelectionChanged = (projectId) => {\r\n const newProject = props.projects.getById(projectId);\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n const filtered = props.getInitialOptionalPracticeAreas(projectId).filter(pa => {\r\n return newProject.practiceAreas.find(ppa => ppa.Id === pa.Id) === undefined\r\n });\r\n props.practiceAreas.setValue(filtered);\r\n }\r\n\r\n const handleAvailablePracticeAreaSelectionChanged = (e) => {\r\n const options = e.target.options;\r\n let availableSelected = props.practiceAreas.value.slice();\r\n for (let i = 0; i < options.length; i++) {\r\n availableSelected[i].SelectedForAdd = options[i].selected;\r\n }\r\n props.practiceAreas.setValue(availableSelected);\r\n }\r\n\r\n const handleAddSelectedPAsToProject = () => {\r\n const selectedPAs = props.practiceAreas.value.filter(apa => apa.SelectedForAdd === true)\r\n .map(pa => ({ ...pa, SelectedForAdd: false }));\r\n const remainingPAs = props.practiceAreas.value.filter(apa => apa.SelectedForAdd === false).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n newProject.practiceAreas = newProject.practiceAreas.concat(selectedPAs).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n props.projects.replace(newProject.id, newProject);\r\n props.practiceAreas.setValue(remainingPAs);\r\n }\r\n\r\n const addSelectedPAsToProjectDisabled = () => {\r\n return props.practiceAreas.value.find(apa => apa.SelectedForAdd === true);\r\n }\r\n\r\n const addAllPAsToPRojectDisabled = () => {\r\n return props.practiceAreas.value.length > 0;\r\n }\r\n\r\n const handleAddAllPAsToProject = () => {\r\n const practices = props.practiceAreas.value.filter(x => x.Optional === true).map(pa => ({ ...pa, SelectedForAdd: false}));\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n newProject.practiceAreas = newProject.practiceAreas.concat(practices).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });;\r\n\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n props.projects.replace(newProject.id, newProject);\r\n props.practiceAreas.clear();\r\n }\r\n\r\n const removedSelectedPAsFromProjectDisabled = () => {\r\n return props.formState.selectedProject.practiceAreas.find(pa => pa.SelectedForRemove === true);\r\n }\r\n\r\n const removeAllPAsFromProjectDisabled = () => {\r\n return props.formState.selectedProject.practiceAreas.filter(pa => pa.Optional).length > 0;\r\n }\r\n\r\n const handleProjectPracticeAreaSelectionChanged = (e) => {\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n const options = e.target.options;\r\n for (let i = 0; i < options.length; i++) {\r\n newProject.practiceAreas.find(x => x.Id === options[i].value).SelectedForRemove = options[i].selected;\r\n }\r\n\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n }\r\n\r\n const closeRemovePAModal = () => {\r\n setShowRemoveSelectedPAsModal(false);\r\n setShowRemoveAllPAsModal(false);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const removeSelectedPAsClicked = () => {\r\n setShowRemoveSelectedPAsModal(true);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const removeAllPAsClicked = () => {\r\n setShowRemoveAllPAsModal(true);\r\n props.toggleModalOpen();\r\n }\r\n\r\n const handleRemoveSelectedPAsFromProject = () => {\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n const removing = newProject.practiceAreas.filter(pa => pa.SelectedForRemove === true)\r\n .map(pa => ({ ...pa, SelectedForRemove: false }));\r\n const remaining = newProject.practiceAreas.filter(pa => pa.SelectedForRemove === false).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n newProject.practiceAreas = remaining;\r\n props.practiceAreas.setValue(prevState => {\r\n return prevState.concat(removing).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n });\r\n props.projects.replace(newProject.id, newProject);\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n closeRemovePAModal();\r\n }\r\n\r\n const handleRemoveAllOptionalPAsFromProject = () => {\r\n let newProject = Object.assign({}, props.formState.selectedProject);\r\n let removing = newProject.practiceAreas.filter(x => x.Optional === true);\r\n newProject.practiceAreas = newProject.practiceAreas.filter( function(x){\r\n return !removing.includes(x);\r\n });\r\n removing = removing.map(pa => ({ ...pa, SelectedForRemove: false }));\r\n \r\n props.practiceAreas.setValue(prevState => {\r\n return prevState.concat(removing).sort((a, b) => {\r\n if (a.Id > b.Id) {\r\n return 1;\r\n } else if (a.Id === b.Id) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n });\r\n\r\n props.projects.replace(newProject.id, newProject);\r\n props.setFormState(prevState => ({ ...prevState, selectedProject: newProject }));\r\n closeRemovePAModal();\r\n }\r\n\r\n const projectOptions = props.projects.value.map(p => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n const mappedStyle = {\r\n color: \"green\"\r\n }\r\n\r\n const defaultStyle = {\r\n\r\n }\r\n\r\n const availablePracticeAreas = props.practiceAreas.value.map(pa => {\r\n return (\r\n \r\n )\r\n });\r\n\r\n const projectPracticeAreas = props.formState.selectedProject.practiceAreas.filter(x => x.Optional === true).map(pa => {\r\n return (\r\n \r\n )\r\n }).sort((a, b) => {\r\n if (a.key > b.key) {\r\n return 1;\r\n } else if (a.key === b.key) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n });;\r\n\r\n const singlebutton = '<';\r\n const doubleButton = '<<';\r\n\r\n const singleBackButton = '>';\r\n const doubleBackButton = '>>';\r\n\r\n const hasAnyModalOpen = () => {\r\n return showRemoveAllPAsModal || showRemoveSelectedPAsModal || props.modalOpen;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Projects\r\n handleProjectSelectionChanged(e.target.value)}>\r\n {projectOptions}\r\n \r\n \r\n Project Assigned Optional Practice Areas\r\n Optional Practice Areas\r\n
    \r\n \r\n \r\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 { AppraisalStateOne, AppraisalStateTwo, AppraisalStateThree, APPRAISAL_CONSTANTS }","import React from \"react\";\r\nimport { Button, Spinner } from \"react-bootstrap\";\r\nimport \"./LoaderButton.css\";\r\n\r\nexport default ({\r\n isLoading,\r\n text,\r\n loadingText,\r\n className = \"\",\r\n disabled = false,\r\n ...props\r\n}) =>\r\n \r\n {isLoading &&\r\n }\r\n {/* {isLoading && } */}\r\n {!isLoading ? text : loadingText}\r\n ","import React from 'react';\r\nimport { FormControl } from 'react-bootstrap';\r\n\r\nfunction InterviewSessionTableItem(props) {\r\n const chkBoxId = props.interviewSession.id + 'chkbox';\r\n const intervieweeKey = props.interviewSession.id + 'intervieweeInput';\r\n const hoursKey = props.interviewSession.id + 'hoursInput';\r\n const minutesKey = props.interviewSession.id + 'minutesInput';\r\n\r\n const errorStyle = {\r\n border: \"1px solid red\"\r\n };\r\n const errorTitle = \"An interview session must have a name\";\r\n const defaultStyle = {}\r\n\r\n const getHours = () => {\r\n let parts = props.interviewSession.hours.toString().split('.');\r\n return Number(parts[0]);\r\n }\r\n const hoursValue = getHours();\r\n\r\n const getMinutesFraction = () => {\r\n let minutesFraction = Number(props.interviewSession.hours.toString().split('.')[1]);\r\n if(isNaN(minutesFraction)){\r\n return 0;\r\n }\r\n else{\r\n return minutesFraction;\r\n }\r\n }\r\n\r\n const getMinutes = () => {\r\n let minutesFraction = getMinutesFraction();\r\n let minutes = \"zero\";\r\n switch(minutesFraction){\r\n case 0:\r\n minutes = \"zero\";\r\n break;\r\n case 25:\r\n minutes = \"fifteen\";\r\n break;\r\n case 5:\r\n minutes = \"thirty\";\r\n break;\r\n case 75:\r\n minutes = \"fortyfive\";\r\n break;\r\n default:\r\n break;\r\n }\r\n return minutes;\r\n }\r\n const minutesValue = getMinutes();\r\n\r\n const onHoursChanged = (value) => {\r\n let totalHours = Number(value + \".\" + getMinutesFraction());\r\n props.updateState(totalHours, \"hours\", props.interviewSession.id)\r\n }\r\n\r\n const onMinutesChanged = (value) => {\r\n let hoursDecimal = 0;\r\n switch(value){\r\n case \"zero\":\r\n hoursDecimal = 0;\r\n break;\r\n case \"fifteen\":\r\n hoursDecimal = 0.25\r\n break;\r\n case \"thirty\":\r\n hoursDecimal = 0.5\r\n break;\r\n case \"fortyfive\":\r\n hoursDecimal = 0.75\r\n break;\r\n default: break;\r\n }\r\n let totalHours = Number(hoursValue) + hoursDecimal;\r\n props.updateState(totalHours, \"hours\", props.interviewSession.id)\r\n }\r\n\r\n return (\r\n \r\n \r\n props.updateSelected(e, props.interviewSession.id)} disabled={props.modalOpen}\r\n checked={props.interviewSession.selected} />\r\n \r\n \r\n props.updateState(e.target.value, e.target.name, props.interviewSession.id)}\r\n value={props.interviewSession.interviewee} autoFocus\r\n style={props.interviewSession.interviewee.length === 0 ? errorStyle : defaultStyle}\r\n title={props.interviewSession.interviewee.length === 0 ? errorTitle : \"\"} />\r\n \r\n \r\n onHoursChanged(e.target.value)} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onMinutesChanged(e.target.value)} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default InterviewSessionTableItem;","import React, { useState } from 'react';\r\nimport { Modal, Table, Button, Row, ButtonToolbar, OverlayTrigger, Tooltip, FormText } from 'react-bootstrap';\r\nimport LoaderButton from '../presenters/LoaderButton';\r\nimport { API } from 'aws-amplify';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport ConfirmDeleteModal from '../presenters/ConfirmDeleteModal';\r\nimport InterviewSessionTableItem from '../presenters/InterviewSessionTableItem';\r\nimport uuid from 'uuid';\r\nimport './InterviewSessionsModal.css';\r\nimport styled from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faPlusCircle, faMinusCircle } from '@fortawesome/free-solid-svg-icons'\r\n\r\nconst DELETE_QUESTION = \"Delete the selected interview session(s)?\";\r\nconst Styles = styled.div`\r\n\r\n.custom-btn {\r\n background:rgb(0, 168, 168);\r\n color: white;\r\n border: none; \r\n padding: 0; \r\n } \r\n`;\r\n\r\nfunction getEditBody(beforeEdit, afterEdit) {\r\n const filteredAfter = afterEdit.filter(is => is.interviewee.length > 0 && is.hours > 0);\r\n const filteredBefore = beforeEdit.filter(is => is.interviewee.length > 0 && is.hours > 0);\r\n\r\n let body = {};\r\n\r\n const added = filteredAfter.filter(is => {\r\n return beforeEdit.find(bis => bis.id === is.id) === undefined;\r\n })\r\n if (added.length > 0) {\r\n body = {\r\n ...body,\r\n added: added\r\n };\r\n }\r\n\r\n const deleted = filteredBefore.filter(is => {\r\n return afterEdit.find(bis => bis.id === is.id) === undefined;\r\n })\r\n if (deleted.length > 0) {\r\n body = {\r\n ...body,\r\n deleted: deleted\r\n };\r\n }\r\n\r\n let modified = afterEdit.filter(is => is.modified === true);\r\n if (modified.length > 0) {\r\n body = {\r\n ...body,\r\n modified: modified.map(is => {\r\n return {\r\n interview_session_id: is.id,\r\n interviewee: is.interviewee,\r\n hours: is.hours\r\n };\r\n })\r\n }\r\n }\r\n return body;\r\n}\r\n\r\nfunction InterviewSessionsModal(props) {\r\n const [okLoading, setOkLoading] = useState(false);\r\n const [hasError, setHasError] = useState(false);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n\r\n const enabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'auto'\r\n }\r\n\r\n const disabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'none'\r\n }\r\n\r\n const handleAddInterviewSession = () => {\r\n const newIs = {\r\n id: uuid.v1(),\r\n hours: 1,\r\n interviewee: '',\r\n added: true\r\n }\r\n props.interviewSessions.add(newIs)\r\n setHasError(true);\r\n }\r\n\r\n const handleShowDeleteModal = (event) => {\r\n setShowDeleteModal(true);\r\n }\r\n\r\n const closeDeleteModal = () => {\r\n setShowDeleteModal(false);\r\n }\r\n \r\n const handleDeleteInterviewSession = () => {\r\n setShowDeleteModal(false);\r\n const items = props.interviewSessions.value.filter(e => e.selected === true);\r\n for (let i = 0; i < items.length; i++) {\r\n props.interviewSessions.removeById(items[i].id);\r\n }\r\n\r\n //if something is being deleted validate the fields without including it\r\n props.interviewSessions.value.forEach(is => {\r\n if(is.interviewee === '' || is.hours.toString() === \"0\"){\r\n let isBeingDeleted = items.filter(x => x.id === is.id).length === 1;\r\n if(!isBeingDeleted){\r\n setHasError(true);\r\n }\r\n }\r\n else{\r\n setHasError(false);\r\n }\r\n });\r\n }\r\n\r\n const validateFields = () => {\r\n setHasError(false);\r\n props.interviewSessions.value.forEach(is => {\r\n if(is.interviewee === '' || is.hours === 0){\r\n setHasError(true);\r\n }\r\n });\r\n }\r\n\r\n const updateInterviewSessionState = (value, name, id) => {\r\n let target = props.interviewSessions.getById(id);\r\n if (name === \"hours\") {\r\n target[name] = Number(value);\r\n target = { ...target, modified: true };\r\n props.interviewSessions.replace(id, target);\r\n } else {\r\n target[name] = value;\r\n target = { ...target, modified: true };\r\n props.interviewSessions.replace(id, target);\r\n }\r\n validateFields();\r\n }\r\n\r\n const validateAdd = (interviewSessions) => {\r\n return interviewSessions.filter(is => is.interviewee.length === 0).length > 0;\r\n }\r\n\r\n const handleOkClicked = async () => {\r\n if (!validateAdd(props.interviewSessions.value)) {\r\n setOkLoading(true);\r\n const body = getEditBody(props.snapshot, props.interviewSessions.value);\r\n if (Object.keys(body).length !== 0) {\r\n try {\r\n await API.put(Constants.API_PATH, `${Constants.INTERVIEW_PATH}/${props.appraisalId}`, await getDefaultAPIHeaders(body));\r\n \r\n //if sessions were deleted, perform database clean up\r\n if(body.deleted.length > 0){\r\n await cleanInterviewQuestions(body.deleted);\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n setOkLoading(false);\r\n props.close();\r\n }\r\n }\r\n\r\n const cleanInterviewQuestions = async (deletedSessions) => {\r\n for(let i = 0; i < deletedSessions.length; i++){\r\n let affectedQuestions = await getInterviewQuestionsBySession(deletedSessions[i].id);\r\n\r\n for(let j = 0; j < affectedQuestions.length; j++){\r\n\r\n let updatedSessions = affectedQuestions[j].sessions.filter( x => x !== deletedSessions[i].id)\r\n\r\n //if there are no sessions left, delete the question\r\n if(updatedSessions.length === 0){\r\n let body = {\r\n appraisal_id: props.appraisalId,\r\n node_id: affectedQuestions[j].nodeId,\r\n project_id: affectedQuestions[j].projectId,\r\n interview_question_id: affectedQuestions[j].id,\r\n question: affectedQuestions[j].question,\r\n sessions: updatedSessions,\r\n revision_number: affectedQuestions[j].revNumber\r\n };\r\n try {\r\n await API.del(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body));\r\n } catch (e) {\r\n console.log(\"Failure deleting interview session: \" + e);\r\n }\r\n }\r\n //remove the session from the interview question\r\n else{\r\n let body = {\r\n appraisal_id: props.appraisalId,\r\n node_id: affectedQuestions[j].nodeId,\r\n project_id: affectedQuestions[j].projectId,\r\n interview_question_id: affectedQuestions[j].id,\r\n question: affectedQuestions[j].question,\r\n sessions: updatedSessions,\r\n revision_number: affectedQuestions[j].revNumber + 1\r\n }\r\n try {\r\n await API.put(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body));\r\n } catch (e) {\r\n console.log(\"Failure deleting session from interview: \" + e);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async function getInterviewQuestionsBySession(sessionId) {\r\n\r\n let interviews = [];\r\n const interviewsData = await API.get(Constants.API_PATH, `${Constants.INTERVIEW_QUESTIONS_PATH}/${props.appraisalId}`, await getDefaultAPIHeaders());\r\n interviewsData.forEach(is => {\r\n if(is.sessions.includes(sessionId)){\r\n interviews.push({\r\n id: is.interview_question_id,\r\n nodeId: is.node_id,\r\n projectId: is.project_id,\r\n question: is.question,\r\n sessions: is.sessions,\r\n revNumber: is.revision_number\r\n });\r\n }\r\n });\r\n \r\n return interviews;\r\n }\r\n\r\n const updateSelected = (e, id) => {\r\n let item = props.interviewSessions.getById(id);\r\n item.selected = e.target.checked;\r\n props.interviewSessions.replace(id, item);\r\n };\r\n\r\n const itemsAreSelected = () => {\r\n const items = props.interviewSessions.value.filter(e => e.selected === true);\r\n return items.length > 0;\r\n }\r\n\r\n const tryHideModal = (e) => {\r\n if (!okLoading) {\r\n props.close()\r\n }\r\n }\r\n\r\n const tableItems = props.interviewSessions.value.map(is => {\r\n return (\r\n \r\n \r\n \r\n )\r\n });\r\n\r\n return (\r\n \r\n \r\n tryHideModal(e)} animation>\r\n \r\n \r\n {' '}Edit Interview Sessions\r\n \r\n \r\n
    \r\n \r\n \r\n Add Interview Session}>\r\n \r\n handleAddInterviewSession()}>\r\n \r\n \r\n \r\n \r\n Delete Interview Session}>\r\n \r\n handleShowDeleteModal(e)}\r\n disabled={!itemsAreSelected()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tableItems}\r\n \r\n
    IntervieweeHoursMinutes
    \r\n
    \r\n
    \r\n \r\n handleOkClicked()} />\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default InterviewSessionsModal;","import React from 'react';\r\nimport LoaderButton from './LoaderButton';\r\nimport { Button, Spinner } from 'react-bootstrap';\r\nimport './WizardFooter.css';\r\n\r\nfunction WizardFooter(props){\r\n const nextButton = props.isNextLoading ? \r\n ( props.handleNextAction()}\r\n loadingText={props.actionText + \"ing...\"}\r\n />):\r\n \r\n ( \r\n props.handleNextAction()}>\r\n {props.actionText}\r\n \r\n )\r\n return(\r\n \r\n props.handleStateChange(props.currentState)}>\r\n Back\r\n { nextButton }\r\n \r\n );\r\n}\r\n\r\nexport default WizardFooter;","import React, { useState, useEffect, useRef } from 'react';\r\nimport { API } from 'aws-amplify';\r\nimport { FormLabel, Spinner, Row, ButtonToolbar, Table, Button, Modal, Container, Col, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport { OrgRepository, AppraisalRepository } from '../utils/repositories';\r\nimport ConfirmDeleteModal from '../presenters/ConfirmDeleteModal';\r\nimport AppraisalItem from '../presenters/AppraisalItem';\r\nimport useArray from '../hooks/useArray';\r\nimport { AppraisalStateOne, AppraisalStateTwo, AppraisalStateThree, APPRAISAL_CONSTANTS } from '../presenters/AppraisalStateMachineBodies';\r\nimport InterviewSessionsModal from './InterviewSessionsModal';\r\nimport WizardFooter from '../presenters/WizardFooter';\r\nimport { modelContentUtils, getDefaultAPIHeaders, getNodeAPIPath, Constants } from '../utils/helpers';\r\nimport { MODEL_CONSTANTS, PRACTICES, PRACTICE_AREAS, PRACTICE_AREA_RELATIONSHIPS } from '../model/modelcontent';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport addApprIcon from '../assets/appr-add.png'\r\nimport deleteApprIcon from '../assets/appr-delete.png'\r\nimport editApprIcon from '../assets/appr-edit.png'\r\nimport editInterviewSessions from '../assets/interview-edit.png'\r\nimport \"../modal.css\";\r\n\r\nconst DELETE_QUESTION = \"Delete the selected appraisals and associated mappings?\";\r\nconst DELETE_IMPACT = \"This action cannot be undone.\";\r\n\r\nconst INITIAL_FORM_ONE_STATE = {\r\n name: '',\r\n nameError: false,\r\n nameTooltip: '',\r\n devSelected: true,\r\n svcSelected: false,\r\n level: '',\r\n levelError: false,\r\n levelTooltip: '',\r\n projectName: '',\r\n projectNameError: false,\r\n projectNameTooltip: '',\r\n organization: '', //Org id\r\n organizationError: false,\r\n organizationTooltip: '',\r\n projectError: false,\r\n projectTooltip: ''\r\n};\r\n\r\nconst INIT_FORM_TWO_STATE = {\r\n selectedProject: {},\r\n};\r\n\r\nconst INIT_FORM_THREE_STATE = {\r\n selectedProject: {},\r\n};\r\n\r\nconst APPRAISAL_REF_RESET_STATE = {\r\n name: '',\r\n view: '',\r\n organization: '',\r\n projects: []\r\n};\r\n\r\nfunction getPracticeAreas(view) {\r\n const pas = modelContentUtils.getPracticeAreasFromView(view, true).filter(x => x.Optional === false);\r\n \r\n //Pulling only the information I want from the utils call, which returns everything\r\n const modifiedPas = pas.map(pa => {\r\n return (\r\n {\r\n Name: pa.Name,\r\n Id: pa.Id,\r\n SelectedForAdd: false,\r\n SelectedForRemove: false,\r\n SvcExclusive: pa.SvcExclusive,\r\n DevExclusive: pa.DevExclusive,\r\n Optional: pa.Optional,\r\n MappedByAnyProject: false\r\n }\r\n )\r\n });\r\n return modifiedPas;\r\n}\r\n\r\nfunction getOptionalPracticeAreas() {\r\n const optionalPAs = Object.values(PRACTICE_AREAS).filter(x => x.Optional === true);\r\n \r\n //Pulling only the information I want from the utils call, which returns everything\r\n const modifiedPas = optionalPAs.map(pa => {\r\n return (\r\n {\r\n Name: pa.Name,\r\n Id: pa.Id,\r\n SelectedForAdd: false,\r\n SelectedForRemove: false,\r\n SvcExclusive: pa.SvcExclusive,\r\n DevExclusive: pa.DevExclusive,\r\n Optional: pa.Optional,\r\n MappedByAnyProject: false\r\n }\r\n )\r\n });\r\n return modifiedPas;\r\n}\r\n\r\nfunction getViewStringFromState(formOneState) {\r\n let viewString;\r\n if (formOneState.devSelected) {\r\n viewString = 'Development ';\r\n viewString = viewString.concat(formOneState.level);\r\n } else if (formOneState.svcSelected) {\r\n viewString = 'Services ';\r\n viewString = viewString.concat(formOneState.level);\r\n }\r\n return viewString;\r\n}\r\n\r\nasync function fetchData(setOrgData, setAppraisalData, setTableLoading, org) {\r\n setTableLoading(true);\r\n const orgRepo = new OrgRepository();\r\n const orgData = await orgRepo.getAll();\r\n if (!orgData.error) {\r\n setOrgData(orgData.returnValue);\r\n const appraisalRepo = new AppraisalRepository();\r\n const appraisalData = await appraisalRepo.getAll();\r\n const filteredAppraisals = appraisalData.returnValue.filter(x => x.organization === org);\r\n\r\n if (!appraisalData.error) {\r\n setAppraisalData(filteredAppraisals.map(ad => {\r\n const matchedOrgItem = orgData.returnValue.find(org => org.id === ad.organization);\r\n return {\r\n ...ad,\r\n organization: matchedOrgItem\r\n }\r\n }));\r\n } else {\r\n console.log('error getting appraisal data', appraisalData.returnValue);\r\n }\r\n } else {\r\n console.log('error getting orgData: ', orgData.returnValue);\r\n }\r\n\r\n setTableLoading(false);\r\n}\r\n\r\nfunction Appraisals(props) {\r\n const [tableLoading, setTableLoading] = useState(true);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const [modalOpen, setModalOpen] = useState(false);\r\n const [showDeletingModal, setShowDeletingModal] = useState(false);\r\n const [isItemDeleting, setIsItemDeleting] = useState(false);\r\n const [itemBeingDeleted, setItemBeingDeleted] = useState(\"\");\r\n const [itemDeleteStatus, setItemDeleteStatus] = useState(\"\");\r\n const [itemDeleteTitle, setItemDeleteTitle] = useState(\"\");\r\n const [itemDeleteButtonText, setItemDeleteButtonText] = useState(\"\");\r\n const [showCreateEditModal, setShowCreateEditModal] = useState(false);\r\n const [showClosePrompt, setShowClosePrompt] = useState(false);\r\n const [modalMachineState, setModalMachineState] = useState(0);\r\n const [modalTitle, setModalTitle] = useState('');\r\n const [formOneState, setFormOneState] = useState(INITIAL_FORM_ONE_STATE);\r\n const [formTwoState, setFormTwoState] = useState(INIT_FORM_TWO_STATE);\r\n const [formThreeState, setFormThreeState] = useState(INIT_FORM_THREE_STATE);\r\n const [finishLoading, setFinishLoading] = useState(false);\r\n const [showInterviewSessionsModal, setShowInterviewSessionsModal] = useState(false);\r\n const [showPAWarningModal, setShowPAWarningModal] = useState(false);\r\n const [projectsWithNoPA, setProjectsWithNoPA] = useState(false);\r\n const practicesToCleanFromMLLower = useArray([]);\r\n const interviewSessionsArray = useArray([]);\r\n const appraisalRef = useRef(APPRAISAL_REF_RESET_STATE);\r\n const orgsArray = useArray([]);\r\n const appraisalsArray = useArray([]);\r\n const currentAppraisalProjects = useArray([]);\r\n const availablePracticeAreas = useArray([]);\r\n const availablePracticeAreasRef = useRef([]);\r\n const availableOptionalPracticeAreas = useArray([]);\r\n const availableOptionalPracticeAreasRef = useRef([]);\r\n const editedAppraisalRef = useRef({});\r\n const interviewIdRef = useRef(\"\");\r\n const sessionSnapshotRef = useRef([]);\r\n const autoFocus = React.createRef();\r\n let modalBody, modalFooter;\r\n\r\n function getOrgId() {\r\n if (props.org === null) {\r\n return \"\";\r\n }\r\n else {\r\n return props.org.id;\r\n }\r\n }\r\n\r\n const enabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'auto'\r\n }\r\n\r\n const disabledStyle = {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n pointerEvents: 'none'\r\n }\r\n\r\n //Get org and appraisal data on startup\r\n useEffect(() => {\r\n const getData = () => fetchData(orgsArray.setValue, appraisalsArray.setValue, setTableLoading, getOrgId());\r\n getData();\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n , [props.org, props.refreshTrigger]);\r\n\r\n const handleShowDeleteModal = (event) => {\r\n setShowDeleteModal(true);\r\n }\r\n\r\n function refreshAppraisals() {\r\n fetchData(orgsArray.setValue, appraisalsArray.setValue, setTableLoading, getOrgId());\r\n }\r\n\r\n const handleDelete = async () => {\r\n setShowDeleteModal(false);\r\n setShowDeletingModal(true);\r\n setIsItemDeleting(true);\r\n setItemDeleteTitle(\"Deleting Appraisal(s)\");\r\n setItemDeleteButtonText(\"Deleting Appraisal, please wait...\");\r\n\r\n const itemsToRemove = appraisalsArray.value.filter(el => el.selected === true);\r\n const apiRepo = new AppraisalRepository();\r\n\r\n for (let i = 0; i < itemsToRemove.length; i++) {\r\n const item = itemsToRemove[i];\r\n setItemBeingDeleted(\"Deleting \" + item.name);\r\n\r\n //clean items from appraisal\r\n setItemDeleteStatus(\"Deleting Practice Data...\");\r\n const itemApiPath = `${Constants.APPRAISAL_ITEM_PATH}/${item.id}`\r\n const itemData = await API.get(Constants.API_PATH, itemApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < itemData.length; j++) {\r\n try {\r\n let body = {\r\n appraisal_item_id: itemData[j].appraisal_item_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal item failure' + e.message);\r\n }\r\n }\r\n\r\n //clean states from appraisal\r\n setItemDeleteStatus(\"Deleting State Data...\");\r\n const stateApiPath = `${Constants.APPRAISAL_STATE_PATH}/${item.id}`\r\n const stateData = await API.get(Constants.API_PATH, stateApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < stateData.length; j++) {\r\n try {\r\n let body = {\r\n compound_id: stateData[j].compound_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal state failure' + e.message);\r\n }\r\n }\r\n\r\n //clean evidence from appraisal\r\n setItemDeleteStatus(\"Deleting Evidence Data...\");\r\n const evidenceApiPath = `${Constants.APPRAISAL_EVIDENCE_PATH}/${item.id}`\r\n const evidenceData = await API.get(Constants.API_PATH, evidenceApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < evidenceData.length; j++) {\r\n let body = {\r\n appraisal_evidence_id: evidenceData[j].appraisal_evidence_id,\r\n };\r\n try {\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal evidence failure' + e);\r\n }\r\n }\r\n\r\n //clean interview questions from appraisal\r\n setItemDeleteStatus(\"Deleting Interview Data...\");\r\n const interviewsApiPath = `${Constants.INTERVIEW_QUESTIONS_PATH}/${item.id}`\r\n const interviewsData = await API.get(Constants.API_PATH, interviewsApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < interviewsData.length; j++) {\r\n try {\r\n let body = {\r\n interview_question_id: interviewsData[j].interview_question_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal interview question failure' + e.message);\r\n }\r\n }\r\n\r\n //delete appraisal entry\r\n setItemDeleteStatus(\"Deleting Appraisal...\");\r\n const result = await apiRepo.deleteOne(item.id);\r\n if (!result.error) {\r\n appraisalsArray.removeById(item.id);\r\n } else {\r\n console.log(\"Error deleting appraisal: \", result.returnValue);\r\n }\r\n setItemDeleteStatus(\"Appraisal Deleted Successfully\");\r\n }\r\n setItemBeingDeleted(\"\");\r\n setItemDeleteStatus(\"Appraisal Deletion(s) Complete\");\r\n setIsItemDeleting(false);\r\n }\r\n\r\n const handleUpdateDelete = (event, id) => {\r\n const checked = event.target.checked;\r\n const appraisalItem = appraisalsArray.getById(id);\r\n appraisalItem.markedForDelete = checked;\r\n appraisalsArray.replace(id, appraisalItem);\r\n }\r\n\r\n const closeDeleteModal = () => {\r\n setShowDeleteModal(false);\r\n }\r\n\r\n const tryCloseDeletingModal = () => {\r\n if (!isItemDeleting) {\r\n setShowDeletingModal(false);\r\n }\r\n }\r\n\r\n const getDeletingButtonText = () => {\r\n return !isItemDeleting ? \"Close\" : itemDeleteButtonText;\r\n }\r\n\r\n const closeCreateEditModal = () => {\r\n setFormOneState(INITIAL_FORM_ONE_STATE);\r\n appraisalRef.current = APPRAISAL_REF_RESET_STATE;\r\n currentAppraisalProjects.clear();\r\n availablePracticeAreas.clear();\r\n availablePracticeAreasRef.current = [];\r\n setModalMachineState(0);\r\n setShowCreateEditModal(false);\r\n hideClosePrompt();\r\n }\r\n\r\n const handleCreateAppraisal = (event) => {\r\n setModalTitle('Create');\r\n if (props.org) {\r\n formOneState.organization = props.org.id;\r\n }\r\n setShowCreateEditModal(true);\r\n }\r\n\r\n const handleNextAppraisalAction = () => {\r\n const foundError = validateFormOneState();\r\n if (!foundError) {\r\n appraisalRef.current = {\r\n name: formOneState.name,\r\n projects: currentAppraisalProjects.value,\r\n organization: formOneState.organization,\r\n view: formOneState.view !== 'Custom' ? getViewStringFromState(formOneState) : 'Custom'\r\n };\r\n\r\n deselectPAs();\r\n\r\n if (appraisalRef.current.view !== 'Custom') {\r\n if(modalMachineState === 0){\r\n const practiceAreas = getPracticeAreas(appraisalRef.current.view);\r\n availablePracticeAreasRef.current = practiceAreas;\r\n \r\n const selectedProject = currentAppraisalProjects.value[0];\r\n let filtered = practiceAreas.filter(pa => {\r\n return selectedProject.practiceAreas.find(ppa => ppa.Id === pa.Id) === undefined\r\n });\r\n const nonCurrentProjects = currentAppraisalProjects.value.filter(p => p.id !== selectedProject.id);\r\n const mappedPractices = nonCurrentProjects.map(p => {\r\n return p.practiceAreas\r\n }).reduce((value, next) => value.concat(next), []);\r\n \r\n if (mappedPractices.length > 0) {\r\n for (let i = 0; i < filtered.length; i++) {\r\n if (mappedPractices.find(pa => pa.Id === filtered[i].Id)) {\r\n filtered[i].MappedByAnyProject = true;\r\n }\r\n }\r\n }\r\n availablePracticeAreas.setValue(filtered);\r\n setFormTwoState(prevState => ({ ...prevState, selectedProject: appraisalRef.current.projects[0] }));\r\n }\r\n else{\r\n const optionalPAs = getOptionalPracticeAreas();\r\n availableOptionalPracticeAreasRef.current = optionalPAs;\r\n\r\n const selectedProject = currentAppraisalProjects.value[0];\r\n let filtered = optionalPAs.filter(pa => {\r\n return selectedProject.practiceAreas.find(ppa => ppa.Id === pa.Id) === undefined\r\n });\r\n const nonCurrentProjects = currentAppraisalProjects.value.filter(p => p.id !== selectedProject.id);\r\n const mappedPractices = nonCurrentProjects.map(p => {\r\n return p.practiceAreas\r\n }).reduce((value, next) => value.concat(next), []);\r\n \r\n if (mappedPractices.length > 0) {\r\n for (let i = 0; i < filtered.length; i++) {\r\n if (mappedPractices.find(pa => pa.Id === filtered[i].Id)) {\r\n filtered[i].MappedByAnyProject = true;\r\n }\r\n }\r\n }\r\n \r\n availableOptionalPracticeAreas.setValue(filtered);\r\n setFormThreeState(prevState => ({ ...prevState, selectedProject: appraisalRef.current.projects[0] }));\r\n }\r\n }\r\n \r\n setModalMachineState(modalMachineState + 1);\r\n }\r\n }\r\n\r\n const validateFormOneState = () => {\r\n let nameError = false, levelError = false,\r\n projectNameError = false, organizationError = false,\r\n foundError = false;\r\n let nameTooltip = '', organizationTooltip = '',\r\n levelTooltip = '', projectTooltip = '';\r\n\r\n if (formOneState.name.length === 0) {\r\n nameError = true;\r\n foundError = true;\r\n nameTooltip = APPRAISAL_CONSTANTS.NAME_ERROR_TOOLTIP;\r\n }\r\n if (formOneState.organization.length === 0) {\r\n organizationError = true;\r\n foundError = true;\r\n organizationTooltip = APPRAISAL_CONSTANTS.ORG_ERROR_TOOLTIP;\r\n }\r\n if (formOneState.level.length === 0) {\r\n levelError = true;\r\n foundError = true;\r\n levelTooltip = APPRAISAL_CONSTANTS.LEVEL_ERROR_TOOLTIP;\r\n }\r\n if (currentAppraisalProjects.value.length === 0) {\r\n projectNameError = true;\r\n foundError = true;\r\n projectTooltip = APPRAISAL_CONSTANTS.PROJECT_ERROR_TOOLTIP\r\n }\r\n if (checkAppraisalClashes()) {\r\n foundError = true;\r\n nameError = true;\r\n organizationError = true;\r\n organizationTooltip = APPRAISAL_CONSTANTS.CLASHING_APPRAISAL_TOOLTIP;\r\n nameTooltip = APPRAISAL_CONSTANTS.CLASHING_APPRAISAL_TOOLTIP;\r\n }\r\n if (foundError) {\r\n setFormOneState(prevState => ({\r\n ...prevState, nameError: nameError,\r\n nameTooltip: nameTooltip, levelError: levelError,\r\n levelTooltip: levelTooltip, organizationError: organizationError,\r\n organizationTooltip: organizationTooltip,\r\n projectNameError: projectNameError, projectTooltip: projectTooltip\r\n }));\r\n }\r\n return foundError;\r\n }\r\n\r\n const checkAppraisalClashes = (nameVal = null, orgVal = null) => {\r\n let foundClashingOrg = false;\r\n const name = nameVal === null ? formOneState.name : nameVal;\r\n const org = orgVal === null ? formOneState.organization : orgVal;\r\n const appraisalClashes = appraisalsArray.value.filter(a => a.name === name);\r\n if (appraisalClashes.length > 0) {\r\n if (appraisalClashes[0].id !== editedAppraisalRef.current.id) {\r\n for (let i = 0; i < appraisalClashes.length; i++) {\r\n const appraisal = appraisalClashes[i];\r\n if (appraisal.organization.id === org) {\r\n foundClashingOrg = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return foundClashingOrg;\r\n }\r\n\r\n const getInitialPracticeAreas = (projectId) => {\r\n const nonCurrentProjects = currentAppraisalProjects.value.filter(p => p.id !== projectId);\r\n const mappedPracticeAreas = nonCurrentProjects.map(p => {\r\n return p.practiceAreas\r\n }).reduce((value, next) => value.concat(next), []);\r\n let availablePracticeAreas = JSON.parse(JSON.stringify(availablePracticeAreasRef.current));\r\n if (mappedPracticeAreas.length > 0) {\r\n //Pulling this find function out of the loop to avoid a linter warning\r\n // (although I'm not certain it makes any difference being writtent this way)\r\n const foundPractice = (practiceAreas, target) => {\r\n return practiceAreas.find(pa => pa.Id === target.Id);\r\n }\r\n for (let i = 0; i < availablePracticeAreas.length; i++) {\r\n if (foundPractice(mappedPracticeAreas, availablePracticeAreas[i])) {\r\n availablePracticeAreas[i].MappedByAnyProject = true;\r\n } else {\r\n availablePracticeAreas[i].MappedByAnyProject = false;\r\n }\r\n }\r\n } else {\r\n availablePracticeAreas = availablePracticeAreas.map(pa => ({ ...pa, MappedByAnyProject: false }));\r\n }\r\n return availablePracticeAreas;\r\n }\r\n\r\n const getInitialOptionalPracticeAreas = (projectId) => {\r\n const nonCurrentProjects = currentAppraisalProjects.value.filter(p => p.id !== projectId);\r\n const mappedPracticeAreas = nonCurrentProjects.map(p => {\r\n return p.practiceAreas\r\n }).reduce((value, next) => value.concat(next), []);\r\n let optionalPracticeAreas = JSON.parse(JSON.stringify(availableOptionalPracticeAreasRef.current));\r\n if (mappedPracticeAreas.length > 0) {\r\n //Pulling this find function out of the loop to avoid a linter warning\r\n // (although I'm not certain it makes any difference being writtent this way)\r\n const foundPractice = (practiceAreas, target) => {\r\n return practiceAreas.find(pa => pa.Id === target.Id);\r\n }\r\n for (let i = 0; i < optionalPracticeAreas.length; i++) {\r\n if (foundPractice(mappedPracticeAreas, optionalPracticeAreas[i])) {\r\n optionalPracticeAreas[i].MappedByAnyProject = true;\r\n } else {\r\n optionalPracticeAreas[i].MappedByAnyProject = false;\r\n }\r\n }\r\n } else {\r\n optionalPracticeAreas = optionalPracticeAreas.map(pa => ({ ...pa, MappedByAnyProject: false }));\r\n }\r\n return optionalPracticeAreas;\r\n }\r\n\r\n const handleMaturityLevelDowngrade = (currentMaturityLevel, selectedMaturityLevel) => {\r\n \r\n let nodeIdsToBeRemoved = [];\r\n\r\n //find all practices that will be removed due to maturity level downgrade\r\n //these will be all practices that are > the new level and <= the current level\r\n let allPractices = Object.values(PRACTICES);\r\n for (let i = 0; i < allPractices.length; i++) {\r\n if (allPractices[i].Level > selectedMaturityLevel && allPractices[i].Level <= currentMaturityLevel) {\r\n nodeIdsToBeRemoved.push(allPractices[i].Id);\r\n }\r\n }\r\n\r\n //find all groups that will be removed due to maturity level downgrade\r\n let allPAs = Object.values(PRACTICE_AREAS);\r\n for(let i = 0; i < allPAs.length; i++){\r\n for(let j = currentMaturityLevel; j > selectedMaturityLevel; j--){\r\n let groupToRemove = allPAs[i].LevelIds[j];\r\n if(groupToRemove){\r\n nodeIdsToBeRemoved.push(groupToRemove);\r\n }\r\n }\r\n }\r\n\r\n //if the maturity level drops to 2, we must also remove practice areas\r\n if (currentMaturityLevel > 2 && selectedMaturityLevel === \"2\") {\r\n let optionalPracticeAreas = Object.values(PRACTICE_AREAS).filter(x => x.Optional === true);\r\n \r\n let practiceAreas;\r\n if (formOneState.devSelected) {\r\n practiceAreas = modelContentUtils.getPracticeAreasFromView(MODEL_CONSTANTS.DEV_LEVEL_2);\r\n }\r\n else {\r\n practiceAreas = modelContentUtils.getPracticeAreasFromView(MODEL_CONSTANTS.SVCS_LEVEL_2);\r\n }\r\n \r\n practiceAreas = practiceAreas.concat(optionalPracticeAreas);\r\n practiceAreas = practiceAreas.map(pa => {\r\n return (\r\n {\r\n Name: pa.Name,\r\n Id: pa.Id,\r\n Level: pa.Level,\r\n Selected: false,\r\n SvcExclusive: pa.SvcExclusive,\r\n DevExclusive: pa.DevExclusive,\r\n SelectedForAdd: false,\r\n SelectedForRemove: false,\r\n MappedByAnyProject: false,\r\n Optional: pa.Optional\r\n }\r\n )\r\n });\r\n for (let i = 0; i < currentAppraisalProjects.value.length; i++) {\r\n let project = currentAppraisalProjects.value[i];\r\n const filtered = practiceAreas.filter(pa => {\r\n return project.practiceAreas.find(ppa => ppa.Id === pa.Id) !== undefined\r\n });\r\n\r\n //add removed PA nodes to removal list\r\n for (let j = 0; j < project.practiceAreas.length; j++) {\r\n let correspondingPA = filtered.filter(pa => pa.Id === project.practiceAreas[j].Id)[0];\r\n if (correspondingPA === undefined) {\r\n nodeIdsToBeRemoved.push(project.practiceAreas[j].Id)\r\n }\r\n }\r\n\r\n project.practiceAreas = filtered;\r\n currentAppraisalProjects.replace(project.id, project);\r\n }\r\n }\r\n \r\n practicesToCleanFromMLLower.setValue(nodeIdsToBeRemoved);\r\n }\r\n\r\n //disable the finish button if:\r\n // 1. any project has no practice areas\r\n // 2. any non-optional practice area is not mapped to at least one project\r\n const finishActionDisabled = () => {\r\n const mappedPracticesAbbr = currentAppraisalProjects.value.map(p => {\r\n return p.practiceAreas.filter(x => x.Optional === false).map(pa => {\r\n return pa.Id\r\n });\r\n }).reduce((value, next) => value.concat(next), []);\r\n const requiredMappedAbbr = availablePracticeAreasRef.current.filter(x => x.Optional === false).map(pa => {\r\n return pa.Id\r\n });\r\n const unique = Array.from(new Set(mappedPracticesAbbr)); //removing duplicate entries\r\n return requiredMappedAbbr.length === unique.length;\r\n }\r\n\r\n const handleFinishAppraisalAction = async () => {\r\n\r\n //validate has PA\r\n const unMappedProjects = currentAppraisalProjects.value.filter(p => p.practiceAreas.length === 0);\r\n if(unMappedProjects.length > 0){\r\n\r\n let noPA = unMappedProjects.map(x => {\r\n return (\r\n \r\n {x.name}

    \r\n
    \r\n );\r\n });\r\n setProjectsWithNoPA(noPA);\r\n\r\n setModalOpen(true);\r\n setShowPAWarningModal(true);\r\n return;\r\n }\r\n\r\n setFinishLoading(true);\r\n\r\n switch (modalTitle) {\r\n case \"Create\":\r\n var newAppraisal = {\r\n name: formOneState.name,\r\n projects: currentAppraisalProjects.value,\r\n organization: orgsArray.getById(appraisalRef.current.organization),\r\n view: appraisalRef.current.view\r\n }\r\n const appraisalRepo = new AppraisalRepository();\r\n const result = await appraisalRepo.createOne(newAppraisal);\r\n if (!result.error) {\r\n appraisalsArray.add(result.returnValue);\r\n }\r\n break;\r\n case \"Edit\":\r\n const org = orgsArray.getById(appraisalRef.current.organization);\r\n let ref = { ...appraisalRef.current, name: formOneState.name, projects: currentAppraisalProjects.value };\r\n \r\n //if projects were deleted, trigger cleanup\r\n const deletedProjects = editedAppraisalRef.current.projects.filter(p => {\r\n return ref.projects.find(bep => bep.id === p.id) === undefined\r\n });\r\n \r\n if (deletedProjects.length > 0) {\r\n await cleanUpDeletedProjects(appraisalRef.current.id, deletedProjects);\r\n }\r\n\r\n //determine what practice areas have been removed\r\n for (let i = 0; i < ref.projects.length; i++) {\r\n let newProjectData = ref.projects[i];\r\n let newPracticeAreas = newProjectData.practiceAreas;\r\n\r\n let originalProject = editedAppraisalRef.current.projects.filter(p => p.id === newProjectData.id)[0];\r\n\r\n //check to make sure the project was not just added\r\n if(originalProject){\r\n let originalPracticeAreas = originalProject.practiceAreas;\r\n\r\n let deletedPracticeAreas = [];\r\n for (let j = 0; j < originalPracticeAreas.length; j++) {\r\n let correspondingPA = newPracticeAreas.filter(pa => pa.Id === originalPracticeAreas[j].Id)[0];\r\n if (correspondingPA === undefined) {\r\n deletedPracticeAreas.push(originalPracticeAreas[j])\r\n }\r\n }\r\n \r\n //if practice areas were deleted, trigger cleanup\r\n if (deletedPracticeAreas.length > 0) {\r\n await cleanUpDeletedPracticeAreas(editedAppraisalRef.current.id, ref.projects[i].id, deletedPracticeAreas);\r\n }\r\n }\r\n }\r\n\r\n //clean up any practices removed from maturity level downgrade\r\n if (practicesToCleanFromMLLower.value.length > 0) {\r\n for (let i = 0; i < ref.projects.length; i++) {\r\n await cleanUpDeletedPracticesFromMLLower(editedAppraisalRef.current.id, ref.projects[i].id, ref.projects[i].name, practicesToCleanFromMLLower.value)\r\n }\r\n }\r\n\r\n const apiRepo = new AppraisalRepository();\r\n const data = await apiRepo.updateOne(editedAppraisalRef.current, ref);\r\n if (!data.error) {\r\n ref = { ...ref, id: editedAppraisalRef.current.id, organization: org };\r\n appraisalsArray.replace(editedAppraisalRef.current.id, ref);\r\n } else {\r\n console.log('Error editing appraisal: ', data.returnValue);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n setFinishLoading(false);\r\n closeCreateEditModal();\r\n refreshAppraisals();\r\n }\r\n\r\n async function cleanUpDeletedProjects(appraisalId, deletedProjects) {\r\n setModalOpen(true);\r\n setShowDeletingModal(true);\r\n setIsItemDeleting(true);\r\n setItemDeleteTitle(\"Deleting Project(s)\");\r\n setItemDeleteButtonText(\"Deleting Project, please wait...\");\r\n\r\n for (let i = 0; i < deletedProjects.length; i++) {\r\n let item = deletedProjects[i];\r\n setItemBeingDeleted(\"Deleting \" + item.name);\r\n\r\n //clean items from appraisal\r\n setItemDeleteStatus(\"Deleting Practice Data...\");\r\n const itemApiPath = `${Constants.APPRAISAL_ITEM_PATH}/${appraisalId}/${item.id}`\r\n const itemData = await API.get(Constants.API_PATH, itemApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < itemData.length; j++) {\r\n try {\r\n let body = {\r\n appraisal_item_id: itemData[j].appraisal_item_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal item failure' + e.message);\r\n }\r\n }\r\n\r\n //clean states from appraisal\r\n setItemDeleteStatus(\"Deleting State Data...\");\r\n const stateApiPath = `${Constants.APPRAISAL_STATE_PATH}/${appraisalId}/${item.id}`\r\n const stateData = await API.get(Constants.API_PATH, stateApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < stateData.length; j++) {\r\n try {\r\n let body = {\r\n compound_id: stateData[j].compound_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal state failure' + e.message);\r\n }\r\n }\r\n\r\n //clean evidence from appraisal\r\n setItemDeleteStatus(\"Deleting Evidence Data...\");\r\n const evidenceApiPath = `${Constants.APPRAISAL_EVIDENCE_PATH}/${appraisalId}/${item.id}`\r\n const evidenceData = await API.get(Constants.API_PATH, evidenceApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < evidenceData.length; j++) {\r\n let body = {\r\n appraisal_evidence_id: evidenceData[j].appraisal_evidence_id,\r\n };\r\n try {\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal evidence failure' + e);\r\n }\r\n }\r\n\r\n //clean interview questions from appraisal\r\n setItemDeleteStatus(\"Deleting Interview Data...\");\r\n const interviewsApiPath = `${Constants.INTERVIEW_QUESTIONS_PATH}/${appraisalId}/${item.id}`\r\n const interviewsData = await API.get(Constants.API_PATH, interviewsApiPath, await getDefaultAPIHeaders());\r\n for (let j = 0; j < interviewsData.length; j++) {\r\n try {\r\n let body = {\r\n interview_question_id: interviewsData[j].interview_question_id,\r\n };\r\n await API.del(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n catch (e) {\r\n console.log('Delete appraisal interview question failure' + e.message);\r\n }\r\n }\r\n }\r\n setItemBeingDeleted(\"\");\r\n setItemDeleteStatus(\"Project Deletion(s) Complete\");\r\n setIsItemDeleting(false);\r\n }\r\n\r\n async function cleanUpDeletedPracticeAreas(appraisalId, projectId, deletedPracticeAreas) {\r\n setModalOpen(true);\r\n setShowDeletingModal(true);\r\n setIsItemDeleting(true);\r\n setItemDeleteTitle(\"Deleting Practice Areas\");\r\n setItemDeleteButtonText(\"Deleting Practice Areas, please wait...\");\r\n\r\n for (let i = 0; i < deletedPracticeAreas.length; i++) {\r\n setItemBeingDeleted(\"Deleting \" + deletedPracticeAreas[i].Name);\r\n let nodesToDelete = [];\r\n\r\n //find all practice nodes associated with a practice area to clear\r\n let practicesToDelete = PRACTICE_AREA_RELATIONSHIPS[deletedPracticeAreas[i].Id];\r\n for (let j = 0; j < practicesToDelete.length; j++) {\r\n nodesToDelete.push(practicesToDelete[j].Id);\r\n }\r\n\r\n //add group nodes\r\n let groupIds = Object.values(PRACTICE_AREAS[deletedPracticeAreas[i].Id].LevelIds);\r\n for (let j = 0; j < groupIds.length; j++) {\r\n nodesToDelete.push(groupIds[j]);\r\n }\r\n\r\n //add practice area node\r\n nodesToDelete.push(deletedPracticeAreas[i].Id);\r\n\r\n for (let j = 0; j < nodesToDelete.length; j++) {\r\n let nodeInfoToDelete = {\r\n appraisalId: appraisalId,\r\n projectId: projectId,\r\n nodeId: nodesToDelete[j]\r\n }\r\n\r\n let num = j+1;\r\n setItemDeleteStatus(\"Deleting Practice Area item \" + num + \" of \" + nodesToDelete.length);\r\n\r\n //clean appraisalevidence table\r\n try {\r\n const evidenceData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfoToDelete, Constants.APPRAISAL_EVIDENCE_PATH), await getDefaultAPIHeaders());\r\n for (let k = 0; k < evidenceData.length; k++) {\r\n let body = {\r\n appraisal_evidence_id: evidenceData[k].appraisal_evidence_id\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n } catch (e) {\r\n console.log('Failure clearing appraisalevidence: ' + e);\r\n }\r\n\r\n //clean appraisalitem table\r\n try {\r\n const itemData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfoToDelete, Constants.APPRAISAL_ITEM_PATH), await getDefaultAPIHeaders());\r\n for (let k = 0; k < itemData.length; k++) {\r\n let body = {\r\n appraisal_item_id: itemData[k].appraisal_item_id\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n } catch (e) {\r\n console.log('Failure clearing appraisalitem: ' + e);\r\n }\r\n\r\n //clean appraisalstate table\r\n try {\r\n const stateData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfoToDelete, Constants.APPRAISAL_STATE_PATH), await getDefaultAPIHeaders());\r\n if (stateData.compound_id) {\r\n let body = {\r\n compound_id: stateData.compound_id\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n } catch (e) {\r\n console.log('Failure clearing appraisalstate: ' + e);\r\n }\r\n\r\n //clean interviewquestions table\r\n try {\r\n const interviewData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfoToDelete, Constants.INTERVIEW_QUESTIONS_PATH), await getDefaultAPIHeaders());\r\n for (let k = 0; k < interviewData.length; k++) {\r\n let body = {\r\n interview_question_id: interviewData[k].interview_question_id\r\n };\r\n await API.del(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n } catch (e) {\r\n console.log('Failure clearing interviewQuestions: ' + e);\r\n }\r\n }\r\n }\r\n setItemBeingDeleted(\"\");\r\n setItemDeleteStatus(\"Practice Area Deletion Complete\");\r\n setIsItemDeleting(false);\r\n }\r\n\r\n async function cleanUpDeletedPracticesFromMLLower(appraisalId, projectId, projectName, deletedPractices) {\r\n setModalOpen(true);\r\n setShowDeletingModal(true);\r\n setIsItemDeleting(true);\r\n setItemDeleteTitle(\"Lowering Maturity Level\");\r\n setItemDeleteButtonText(\"Lowering Maturity Level, please wait...\");\r\n for (let i = 0; i < deletedPractices.length; i++) {\r\n let nodeInfoToDelete = {\r\n appraisalId: appraisalId,\r\n projectId: projectId,\r\n nodeId: deletedPractices[i]\r\n }\r\n let num = i+1;\r\n setItemBeingDeleted(\"Deleting items from project \" + projectName + \": \" + num + \" of \" + deletedPractices.length);\r\n\r\n //clean appraisalevidence table\r\n try {\r\n setItemDeleteStatus(\"Deleting Evidence Data...\");\r\n const evidenceData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfoToDelete, Constants.APPRAISAL_EVIDENCE_PATH), await getDefaultAPIHeaders());\r\n for (let k = 0; k < evidenceData.length; k++) {\r\n let body = {\r\n appraisal_evidence_id: evidenceData[k].appraisal_evidence_id\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n } catch (e) {\r\n console.log('Failure clearing appraisalevidence: ' + e);\r\n }\r\n\r\n //clean appraisalitem table\r\n try {\r\n setItemDeleteStatus(\"Deleting Practice Data...\");\r\n const itemData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfoToDelete, Constants.APPRAISAL_ITEM_PATH), await getDefaultAPIHeaders());\r\n for (let k = 0; k < itemData.length; k++) {\r\n let body = {\r\n appraisal_item_id: itemData[k].appraisal_item_id\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n } catch (e) {\r\n console.log('Failure clearing appraisalitem: ' + e);\r\n }\r\n\r\n //clean appraisalstate table\r\n try {\r\n setItemDeleteStatus(\"Deleting State Data...\");\r\n const stateData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfoToDelete, Constants.APPRAISAL_STATE_PATH), await getDefaultAPIHeaders());\r\n if (stateData.compound_id) {\r\n let body = {\r\n compound_id: stateData.compound_id\r\n };\r\n await API.del(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n } catch (e) {\r\n console.log('Failure clearing appraisalstate: ' + e);\r\n }\r\n\r\n //clean interviewquestions table\r\n try {\r\n setItemDeleteStatus(\"Deleting Interview Data...\");\r\n const interviewData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfoToDelete, Constants.INTERVIEW_QUESTIONS_PATH), await getDefaultAPIHeaders());\r\n for (let k = 0; k < interviewData.length; k++) {\r\n let body = {\r\n interview_question_id: interviewData[k].interview_question_id\r\n };\r\n await API.del(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n } catch (e) {\r\n console.log('Failure clearing interviewQuestions: ' + e);\r\n }\r\n }\r\n setItemBeingDeleted(\"\");\r\n setItemDeleteStatus(\"Maturity Level Lowering Complete\");\r\n setIsItemDeleting(false);\r\n }\r\n\r\n const deselectPAs = () => {\r\n if(formTwoState.selectedProject){\r\n let currentlySelectedProject = Object.assign({}, formTwoState.selectedProject);\r\n\r\n if(currentlySelectedProject.practiceAreas){\r\n for (let i = 0; i < currentlySelectedProject.practiceAreas.length; i++) {\r\n currentlySelectedProject.practiceAreas[i].SelectedForRemove = false;\r\n }\r\n \r\n setFormTwoState(prevState => ({ ...prevState, selectedProject: currentlySelectedProject }));\r\n }\r\n }\r\n\r\n if(formThreeState.selectedProject){\r\n let currentlySelectedProject = Object.assign({}, formThreeState.selectedProject);\r\n\r\n if(currentlySelectedProject.practiceAreas){\r\n for (let i = 0; i < currentlySelectedProject.practiceAreas.length; i++) {\r\n currentlySelectedProject.practiceAreas[i].SelectedForRemove = false;\r\n }\r\n\r\n setFormThreeState(prevState => ({ ...prevState, selectedProject: currentlySelectedProject }));\r\n }\r\n }\r\n }\r\n\r\n const handlePreviousAppraisalAction = (state) => {\r\n //This shouldn't be possible, but it's worth guarding against\r\n // in case the previous button is pressed at state zero,\r\n // which should be invisible.\r\n if (state !== 0) {\r\n if(state === 2){\r\n\r\n deselectPAs();\r\n\r\n const practiceAreas = getPracticeAreas(appraisalRef.current.view);\r\n availablePracticeAreasRef.current = practiceAreas;\r\n\r\n const selectedProject = currentAppraisalProjects.value[0];\r\n let filtered = practiceAreas.filter(pa => {\r\n return selectedProject.practiceAreas.find(ppa => ppa.Id === pa.Id) === undefined\r\n });\r\n const nonCurrentProjects = currentAppraisalProjects.value.filter(p => p.id !== selectedProject.id);\r\n const mappedPractices = nonCurrentProjects.map(p => {\r\n return p.practiceAreas\r\n }).reduce((value, next) => value.concat(next), []);\r\n\r\n if (mappedPractices.length > 0) {\r\n for (let i = 0; i < filtered.length; i++) {\r\n if (mappedPractices.find(pa => pa.Id === filtered[i].Id)) {\r\n filtered[i].MappedByAnyProject = true;\r\n }\r\n }\r\n }\r\n\r\n availablePracticeAreas.setValue(filtered);\r\n setFormTwoState(prevState => ({ ...prevState, selectedProject: appraisalRef.current.projects[0] }));\r\n }\r\n setModalMachineState(modalMachineState - 1);\r\n }\r\n }\r\n\r\n const handleEditAppraisal = async () => {\r\n practicesToCleanFromMLLower.setValue([]);\r\n const items = appraisalsArray.value.filter(e => e.selected === true);\r\n var item = items[0];\r\n\r\n const appraisalRepo = new AppraisalRepository();\r\n const result = await appraisalRepo.getOne(item.id);\r\n if (!result.error) {\r\n const internalAppraisal = result.returnValue;\r\n appraisalRef.current = internalAppraisal;\r\n if (internalAppraisal.view !== 'Custom') {\r\n availablePracticeAreas.setValue(getPracticeAreas(internalAppraisal.view));\r\n availablePracticeAreasRef.current = availablePracticeAreas.value;\r\n }\r\n currentAppraisalProjects.setValue(internalAppraisal.projects);\r\n const levelRegex = /Level [\\d]/;\r\n const typeRegex = /Services/;\r\n\r\n const levelMatches = levelRegex.exec(internalAppraisal.view);\r\n const typeMatches = typeRegex.exec(internalAppraisal.view);\r\n\r\n let level = \"\";\r\n if (levelMatches.length > 0) {\r\n level = levelMatches[0];\r\n }\r\n setFormOneState({\r\n name: internalAppraisal.name,\r\n nameError: false,\r\n nameTooltip: '',\r\n devSelected: typeMatches !== null ? false : true,\r\n svcSelected: typeMatches !== null ? true : false,\r\n level: level,\r\n levelError: false,\r\n levelTooltip: '',\r\n projectName: '',\r\n projectNameError: false,\r\n projectNameTooltip: '',\r\n organization: internalAppraisal.organization,\r\n organizationError: false,\r\n organizationTooltip: '',\r\n projectError: false,\r\n projectTooltip: ''\r\n });\r\n setModalTitle(\"Edit\");\r\n // Taking a deep copy of the apprisal information before the edit begins,\r\n // so that I can use it to determine what changed by comparing it the \r\n // current appraisal ref object.\r\n editedAppraisalRef.current = JSON.parse(JSON.stringify(internalAppraisal));\r\n setShowCreateEditModal(true);\r\n } else {\r\n console.log(\"error getting appraisal: \", result.returnValue);\r\n }\r\n }\r\n\r\n const updateSelected = (e, id) => {\r\n let item = appraisalsArray.getById(id);\r\n item.selected = e.target.checked;\r\n appraisalsArray.replace(id, item);\r\n };\r\n\r\n const hasOrgSelected = () => {\r\n return props.org;\r\n }\r\n\r\n const singleItemSelected = () => {\r\n return appraisalsArray.value.filter(x => x.selected === true).length === 1;\r\n }\r\n\r\n const itemsAreSelected = () => {\r\n return appraisalsArray.value.filter(x => x.selected === true).length > 0;\r\n }\r\n\r\n const handleInterviewSetup = async () => {\r\n const items = appraisalsArray.value.filter(e => e.selected === true);\r\n var item = items[0];\r\n try {\r\n const currentInterviews = await API.get(Constants.API_PATH, `${Constants.INTERVIEW_PATH}/${item.id}`, await getDefaultAPIHeaders());\r\n const internal = currentInterviews.map(is => {\r\n return {\r\n id: is.interview_session_id,\r\n interviewee: is.interviewee,\r\n hours: is.hours\r\n }\r\n });\r\n sessionSnapshotRef.current = JSON.parse(JSON.stringify(internal));\r\n interviewSessionsArray.setValue(internal);\r\n interviewIdRef.current = item.id;\r\n setShowInterviewSessionsModal(true);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n const handleCloseInterviewSessionsModal = () => {\r\n interviewSessionsArray.clear();\r\n interviewIdRef.current = \"\"\r\n setShowInterviewSessionsModal(false);\r\n }\r\n\r\n const toggleModalOpen = () => {\r\n setModalOpen(!modalOpen);\r\n }\r\n\r\n const openClosePrompt = () => {\r\n if(!modalOpen){\r\n setModalOpen(true);\r\n setShowClosePrompt(true);\r\n }\r\n }\r\n\r\n const confirmClosePrompt = () => {\r\n setModalOpen(false);\r\n closeCreateEditModal();\r\n }\r\n\r\n const hideClosePrompt = () => {\r\n setModalOpen(false);\r\n setShowClosePrompt(false);\r\n }\r\n\r\n const hidePAWarningModal = () => {\r\n setModalOpen(false);\r\n setShowPAWarningModal(false);\r\n }\r\n\r\n const appraisalTableItems = appraisalsArray.value.map(a => {\r\n return (\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n switch (modalMachineState) {\r\n case 0:\r\n modalBody = ();\r\n modalFooter = (\r\n \r\n );\r\n break;\r\n case 1:\r\n modalBody = ();\r\n modalFooter = (\r\n \r\n );\r\n break;\r\n case 2:\r\n modalBody = ();\r\n modalFooter = (\r\n \r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Appraisals\r\n \r\n \r\n \r\n \r\n Edit Appraisal}>\r\n \r\n handleEditAppraisal(e)}>\r\n {' '}\r\n \r\n \r\n \r\n Delete Appraisal}>\r\n \r\n handleShowDeleteModal(e)}\r\n disabled={!itemsAreSelected()}>\r\n {' '}\r\n \r\n \r\n \r\n Add Appraisal}>\r\n \r\n handleCreateAppraisal(e)}>\r\n {' '}\r\n \r\n \r\n \r\n Edit Interview Sessions}>\r\n \r\n handleInterviewSetup(e)}\r\n disabled={!singleItemSelected()}>\r\n {' '}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {appraisalTableItems}\r\n \r\n \r\n
    AppraisalView
    \r\n
    \r\n
    \r\n \r\n openClosePrompt()} dialogClassName=\"appraisalModalStyle\" onEntered={() => autoFocus.current.focus()}>\r\n \r\n \r\n \r\n {modalTitle + ' Appraisal'}\r\n \r\n \r\n \r\n \r\n {modalBody}\r\n \r\n \r\n \r\n \r\n {modalFooter}\r\n \r\n \r\n \r\n tryCloseDeletingModal(e)} >\r\n \r\n \r\n {itemDeleteTitle}\r\n \r\n \r\n \r\n \r\n {itemBeingDeleted}\r\n

    \r\n {itemDeleteStatus}\r\n
    \r\n \r\n
    \r\n \r\n tryCloseDeletingModal(e)}>\r\n {isItemDeleting &&\r\n }\r\n {getDeletingButtonText()}\r\n {' '}\r\n \r\n
    \r\n\r\n \r\n \r\n \r\n Confirm Close\r\n \r\n \r\n \r\n \r\n Are you sure you want to close this window? \r\n

    \r\n Unsaved changes will be lost.\r\n
    \r\n \r\n
    \r\n \r\n confirmClosePrompt()}\r\n >Yes{' '} \r\n No{' '} \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n Invalid Options\r\n \r\n \r\n \r\n \r\n The following projects have no assigned practice areas: \r\n

    \r\n {projectsWithNoPA}\r\n
    \r\n \r\n
    \r\n \r\n hidePAWarningModal()}\r\n >OK{' '} \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n );\r\n}\r\nexport default Appraisals;","import React, { useState } from 'react';\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\nimport AdminViewOrganizations from './Organizations';\r\nimport AdminViewUsers from './Users';\r\nimport AdminViewAppraisals from './Appraisals';\r\nimport styled from 'styled-components';\r\n\r\nconst Styles = styled.div`\r\n.table{\r\n table-layout: auto;\r\n}\r\n\r\n.thead{\r\n background-color: rgb(0,168,168); \r\n font-size: 16px; \r\n color: white; \r\n width: 100%;\r\n}\r\n\r\n.custom-btn {\r\n background:rgb(0, 168, 168); \r\n color: dimgray;\r\n border: none;\r\n justify-content: center; \r\n padding: .5rem; \r\n } \r\n`;\r\n\r\n//Organizations page\r\nfunction AdminView(props) {\r\n \r\n const [selectedOrg, setSelectedOrg] = useState(null);\r\n const [refreshTrigger, setRefreshTrigger] = useState(true);\r\n\r\n const updateSelectedOrg = (org) => {\r\n setSelectedOrg(org);\r\n }\r\n\r\n const onOrgEditted = () => {\r\n setRefreshTrigger(!refreshTrigger);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default AdminView;","import React from \"react\";\r\nimport \"./NotFound.css\";\r\n\r\nconst NotFound = (props) => {\r\n return(\r\n
    \r\n

    Sorry, page not found!

    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default NotFound;","import React from 'react';\r\nimport { Row, Col} from 'react-bootstrap';\r\nimport styled from 'styled-components';\r\nimport Card from 'react-bootstrap/Card';\r\n\r\nconst Styles = styled.div`\r\n.container {\r\n position: relative;\r\n text-align: center;\r\n color: white;\r\n font-size: 110px;\r\n}\r\n\r\n.centered {\r\n position: absolute;\r\n top: 30%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 100px;\r\n color: white;\r\n}\r\n`;\r\n\r\nexport const About = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    About
    \r\n \r\n CSSA Appraisal Partner (CAP) Version 2.14\r\n Copyright 2007 by Cepeda Systems & Software Analysis (CSSA), Inc. All rights reserved \r\n
    \r\n The CSSA Appraisal Partner (hereinafter \"CAP\") is the sole property of CSSA. Use of CAP is offered as part of CSSA's CMMI coaching and appraisal services and is used for Quick Looks, \r\n Appraisal preparation, and Appraisal Conduct performed or facilitated by CSSA. Use of the CAP Tool is governed by the Non-Disclosure Agreement (NDA) between CSSA and the customer Organization. \r\n Contact the CAP Project Manager, Gayli Craver (gayli.craver@cepedasystems.com) for any questions.\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\n\r\nexport default ({ component: C, props: cProps, ...rest }) =>\r\n \r\n cProps.session !== null && cProps.isAdmin\r\n ? \r\n : ( cProps.session === null )\r\n ? \r\n : \r\n }\r\n />;","import React, { useState, useEffect } from 'react';\r\nimport { Container, Col, Row, Figure, Form, Button } from 'react-bootstrap';\r\nimport Card from 'react-bootstrap/Card';\r\nimport LoadingComponent from './presenters/LoadingComponent';\r\nimport { Auth, API} from 'aws-amplify';\r\n\r\nasync function fetchData(setDataLoading, setUserEmail) {\r\n const userInfo = await Auth.currentUserInfo();\r\n setUserEmail(userInfo.attributes.email);\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst UserProfile = () => {\r\n\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [userEmail, setUserEmail] = useState(\"\");\r\n\r\n useEffect(() => {\r\n const getData = () => fetchData(setDataLoading, setUserEmail);\r\n getData();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    {userEmail}
    \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 UserProfile;","import React from 'react';\r\nimport { Container, Col, Row, Figure, Form, Button } from 'react-bootstrap';\r\nimport Card from 'react-bootstrap/Card';\r\nimport styled from 'styled-components';\r\n\r\nconst Styles = styled.div`\r\n\r\n.custom-btn {\r\n background:rgb(0, 168, 168);\r\n color: white;\r\n border: none;\r\n justify-content: center; \r\n padding: .5rem; \r\n } \r\n`;\r\n\r\nexport const EditableProfile = () => (\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Gayli Craver

    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Email:\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Phone:\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Organization:\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Appraisal:\r\n \r\n \r\n \r\n \r\n \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 { Route, Redirect } from \"react-router-dom\";\r\n\r\nexport default ({ component: C, props: cProps, ...rest }) =>\r\n \r\n cProps.session !== null && ( cProps.isAdmin || cProps.orgId !== null ) \r\n ? \r\n : ( cProps.session === null )\r\n ? \r\n : \r\n }\r\n />;","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\n\r\nexport default ({ component: C, props: cProps, ...rest }) =>\r\n \r\n cProps.session === null\r\n ? \r\n : }\r\n />;","import React from 'react';\r\nimport './UnconfirmedUser.css';\r\n\r\nfunction UnconfirmedUser(props){\r\n return(\r\n
    \r\n

    Your account has not been activated

    \r\n

    Please contact your Cepeda Systems POC for more details.

    \r\n
    \r\n )\r\n}\r\n\r\nexport default UnconfirmedUser;","import React from 'react';\r\nimport { Navbar } from 'react-bootstrap';\r\nimport brand from '../assets/icon.png'\r\n\r\nexport const LoginNavigationBar = () => (\r\n\r\n \r\n \r\n \"CAP{' '}\r\n CAP\r\n \r\n \r\n)","import React, { useState, useEffect } from 'react';\r\nimport { Modal, FormGroup, Button, Spinner, FormControl, Row, Col } from 'react-bootstrap';\r\nimport { API } from 'aws-amplify';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport '../modal.css';\r\n\r\n\r\nfunction FindReplaceEvidenceModal(props){\r\n\r\n const [actionLoading, setActionLoading] = useState(false);\r\n const [findTextError, setFindTextError] = useState(true);\r\n const [replaceTextError, setReplaceTextError] = useState(true);\r\n const [findText, setFindText] = useState(\"\");\r\n const [replaceText, setReplaceText] = useState(\"\");\r\n const [replacedCount, setReplacedCount] = useState(0);\r\n const [showReplacedModal, setShowReplacedModal] = useState(false);\r\n\r\n const findTextErrorTooltip = \"Required\"\r\n const replaceTextErrorTooltip = \"Required\"\r\n\r\n //reset when modal is shown\r\n useEffect(()=>{\r\n if(props.showModal === true){\r\n setShowReplacedModal(false);\r\n setFindTextError(true);\r\n setReplaceTextError(true);\r\n setFindText(\"\");\r\n setReplaceText(\"\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const handleClick = async () => {\r\n setActionLoading(true);\r\n\r\n //get all evidence for the selected appraisal\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n const apiPath = `${Constants.APPRAISAL_EVIDENCE_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n //check the returned paths for matching string, and replace it\r\n let counter = 0;\r\n await data.forEach(async d => {\r\n let evidencePath = d.evidence_path;\r\n if(evidencePath.includes(findText)){\r\n await counter++;\r\n //we found a match, replace the text\r\n let newPath = evidencePath.replace(findText, replaceText);\r\n \r\n //update the database\r\n const body = {\r\n node_id: d.node_id,\r\n appraisal_id: d.appraisal_id,\r\n project_id: d.project_id,\r\n evidence_path: newPath,\r\n evidence_fileName: d.evidence_fileName,\r\n evidence_notes: d.evidence_notes || '-',\r\n evidence_state: d.evidence_state,\r\n revision_number: d.revision_number,\r\n appraisal_evidence_id: d.appraisal_evidence_id\r\n };\r\n try{\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch(e){\r\n console.log('evidence path find and replace failure: ' + e);\r\n } \r\n }\r\n });\r\n\r\n setReplacedCount(counter);\r\n setActionLoading(false);\r\n \r\n setShowReplacedModal(true);\r\n }\r\n\r\n const onAcknowledge = () => {\r\n setShowReplacedModal(false);\r\n props.setShowModal(false);\r\n window.location.reload();\r\n }\r\n\r\n const onFindTextChanged = (e) => {\r\n if(e === \"\" || e.trim().length === 0){\r\n setFindTextError(true);\r\n }\r\n else{\r\n setFindTextError(false);\r\n }\r\n setFindText(e);\r\n }\r\n\r\n const onReplaceTextChanged = (e) => {\r\n if(e === \"\" || e.trim().length === 0){\r\n setReplaceTextError(true);\r\n }\r\n else{\r\n setReplaceTextError(false);\r\n }\r\n setReplaceText(e);\r\n }\r\n\r\n const textAreaErrorStyle = {\r\n border: \"1px solid red\",\r\n width: \"100%\",\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white' \r\n };\r\n\r\n const textAreaStyle = {\r\n width: \"100%\",\r\n paddingLeft: '5px',\r\n borderBottomColor: 'dimgray',\r\n borderRightColor: 'white',\r\n borderLeftColor: 'white',\r\n borderTopColor: 'white' \r\n };\r\n\r\n return(\r\n props.setShowModal(false)} \r\n animation \r\n disabled={showReplacedModal}\r\n >\r\n \r\n \r\n {' '}Find and Replace Evidence Paths\r\n \r\n \r\n \r\n \r\n \r\n onFindTextChanged(e.target.value)} \r\n style={findTextError ? textAreaErrorStyle : textAreaStyle} \r\n title={findTextError ? findTextErrorTooltip : \"\"}\r\n disabled={showReplacedModal}/>\r\n \r\n \r\n onReplaceTextChanged(e.target.value)} \r\n style={replaceTextError ? textAreaErrorStyle : textAreaStyle}\r\n title={replaceTextError ? replaceTextErrorTooltip : \"\"}\r\n disabled={showReplacedModal}/>\r\n \r\n \r\n \r\n \r\n \r\n handleClick()}\r\n >\r\n {actionLoading &&\r\n }\r\n {!actionLoading ? \"Replace\" : ' Replacing...'}\r\n {' '} \r\n \r\n\r\n\r\n setShowReplacedModal(false)} \r\n animation\r\n style={{backgroundColor: 'rgba(0,0,0,0.2)'}}\r\n size='sm'>\r\n \r\n {replacedCount} occurences replaced.\r\n \r\n \r\n onAcknowledge()}\r\n >Ok \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default FindReplaceEvidenceModal;","import React, { useState, useEffect } from 'react';\r\nimport { Modal, Form, Button, Spinner, FormControl, Row, Col } from 'react-bootstrap';\r\nimport { AppraisalRepository, AppraisalStateRepository } from '../utils/repositories';\r\nimport uuid from 'uuid';\r\nimport { API } from 'aws-amplify';\r\nimport { modelContentUtils, Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport { PRACTICES, PRACTICE_AREA_RELATIONSHIPS } from '../model/modelcontent';\r\nimport '../modal.css';\r\n\r\nfunction GenerateRollupModal(props){\r\n\r\n const [actionLoading, setActionLoading] = useState(false);\r\n const [rollupType, setRollupType] = useState(\"benchSustain\");\r\n const [resultText, setResultText] = useState(\"\");\r\n const [showFinishedModal, setShowFinishedModal] = useState(false);\r\n const [showErrorModal, setShowErrorModal] = useState(false);\r\n const [practicesNotCharacterizedList, setPracticesNotCharacterizedList] = useState(\"\"); \r\n const [practicesIncorrectlyCharacterizedList, setPracticesIncorrectlyCharacterizedList] = useState(\"\"); \r\n const [rollUpTypeText, setRollUpTypeText] = useState(\"\"); \r\n \r\n\r\n //reset when modal is shown\r\n useEffect(()=>{\r\n if(props.showModal === true){\r\n setShowFinishedModal(false);\r\n setShowErrorModal(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const handleRollupTypeChanged = (value) => {\r\n setRollupType(value);\r\n }\r\n\r\n function getPracticeAreas(projects){\r\n const pas = modelContentUtils.getPracticeAreasFromAppraisalProjects(projects, true);\r\n //Pulling only the information I want from the utils call, which returns everything\r\n const modifiedPas = pas.map(pa=>{\r\n return(\r\n {\r\n Name: pa.Name,\r\n Id: pa.Id,\r\n SelectedForAdd: false,\r\n SelectedForRemove: false,\r\n SvcExclusive: pa.SvcExclusive,\r\n DevExclusive: pa.DevExclusive,\r\n MappedByAnyProject: false\r\n }\r\n )\r\n });\r\n return modifiedPas;\r\n }\r\n\r\n const handleClick = async () => {\r\n\r\n setActionLoading(true);\r\n\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let availablePracticeAreas = [];\r\n let currentAppraisalProjects = [];\r\n let maturityLevel = \"\";\r\n\r\n if(currentAppraisalId){\r\n\r\n if(rollupType === \"benchSustain\"){\r\n setRollUpTypeText(\"Benchmark/Sustainment\");\r\n } \r\n else if (rollupType === \"evaluation\"){\r\n setRollUpTypeText(\"Evaluation\");\r\n }\r\n const appraisalRepo = new AppraisalRepository();\r\n const stateRepo = new AppraisalStateRepository();\r\n const data = await appraisalRepo.getOne(currentAppraisalId, false);\r\n\r\n if(!data.error){\r\n //get the current appraisal data\r\n const currentAppraisal = data.returnValue;\r\n currentAppraisalProjects = currentAppraisal.projects;\r\n maturityLevel = modelContentUtils.getMaturityLevelFromView(currentAppraisal.view);\r\n availablePracticeAreas = getPracticeAreas(currentAppraisalProjects);\r\n\r\n //check to see if we need to remove an existing roll-up project\r\n let existingRollUpId = \"\";\r\n currentAppraisalProjects.forEach(p =>{\r\n if(p.name.toString() === \"Organizational Roll-up\"){\r\n existingRollUpId = p.id;\r\n }\r\n });\r\n\r\n //remove existing if found\r\n if(existingRollUpId !== \"\"){\r\n currentAppraisalProjects = currentAppraisalProjects.filter((v) => v && v.id !== existingRollUpId)\r\n }\r\n \r\n //gather state data and check to see if we can roll-up\r\n //to rollup all practices must be characterized and match the type of rollup selected\r\n let anyUncharacterized = false;\r\n let anyInvalidCharacterizations = false;\r\n let practicesNotCharacterized = [];\r\n let practicesInvalidCharacterization = [];\r\n let allAppraisalStateData = [];\r\n\r\n for(let i = 0; i < currentAppraisalProjects.length; i++) {\r\n\r\n //get all state entries for the current project\r\n let stateEntries = \"\";\r\n const response = await stateRepo.getAll(currentAppraisal.id, currentAppraisalProjects[i].id);\r\n if(!response.error){\r\n stateEntries = response.returnValue;\r\n }\r\n \r\n for(let j = 0; j < currentAppraisalProjects[i].practiceAreas.length; j++){\r\n\r\n //get all practices available to the current practice area and maturity level\r\n let currentPracticeArea = currentAppraisalProjects[i].practiceAreas[j];\r\n let practices = PRACTICE_AREA_RELATIONSHIPS[currentPracticeArea].filter(x => x.Level <= maturityLevel);\r\n\r\n for(let k = 0; k < practices.length; k++){\r\n\r\n //see if there is a database entry for the practice\r\n let correspondingStateEntry = stateEntries.filter(x => x.nodeId === practices[k].Id)\r\n if(correspondingStateEntry.length > 0){\r\n\r\n allAppraisalStateData.push(correspondingStateEntry[0]);\r\n let practiceState = correspondingStateEntry[0].state;\r\n\r\n //the practice is uncharacterized - do not complete rollup\r\n if(practiceState === \"Not Examined\"){\r\n anyUncharacterized = true;\r\n practicesNotCharacterized.push(currentAppraisalProjects[i].name + \": \" + PRACTICES[practices[k].Id].Abbreviation);\r\n }\r\n else{\r\n if(rollupType === \"benchSustain\"){\r\n //the practice must be characterized with a benchmark/sustainment option to rollup\r\n if(practiceState.toString() !== \"Fully Meets\" \r\n && practiceState.toString() !== \"Largely Meets\"\r\n && practiceState.toString() !== \"Partially Meets\"\r\n && practiceState.toString() !== \"Does Not Meet\"\r\n && practiceState.toString() !== \"Not Yet Implemented\"){\r\n anyInvalidCharacterizations = true;\r\n practicesInvalidCharacterization.push(currentAppraisalProjects[i].name + \": \" + PRACTICES[practices[k].Id].Abbreviation);\r\n }\r\n } \r\n else if (rollupType === \"evaluation\"){\r\n //the practice must be characterized with an evaluation option to rollup\r\n if(practiceState.toString() !== \"Major Issues\" \r\n && practiceState.toString() !== \"Minor Issues\"\r\n && practiceState.toString() !== \"No Issues\"){\r\n anyInvalidCharacterizations = true;\r\n practicesInvalidCharacterization.push(currentAppraisalProjects[i].name + \": \" + PRACTICES[practices[k].Id].Abbreviation);\r\n }\r\n }\r\n }\r\n }\r\n else{\r\n //the practice is uncharacterized - do not complete rollup\r\n anyUncharacterized = true;\r\n practicesNotCharacterized.push(currentAppraisalProjects[i].name + \": \" + PRACTICES[practices[k].Id].Abbreviation);\r\n }\r\n }\r\n }\r\n }\r\n //roll up could not complete due to errors\r\n if(anyUncharacterized || anyInvalidCharacterizations){\r\n setActionLoading(false);\r\n\r\n setPracticesNotCharacterizedList(practicesNotCharacterized.join(\"\\n\"));\r\n setPracticesIncorrectlyCharacterizedList(practicesInvalidCharacterization.join(\"\\n\"));\r\n setShowErrorModal(true);\r\n }\r\n else{\r\n //create the new roll-up project object\r\n const newProject = {\r\n id: uuid.v1(),\r\n name: \"Organizational Roll-up\",\r\n practiceAreas: availablePracticeAreas\r\n };\r\n \r\n //add the new rollup project to the appraisal\r\n currentAppraisalProjects = [...currentAppraisalProjects, newProject];\r\n let newAppraisal = {...currentAppraisal, name: currentAppraisal.name, projects: currentAppraisalProjects};\r\n await appraisalRepo.updateOne(currentAppraisal, newAppraisal);\r\n const data = await appraisalRepo.getOne(currentAppraisalId);\r\n\r\n let updatedProjects = data.returnValue.projects;\r\n let updatedRollUpId = \"\";\r\n updatedProjects.forEach(p =>{\r\n if(p.name.toString() === \"Organizational Roll-up\"){\r\n updatedRollUpId = p.id;\r\n }\r\n });\r\n \r\n //add characterizations to the project\r\n for(let i = 0; i < newProject.practiceAreas.length; i++){\r\n let newPA = newProject.practiceAreas[i];\r\n let practices = PRACTICE_AREA_RELATIONSHIPS[newPA.Id].filter(x => x.Level <= maturityLevel);\r\n for(let j = 0; j < practices.length; j++){\r\n\r\n //this is the state data in the database for each specific node\r\n let nodeStateEntries = allAppraisalStateData.filter(x => x.nodeId === practices[j].Id)\r\n\r\n //if theres only 1 node, write it\r\n if(nodeStateEntries.length === 1){\r\n const body = {\r\n appraisal_id: currentAppraisal.id,\r\n project_id: updatedRollUpId,\r\n node_id: nodeStateEntries[0].nodeId,\r\n node_state: nodeStateEntries[0].state,\r\n revision_number: 0\r\n };\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n //more than 1 node we must follow roll up rules to characterize\r\n else{\r\n // All Fully Meets (FM) or Not Yet (NY) with at least 1 FM = Fully Meets\r\n // All Largely Meets (LM) or FM or NY with at least 1 LM = Largely Meets\r\n // At least one Largely Meets (LM) or Fully Meets (FM), AND at least one Partially Meets (PM) or Does not Meet (DM) = Not Examined\r\n // All PM, DM, or NY with at least one PM\r\n // All DM or NY with at least one DM\r\n // All NY\r\n if(rollupType === \"benchSustain\"){\r\n let finalState = \"\";\r\n let nodeStates = [];\r\n for(let k = 0; k < nodeStateEntries.length; k++){\r\n nodeStates.push(nodeStateEntries[k].state.toString());\r\n }\r\n if(nodeStates.includes(\"Fully Meets\") || nodeStates.includes(\"Largely Meets\")){\r\n if(nodeStates.includes(\"Partially Meets\") || nodeStates.includes(\"Does Not Meet\")){\r\n finalState = \"Not Examined\";\r\n } \r\n else if(nodeStates.includes(\"Largely Meets\")){\r\n finalState = \"Largely Meets\";\r\n } \r\n else{\r\n finalState = \"Fully Meets\";\r\n }\r\n }\r\n else if (nodeStates.includes(\"Partially Meets\") || nodeStates.includes(\"Does Not Meet\") || nodeStates.includes(\"Not Yet Implemented\")){\r\n if(nodeStates.includes(\"Partially Meets\")){\r\n finalState = \"Partially Meets\";\r\n } \r\n else if(nodeStates.includes(\"Does Not Meet\")){\r\n finalState = \"Does Not Meet\";\r\n } \r\n else{\r\n finalState = \"Not Yet Implemented\";\r\n }\r\n }\r\n\r\n const body = {\r\n appraisal_id: currentAppraisal.id,\r\n project_id: updatedRollUpId,\r\n node_id: nodeStateEntries[0].nodeId,\r\n node_state: finalState,\r\n revision_number: 0\r\n };\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n } \r\n //evaluation rules: \r\n // all green = green\r\n // all red = red\r\n // all yellow = yellow\r\n // all other conditions = not examined\r\n else if (rollupType === \"evaluation\"){\r\n let firstState = nodeStateEntries[0].state.toString();\r\n let conflictingState = false;\r\n for(let k = 0; k < nodeStateEntries.length; k++){\r\n if(nodeStateEntries[k].state.toString() !== firstState){\r\n conflictingState = true;\r\n }\r\n }\r\n let state = conflictingState ? \"Not Examined\" : firstState;\r\n\r\n const body = {\r\n appraisal_id: currentAppraisal.id,\r\n project_id: updatedRollUpId,\r\n node_id: nodeStateEntries[0].nodeId,\r\n node_state: state,\r\n revision_number: 0\r\n };\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n }\r\n }\r\n }\r\n \r\n //get all findings data for the appraisal\r\n const apiPath = `${Constants.APPRAISAL_ITEM_PATH}/${currentAppraisalId}`\r\n const findingsData = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n //add findings to the project\r\n for(let i = 0; i < newProject.practiceAreas.length; i++){\r\n let newPA = newProject.practiceAreas[i];\r\n let practices = PRACTICE_AREA_RELATIONSHIPS[newPA.Id].filter(x => x.Level <= maturityLevel);\r\n for(let j = 0; j < practices.length; j++){\r\n\r\n //this is the findings data in the database for each specific node\r\n let nodeFindingsEntries = findingsData.filter(x => x.node_id === practices[j].Id)\r\n\r\n let notes = nodeFindingsEntries.filter(x => x.item_type === \"notes\");\r\n let strengths = nodeFindingsEntries.filter(x => x.item_type === \"strengths\");\r\n let weaknesses = nodeFindingsEntries.filter(x => x.item_type === \"weaknesses\");\r\n let improvementOps = nodeFindingsEntries.filter(x => x.item_type === \"improvement_opportunities\");\r\n\r\n let notesRollUpItems = [];\r\n for(let i = 0; i < notes.length; i++){\r\n let currentEntryProject = updatedProjects.filter(x => x.id === notes[i].project_id)[0];\r\n if(currentEntryProject){\r\n let projectName = currentEntryProject.name;\r\n if(projectName.toString() !== \"Organizational Roll-up\"){\r\n notesRollUpItems.push(projectName + \": \" + notes[i].item_data);\r\n }\r\n }\r\n }\r\n let notesRollUpEntry = notesRollUpItems.sort().join(\"\\n\");\r\n if(notesRollUpEntry !== \"\"){\r\n const body = {\r\n appraisal_id: currentAppraisal.id,\r\n project_id: updatedRollUpId,\r\n node_id: practices[j].Id,\r\n item_type: \"notes\",\r\n item_data: notesRollUpEntry,\r\n revision_number: 0\r\n }\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n\r\n let strengthRollUpItems = [];\r\n for(let i = 0; i < strengths.length; i++){\r\n let currentEntryProject = updatedProjects.filter(x => x.id === strengths[i].project_id)[0];\r\n if(currentEntryProject){\r\n let projectName = currentEntryProject.name;\r\n if(projectName.toString() !== \"Organizational Roll-up\"){\r\n strengthRollUpItems.push(projectName + \": \" + strengths[i].item_data);\r\n }\r\n }\r\n }\r\n let strengthRollUpEntry = strengthRollUpItems.sort().join(\"\\n\");\r\n\r\n if(strengthRollUpEntry !== \"\"){\r\n const body = {\r\n appraisal_id: currentAppraisal.id,\r\n project_id: updatedRollUpId,\r\n node_id: practices[j].Id,\r\n item_type: \"strengths\",\r\n item_data: strengthRollUpEntry,\r\n revision_number: 0\r\n }\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n \r\n let weaknessRollUpItems = [];\r\n for(let i = 0; i < weaknesses.length; i++){\r\n let currentEntryProject = updatedProjects.filter(x => x.id === weaknesses[i].project_id)[0];\r\n if(currentEntryProject){\r\n let projectName = currentEntryProject.name;\r\n if(projectName.toString() !== \"Organizational Roll-up\"){\r\n weaknessRollUpItems.push(projectName + \": \" + weaknesses[i].item_data);\r\n }\r\n }\r\n }\r\n let weaknessRollUpEntry = weaknessRollUpItems.sort().join(\"\\n\");\r\n if(weaknessRollUpEntry !== \"\"){\r\n const body = {\r\n appraisal_id: currentAppraisal.id,\r\n project_id: updatedRollUpId,\r\n node_id: practices[j].Id,\r\n item_type: \"weaknesses\",\r\n item_data: weaknessRollUpEntry,\r\n revision_number: 0\r\n }\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n\r\n\r\n let improvementOpRollUpItems = [];\r\n for(let i = 0; i < improvementOps.length; i++){\r\n let currentEntryProject = updatedProjects.filter(x => x.id === improvementOps[i].project_id)[0];\r\n if(currentEntryProject){\r\n let projectName = currentEntryProject.name;\r\n if(projectName.toString() !== \"Organizational Roll-up\"){\r\n improvementOpRollUpItems.push(projectName + \": \" + improvementOps[i].item_data);\r\n }\r\n }\r\n }\r\n let improvementOpRollUpEntry = improvementOpRollUpItems.sort().join(\"\\n\");\r\n if(improvementOpRollUpEntry !== \"\"){\r\n const body = {\r\n appraisal_id: currentAppraisal.id,\r\n project_id: updatedRollUpId,\r\n node_id: practices[j].Id,\r\n item_type: \"improvement_opportunities\",\r\n item_data: improvementOpRollUpEntry,\r\n revision_number: 0\r\n }\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body))\r\n }\r\n }\r\n }\r\n \r\n\r\n setResultText(\"Roll-up successfully generated.\");\r\n\r\n setActionLoading(false);\r\n setShowFinishedModal(true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const onAcknowledge = () => {\r\n setShowFinishedModal(false);\r\n setShowErrorModal(false);\r\n props.setShowModal(false);\r\n window.location.reload();\r\n }\r\n\r\n const tryHideModal = (e) => {\r\n if(!actionLoading){\r\n props.setShowModal(false)\r\n }\r\n }\r\n\r\n return(\r\n tryHideModal(e)} \r\n animation \r\n disabled={showFinishedModal || showErrorModal}\r\n >\r\n \r\n \r\n {' '}Generate Organizational Roll-up\r\n \r\n \r\n \r\n \r\n \r\n Roll-up Type\r\n \r\n \r\n handleRollupTypeChanged(e.target.value)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleClick()}\r\n >\r\n {actionLoading &&\r\n }\r\n {!actionLoading ? \"Generate Roll-up\" : ' This may take a while. Generating Roll-up...'}\r\n {' '} \r\n \r\n\r\n\r\n setShowFinishedModal(false)} \r\n animation\r\n style={{backgroundColor: 'rgba(0,0,0,0.2)'}}\r\n size='sm'>\r\n \r\n {resultText}\r\n \r\n \r\n onAcknowledge()}\r\n >Ok \r\n \r\n \r\n\r\n setShowErrorModal(false)} \r\n animation\r\n style={{backgroundColor: 'rgba(0,0,0,0.2)'}}\r\n >\r\n \r\n Error Generating Roll-up\r\n \r\n \r\n \r\n
    Type: {rollUpTypeText}
    \r\n
    \r\n \r\n \r\n \r\n
    Uncharacterized
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Incorrectly Characterized
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n onAcknowledge()}\r\n >Ok \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default GenerateRollupModal;","import React from 'react';\r\nimport {Row, Col} from 'react-bootstrap'\r\n\r\nconst ReportFragment = ({visible, reportName, reportType, reportHeader, reportHeaderStyle, scopeHeader, scope, appraisalHeader, appraisalName, children}) => { \r\n \r\n function showScope(){\r\n if(!scope){\r\n return false;\r\n }\r\n if(scope.trim().length > 0 ){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n let scopeStyle = {height:'auto', marginBottom:'-20px'}\r\n let scopeHiddenStyle = {height:'auto', marginBottom:'-20px', display:'none'}\r\n \r\n return (\r\n \r\n {reportName}\r\n \r\n \r\n

    {reportHeader}

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

    {reportType}

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

    {scopeHeader}

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

    {scope}

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

    {appraisalHeader}

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

    {appraisalName}

    \r\n \r\n
    \r\n {children}\r\n
    \r\n );\r\n}\r\nexport default ReportFragment;","import React, { useState, useEffect } from 'react';\r\nimport { Button, Row, Col, Form, FormControl, Modal, FormLabel, Spinner } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { PRACTICES } from '../model/practices';\r\nimport { Constants, getDefaultAPIHeaders, getNodeAPIPath } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\n\r\nasync function fetchData(setDataLoading, appraisals, handleAppraisalChanged_FROM, handleAppraisalChanged_TO) {\r\n try {\r\n const data = await API.get(Constants.API_PATH, Constants.APPRAISAL_PATH, await getDefaultAPIHeaders());\r\n const formattedAppraisals = data.map(a => {\r\n return {\r\n id: a.appraisal_id,\r\n name: a.appraisal_name,\r\n view: a.appraisal_view\r\n }\r\n });\r\n if (formattedAppraisals.length > 0) {\r\n appraisals.setValue(formattedAppraisals);\r\n }\r\n else {\r\n console.log('No appraisals were found.');\r\n }\r\n } \r\n catch (e) {\r\n console.log(e);\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst CopyAppraisalDataPracticeModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const appraisals = useArray([]);\r\n\r\n //from\r\n const [selectedAppraisalID_FROM, setSelectedAppraisalID_FROM] = useState(\"false\");\r\n const [selectedProjectID_FROM, setSelectedProjectID_FROM] = useState(\"false\");\r\n const [selectedPracticeAreaID_FROM, setSelectedPracticeArea_FROM] = useState(\"false\");\r\n const [selectedPracticeID_FROM, setSelectedPractice_FROM] = useState(\"false\");\r\n const projects_FROM = useArray([]);\r\n const practiceAreas_FROM = useArray([]);\r\n const practices_FROM = useArray([]);\r\n\r\n //to\r\n const [selectedAppraisalID_TO, setSelectedAppraisalID_TO] = useState(\"false\");\r\n const [selectedProjectID_TO, setSelectedProjectID_TO] = useState(\"false\");\r\n const [selectedPracticeAreaID_TO, setSelectedPracticeArea_TO] = useState(\"false\");\r\n const [selectedPracticeID_TO, setSelectedPractice_TO] = useState(\"false\");\r\n const projects_TO = useArray([]);\r\n const practiceAreas_TO = useArray([]);\r\n const practices_TO = useArray([]);\r\n\r\n //states\r\n //0 = awaiting appraisal selection\r\n //1 = awaiting project selection\r\n //2 = awaiting PA selection\r\n //3 = awaiting Practice selection\r\n const [modalOptionsState_FROM, setModalOptionsState_FROM] = useState(0);\r\n const [modalOptionsState_TO, setModalOptionsState_TO] = useState(0);\r\n\r\n //progress modal\r\n const [showCopyingModal, setShowCopyingModal] = useState(false);\r\n const [areItemsCopying, setAreItemsCopying] = useState(false);\r\n const [itemCopyType, setItemCopyType] = useState(\"\");\r\n const [itemCopyStatus, setItemCopyStatus] = useState(\"\");\r\n\r\n const defaultSelectionOption = \" -- select an option -- \";\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n\r\n setModalOptionsState_FROM(0);\r\n setModalOptionsState_TO(0);\r\n\r\n projects_FROM.setValue([]);\r\n practiceAreas_FROM.setValue([]);\r\n practices_FROM.setValue([]);\r\n\r\n setSelectedAppraisalID_TO('');\r\n setSelectedProjectID_TO('');\r\n setSelectedPracticeArea_TO('');\r\n setSelectedPractice_TO('');\r\n \r\n setDataLoading(true);\r\n const getData = () => fetchData(setDataLoading, appraisals, handleAppraisalChanged_FROM, handleAppraisalChanged_TO);\r\n getData();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n useEffect(() => {\r\n if(selectedAppraisalID_FROM !== \"\"){\r\n setModalOptionsState_FROM(1);\r\n }\r\n }, [selectedAppraisalID_FROM]);\r\n\r\n useEffect(() => {\r\n if(selectedProjectID_FROM !== \"\"){\r\n setModalOptionsState_FROM(2);\r\n }\r\n }, [selectedProjectID_FROM]);\r\n\r\n useEffect(() => {\r\n if(selectedPracticeAreaID_FROM !== \"\"){\r\n setModalOptionsState_FROM(3);\r\n }\r\n }, [selectedPracticeAreaID_FROM]);\r\n \r\n useEffect(() => {\r\n if(selectedAppraisalID_TO !== \"\"){\r\n setModalOptionsState_TO(1);\r\n }\r\n }, [selectedAppraisalID_TO]);\r\n\r\n useEffect(() => {\r\n if(selectedProjectID_TO !== \"\"){\r\n setModalOptionsState_TO(2);\r\n }\r\n }, [selectedProjectID_TO]);\r\n\r\n useEffect(() => {\r\n if(selectedPracticeAreaID_TO !== \"\"){\r\n setModalOptionsState_TO(3);\r\n }\r\n }, [selectedPracticeAreaID_TO]);\r\n\r\n const handleAppraisalChanged_FROM = async (selectedAppraisal) => {\r\n\r\n //reset previous states\r\n setModalOptionsState_FROM(0);\r\n projects_FROM.setValue([]);\r\n practiceAreas_FROM.setValue([]);\r\n practices_FROM.setValue([]);\r\n setSelectedProjectID_FROM('');\r\n setSelectedPracticeArea_FROM('');\r\n setSelectedPractice_FROM('');\r\n\r\n if(selectedAppraisal === \"\"){\r\n return;\r\n }\r\n\r\n try {\r\n const currentAppraisalData = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_PATH}/${selectedAppraisal}`, await getDefaultAPIHeaders());\r\n const formattedProjectData = currentAppraisalData.projects\r\n .filter(x => x.project_name !== \"Organizational Roll-up\")\r\n .map(p => {\r\n return {\r\n id: p.project_id,\r\n name: p.project_name,\r\n practiceAreas: p.practice_areas\r\n }\r\n });\r\n\r\n //set new states\r\n setSelectedAppraisalID_FROM(selectedAppraisal);\r\n projects_FROM.setValue(formattedProjectData);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n const handleProjectChanged_FROM = async (projectID) => {\r\n\r\n //reset previous states\r\n setModalOptionsState_FROM(1);\r\n practiceAreas_FROM.setValue([]);\r\n practices_FROM.setValue([]);\r\n setSelectedPracticeArea_FROM('');\r\n setSelectedPractice_FROM('');\r\n\r\n if(projectID === \"\"){\r\n return;\r\n }\r\n\r\n let selectedProject = projects_FROM.value.find(p => p.id === projectID);\r\n if(selectedProject){\r\n \r\n //set new states\r\n setSelectedProjectID_FROM(projectID);\r\n practiceAreas_FROM.setValue(selectedProject.practiceAreas);\r\n }\r\n }\r\n\r\n const handlePracticeAreaChanged_FROM = async (practiceArea) => {\r\n\r\n //reset previous states\r\n setModalOptionsState_FROM(2);\r\n practices_FROM.setValue([]);\r\n setSelectedPractice_FROM('');\r\n\r\n if(practiceArea === \"\"){\r\n return;\r\n }\r\n\r\n setSelectedPracticeArea_FROM(practiceArea);\r\n let practiceSet = [];\r\n let nodes = PRACTICE_AREA_RELATIONSHIPS[practiceArea];\r\n if(nodes){\r\n for(let i = 0; i < nodes.length; i++){\r\n practiceSet.push(PRACTICES[nodes[i].Id]);\r\n }\r\n }\r\n \r\n //set new states\r\n practices_FROM.setValue(practiceSet);\r\n }\r\n\r\n const handlePracticeChanged_FROM = (practice) => {\r\n\r\n //reset previous states\r\n setModalOptionsState_FROM(3);\r\n\r\n if(practice === \"\"){\r\n setSelectedPractice_FROM('');\r\n return;\r\n }\r\n\r\n //set new states\r\n setSelectedPractice_FROM(practice);\r\n }\r\n\r\n const getAppraisalOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n for(let i = 0; i < appraisals.value.length; i++){\r\n options.push()\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getProjectOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState_FROM >= 1){\r\n for(let i = 0; i < projects_FROM.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getPracticeAreasOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState_FROM >= 2){\r\n for(let i = 0; i < practiceAreas_FROM.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getPracticeOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState_FROM >= 3){\r\n for(let i = 0; i < practices_FROM.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const handleAppraisalChanged_TO = async (selectedAppraisal) => {\r\n\r\n //reset previous states\r\n setModalOptionsState_TO(0);\r\n projects_TO.setValue([]);\r\n practiceAreas_TO.setValue([]);\r\n practices_TO.setValue([]);\r\n setSelectedProjectID_TO('');\r\n setSelectedPracticeArea_TO('');\r\n setSelectedPractice_TO('');\r\n\r\n if(selectedAppraisal === \"\"){\r\n return;\r\n }\r\n\r\n try {\r\n const currentAppraisalData = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_PATH}/${selectedAppraisal}`, await getDefaultAPIHeaders());\r\n const formattedProjectData = currentAppraisalData.projects\r\n .filter(x => x.project_name !== \"Organizational Roll-up\")\r\n .map(p => {\r\n return {\r\n id: p.project_id,\r\n name: p.project_name,\r\n practiceAreas: p.practice_areas\r\n }\r\n });\r\n\r\n //set current states\r\n setSelectedAppraisalID_TO(selectedAppraisal);\r\n projects_TO.setValue(formattedProjectData);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n const handleProjectChanged_TO = async (projectID) => {\r\n\r\n //reset previous states\r\n setModalOptionsState_TO(1);\r\n practiceAreas_TO.setValue([]);\r\n practices_TO.setValue([]);\r\n setSelectedPracticeArea_TO('');\r\n setSelectedPractice_TO('');\r\n\r\n if(projectID === \"\"){\r\n return;\r\n }\r\n\r\n let selectedProject = projects_TO.value.find(p => p.id === projectID);\r\n if(selectedProject){\r\n\r\n //set current states\r\n setSelectedProjectID_TO(projectID);\r\n practiceAreas_TO.setValue(selectedProject.practiceAreas);\r\n }\r\n }\r\n\r\n const handlePracticeAreaChanged_TO = async (practiceArea) => {\r\n\r\n //reset previous states\r\n setModalOptionsState_TO(2);\r\n practices_TO.setValue([]);\r\n setSelectedPractice_TO('');\r\n\r\n if(practiceArea === \"\"){\r\n return;\r\n }\r\n\r\n setSelectedPracticeArea_TO(practiceArea);\r\n let practiceSet = [];\r\n let nodes = PRACTICE_AREA_RELATIONSHIPS[practiceArea];\r\n if(nodes){\r\n for(let i = 0; i < nodes.length; i++){\r\n practiceSet.push(PRACTICES[nodes[i].Id]);\r\n }\r\n }\r\n \r\n //set current states\r\n practices_TO.setValue(practiceSet);\r\n }\r\n\r\n const handlePracticeChanged_TO = (practice) => {\r\n\r\n //reset previous states\r\n setModalOptionsState_TO(3);\r\n\r\n if(practice === \"\"){\r\n setSelectedPractice_TO(\"\");\r\n return;\r\n }\r\n\r\n //set current states\r\n setSelectedPractice_TO(practice);\r\n }\r\n\r\n const getAppraisalOptionsList_TO = () => {\r\n let options = [];\r\n options.push();\r\n for(let i = 0; i < appraisals.value.length; i++){\r\n options.push()\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getProjectOptionsList_TO = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState_TO >= 1){\r\n for(let i = 0; i < projects_TO.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getPracticeAreasOptionsList_TO = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState_TO >= 2){\r\n for(let i = 0; i < practiceAreas_TO.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getPracticeOptionsList_TO = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState_TO >= 3){\r\n for(let i = 0; i < practices_TO.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const executeClick = async () => {\r\n\r\n setShowCopyingModal(true);\r\n setAreItemsCopying(true);\r\n\r\n if(props.options.Evidence){\r\n await copyEvidence();\r\n }\r\n \r\n if(props.options.Interviews){\r\n await copyInterviews();\r\n }\r\n\r\n if(props.options.Notes \r\n || props.options.Strengths\r\n || props.options.Weaknesses\r\n || props.options.IOs){\r\n await copyFindings();\r\n }\r\n\r\n setItemCopyType(\"Copy Complete.\");\r\n setAreItemsCopying(false);\r\n }\r\n\r\n const copyEvidence = async () => {\r\n\r\n setItemCopyType(\"Copying Evidence Data...\");\r\n\r\n //get the FROM evidence\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: selectedPracticeID_FROM\r\n }\r\n let evidenceData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_EVIDENCE_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < evidenceData.length; i++){\r\n\r\n //create the TO evidence for every FROM evidence\r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: selectedPracticeID_TO,\r\n evidence_fileName: evidenceData[i].evidence_fileName,\r\n evidence_path: evidenceData[i].evidence_path,\r\n evidence_notes: evidenceData[i].evidence_notes,\r\n evidence_state: evidenceData[i].evidence_state,\r\n isHyperlink: evidenceData[i].isHyperlink,\r\n };\r\n\r\n try {\r\n await API.post(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log('evidence post failure' + e);\r\n }\r\n }\r\n }\r\n\r\n const copyInterviews = async () => {\r\n\r\n setItemCopyType(\"Copying Interview Data...\");\r\n\r\n //get the FROM interviews\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: selectedPracticeID_FROM\r\n }\r\n const interviewData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.INTERVIEW_QUESTIONS_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < interviewData.length; i++){\r\n\r\n //create the TO interviews for every FROM interview\r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: selectedPracticeID_TO,\r\n question: interviewData[i].question,\r\n sessions: interviewData[i].sessions\r\n }\r\n try {\r\n await API.post(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log(\"add interview question failure\" + e);\r\n }\r\n }\r\n }\r\n\r\n const copyFindings = async () => {\r\n\r\n setItemCopyType(\"Copying Findings Data...\");\r\n\r\n //get the FROM findings\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: selectedPracticeID_FROM\r\n }\r\n const findingsData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_ITEM_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < findingsData.length; i++){\r\n\r\n //filter any findings whose options are not chosen\r\n if((findingsData[i].item_type === \"notes\" && !props.options.Notes)\r\n || (findingsData[i].item_type === \"strengths\" && !props.options.Strengths)\r\n || (findingsData[i].item_type === \"weaknesses\" && !props.options.Weaknesses)\r\n || (findingsData[i].item_type === \"improvement_opportunities\" && !props.options.IOs)) {\r\n continue;\r\n }\r\n \r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: selectedPracticeID_TO,\r\n item_type: findingsData[i].item_type,\r\n item_data: findingsData[i].item_data,\r\n revision_number: 0\r\n }\r\n try {\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log(\"add findings failure\" + e);\r\n } \r\n }\r\n }\r\n\r\n const getCopyingButtonText = () => {\r\n return !areItemsCopying ? \"Close\" : \" Copying Appraisal Data, please wait...\";\r\n }\r\n\r\n const getSelectedOptions = () => {\r\n let selectedOptions = [];\r\n if(props.options.Evidence){\r\n selectedOptions.push(\"Evidence\");\r\n }\r\n if(props.options.Interviews){\r\n selectedOptions.push(\"Interviews\");\r\n }\r\n if(props.options.Notes){\r\n selectedOptions.push(\"Notes\");\r\n }\r\n if(props.options.Strengths){\r\n selectedOptions.push(\"Strengths\");\r\n }\r\n if(props.options.Weaknesses){\r\n selectedOptions.push(\"Weaknesses\");\r\n }\r\n if(props.options.IOs){\r\n selectedOptions.push(\"Improvement Opportunities\");\r\n }\r\n return selectedOptions.join(', ');\r\n }\r\n\r\n const tryCloseModal = () => {\r\n if(!areItemsCopying){\r\n props.setShowModal(false);\r\n }\r\n }\r\n\r\n const tryCloseCopyingModal = () => {\r\n if (!areItemsCopying) {\r\n setShowCopyingModal(false);\r\n props.setShowModal(false);\r\n }\r\n }\r\n\r\n return (\r\n \r\n tryCloseModal()} dialogClassName=\"findingsReportModalStyle\">\r\n \r\n \r\n {' '}Copy Appraisal Data by Practice\r\n \r\n \r\n \r\n \r\n \r\n \r\n Selected Options\r\n \r\n \r\n \r\n {getSelectedOptions()}\r\n \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n \r\n Copy From\r\n \r\n \r\n \r\n \r\n Appraisal\r\n \r\n \r\n handleAppraisalChanged_FROM(e.target.value)}>\r\n {getAppraisalOptionsList_FROM()}\r\n \r\n \r\n \r\n \r\n \r\n Project\r\n \r\n \r\n handleProjectChanged_FROM(e.target.value)}>\r\n {getProjectOptionsList_FROM()}\r\n \r\n \r\n \r\n \r\n \r\n Practice Area\r\n \r\n \r\n handlePracticeAreaChanged_FROM(e.target.value)}>\r\n {getPracticeAreasOptionsList_FROM()}\r\n \r\n \r\n \r\n \r\n \r\n Practice\r\n \r\n \r\n handlePracticeChanged_FROM(e.target.value)}>\r\n {getPracticeOptionsList_FROM()}\r\n \r\n \r\n \r\n
    \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n
    \r\n \r\n \r\n Copy To\r\n \r\n \r\n \r\n \r\n Appraisal\r\n \r\n \r\n handleAppraisalChanged_TO(e.target.value)}>\r\n {getAppraisalOptionsList_TO()}\r\n \r\n \r\n \r\n \r\n \r\n Project\r\n \r\n \r\n handleProjectChanged_TO(e.target.value)}>\r\n {getProjectOptionsList_TO()}\r\n \r\n \r\n \r\n \r\n \r\n Practice Area\r\n \r\n \r\n handlePracticeAreaChanged_TO(e.target.value)}>\r\n {getPracticeAreasOptionsList_TO()}\r\n \r\n \r\n \r\n \r\n \r\n Practice\r\n \r\n \r\n handlePracticeChanged_TO(e.target.value)}>\r\n {getPracticeOptionsList_TO()}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n executeClick()}\r\n >\r\n Copy Practice\r\n {' '}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n tryCloseCopyingModal(e)} >\r\n \r\n \r\n Copy Appraisal Data\r\n \r\n \r\n \r\n \r\n {itemCopyType}\r\n

    \r\n {itemCopyStatus}\r\n
    \r\n \r\n
    \r\n \r\n tryCloseCopyingModal(e)}>\r\n {areItemsCopying &&\r\n }\r\n {getCopyingButtonText()}\r\n {' '}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\nexport default CopyAppraisalDataPracticeModal;","import React, { useState, useEffect } from 'react';\r\nimport { Button, Row, Col, Form, FormControl, Modal, FormLabel, Spinner } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { PRACTICES } from '../model/practices';\r\nimport { Constants, getDefaultAPIHeaders, getNodeAPIPath } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport { PRACTICE_AREAS } from '../model/practiceareas';\r\n\r\nasync function fetchData(setDataLoading, appraisals_FROM, appraisals_TO) {\r\n try {\r\n const data = await API.get(Constants.API_PATH, Constants.APPRAISAL_PATH, await getDefaultAPIHeaders());\r\n const formattedAppraisals = data.map(a => {\r\n return {\r\n id: a.appraisal_id,\r\n name: a.appraisal_name,\r\n view: a.appraisal_view\r\n }\r\n });\r\n if (formattedAppraisals.length > 0) {\r\n appraisals_FROM.setValue(formattedAppraisals);\r\n }\r\n else {\r\n console.log('No appraisals were found.');\r\n }\r\n } \r\n catch (e) {\r\n console.log(e);\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst CopyAppraisalDataPracticeAreaModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n\r\n //from\r\n const [selectedAppraisalID_FROM, setSelectedAppraisalID_FROM] = useState(\"false\");\r\n const [selectedProjectID_FROM, setSelectedProjectID_FROM] = useState(\"false\");\r\n const [selectedPracticeAreaID_FROM, setSelectedPracticeAreaID_FROM] = useState(\"false\");\r\n const [selectedAppraisalLevel_FROM, setSelectedAppraisalLevel_FROM] = useState(\"false\");\r\n const [selectedAppraisalName_FROM, setSelectedAppraisalName_FROM] = useState(\"\");\r\n const [selectedAppraisalType_FROM, setSelectedAppraisalType_FROM] = useState(\"\");\r\n const appraisals_FROM = useArray([]);\r\n const projects_FROM = useArray([]);\r\n const practiceAreas_FROM = useArray([]);\r\n\r\n //to\r\n const [selectedAppraisalID_TO, setSelectedAppraisalID_TO] = useState(\"false\");\r\n const [selectedProjectID_TO, setSelectedProjectID_TO] = useState(\"false\");\r\n const [selectedAppraisalLevel_TO, setSelectedAppraisalLevel_TO] = useState(\"false\");\r\n const appraisals_TO = useArray([]);\r\n const projects_TO = useArray([]);\r\n\r\n //modal states\r\n //0 = awaiting 1st appraisal selection\r\n //1 = awaiting 1st project selection\r\n //2 = awaiting practice area selection\r\n //3 = awaiting 2nd appraisal selection\r\n //4 = awaiting 2nd project selection\r\n const [modalOptionsState, setModalOptionsState] = useState(0);\r\n\r\n //progress modal\r\n const [showCopyingModal, setShowCopyingModal] = useState(false);\r\n const [areItemsCopying, setAreItemsCopying] = useState(false);\r\n const [itemCopyType, setItemCopyType] = useState(\"\");\r\n const [itemCopyStatus, setItemCopyStatus] = useState(\"\");\r\n\r\n const defaultSelectionOption = \" -- select an option -- \";\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n setModalOptionsState(0);\r\n\r\n setSelectedAppraisalID_FROM('');\r\n setSelectedProjectID_FROM('');\r\n setSelectedPracticeAreaID_FROM('');\r\n\r\n setSelectedAppraisalID_TO('');\r\n setSelectedProjectID_TO('');\r\n \r\n setDataLoading(true);\r\n const getData = () => fetchData(setDataLoading, appraisals_FROM);\r\n getData();\r\n }\r\n }, [props.showModal]);\r\n\r\n\r\n useEffect(() => {\r\n if(selectedAppraisalID_FROM !== \"\"){\r\n setModalOptionsState(1);\r\n }\r\n }, [selectedAppraisalID_FROM]);\r\n\r\n useEffect(() => {\r\n if(selectedProjectID_FROM !== \"\"){\r\n setModalOptionsState(2);\r\n }\r\n }, [selectedProjectID_FROM]);\r\n\r\n useEffect(() => {\r\n if(selectedPracticeAreaID_FROM !== \"\"){\r\n setModalOptionsState(3);\r\n }\r\n }, [selectedPracticeAreaID_FROM]);\r\n \r\n useEffect(() => {\r\n if(selectedAppraisalID_TO !== \"\"){\r\n setModalOptionsState(4);\r\n }\r\n }, [selectedAppraisalID_TO]);\r\n\r\n useEffect(() => {\r\n if(selectedProjectID_TO !== \"\"){\r\n setModalOptionsState(5);\r\n }\r\n }, [selectedProjectID_TO]);\r\n\r\n //go from state 0 to 1\r\n const handleAppraisalChanged_FROM = async (selectedAppraisal) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(0);\r\n projects_FROM.setValue([]);\r\n practiceAreas_FROM.setValue([]);\r\n setSelectedAppraisalID_TO('');\r\n setSelectedProjectID_FROM('');\r\n setSelectedPracticeAreaID_FROM('');\r\n\r\n if(selectedAppraisal === \"\"){\r\n return;\r\n }\r\n\r\n try {\r\n let currentAppraisal = appraisals_FROM.value.filter(x => x.id === selectedAppraisal)[0];\r\n let currentAppraisalType = currentAppraisal.view.charAt(0);\r\n let fromAppraisalLevel = currentAppraisal.view.charAt(currentAppraisal.view.length - 1)\r\n setSelectedAppraisalName_FROM(currentAppraisal.name);\r\n setSelectedAppraisalType_FROM(currentAppraisalType);\r\n setSelectedAppraisalLevel_FROM(fromAppraisalLevel);\r\n\r\n //get projects\r\n const currentAppraisalData = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_PATH}/${selectedAppraisal}`, await getDefaultAPIHeaders());\r\n const formattedProjectData = currentAppraisalData.projects\r\n .filter(x => x.project_name !== \"Organizational Roll-up\")\r\n .map(p => {\r\n return {\r\n id: p.project_id,\r\n name: p.project_name,\r\n practiceAreas: p.practice_areas\r\n }\r\n });\r\n\r\n //set new states\r\n projects_FROM.setValue(formattedProjectData);\r\n setSelectedAppraisalID_FROM(selectedAppraisal);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n //go from state 1 to 2\r\n const handleProjectChanged_FROM = async (projectID) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(1);\r\n setSelectedPracticeAreaID_FROM('');\r\n practiceAreas_FROM.setValue([]);\r\n\r\n if(projectID === \"\"){\r\n return;\r\n }\r\n\r\n let selectedProject = projects_FROM.value.find(p => p.id === projectID);\r\n if(selectedProject){\r\n practiceAreas_FROM.setValue(selectedProject.practiceAreas);\r\n setSelectedProjectID_FROM(projectID);\r\n }\r\n }\r\n\r\n //go from state 2 to 3\r\n const handlePracticeAreaChanged_FROM = async (practiceArea) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(2);\r\n\r\n if(practiceArea === \"\"){\r\n return;\r\n }\r\n \r\n //filter 'copy to' appraisals list based on PA selected\r\n let devExclusive = PRACTICE_AREAS[practiceArea].DevExclusive;\r\n let svcExclusive = PRACTICE_AREAS[practiceArea].SvcExclusive;\r\n\r\n //if dev or svc specific PA selected, only allow dev or svc appraisals\r\n if(devExclusive || svcExclusive){\r\n let possibleAppraisals = [];\r\n for(let i = 0; i < appraisals_FROM.value.length; i++){\r\n if(appraisals_FROM.value[i].view.substring(0,1) === selectedAppraisalType_FROM){\r\n possibleAppraisals.push(appraisals_FROM.value[i]);\r\n }\r\n }\r\n appraisals_TO.setValue(possibleAppraisals);\r\n }\r\n //if PA is non-specific, allow copy to all appraisals\r\n else{\r\n appraisals_TO.setValue(appraisals_FROM.value);\r\n }\r\n\r\n setSelectedPracticeAreaID_FROM(practiceArea);\r\n }\r\n\r\n //go from state 3 to 4\r\n const handleAppraisalChanged_TO = async (selectedAppraisal) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(3);\r\n projects_TO.setValue([]);\r\n\r\n if(selectedAppraisal === \"\"){\r\n return;\r\n }\r\n\r\n try {\r\n\r\n let currentAppraisal = appraisals_FROM.value.filter(x => x.id === selectedAppraisal)[0];\r\n let toAppraisalLevel = currentAppraisal.view.charAt(currentAppraisal.view.length - 1)\r\n setSelectedAppraisalLevel_TO(toAppraisalLevel);\r\n\r\n const currentAppraisalData = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_PATH}/${selectedAppraisal}`, await getDefaultAPIHeaders());\r\n \r\n //filter out org rollup\r\n let formattedProjectData = currentAppraisalData.projects.filter(x => x.project_name !== \"Organizational Roll-up\");\r\n \r\n //if same appraisal selected, filter out same project names\r\n if(currentAppraisalData.appraisal_name === selectedAppraisalName_FROM){\r\n \r\n const currentProjectName = currentAppraisalData.projects.filter(x => x.project_id === selectedProjectID_FROM)[0].project_name;\r\n formattedProjectData = formattedProjectData.filter(x => x.project_name !== currentProjectName);\r\n }\r\n\r\n formattedProjectData = formattedProjectData.map(p => {\r\n return {\r\n id: p.project_id,\r\n name: p.project_name,\r\n practiceAreas: p.practice_areas\r\n }\r\n });\r\n \r\n //only include projects that have the selected 'FROM' PA\r\n let usableProjects = [];\r\n for(let i = 0; i < formattedProjectData.length; i++){\r\n let currentPAs = formattedProjectData[i].practiceAreas;\r\n for(let j = 0; j < currentPAs.length; j++){\r\n if(currentPAs[j] === selectedPracticeAreaID_FROM)\r\n usableProjects.push(formattedProjectData[i]);\r\n }\r\n }\r\n\r\n //set new states\r\n projects_TO.setValue(usableProjects);\r\n setSelectedAppraisalID_TO(selectedAppraisal);\r\n setSelectedProjectID_TO('');\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n \r\n //go from state 4 to 5\r\n const handleProjectChanged_TO = async (projectID) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(4);\r\n\r\n if(projectID === \"\"){\r\n return;\r\n }\r\n\r\n let selectedProject = projects_TO.value.find(p => p.id === projectID);\r\n if(selectedProject){\r\n setSelectedProjectID_TO(projectID);\r\n }\r\n }\r\n\r\n const getAppraisalOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n for(let i = 0; i < appraisals_FROM.value.length; i++){\r\n options.push()\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getProjectOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState >= 1){\r\n for(let i = 0; i < projects_FROM.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getPracticeAreasOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState >= 2){\r\n for(let i = 0; i < practiceAreas_FROM.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getAppraisalOptionsList_TO = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState >= 3){\r\n for(let i = 0; i < appraisals_TO.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getProjectOptionsList_TO = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState >= 4){\r\n for(let i = 0; i < projects_TO.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n \r\n const executeClick = async () => {\r\n\r\n setShowCopyingModal(true);\r\n setAreItemsCopying(true);\r\n\r\n //get practices based on highest appraisal level\r\n let highestAppraisalLevel = (selectedAppraisalLevel_FROM > selectedAppraisalLevel_TO) ? selectedAppraisalLevel_TO : selectedAppraisalLevel_FROM;\r\n let practiceList = PRACTICE_AREA_RELATIONSHIPS[selectedPracticeAreaID_FROM].filter(x => x.Level <= highestAppraisalLevel);\r\n \r\n for(let i = 0; i < practiceList.length; i++){\r\n\r\n let currentNodeName = PRACTICES[practiceList[i].Id].Abbreviation;\r\n setItemCopyType(currentNodeName);\r\n\r\n if(props.options.Evidence){\r\n await copyEvidence(practiceList[i].Id);\r\n }\r\n \r\n if(props.options.Interviews){\r\n await copyInterviews(practiceList[i].Id);\r\n }\r\n \r\n if(props.options.Notes \r\n || props.options.Strengths\r\n || props.options.Weaknesses\r\n || props.options.IOs){\r\n await copyFindings(practiceList[i].Id);\r\n }\r\n }\r\n\r\n setItemCopyType(\"Copy Complete.\");\r\n setItemCopyStatus(\"\");\r\n setAreItemsCopying(false);\r\n \r\n }\r\n\r\n const copyEvidence = async (currentNodeId) => {\r\n\r\n setItemCopyStatus(\"Copying Evidence Data...\");\r\n\r\n //get the FROM evidence\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: currentNodeId\r\n }\r\n let evidenceData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_EVIDENCE_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < evidenceData.length; i++){\r\n\r\n //create the TO evidence for every FROM evidence\r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: currentNodeId,\r\n evidence_fileName: evidenceData[i].evidence_fileName,\r\n evidence_path: evidenceData[i].evidence_path,\r\n evidence_notes: evidenceData[i].evidence_notes,\r\n evidence_state: evidenceData[i].evidence_state,\r\n isHyperlink: evidenceData[i].isHyperlink,\r\n };\r\n\r\n try {\r\n await API.post(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log('evidence post failure' + e);\r\n }\r\n }\r\n }\r\n\r\n const copyInterviews = async (currentNodeId) => {\r\n\r\n setItemCopyStatus(\"Copying Interview Data...\");\r\n\r\n //get the FROM interviews\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: currentNodeId\r\n }\r\n const interviewData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.INTERVIEW_QUESTIONS_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < interviewData.length; i++){\r\n\r\n //create the TO interviews for every FROM interview\r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: currentNodeId,\r\n question: interviewData[i].question,\r\n sessions: interviewData[i].sessions\r\n }\r\n try {\r\n await API.post(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log(\"add interview question failure\" + e);\r\n }\r\n }\r\n }\r\n\r\n const copyFindings = async (currentNodeId) => {\r\n\r\n setItemCopyStatus(\"Copying Findings Data...\");\r\n\r\n //get the FROM findings\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: currentNodeId\r\n }\r\n const findingsData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_ITEM_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < findingsData.length; i++){\r\n\r\n //filter any findings whose options are not chosen\r\n if((findingsData[i].item_type === \"notes\" && !props.options.Notes)\r\n || (findingsData[i].item_type === \"strengths\" && !props.options.Strengths)\r\n || (findingsData[i].item_type === \"weaknesses\" && !props.options.Weaknesses)\r\n || (findingsData[i].item_type === \"improvement_opportunities\" && !props.options.IOs)) {\r\n continue;\r\n }\r\n \r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: currentNodeId,\r\n item_type: findingsData[i].item_type,\r\n item_data: findingsData[i].item_data,\r\n revision_number: 0\r\n }\r\n try {\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log(\"add findings failure\" + e);\r\n } \r\n }\r\n }\r\n\r\n const getCopyingButtonText = () => {\r\n return !areItemsCopying ? \"Close\" : \" Copying Appraisal Data, please wait...\";\r\n }\r\n\r\n const getSelectedOptions = () => {\r\n let selectedOptions = [];\r\n if(props.options.Evidence){\r\n selectedOptions.push(\"Evidence\");\r\n }\r\n if(props.options.Interviews){\r\n selectedOptions.push(\"Interviews\");\r\n }\r\n if(props.options.Notes){\r\n selectedOptions.push(\"Notes\");\r\n }\r\n if(props.options.Strengths){\r\n selectedOptions.push(\"Strengths\");\r\n }\r\n if(props.options.Weaknesses){\r\n selectedOptions.push(\"Weaknesses\");\r\n }\r\n if(props.options.IOs){\r\n selectedOptions.push(\"Improvement Opportunities\");\r\n }\r\n return selectedOptions.join(', ');\r\n }\r\n\r\n const tryCloseModal = () => {\r\n if(!areItemsCopying){\r\n props.setShowModal(false);\r\n }\r\n }\r\n\r\n const tryCloseCopyingModal = () => {\r\n if (!areItemsCopying) {\r\n setShowCopyingModal(false);\r\n props.setShowModal(false);\r\n }\r\n }\r\n\r\n return (\r\n \r\n tryCloseModal()} dialogClassName=\"findingsReportModalStyle\">\r\n \r\n \r\n {' '}Copy Appraisal Data by Practice Area\r\n \r\n \r\n \r\n \r\n \r\n \r\n Selected Options\r\n \r\n \r\n \r\n {getSelectedOptions()}\r\n \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n \r\n Copy From\r\n \r\n \r\n \r\n \r\n Appraisal\r\n \r\n \r\n handleAppraisalChanged_FROM(e.target.value)}>\r\n {getAppraisalOptionsList_FROM()}\r\n \r\n \r\n \r\n \r\n \r\n Project\r\n \r\n \r\n handleProjectChanged_FROM(e.target.value)}>\r\n {getProjectOptionsList_FROM()}\r\n \r\n \r\n \r\n \r\n \r\n Practice Area\r\n \r\n \r\n handlePracticeAreaChanged_FROM(e.target.value)}>\r\n {getPracticeAreasOptionsList_FROM()}\r\n \r\n \r\n \r\n
    \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n
    \r\n \r\n \r\n Copy To\r\n \r\n \r\n \r\n \r\n Appraisal\r\n \r\n \r\n handleAppraisalChanged_TO(e.target.value)}>\r\n {getAppraisalOptionsList_TO()}\r\n \r\n \r\n \r\n \r\n \r\n Project\r\n \r\n \r\n handleProjectChanged_TO(e.target.value)}>\r\n {getProjectOptionsList_TO()}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n executeClick()}\r\n >\r\n Copy Practice Area\r\n {' '}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n tryCloseCopyingModal(e)} >\r\n \r\n \r\n Copy Appraisal Data\r\n \r\n \r\n \r\n \r\n {itemCopyType}\r\n

    \r\n {itemCopyStatus}\r\n
    \r\n \r\n
    \r\n \r\n tryCloseCopyingModal(e)}>\r\n {areItemsCopying &&\r\n }\r\n {getCopyingButtonText()}\r\n {' '}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\nexport default CopyAppraisalDataPracticeAreaModal;","import React, { useState, useEffect } from 'react';\r\nimport { Button, Row, Col, Form, FormControl, Modal, FormLabel, Spinner } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { PRACTICES } from '../model/practices';\r\nimport { Constants, getDefaultAPIHeaders, getNodeAPIPath } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\n\r\nasync function fetchData(setDataLoading, appraisals_FROM, appraisals_TO) {\r\n try {\r\n const data = await API.get(Constants.API_PATH, Constants.APPRAISAL_PATH, await getDefaultAPIHeaders());\r\n const formattedAppraisals = data.map(a => {\r\n return {\r\n id: a.appraisal_id,\r\n name: a.appraisal_name,\r\n view: a.appraisal_view\r\n }\r\n });\r\n if (formattedAppraisals.length > 0) {\r\n appraisals_FROM.setValue(formattedAppraisals);\r\n }\r\n else {\r\n console.log('No appraisals were found.');\r\n }\r\n } \r\n catch (e) {\r\n console.log(e);\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst CopyAppraisalDataProjectModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n\r\n //from\r\n const [selectedAppraisalID_FROM, setSelectedAppraisalID_FROM] = useState(\"false\");\r\n const [selectedProjectID_FROM, setSelectedProjectID_FROM] = useState(\"false\");\r\n const [selectedAppraisalLevel_FROM, setSelectedAppraisalLevel_FROM] = useState(\"false\");\r\n const [selectedAppraisalName_FROM, setSelectedAppraisalName_FROM] = useState(\"\");\r\n const appraisals_FROM = useArray([]);\r\n const projects_FROM = useArray([]);\r\n\r\n //to\r\n const [selectedAppraisalID_TO, setSelectedAppraisalID_TO] = useState(\"false\");\r\n const [selectedProjectID_TO, setSelectedProjectID_TO] = useState(\"false\");\r\n const [selectedAppraisalLevel_TO, setSelectedAppraisalLevel_TO] = useState(\"false\");\r\n const appraisals_TO = useArray([]);\r\n const projects_TO = useArray([]);\r\n\r\n //modal states\r\n //0 = awaiting 1st appraisal selection\r\n //1 = awaiting 1st project selection\r\n //2 = awaiting 2nd appraisal selection\r\n //3 = awaiting 2nd project selection\r\n const [modalOptionsState, setModalOptionsState] = useState(0);\r\n\r\n //progress modal\r\n const [showCopyingModal, setShowCopyingModal] = useState(false);\r\n const [areItemsCopying, setAreItemsCopying] = useState(false);\r\n const [itemCopyType, setItemCopyType] = useState(\"\");\r\n const [itemCopyStatus, setItemCopyStatus] = useState(\"\");\r\n\r\n const defaultSelectionOption = \" -- select an option -- \";\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n setModalOptionsState(0);\r\n\r\n setSelectedAppraisalID_FROM('');\r\n setSelectedProjectID_FROM('');\r\n\r\n setSelectedAppraisalID_TO('');\r\n setSelectedProjectID_TO('');\r\n \r\n setDataLoading(true);\r\n const getData = () => fetchData(setDataLoading, appraisals_FROM);\r\n getData();\r\n }\r\n }, [props.showModal]);\r\n\r\n\r\n useEffect(() => {\r\n if(selectedAppraisalID_FROM !== \"\"){\r\n setModalOptionsState(1);\r\n }\r\n }, [selectedAppraisalID_FROM]);\r\n\r\n useEffect(() => {\r\n if(selectedProjectID_FROM !== \"\"){\r\n setModalOptionsState(2);\r\n }\r\n }, [selectedProjectID_FROM]);\r\n\r\n useEffect(() => {\r\n if(selectedAppraisalID_TO !== \"\"){\r\n setModalOptionsState(3);\r\n }\r\n }, [selectedAppraisalID_TO]);\r\n\r\n //go from state 0 to 1\r\n const handleAppraisalChanged_FROM = async (selectedAppraisal) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(0);\r\n setSelectedAppraisalID_TO('');\r\n setSelectedProjectID_FROM('');\r\n\r\n if(selectedAppraisal === \"\"){\r\n return;\r\n }\r\n\r\n try {\r\n\r\n //make sure the appraisals are the same type (D = Development, S = Services) and set level\r\n let currentAppraisal = appraisals_FROM.value.filter(x => x.id === selectedAppraisal)[0];\r\n let currentAppraisalType = currentAppraisal.view.charAt(0);\r\n let fromAppraisalLevel = currentAppraisal.view.charAt(currentAppraisal.view.length - 1)\r\n setSelectedAppraisalName_FROM(currentAppraisal.name);\r\n\r\n let possibleAppraisals = [];\r\n for(let i = 0; i < appraisals_FROM.value.length; i++){\r\n if(appraisals_FROM.value[i].view.substring(0,1) === currentAppraisalType){\r\n possibleAppraisals.push(appraisals_FROM.value[i]);\r\n }\r\n }\r\n appraisals_TO.setValue(possibleAppraisals);\r\n setSelectedAppraisalLevel_FROM(fromAppraisalLevel);\r\n \r\n //get projects\r\n const currentAppraisalData = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_PATH}/${selectedAppraisal}`, await getDefaultAPIHeaders());\r\n const formattedProjectData = currentAppraisalData.projects\r\n .filter(x => x.project_name !== \"Organizational Roll-up\")\r\n .map(p => {\r\n return {\r\n id: p.project_id,\r\n name: p.project_name,\r\n practiceAreas: p.practice_areas\r\n }\r\n });\r\n\r\n //set new states\r\n projects_FROM.setValue(formattedProjectData);\r\n setSelectedAppraisalID_FROM(selectedAppraisal);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n //go from state 1 to 2\r\n const handleProjectChanged_FROM = async (projectID) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(1);\r\n\r\n if(projectID === \"\"){\r\n return;\r\n }\r\n\r\n let selectedProject = projects_FROM.value.find(p => p.id === projectID);\r\n if(selectedProject){\r\n setSelectedProjectID_FROM(projectID);\r\n }\r\n }\r\n\r\n //go from state 2 to 3\r\n const handleAppraisalChanged_TO = async (selectedAppraisal) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(2);\r\n\r\n if(selectedAppraisal === \"\"){\r\n return;\r\n }\r\n\r\n try {\r\n\r\n const fromAppraisalData = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_PATH}/${selectedAppraisalID_FROM}`, await getDefaultAPIHeaders());\r\n const fromProject = fromAppraisalData.projects.filter(x => x.project_id === selectedProjectID_FROM)[0];\r\n\r\n const toAppraisal = appraisals_FROM.value.filter(x => x.id === selectedAppraisal)[0];\r\n const toAppraisalLevel = toAppraisal.view.charAt(toAppraisal.view.length - 1)\r\n setSelectedAppraisalLevel_TO(toAppraisalLevel);\r\n const toAppraisalData = await API.get(Constants.API_PATH, `${Constants.APPRAISAL_PATH}/${selectedAppraisal}`, await getDefaultAPIHeaders());\r\n \r\n //filter out org rollup\r\n let formattedProjectData = toAppraisalData.projects.filter(x => x.project_name !== \"Organizational Roll-up\");\r\n \r\n //if same appraisal selected, filter out same project names\r\n if(toAppraisalData.appraisal_name === selectedAppraisalName_FROM){\r\n \r\n const fromProjectName = fromProject.project_name;\r\n formattedProjectData = formattedProjectData.filter(x => x.project_name !== fromProjectName);\r\n }\r\n\r\n formattedProjectData = formattedProjectData.map(p => {\r\n return {\r\n id: p.project_id,\r\n name: p.project_name,\r\n practiceAreas: p.practice_areas\r\n }\r\n });\r\n \r\n //only include projects that have the selected 'FROM' PA\r\n let usableProjects = [];\r\n for(let i = 0; i < formattedProjectData.length; i++){\r\n let currentPAs = formattedProjectData[i].practiceAreas;\r\n if(fromProject.practice_areas.length === currentPAs.length){\r\n for(let j = 0; j < currentPAs.length; j++){\r\n if(!fromProject.practice_areas.includes(currentPAs[i])){\r\n break;\r\n }\r\n }\r\n usableProjects.push(formattedProjectData[i]);\r\n }\r\n }\r\n\r\n //set new states\r\n projects_TO.setValue(usableProjects);\r\n setSelectedAppraisalID_TO(selectedAppraisal);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n \r\n //go from state 3 to 4\r\n const handleProjectChanged_TO = async (projectID) => {\r\n\r\n //reset previous selections\r\n setModalOptionsState(3);\r\n\r\n if(projectID === \"\"){\r\n return;\r\n }\r\n\r\n let selectedProject = projects_TO.value.find(p => p.id === projectID);\r\n if(selectedProject){\r\n setSelectedProjectID_TO(projectID);\r\n }\r\n }\r\n\r\n const getAppraisalOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n for(let i = 0; i < appraisals_FROM.value.length; i++){\r\n options.push()\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getProjectOptionsList_FROM = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState >= 1){\r\n for(let i = 0; i < projects_FROM.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getAppraisalOptionsList_TO = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState >= 2){\r\n for(let i = 0; i < appraisals_TO.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n\r\n const getProjectOptionsList_TO = () => {\r\n let options = [];\r\n options.push();\r\n if(modalOptionsState >= 3){\r\n for(let i = 0; i < projects_TO.value.length; i++){\r\n options.push()\r\n }\r\n }\r\n return (\r\n \r\n {options}\r\n \r\n )\r\n }\r\n \r\n const executeClick = async () => {\r\n\r\n setShowCopyingModal(true);\r\n setAreItemsCopying(true);\r\n\r\n //get practices based on highest appraisal level\r\n let highestAppraisalLevel = (selectedAppraisalLevel_FROM > selectedAppraisalLevel_TO) ? selectedAppraisalLevel_TO : selectedAppraisalLevel_FROM;\r\n let projectToCopy = projects_FROM.value.find(p => p.id === selectedProjectID_FROM);\r\n\r\n let practiceList = [];\r\n for(let i = 0; i < projectToCopy.practiceAreas.length; i++){\r\n let currentPractices = PRACTICE_AREA_RELATIONSHIPS[projectToCopy.practiceAreas[i]].filter(x => x.Level <= highestAppraisalLevel);\r\n for(let j = 0; j < currentPractices.length; j++){\r\n practiceList.push(currentPractices[j]);\r\n }\r\n }\r\n\r\n for(let i = 0; i < practiceList.length; i++){\r\n\r\n let currentNodeName = PRACTICES[practiceList[i].Id].Abbreviation;\r\n setItemCopyType(currentNodeName);\r\n\r\n if(props.options.Evidence){\r\n await copyEvidence(practiceList[i].Id);\r\n }\r\n \r\n if(props.options.Interviews){\r\n await copyInterviews(practiceList[i].Id);\r\n }\r\n \r\n if(props.options.Notes \r\n || props.options.Strengths\r\n || props.options.Weaknesses\r\n || props.options.IOs){\r\n await copyFindings(practiceList[i].Id);\r\n }\r\n }\r\n\r\n setItemCopyType(\"Copy Complete.\");\r\n setItemCopyStatus(\"\");\r\n setAreItemsCopying(false);\r\n \r\n }\r\n\r\n const copyEvidence = async (currentNodeId) => {\r\n\r\n setItemCopyStatus(\"Copying Evidence Data...\");\r\n\r\n //get the FROM evidence\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: currentNodeId\r\n }\r\n let evidenceData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_EVIDENCE_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < evidenceData.length; i++){\r\n\r\n //create the TO evidence for every FROM evidence\r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: currentNodeId,\r\n evidence_fileName: evidenceData[i].evidence_fileName,\r\n evidence_path: evidenceData[i].evidence_path,\r\n evidence_notes: evidenceData[i].evidence_notes,\r\n evidence_state: evidenceData[i].evidence_state,\r\n isHyperlink: evidenceData[i].isHyperlink,\r\n };\r\n\r\n try {\r\n await API.post(Constants.API_PATH, Constants.APPRAISAL_EVIDENCE_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log('evidence post failure' + e);\r\n }\r\n }\r\n }\r\n\r\n const copyInterviews = async (currentNodeId) => {\r\n\r\n setItemCopyStatus(\"Copying Interview Data...\");\r\n\r\n //get the FROM interviews\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: currentNodeId\r\n }\r\n const interviewData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.INTERVIEW_QUESTIONS_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < interviewData.length; i++){\r\n\r\n //create the TO interviews for every FROM interview\r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: currentNodeId,\r\n question: interviewData[i].question,\r\n sessions: interviewData[i].sessions\r\n }\r\n try {\r\n await API.post(Constants.API_PATH, Constants.INTERVIEW_QUESTIONS_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log(\"add interview question failure\" + e);\r\n }\r\n }\r\n }\r\n\r\n const copyFindings = async (currentNodeId) => {\r\n\r\n setItemCopyStatus(\"Copying Findings Data...\");\r\n\r\n //get the FROM findings\r\n let nodeInfo = {\r\n appraisalId: selectedAppraisalID_FROM,\r\n projectId: selectedProjectID_FROM,\r\n nodeId: currentNodeId\r\n }\r\n const findingsData = await API.get(Constants.API_PATH, getNodeAPIPath(nodeInfo, Constants.APPRAISAL_ITEM_PATH), await getDefaultAPIHeaders());\r\n\r\n for(let i = 0; i < findingsData.length; i++){\r\n\r\n //filter any findings whose options are not chosen\r\n if((findingsData[i].item_type === \"notes\" && !props.options.Notes)\r\n || (findingsData[i].item_type === \"strengths\" && !props.options.Strengths)\r\n || (findingsData[i].item_type === \"weaknesses\" && !props.options.Weaknesses)\r\n || (findingsData[i].item_type === \"improvement_opportunities\" && !props.options.IOs)) {\r\n continue;\r\n }\r\n \r\n const body = {\r\n appraisal_id: selectedAppraisalID_TO,\r\n project_id: selectedProjectID_TO,\r\n node_id: currentNodeId,\r\n item_type: findingsData[i].item_type,\r\n item_data: findingsData[i].item_data,\r\n revision_number: 0\r\n }\r\n try {\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n catch (e) {\r\n console.log(\"add findings failure\" + e);\r\n } \r\n }\r\n }\r\n\r\n const getCopyingButtonText = () => {\r\n return !areItemsCopying ? \"Close\" : \" Copying Appraisal Data, please wait...\";\r\n }\r\n\r\n const getSelectedOptions = () => {\r\n let selectedOptions = [];\r\n if(props.options.Evidence){\r\n selectedOptions.push(\"Evidence\");\r\n }\r\n if(props.options.Interviews){\r\n selectedOptions.push(\"Interviews\");\r\n }\r\n if(props.options.Notes){\r\n selectedOptions.push(\"Notes\");\r\n }\r\n if(props.options.Strengths){\r\n selectedOptions.push(\"Strengths\");\r\n }\r\n if(props.options.Weaknesses){\r\n selectedOptions.push(\"Weaknesses\");\r\n }\r\n if(props.options.IOs){\r\n selectedOptions.push(\"Improvement Opportunities\");\r\n }\r\n return selectedOptions.join(', ');\r\n }\r\n\r\n const tryCloseModal = () => {\r\n if(!areItemsCopying){\r\n props.setShowModal(false);\r\n }\r\n }\r\n\r\n const tryCloseCopyingModal = () => {\r\n if (!areItemsCopying) {\r\n setShowCopyingModal(false);\r\n props.setShowModal(false);\r\n }\r\n }\r\n\r\n return (\r\n \r\n tryCloseModal()} dialogClassName=\"findingsReportModalStyle\">\r\n \r\n \r\n {' '}Copy Appraisal Data by Practice Area\r\n \r\n \r\n \r\n \r\n \r\n \r\n Selected Options\r\n \r\n \r\n \r\n {getSelectedOptions()}\r\n \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n \r\n Copy From\r\n \r\n \r\n \r\n \r\n Appraisal\r\n \r\n \r\n handleAppraisalChanged_FROM(e.target.value)}>\r\n {getAppraisalOptionsList_FROM()}\r\n \r\n \r\n \r\n \r\n \r\n Project\r\n \r\n \r\n handleProjectChanged_FROM(e.target.value)}>\r\n {getProjectOptionsList_FROM()}\r\n \r\n \r\n \r\n
    \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n
    \r\n \r\n \r\n Copy To\r\n \r\n \r\n \r\n \r\n Appraisal\r\n \r\n \r\n handleAppraisalChanged_TO(e.target.value)}>\r\n {getAppraisalOptionsList_TO()}\r\n \r\n \r\n \r\n \r\n \r\n Project\r\n \r\n \r\n handleProjectChanged_TO(e.target.value)}>\r\n {getProjectOptionsList_TO()}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n executeClick()}\r\n >\r\n Copy Project\r\n {' '}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n tryCloseCopyingModal(e)} >\r\n \r\n \r\n Copy Appraisal Data\r\n \r\n \r\n \r\n \r\n {itemCopyType}\r\n

    \r\n {itemCopyStatus}\r\n
    \r\n \r\n
    \r\n \r\n tryCloseCopyingModal(e)}>\r\n {areItemsCopying &&\r\n }\r\n {getCopyingButtonText()}\r\n {' '}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\nexport default CopyAppraisalDataProjectModal;","import React, { useState, useEffect } from 'react';\r\nimport { Modal, Form, Button, FormControl, Row, Col } from 'react-bootstrap';\r\nimport CopyAppraisalDataPracticeModal from '../containers/CopyAppraisalDataPracticeModal';\r\nimport CopyAppraisalDataPracticeAreaModal from '../containers/CopyAppraisalDataPracticeAreaModal';\r\nimport CopyAppraisalDataProjectModal from '../containers/CopyAppraisalDataProjectModal';\r\nimport '../modal.css';\r\n\r\nfunction CopyAppraisalDataModal(props) {\r\n\r\n //parent modal states\r\n const [actionLoading, setActionLoading] = useState(false);\r\n\r\n //copy options\r\n const [selectedCopyLevel, setSelectedCopyLevel] = useState('practice');\r\n const [copyEvidence, setCopyEvidence] = useState(false);\r\n const [copyInterviews, setCopyInterviews] = useState(false);\r\n const [copyNotes, setCopyNotes] = useState(false);\r\n const [copyStrengths, setCopyStrengths] = useState(false);\r\n const [copyWeaknesses, setCopyWeaknesses] = useState(false);\r\n const [copyIOs, setCopyIOs] = useState(false);\r\n const [copyOptions, setCopyOptions] = useState(\"\");\r\n\r\n //submodal states\r\n const [showPracticeModal, setShowPracticeModal] = useState(false);\r\n const [showPracticeAreaModal, setShowPracticeAreaModal] = useState(false);\r\n const [showProjectModal, setShowProjectModal] = useState(false);\r\n\r\n //reset when modal is shown\r\n useEffect(() => {\r\n if (props.showModal === true) {\r\n ResetModal();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const ResetModal = () => {\r\n setSelectedCopyLevel('practice');\r\n setShowPracticeModal(false);\r\n setCopyEvidence(false);\r\n setCopyInterviews(false);\r\n setCopyNotes(false);\r\n setCopyStrengths(false);\r\n setCopyWeaknesses(false);\r\n setCopyIOs(false);\r\n }\r\n\r\n const handleClick = async () => {\r\n let options = {\r\n Evidence: copyEvidence,\r\n Interviews: copyInterviews,\r\n Notes: copyNotes,\r\n Strengths: copyStrengths,\r\n Weaknesses: copyWeaknesses,\r\n IOs: copyIOs\r\n };\r\n setCopyOptions(options);\r\n\r\n if(selectedCopyLevel === \"practice\"){\r\n setShowPracticeModal(true);\r\n }\r\n else if(selectedCopyLevel === \"practiceArea\"){\r\n setShowPracticeAreaModal(true);\r\n }\r\n else if(selectedCopyLevel === \"project\"){\r\n setShowProjectModal(true);\r\n }\r\n }\r\n\r\n const tryHideModal = (e) => {\r\n if (!actionLoading) {\r\n props.setShowModal(false)\r\n }\r\n }\r\n\r\n const handleCopyLevelChanged = (e) => {\r\n setSelectedCopyLevel(e);\r\n }\r\n\r\n const evidenceCheckBoxChanged = () => {\r\n setCopyEvidence(!copyEvidence);\r\n }\r\n\r\n const interviewsCheckBoxChanged = () => {\r\n setCopyInterviews(!copyInterviews);\r\n }\r\n\r\n const notesCheckBoxChanged = () => {\r\n setCopyNotes(!copyNotes);\r\n }\r\n\r\n const strengthsCheckBoxChanged = () => {\r\n setCopyStrengths(!copyStrengths);\r\n }\r\n\r\n const weaknessesCheckBoxChanged = () => {\r\n setCopyWeaknesses(!copyWeaknesses);\r\n }\r\n\r\n const iosCheckBoxChanged = () => {\r\n setCopyIOs(!copyIOs);\r\n }\r\n\r\n const canContinue = () => {\r\n return (copyEvidence\r\n || copyInterviews\r\n || copyNotes\r\n || copyStrengths\r\n || copyWeaknesses\r\n || copyIOs)\r\n }\r\n\r\n return (\r\n tryHideModal(e)} animation>\r\n \r\n \r\n {' '}Copy Appraisal Data\r\n \r\n \r\n \r\n \r\n \r\n Copy Level\r\n \r\n \r\n handleCopyLevelChanged(e.target.value)}\r\n >\r\n {[\r\n ,\r\n ,\r\n \r\n ]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Info to Copy\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n handleClick()}\r\n >Continue\r\n {' '}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CopyAppraisalDataModal;","import React, { useState, useEffect } from 'react';\r\nimport { Modal, Form, Button, Spinner, FormControl, Row, Col } from 'react-bootstrap';\r\nimport { AppraisalRepository } from '../utils/repositories';\r\nimport { API } from 'aws-amplify';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport '../modal.css';\r\n\r\nasync function fetchData(setAppraisalName, setCurrentAppraisalId, setProjects, setSelectedProject) {\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n setCurrentAppraisalId(currentAppraisalId);\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false, availableForSelection: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n setProjects(appraisalData.returnValue.projects.filter(x => x.name !== \"Organizational Roll-up\"));\r\n setSelectedProject(appraisalData.returnValue.projects[0]);\r\n setAppraisalName(appraisalData.returnValue.name);\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n}\r\n\r\nfunction ClearProjectInfoModal(props) {\r\n\r\n const [actionLoading, setActionLoading] = useState(false);\r\n const [showDeletingModal, setShowDeletingModal] = useState(false);\r\n const [isItemDeleting, setIsItemDeleting] = useState(false);\r\n const [itemBeingDeleted, setItemBeingDeleted] = useState(\"\");\r\n const [itemDeleteTitle, setItemDeleteTitle] = useState(\"\");\r\n const [itemDeleteStatus, setItemDeleteStatus] = useState(\"\");\r\n const [itemDeleteButtonText, setItemDeleteButtonText] = useState(\"\");\r\n const [currentAppraisalId, setCurrentAppraisalId] = useState('');\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [projects, setProjects] = useState({});\r\n const [selectedProject, setSelectedProject] = useState('');\r\n const [showWarningModal, setShowWarningModal] = useState(false);\r\n const [showFinishedModal, setShowFinishedModal] = useState(false);\r\n const [warningText, setWarningText] = useState('');\r\n const [clearNotes, setClearNotes] = useState(false);\r\n const [clearStrengths, setClearStrengths] = useState(false);\r\n const [clearWeaknesses, setClearWeaknesses] = useState(false);\r\n const [clearIOs, setClearIOs] = useState(false);\r\n const [clearCharacterizations, setClearCharacterizations] = useState(false);\r\n const [clearHighlights, setClearHighlights] = useState(false);\r\n\r\n //reset when modal is shown\r\n useEffect(() => {\r\n const getData = () => fetchData(setAppraisalName, setCurrentAppraisalId, setProjects, setSelectedProject);\r\n getData();\r\n if (props.showModal === true) {\r\n setShowFinishedModal(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const handleClick = async () => {\r\n setWarningText(\"Are you sure you want to clear the selected info for \" + selectedProject.name + \"?\");\r\n setShowWarningModal(true);\r\n }\r\n\r\n const onYesToClear = async () => {\r\n setShowWarningModal(false);\r\n setActionLoading(true);\r\n\r\n setShowDeletingModal(true);\r\n setIsItemDeleting(true);\r\n setItemDeleteTitle(\"Clearing Project Data\");\r\n setItemDeleteButtonText(\"Clearing Project Data, please wait...\");\r\n\r\n await clearItemData();\r\n await clearStateData();\r\n\r\n setShowDeletingModal(false);\r\n setActionLoading(false);\r\n setShowFinishedModal(true);\r\n }\r\n\r\n const onNoToClear = () => {\r\n setShowWarningModal(false);\r\n }\r\n\r\n async function clearItemData() {\r\n if (clearNotes || clearStrengths || clearWeaknesses || clearIOs) {\r\n setItemBeingDeleted(\"Clearing Findings Data...\");\r\n\r\n const apiPath = `${Constants.APPRAISAL_ITEM_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n let index = i+1;\r\n setItemDeleteStatus(\"Processing finding \" + index + \" of \" + data.length);\r\n\r\n if (data[i].project_id === selectedProject.id) {\r\n let clear = false;\r\n if (data[i].item_type === \"notes\") {\r\n if (clearNotes) {\r\n clear = true;\r\n }\r\n }\r\n else if (data[i].item_type === \"strengths\") {\r\n if (clearStrengths) {\r\n clear = true;\r\n }\r\n }\r\n else if (data[i].item_type === \"weaknesses\") {\r\n if (clearWeaknesses) {\r\n clear = true;\r\n }\r\n }\r\n else if (data[i].item_type === \"improvement_opportunities\") {\r\n if (clearIOs) {\r\n clear = true;\r\n }\r\n }\r\n if (clear) {\r\n await clearItemNodeData(currentAppraisalId, selectedProject.id, data[i].node_id, data[i].item_type, data[i].revision_number + 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async function clearStateData() {\r\n if (clearCharacterizations || clearHighlights) {\r\n setItemBeingDeleted(\"Clearing State Data...\");\r\n const apiPath = `${Constants.APPRAISAL_STATE_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n let index = i+1;\r\n setItemDeleteStatus(\"Processing state \" + index + \" of \" + data.length);\r\n \r\n if (data[i].project_id === selectedProject.id) {\r\n await clearStateNodeData(currentAppraisalId, selectedProject.id, data[i].node_id, data[i].affirmed, data[i].highlight, data[i].node_state, data[i].revision_number + 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async function clearItemNodeData(appraisalId, projectId, nodeId, itemType, revNum) {\r\n const body = {\r\n appraisal_id: appraisalId,\r\n project_id: projectId,\r\n node_id: nodeId,\r\n item_type: itemType,\r\n item_data: null,\r\n revision_number: revNum\r\n }\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_ITEM_PATH, await getDefaultAPIHeaders(body));\r\n }\r\n\r\n async function clearStateNodeData(appraisalId, projectId, nodeId, currentAffirmed, currentHighlight, currentState, revNum) {\r\n\r\n let newCharacterization = currentState;\r\n if (clearCharacterizations) {\r\n newCharacterization = \"Not Examined\";\r\n }\r\n\r\n let newHighlight = currentHighlight;\r\n if (clearHighlights) {\r\n newHighlight = \"\";\r\n }\r\n\r\n const body = {\r\n appraisal_id: appraisalId,\r\n project_id: projectId,\r\n node_id: nodeId,\r\n affirmed: currentAffirmed,\r\n highlight: newHighlight,\r\n node_state: newCharacterization,\r\n revision_number: revNum\r\n };\r\n\r\n try {\r\n await API.put(Constants.API_PATH, Constants.APPRAISAL_STATE_PATH, await getDefaultAPIHeaders(body))\r\n .catch(err => {\r\n console.log(\"Error clearing state data: \" + err);\r\n });\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n const onFinishedAcknowledge = () => {\r\n setShowFinishedModal(false);\r\n props.setShowModal(false);\r\n window.location.reload();\r\n }\r\n\r\n const getDeletingButtonText = () => {\r\n return !isItemDeleting ? \"Close\" : itemDeleteButtonText;\r\n }\r\n\r\n const tryCloseDeletingModal = () => {\r\n if (!isItemDeleting) {\r\n setShowDeletingModal(false);\r\n }\r\n }\r\n\r\n const tryHideModal = (e) => {\r\n if (!actionLoading) {\r\n props.setShowModal(false)\r\n }\r\n }\r\n\r\n const handleProjectChanged = (e) => {\r\n let selected = projects.filter(x => x.id === e.target.value)[0];\r\n setSelectedProject(selected);\r\n\r\n }\r\n\r\n const getOptions = () => {\r\n let options = [];\r\n for (let i = 0; i < projects.length; i++) {\r\n options.push(\r\n \r\n )\r\n }\r\n return options;\r\n }\r\n\r\n const notesCheckBoxChanged = () => {\r\n setClearNotes(!clearNotes);\r\n }\r\n\r\n const strengthsCheckBoxChanged = () => {\r\n setClearStrengths(!clearStrengths);\r\n }\r\n\r\n const weaknessesCheckBoxChanged = () => {\r\n setClearWeaknesses(!clearWeaknesses);\r\n }\r\n\r\n const iosCheckBoxChanged = () => {\r\n setClearIOs(!clearIOs);\r\n }\r\n\r\n const characterizationsCheckBoxChanged = () => {\r\n setClearCharacterizations(!clearCharacterizations);\r\n }\r\n\r\n const highlightsCheckBoxChanged = () => {\r\n setClearHighlights(!clearHighlights);\r\n }\r\n\r\n return (\r\n tryHideModal(e)}\r\n animation\r\n disabled={showFinishedModal}\r\n >\r\n \r\n \r\n {' '}Clear Project Info\r\n \r\n \r\n \r\n \r\n \r\n Project\r\n \r\n \r\n handleProjectChanged(e)}\r\n >\r\n {getOptions()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Info to Clear\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n handleClick()}\r\n >\r\n {actionLoading &&\r\n }\r\n {!actionLoading ? \"Clear Info\" : 'Clearing Info...'}\r\n {' '}\r\n \r\n\r\n setShowWarningModal(false)}\r\n animation\r\n style={{ backgroundColor: 'rgba(0,0,0,0.2)' }}\r\n size='sm'>\r\n \r\n \r\n {warningText}\r\n

    \r\n This action cannot be undone.\r\n \r\n
    \r\n \r\n onYesToClear()}\r\n >Yes\r\n onNoToClear()}\r\n >No\r\n \r\n
    \r\n\r\n tryCloseDeletingModal(e)} >\r\n \r\n \r\n {itemDeleteTitle}\r\n \r\n \r\n \r\n \r\n {itemBeingDeleted}\r\n

    \r\n {itemDeleteStatus}\r\n
    \r\n \r\n
    \r\n \r\n tryCloseDeletingModal(e)}>\r\n {isItemDeleting &&\r\n }\r\n {getDeletingButtonText()}\r\n {' '}\r\n \r\n
    \r\n\r\n setShowFinishedModal(false)}\r\n animation\r\n style={{ backgroundColor: 'rgba(0,0,0,0.2)' }}\r\n size='sm'>\r\n \r\n Project info cleared successfully.\r\n \r\n \r\n onFinishedAcknowledge()}\r\n >Ok\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default ClearProjectInfoModal;","import React from 'react';\r\nimport { FormGroup } from 'react-bootstrap';\r\n\r\nconst listOptionStyle = {\r\n paddingTop:'2px',\r\n paddingBottom:'2px',\r\n paddingLeft:'3px',\r\n paddingRight:'3px',\r\n fontSize: '16px',\r\n color:'dimgray'\r\n};\r\n\r\n\r\nconst MultiSelectListReportOptions = ({listData, handleSelectionChanged, displayOptions}) => {\r\n let data = listData; \r\n \r\n if(displayOptions.filterAvailable){\r\n data = listData.filter(ld=>ld[displayOptions.availableKey]);\r\n }\r\n const listOptions = data.map(ld=>{\r\n return(\r\n \r\n )\r\n });\r\n\r\n const maxHeight = () => {\r\n if(displayOptions.title === 'Practice Areas'){\r\n return '40rem';\r\n }\r\n else if(displayOptions.title === 'CopyAppraisalPAs'){\r\n return '10rem';\r\n }\r\n else{\r\n return '20rem';\r\n }\r\n }\r\n \r\n const style = {\r\n width: \"100%\", \r\n border:'none', \r\n outline:'none', \r\n overflow:'auto', \r\n maxHeight: maxHeight()\r\n };\r\n\r\n return(\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\nexport default MultiSelectListReportOptions;","import React from 'react';\r\nimport { PRACTICES_OPTIONS, RATINGS_LEGEND_MAP } from '../utils/IconMap';\r\n\r\nconst CharacterizationsLegend = (\r\n
    \r\n {getCharacterizationLegendItems()}\r\n
    \r\n);\r\n\r\nconst RatingsLegend = (\r\n
    \r\n {getRatingsLegendItems()}\r\n
    \r\n);\r\n\r\nfunction getCharacterizationLegendItems() {\r\n return generateLegend(\"Characterizations Legend\", PRACTICES_OPTIONS);\r\n}\r\n\r\nfunction getRatingsLegendItems() {\r\n return generateLegend(\"Ratings Legend\", RATINGS_LEGEND_MAP);\r\n}\r\n\r\n//takes a title and a collection with label and value properties to generate a legend\r\nfunction generateLegend(title, collection){\r\n let rows = [];\r\n rows.push(\r\n
    \r\n {title}\r\n
    \r\n );\r\n\r\n let columns = [];\r\n let currentRows = [];\r\n for (let i = 0; i < collection.length; i++) {\r\n currentRows.push(\r\n
    \r\n
    {collection[i].label}
    \r\n
    {collection[i].value}
    \r\n
    \r\n );\r\n\r\n //every 3 options, create a new column\r\n if ((i + 1) % 3 === 0) {\r\n columns.push(\r\n
    \r\n
    \r\n {currentRows}\r\n
    \r\n
    \r\n );\r\n currentRows = [];\r\n }\r\n }\r\n\r\n //if there are any items left over, add them to a final column\r\n if(currentRows.length > 0){\r\n columns.push(\r\n
    \r\n
    \r\n {currentRows}\r\n
    \r\n
    \r\n );\r\n currentRows = [];\r\n }\r\n\r\n rows.push(\r\n
    \r\n {columns}\r\n
    \r\n );\r\n\r\n return rows;\r\n}\r\n\r\nexport { CharacterizationsLegend, RatingsLegend }","import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap'\r\nimport { ICON_MAP } from '../utils/IconMap';\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\nimport { CharacterizationsLegend } from '../utils/IconLegends';\r\n\r\nfunction getProjectSubTitle(projects) {\r\n let projectSubTitle = \"\";\r\n for (let i = 0; i < projects.length; i++) {\r\n if (i !== projects.length - 1) {\r\n const nextProject = `${projects[i].name}, `;\r\n projectSubTitle = projectSubTitle.concat(nextProject);\r\n } else {\r\n projectSubTitle = projectSubTitle.concat(projects[i].name);\r\n }\r\n }\r\n return projectSubTitle;\r\n}\r\n\r\nconst indent1Style = {\r\n paddingLeft: '5px',\r\n paddingRight: '5px',\r\n border: 'none',\r\n whiteSpace: 'pre-wrap'\r\n};\r\n\r\nconst indent2Style = {\r\n paddingLeft: '35px',\r\n paddingRight: '5px',\r\n border: 'none',\r\n whiteSpace: 'pre-wrap'\r\n};\r\n\r\nconst indent3Style = {\r\n paddingLeft: '70px',\r\n paddingRight: '5px',\r\n border: 'none',\r\n whiteSpace: 'pre-wrap'\r\n};\r\n\r\nconst indent4Style = {\r\n paddingLeft: '105px',\r\n paddingRight: '5px',\r\n border: 'none',\r\n whiteSpace: 'pre-wrap'\r\n};\r\n\r\nfunction addProjectRow(projectName, reportRows) {\r\n const projectRow = (\r\n
    \r\n
    {projectName}
    \r\n
    \r\n );\r\n reportRows.push(
    )\r\n reportRows.push(projectRow);\r\n}\r\n\r\nfunction addPARow(practiceAreaName, reportRows) {\r\n const practiceAreaRow = (\r\n
    \r\n
    {practiceAreaName}
    \r\n
    \r\n );\r\n reportRows.push(practiceAreaRow);\r\n}\r\n\r\nfunction addPracticeRow(hasCharacterization, name, statement, characterization, reportRows) {\r\n let practiceFindingsRow;\r\n if (hasCharacterization) {\r\n practiceFindingsRow = (\r\n
    \r\n
    \r\n
    {getCharacterizationIcon(characterization)} {name}: {statement}
    \r\n
    \r\n
    \r\n );\r\n }\r\n else {\r\n practiceFindingsRow = (\r\n
    \r\n
    \r\n
    {name}: {statement}
    \r\n
    \r\n
    \r\n );\r\n }\r\n reportRows.push(practiceFindingsRow);\r\n}\r\n\r\nfunction addPracticeFindingsRow(type, data, reportRows) {\r\n let practiceFindingsRow;\r\n if (data !== \"\") {\r\n practiceFindingsRow = (\r\n
    \r\n \r\n {type}:\r\n {data}\r\n \r\n
    \r\n );\r\n reportRows.push(practiceFindingsRow);\r\n }\r\n}\r\n\r\nfunction addBlankRow(reportRows) {\r\n reportRows.push(
    );\r\n}\r\n\r\nfunction addNotesRow(level, name, notes, reportRows) {\r\n const groupNotesRow = (\r\n
    \r\n
    \r\n
    {name}:
    \r\n
    {notes}
    \r\n
    \r\n
    \r\n );\r\n reportRows.push(groupNotesRow);\r\n}\r\n\r\nfunction addPANotesRow(level, name, notes, reportRows) {\r\n const groupNotesRow = (\r\n
    \r\n
    \r\n {name}:\r\n {notes}\r\n
    \r\n
    \r\n );\r\n reportRows.push(groupNotesRow);\r\n}\r\n\r\nfunction getCharacterizationIcon(value) {\r\n if (value === \"\") {\r\n return ICON_MAP[\"Not Examined\"];\r\n }\r\n else {\r\n return ICON_MAP[value]\r\n }\r\n}\r\n\r\nfunction formatAllNotesReportData(findingsData) {\r\n let reportRows = []\r\n for (let i = 0; i < findingsData.length; i++) {\r\n addProjectRow(findingsData[i].ProjectName, reportRows)\r\n let PAs = findingsData[i].PAData;\r\n\r\n for (let j = 0; j < PAs.length; j++) {\r\n addNotesRow(indent2Style, PAs[j].Name, PAs[j].Notes, reportRows)\r\n let levelData = PAs[j].LevelData;\r\n\r\n for (let k = 0; k < levelData.length; k++) {\r\n addNotesRow(indent3Style, levelData[k].Name, levelData[k].Notes, reportRows);\r\n let practices = levelData[k].Practices;\r\n\r\n for (let l = 0; l < practices.length; l++) {\r\n addNotesRow(indent4Style, practices[l].PracticeName, practices[l].Notes, reportRows)\r\n }\r\n }\r\n }\r\n }\r\n return reportRows;\r\n}\r\n\r\nfunction formatPracticeAreaReportData(findingsData) {\r\n let reportRows = []\r\n for (let i = 0; i < findingsData.length; i++) {\r\n addProjectRow(findingsData[i].ProjectName, reportRows);\r\n let PAs = findingsData[i].PAData;\r\n for (let j = 0; j < PAs.length; j++) {\r\n addPANotesRow(indent1Style, PAs[j].Name, PAs[j].Notes, reportRows);\r\n addBlankRow(reportRows);\r\n }\r\n }\r\n return reportRows;\r\n}\r\n\r\nfunction formatPracticeGroupReportData(findingsData) {\r\n let reportRows = []\r\n\r\n for (let i = 0; i < findingsData.length; i++) {\r\n addProjectRow(findingsData[i].ProjectName, reportRows);\r\n let PAs = findingsData[i].PAData;\r\n for (let j = 0; j < PAs.length; j++) {\r\n addPARow(PAs[j].Name, reportRows);\r\n let levelData = PAs[j].LevelData;\r\n for (let k = 0; k < levelData.length; k++) {\r\n addNotesRow(indent3Style, levelData[k].Name, levelData[k].Notes, reportRows);\r\n addBlankRow(reportRows);\r\n }\r\n }\r\n }\r\n\r\n return reportRows;\r\n}\r\n\r\nfunction formatPracticeReportData(reportOptions, findingsData) {\r\n let reportRows = []\r\n\r\n for (let i = 0; i < findingsData.length; i++) {\r\n let project = findingsData[i];\r\n addProjectRow(project.ProjectName, reportRows);\r\n let PAs = project.PracticeAreas;\r\n for (let j = 0; j < PAs.length; j++) {\r\n addPARow(PAs[j].PracticeAreaName, reportRows);\r\n let practices = PAs[j].Practices;\r\n for (let k = 0; k < practices.length; k++) {\r\n let practice = practices[k];\r\n\r\n addPracticeRow(reportOptions.HasCharacterizations, practice.PracticeName, practice.Statement, practice.Characterization, reportRows);\r\n\r\n if (reportOptions.HasNotes) {\r\n addPracticeFindingsRow(\"Notes\", practice.Notes, reportRows);\r\n }\r\n if (reportOptions.HasStrengths) {\r\n addPracticeFindingsRow(\"Strengths\", practice.Strengths, reportRows);\r\n }\r\n if (reportOptions.HasWeaknesses) {\r\n addPracticeFindingsRow(\"Weaknesses\", practice.Weaknesses, reportRows);\r\n }\r\n if (reportOptions.HasIOs) {\r\n addPracticeFindingsRow(\"IOs\", practice.IOs, reportRows);\r\n }\r\n\r\n addBlankRow(reportRows);\r\n }\r\n }\r\n }\r\n return reportRows;\r\n}\r\n\r\nconst FindingsReportView = ({ reportType, projects, findingsData, reportOptions }) => {\r\n const projectSubtitle = getProjectSubTitle(projects);\r\n let reportRows = [];\r\n\r\n let projectList = \"\";\r\n let noDataText = \" - No results found\";\r\n let hasProjectWithNoData = false;\r\n\r\n\r\n projects.forEach(project => {\r\n let hasProject = false;\r\n for (let i = 0; i < findingsData.length; i++) {\r\n if (findingsData[i].ProjectName === project.name) {\r\n hasProject = true;\r\n }\r\n }\r\n if (!hasProject) {\r\n hasProjectWithNoData = true;\r\n projectList += project.name + \", \";\r\n }\r\n });\r\n\r\n const InsertNoDataRow = () => {\r\n projectList = projectList.substring(0, projectList.lastIndexOf(','));\r\n let noResults = projectList.concat(noDataText);\r\n\r\n if (hasProjectWithNoData) {\r\n return (
    \r\n {\r\n noResults\r\n }\r\n
    )\r\n }\r\n }\r\n\r\n let dateTime = getCurrentDateTime();\r\n\r\n if (findingsData.length !== 0) {\r\n switch (reportType) {\r\n case \"allFindings\":\r\n reportRows = formatAllNotesReportData(findingsData);\r\n break;\r\n\r\n case \"practiceAreaFindings\":\r\n reportRows = formatPracticeAreaReportData(findingsData);\r\n break;\r\n\r\n case \"practiceGroupFindings\":\r\n reportRows = formatPracticeGroupReportData(findingsData);\r\n break;\r\n\r\n case \"practiceFindings\":\r\n reportRows = formatPracticeReportData(reportOptions, findingsData);\r\n break;\r\n\r\n default: break;\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    Created for Project(s):

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

    {projectSubtitle}

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

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reportRows}\r\n
    {InsertNoDataRow()}
    \r\n
    \r\n
    \r\n {reportOptions.HasCharacterizations &&\r\n \r\n \r\n {CharacterizationsLegend}\r\n \r\n \r\n }\r\n
    \r\n );\r\n}\r\nexport default FindingsReportView;","import React, { useState, useEffect } from 'react';\r\nimport { Button, Spinner, Row, Col, Form, FormControl, Modal } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport { AppraisalRepository } from '../utils/repositories';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport MultiSelectListReportOptions from '../presenters/MultiSelectListReportOptions';\r\nimport FindingsReportView from '../presenters/FindingsReportView';\r\nimport { PRACTICE_AREAS } from '../model/practiceareas';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { PRACTICES } from '../model/practices';\r\nimport { Constants, getDefaultAPIHeaders, getCurrentDateTime } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport NewWindow from 'react-new-window'\r\nimport { CSVLink } from \"react-csv\";\r\n\r\nasync function fetchData(setDataLoading, setAppraisalName, projects, practiceAreas, setMaturityLevel) {\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false, availableForSelection: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n projects.setValue(appraisalData.returnValue.projects);\r\n setAppraisalName(appraisalData.returnValue.name);\r\n setMaturityLevel(modelContentUtils.getMaturityLevelFromView(appraisalData.returnValue.view));\r\n const formattedPracticeAreas = modelContentUtils.getPracticeAreasFromAppraisalProjects(appraisalData.returnValue.projects, true, true)\r\n .map(pa => {\r\n return {\r\n ...pa,\r\n selected: false,\r\n availableForSelection: false\r\n }\r\n });\r\n practiceAreas.setValue(formattedPracticeAreas);\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst FindingsReportModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [practiceOptionsVisible, setPracticeOptionsVisible] = useState(true);\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [csvLoading, setCSVLoading] = useState(false);\r\n const [showCSV, setShowCSV] = useState(false);\r\n const [findingsData, setFindingsData] = useState({});\r\n const [csvData, setCSVData] = useState({});\r\n const [csvFilename, setCSVFilename] = useState({});\r\n const [findingsScopeValue, setFindingsScopeValue] = useState(\"practiceFindings\");\r\n const [hasProjectSelected, setHasProjectSelected] = useState(\"false\");\r\n const [hasPracticeAreaSelected, setHasPracticeAreaSelected] = useState(\"false\");\r\n const [includeCharacterizations, setIncludeCharacterizations] = useState(\"true\");\r\n const [includeNotes, setIncludeNotes] = useState(\"true\");\r\n const [includeStrengths, setIncludeStrengths] = useState(\"false\");\r\n const [includeWeaknesses, setIncludeWeaknesses] = useState(\"false\");\r\n const [includeIOs, setIncludeIOs] = useState(\"false\");\r\n const [showLevelOnePractices, setShowLevelOnePractices] = useState(\"false\");\r\n const projects = useArray([]);\r\n const practiceAreas = useArray([]);\r\n const [maturityLevel, setMaturityLevel] = useState(null);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n setDataLoading(true);\r\n const getData = () => fetchData(setDataLoading, setAppraisalName, projects, practiceAreas, setMaturityLevel);\r\n getData();\r\n setShowCSV(false);\r\n setOptionsVisible(true);\r\n setPracticeOptionsVisible(true);\r\n setHasProjectSelected(false);\r\n setHasPracticeAreaSelected(false);\r\n setIncludeCharacterizations(true);\r\n setIncludeNotes(true);\r\n setIncludeStrengths(false);\r\n setIncludeWeaknesses(false);\r\n setIncludeIOs(false);\r\n setShowLevelOnePractices(false);\r\n setFindingsScopeValue(\"practiceFindings\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const handleProjectSelectionChanged = (event) => {\r\n const allOptions = event.target.options;\r\n let selectedProjectIds = [];\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n let project = projects.getById(currentOption.value);\r\n if (currentOption.selected) {\r\n selectedProjectIds.push(currentOption.value);\r\n }\r\n project.selected = currentOption.selected;\r\n projects.replace(currentOption.value, project);\r\n }\r\n\r\n const selectedProjectPracticeAreaIds = projects.value.filter(p => selectedProjectIds.includes(p.id))\r\n .map(p => p.practiceAreas).flat();\r\n const newPracticeAreas = practiceAreas.value.slice()\r\n .map(pa => {\r\n if (selectedProjectPracticeAreaIds.includes(pa.id)) {\r\n return {\r\n ...pa,\r\n availableForSelection: true\r\n }\r\n } else {\r\n return {\r\n ...pa,\r\n availableForSelection: false,\r\n selected: false\r\n }\r\n }\r\n });\r\n practiceAreas.setValue(newPracticeAreas);\r\n\r\n setHasProjectSelected(projects.value.filter(p => p.selected === true).length > 0 ? true : false);\r\n\r\n let anyPASelected = false;\r\n newPracticeAreas.forEach(d => {\r\n if (d.selected) {\r\n anyPASelected = true;\r\n }\r\n });\r\n setHasPracticeAreaSelected(anyPASelected);\r\n setShowCSV(false);\r\n }\r\n\r\n const handlePracticeAreaSelectionChanged = (event) => {\r\n const allOptions = event.target.options;\r\n let selectedPracticeAreaIds = [];\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n if (currentOption.selected) {\r\n selectedPracticeAreaIds.push(currentOption.value);\r\n }\r\n }\r\n const newPracticeAreas = practiceAreas.value.slice()\r\n .map(pa => {\r\n if (selectedPracticeAreaIds.includes(pa.id)) {\r\n return {\r\n ...pa,\r\n selected: true\r\n }\r\n } else {\r\n return {\r\n ...pa,\r\n selected: false\r\n }\r\n }\r\n });\r\n practiceAreas.setValue(newPracticeAreas);\r\n\r\n setHasPracticeAreaSelected(selectedPracticeAreaIds.length > 0 ? true : false);\r\n setShowCSV(false);\r\n }\r\n\r\n async function getAllNotesData(currentAppraisalId, selectedProjects, selectedPracticeAreas) {\r\n let notesInfo = [];\r\n const apiPath = `${Constants.APPRAISAL_ITEM_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n const currentProject = selectedProjects[i];\r\n\r\n let PAs = [];\r\n\r\n for (let i = 0; i < selectedPracticeAreas.length; i++) {\r\n const practiceAreaName = [selectedPracticeAreas[i].name];\r\n let PANotes = \"\";\r\n let hasAnyPAData = false;\r\n\r\n //practice area notes\r\n data.forEach(d => {\r\n if (d.project_id === currentProject.id && d.node_id === selectedPracticeAreas[i].id && d.item_type === \"notes\") {\r\n PANotes = d.item_data;\r\n hasAnyPAData = true;\r\n }\r\n });\r\n\r\n //get the node ids for each level/node in the practice area\r\n const practiceNodes = PRACTICE_AREA_RELATIONSHIPS[selectedPracticeAreas[i].id];\r\n const practiceAreaLevelIDs = PRACTICE_AREAS[selectedPracticeAreas[i].id].LevelIds;\r\n\r\n let currentLevel;\r\n let levelData = [];\r\n let practices = [];\r\n let hasPracticeData = false;\r\n let hasLevelData = false;\r\n let levelNotes = \"\";\r\n let levelString = \"\";\r\n\r\n for (let i = 0; i < practiceNodes.length; i++) {\r\n\r\n const level = PRACTICES[practiceNodes[i].Id].Level;\r\n\r\n if(level === 1 && !showLevelOnePractices){\r\n continue;\r\n }\r\n\r\n if (currentLevel !== level) {\r\n\r\n //add data when level changes\r\n if (currentLevel) {\r\n if (hasLevelData || hasPracticeData) {\r\n levelData.push({\r\n Name: levelString,\r\n Notes: levelNotes,\r\n Practices: practices\r\n })\r\n }\r\n }\r\n\r\n hasPracticeData = false;\r\n hasLevelData = false;\r\n levelNotes = \"\";\r\n const practiceGroupID = practiceAreaLevelIDs[level];\r\n for (let j = 0; j < data.length; j++) {\r\n if (data[j].project_id === currentProject.id && data[j].node_id === practiceGroupID && data[j].item_type === \"notes\") {\r\n levelNotes = data[j].item_data;\r\n hasLevelData = true;\r\n hasAnyPAData = true;\r\n }\r\n }\r\n\r\n levelString = \"Level \" + level;\r\n practices = [];\r\n currentLevel = level;\r\n }\r\n\r\n //get the friendly abbreviation for the practice node\r\n const practice = PRACTICES[practiceNodes[i].Id].Abbreviation;\r\n let practiceNotes = \"\";\r\n\r\n for (let j = 0; j < data.length; j++) {\r\n if (data[j].project_id === currentProject.id && data[j].node_id === practiceNodes[i].Id && data[j].item_type === \"notes\") {\r\n practiceNotes = data[j].item_data;\r\n hasPracticeData = true;\r\n hasAnyPAData = true;\r\n }\r\n }\r\n\r\n if (practiceNotes !== \"\") {\r\n practices.push({\r\n PracticeName: practice,\r\n Notes: practiceNotes\r\n })\r\n }\r\n }\r\n\r\n //add the remaining data\r\n if (hasLevelData || hasPracticeData) {\r\n levelData.push({\r\n Name: levelString,\r\n Notes: levelNotes,\r\n Practices: practices\r\n })\r\n }\r\n\r\n if (hasAnyPAData) {\r\n PAs.push({\r\n Name: practiceAreaName,\r\n Notes: PANotes,\r\n LevelData: levelData\r\n })\r\n }\r\n hasAnyPAData = false;\r\n }\r\n\r\n if (PAs.length > 0) {\r\n notesInfo.push({\r\n ProjectName: currentProject.name,\r\n PAData: PAs\r\n })\r\n }\r\n }\r\n\r\n return notesInfo;\r\n }\r\n\r\n async function getPracticeAreaNotesData(currentAppraisalId, selectedProjects, selectedPracticeAreas) {\r\n let notesInfo = [];\r\n const apiPath = `${Constants.APPRAISAL_ITEM_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n const currentProject = selectedProjects[i];\r\n\r\n let PAs = [];\r\n for (let i = 0; i < selectedPracticeAreas.length; i++) {\r\n const practiceAreaName = [selectedPracticeAreas[i].name]\r\n\r\n data.forEach(d => {\r\n if (d.project_id === currentProject.id && d.node_id === selectedPracticeAreas[i].id && d.item_type === \"notes\") {\r\n PAs.push({\r\n Name: practiceAreaName,\r\n Notes: d.item_data\r\n })\r\n }\r\n });\r\n }\r\n if (PAs.length > 0) {\r\n notesInfo.push({\r\n ProjectName: currentProject.name,\r\n PAData: PAs\r\n });\r\n }\r\n }\r\n\r\n return notesInfo;\r\n }\r\n\r\n async function getPracticeGroupNotesData(currentAppraisalId, selectedProjects, selectedPracticeAreas) {\r\n let notesInfo = [];\r\n const apiPath = `${Constants.APPRAISAL_ITEM_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n const currentProject = selectedProjects[i];\r\n\r\n let PAs = [];\r\n for (let i = 0; i < selectedPracticeAreas.length; i++) {\r\n const practiceAreaName = [selectedPracticeAreas[i].name]\r\n\r\n //iterate through each practice group (level)\r\n let levelData = [];\r\n let hasLevelData = false;\r\n const practiceAreaLevelIDs = PRACTICE_AREAS[selectedPracticeAreas[i].id].LevelIds;\r\n for (var key in practiceAreaLevelIDs) {\r\n\r\n if(key === \"1\" && !showLevelOnePractices){\r\n continue;\r\n }\r\n\r\n const practiceGroupID = practiceAreaLevelIDs[key];\r\n const levelString = \"Level \" + key;\r\n\r\n for (let z = 0; z < data.length; z++) {\r\n if (data[z].project_id === currentProject.id && data[z].node_id === practiceGroupID && data[z].item_type === \"notes\") {\r\n levelData.push({\r\n Name: levelString,\r\n Notes: data[z].item_data\r\n });\r\n hasLevelData = true;\r\n }\r\n }\r\n }\r\n\r\n if (hasLevelData) {\r\n PAs.push({\r\n Name: practiceAreaName,\r\n LevelData: levelData\r\n })\r\n }\r\n }\r\n if (PAs.length > 0) {\r\n notesInfo.push({\r\n ProjectName: currentProject.name,\r\n PAData: PAs\r\n });\r\n }\r\n }\r\n\r\n return notesInfo;\r\n }\r\n\r\n async function getPracticeFindingsData(currentAppraisalId, selectedProjects, selectedPracticeAreas) {\r\n\r\n const notesApiPath = `${Constants.APPRAISAL_ITEM_PATH}/${currentAppraisalId}`\r\n const itemData = await API.get(Constants.API_PATH, notesApiPath, await getDefaultAPIHeaders());\r\n\r\n const stateApiPath = `${Constants.APPRAISAL_STATE_PATH}/${currentAppraisalId}`\r\n const stateData = await API.get(Constants.API_PATH, stateApiPath, await getDefaultAPIHeaders());\r\n\r\n let findingsInfo = [];\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n const currentProject = selectedProjects[i];\r\n\r\n let practiceAreas = [];\r\n let projectHasData = false;\r\n\r\n for (let j = 0; j < currentProject.practiceAreas.length; j++) {\r\n const practiceAreaName = currentProject.practiceAreas[j];\r\n\r\n let practices = [];\r\n for (let z = 0; z < selectedPracticeAreas.length; z++) {\r\n if (selectedPracticeAreas[z].id === practiceAreaName) {\r\n\r\n let PAHasData = false;\r\n\r\n //get the node ids for each node in the practice area\r\n let practiceNodes = [];\r\n if(showLevelOnePractices){\r\n practiceNodes = PRACTICE_AREA_RELATIONSHIPS[currentProject.practiceAreas[j]].filter(x => x.Level <= maturityLevel);\r\n }\r\n else{\r\n practiceNodes = PRACTICE_AREA_RELATIONSHIPS[currentProject.practiceAreas[j]].filter(x => x.Level > 1 && x.Level <= maturityLevel);\r\n }\r\n\r\n for (let k = 0; k < practiceNodes.length; k++) {\r\n\r\n //get the friendly abbreviation for the practice node\r\n const practice = PRACTICES[practiceNodes[k].Id].Abbreviation;\r\n\r\n let characterization = \"\";\r\n stateData.forEach(d => {\r\n if (d.project_id === currentProject.id && d.node_id === practiceNodes[k].Id) {\r\n characterization = d.node_state;\r\n }\r\n });\r\n\r\n let statement = PRACTICES[practiceNodes[k].Id].Statement;\r\n let notes = \"\";\r\n let strengths = \"\";\r\n let weaknesses = \"\";\r\n let ios = \"\";\r\n\r\n let practiceHasData = false;\r\n\r\n itemData.forEach(d => {\r\n if (d.project_id === currentProject.id && d.node_id === practiceNodes[k].Id) {\r\n if (d.item_type === \"notes\") {\r\n notes = d.item_data;\r\n if (includeNotes) {\r\n practiceHasData = true;\r\n }\r\n }\r\n else if (d.item_type === \"strengths\") {\r\n strengths = d.item_data;\r\n if (includeStrengths) {\r\n practiceHasData = true;\r\n }\r\n }\r\n else if (d.item_type === \"weaknesses\") {\r\n weaknesses = d.item_data;\r\n if (includeWeaknesses) {\r\n practiceHasData = true;\r\n }\r\n }\r\n else if (d.item_type === \"improvement_opportunities\") {\r\n ios = d.item_data;\r\n if (includeIOs) {\r\n practiceHasData = true;\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (practiceHasData) {\r\n PAHasData = true;\r\n }\r\n\r\n //push the data for this node to the collection if criteria is met\r\n if (includeCharacterizations || practiceHasData) {\r\n practices.push({\r\n PracticeName: practice,\r\n Statement: statement,\r\n Characterization: characterization,\r\n Notes: notes,\r\n Strengths: strengths,\r\n Weaknesses: weaknesses,\r\n IOs: ios\r\n });\r\n }\r\n }\r\n if (PAHasData) {\r\n projectHasData = true;\r\n }\r\n\r\n if (includeCharacterizations || PAHasData) {\r\n practiceAreas.push({\r\n PracticeAreaName: practiceAreaName,\r\n Practices: practices\r\n });\r\n }\r\n }\r\n }\r\n }\r\n if (includeCharacterizations || projectHasData) {\r\n findingsInfo.push({\r\n ProjectName: currentProject.name,\r\n PracticeAreas: practiceAreas\r\n });\r\n }\r\n }\r\n return findingsInfo;\r\n }\r\n\r\n const getFindingsData = async () => {\r\n\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let selectedProjects = projects.value.filter(p => p.selected === true);\r\n let selectedPracticeAreas = practiceAreas.value.filter(p => p.selected === true);\r\n let findingsData = [];\r\n\r\n switch (findingsScopeValue) {\r\n case \"allFindings\":\r\n findingsData = await getAllNotesData(currentAppraisalId, selectedProjects, selectedPracticeAreas);\r\n break;\r\n\r\n case \"practiceAreaFindings\":\r\n findingsData = await getPracticeAreaNotesData(currentAppraisalId, selectedProjects, selectedPracticeAreas);\r\n break;\r\n\r\n case \"practiceGroupFindings\":\r\n findingsData = await getPracticeGroupNotesData(currentAppraisalId, selectedProjects, selectedPracticeAreas);\r\n break;\r\n\r\n case \"practiceFindings\":\r\n findingsData = await getPracticeFindingsData(currentAppraisalId, selectedProjects, selectedPracticeAreas);\r\n break;\r\n\r\n default: break;\r\n }\r\n\r\n return findingsData;\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n\r\n let findingsData = await getFindingsData();\r\n setFindingsData(findingsData);\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n const handleGenerateCSVClicked = async (event) => {\r\n setCSVLoading(true);\r\n\r\n let findingsData = await getFindingsData();\r\n let csvData = formatCSVData(findingsData);\r\n setCSVData(csvData);\r\n\r\n setCSVLoading(false);\r\n setShowCSV(true);\r\n }\r\n\r\n let dateTime = getCurrentDateTime();\r\n\r\n function formatCSVData(findingsData) {\r\n let csvRows = [];\r\n let filename = \"\";\r\n\r\n switch (findingsScopeValue) {\r\n case \"allFindings\":\r\n csvRows.push([\"Project\", \"Practice Area\", \"Findings Item\", \"Note\"]);\r\n\r\n for (let i = 0; i < findingsData.length; i++) {\r\n let PAs = findingsData[i].PAData;\r\n\r\n for (let j = 0; j < PAs.length; j++) {\r\n if (PAs[j].Notes !== \"\") {\r\n csvRows.push([findingsData[i].ProjectName, PAs[j].Name, PAs[j].Name, PAs[j].Notes]);\r\n }\r\n\r\n let levelData = PAs[j].LevelData;\r\n for (let k = 0; k < levelData.length; k++) {\r\n\r\n if (levelData[k].Notes !== \"\") {\r\n csvRows.push([findingsData[i].ProjectName, PAs[j].Name, levelData[k].Name, levelData[k].Notes]);\r\n }\r\n\r\n let practices = levelData[k].Practices;\r\n for (let l = 0; l < practices.length; l++) {\r\n csvRows.push([findingsData[i].ProjectName, PAs[j].Name, practices[l].PracticeName, practices[l].Notes]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n filename = \"allNotesReport_\" + dateTime + \".csv\";\r\n break;\r\n\r\n case \"practiceAreaFindings\":\r\n csvRows.push([\"Project\", \"Practice Area\", \"Note\"]);\r\n for (let i = 0; i < findingsData.length; i++) {\r\n let PAs = findingsData[i].PAData;\r\n for (let j = 0; j < PAs.length; j++) {\r\n csvRows.push([findingsData[i].ProjectName, PAs[j].Name, PAs[j].Notes]);\r\n }\r\n }\r\n filename = \"practiceAreaNotesReport_\" + dateTime + \".csv\";\r\n break;\r\n\r\n case \"practiceGroupFindings\":\r\n csvRows.push([\"Project\", \"Practice Area\", \"Practice Group\", \"Note\"]);\r\n\r\n for (let i = 0; i < findingsData.length; i++) {\r\n let PAs = findingsData[i].PAData;\r\n for (let j = 0; j < PAs.length; j++) {\r\n let levelData = PAs[j].LevelData;\r\n for (let k = 0; k < levelData.length; k++) {\r\n csvRows.push([findingsData[i].ProjectName, PAs[j].Name, levelData[k].Name, levelData[k].Notes]);\r\n }\r\n }\r\n }\r\n\r\n filename = \"practiceGroupNotesReport_\" + dateTime + \".csv\";\r\n break;\r\n\r\n case \"practiceFindings\":\r\n\r\n csvRows.push(getHeaderBasedOnPracticeOptions());\r\n\r\n for (let i = 0; i < findingsData.length; i++) {\r\n let project = findingsData[i];\r\n let PAs = project.PracticeAreas;\r\n\r\n for (let j = 0; j < PAs.length; j++) {\r\n let practices = PAs[j].Practices;\r\n\r\n for (let k = 0; k < practices.length; k++) {\r\n let practice = practices[k];\r\n\r\n let csvRow = getCSVRowBasedOnOptions(project.ProjectName, PAs[j].PracticeAreaName, practice);\r\n csvRows.push(csvRow);\r\n }\r\n }\r\n }\r\n filename = \"practiceFindingsReport_\" + dateTime + \".csv\";\r\n break;\r\n\r\n\r\n default: break;\r\n }\r\n setCSVFilename(filename);\r\n return csvRows;\r\n }\r\n\r\n const getHeaderBasedOnPracticeOptions = () => {\r\n let header = [\"Project\", \"Practice Area\", \"Practice\", \"Practice Statement\"];\r\n if (includeCharacterizations) { header.push(\"Characterization\"); }\r\n if (includeNotes) { header.push(\"Notes\"); }\r\n if (includeStrengths) { header.push(\"Strengths\"); }\r\n if (includeWeaknesses) { header.push(\"Weaknesses\"); }\r\n if (includeIOs) { header.push(\"Improvement Opportunities\"); }\r\n return header;\r\n }\r\n\r\n const getCSVRowBasedOnOptions = (projectName, PAName, practice) => {\r\n let row = [projectName, PAName, practice.PracticeName, practice.Statement];\r\n if (includeCharacterizations) { row.push(cleanCSVData(practice.Characterization)); }\r\n if (includeNotes) { row.push(cleanCSVData(practice.Notes)); }\r\n if (includeStrengths) { row.push(cleanCSVData(practice.Strengths)); }\r\n if (includeWeaknesses) { row.push(cleanCSVData(practice.Weaknesses)); }\r\n if (includeIOs) { row.push(cleanCSVData(practice.IOs)); }\r\n return row;\r\n }\r\n\r\n const cleanCSVData = (entry) => {\r\n return entry.replace(/\"/g, '\\'');\r\n }\r\n\r\n const handleFindingsScopeChanged = (value) => {\r\n setFindingsScopeValue(value);\r\n\r\n if (value === \"practiceFindings\") {\r\n setPracticeOptionsVisible(true);\r\n setIncludeCharacterizations(true);\r\n setIncludeNotes(true);\r\n setIncludeStrengths(false);\r\n setIncludeWeaknesses(false);\r\n setIncludeIOs(false);\r\n }\r\n else {\r\n setIncludeNotes(true);\r\n setPracticeOptionsVisible(false);\r\n }\r\n\r\n setShowCSV(false);\r\n }\r\n\r\n const hasReportOptionSelected = () => {\r\n return includeCharacterizations || includeNotes || includeStrengths || includeWeaknesses || includeIOs;\r\n }\r\n\r\n const projectSelectionDisplayOptions = {\r\n title: \"Projects\",\r\n displayKey: \"name\",\r\n filterAvailable: false\r\n };\r\n\r\n const practiceAreaSelectionDisplayOptions = {\r\n title: \"Practice Areas\",\r\n displayKey: \"name\",\r\n filterAvailable: true,\r\n availableKey: \"availableForSelection\",\r\n size: 25\r\n };\r\n\r\n const scopeHeader = 'Scope:';\r\n const appraisalHeader = 'Appraisal:';\r\n const reportName = 'Findings Report';\r\n\r\n const viewReportSubTitle = () => {\r\n let type = findingsScopeValue === 'allFindings' ? 'All' :\r\n findingsScopeValue === 'practiceAreaFindings' ? 'Practice Area' :\r\n findingsScopeValue === 'practiceGroupFindings' ? 'Practice Group' : 'Practice';\r\n return type;\r\n }\r\n\r\n const getScopeOptionsList = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const characterizationsCheckBoxChanged = () => {\r\n setIncludeCharacterizations(!includeCharacterizations);\r\n setShowCSV(false);\r\n }\r\n const notesCheckBoxChanged = () => {\r\n setIncludeNotes(!includeNotes);\r\n setShowCSV(false);\r\n }\r\n const strengthsCheckBoxChanged = () => {\r\n setIncludeStrengths(!includeStrengths);\r\n setShowCSV(false);\r\n }\r\n const weaknessesCheckBoxChanged = () => {\r\n setIncludeWeaknesses(!includeWeaknesses);\r\n setShowCSV(false);\r\n }\r\n const iosCheckBoxChanged = () => {\r\n setIncludeIOs(!includeIOs);\r\n setShowCSV(false);\r\n }\r\n\r\n const levelOneCheckBoxChanged = () => {\r\n setShowLevelOnePractices(!showLevelOnePractices);\r\n }\r\n \r\n const getReportOptions = () => {\r\n return {\r\n HasCharacterizations: includeCharacterizations,\r\n HasNotes: includeNotes,\r\n HasStrengths: includeStrengths,\r\n HasWeaknesses: includeWeaknesses,\r\n HasIOs: includeIOs\r\n }\r\n }\r\n\r\n const spacingStyle = {\r\n marginBottom: \"10px\",\r\n marginLeft: \"20%\",\r\n fontSize: \"16px\",\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n };\r\n\r\n const viewReportStyle = {\r\n textAlign: \"right\",\r\n paddingTop: \"0px\",\r\n color: 'black',\r\n marginTop: '16px',\r\n fontSize: '22px'\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"findingsReportModalStyle\">\r\n \r\n \r\n {' '}Findings Report\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Scope\r\n \r\n \r\n handleFindingsScopeChanged(e.target.value)}>\r\n {getScopeOptionsList()}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Report Options\r\n \r\n \r\n {practiceOptionsVisible &&\r\n \r\n }\r\n \r\n {practiceOptionsVisible &&\r\n \r\n }\r\n {practiceOptionsVisible &&\r\n \r\n }\r\n {practiceOptionsVisible &&\r\n \r\n }\r\n \r\n \r\n \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
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleGenerateReportClicked(e)}>\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Findings Report\" : ' Generating Report...'}\r\n {' '}\r\n {!showCSV &&\r\n handleGenerateCSVClicked(e)}>\r\n {csvLoading &&\r\n }\r\n {!csvLoading ? \"Generate Findings CSV\" : ' Generating CSV...'}\r\n \r\n }\r\n {showCSV &&\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {!optionsVisible &&\r\n \r\n \r\n p.selected === true)}\r\n findingsData={findingsData}\r\n reportOptions={getReportOptions()} />\r\n \r\n \r\n }\r\n
    \r\n );\r\n}\r\nexport default FindingsReportModal;","import React from 'react';\r\nimport {Row, Col} from 'react-bootstrap'\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\n\r\nfunction getProjectSubTitle(projects){\r\n let projectSubTitle = \"\";\r\n for(let i = 0; i < projects.length; i++){\r\n if(i !== projects.length - 1){\r\n const nextProject = `${projects[i].name}, `;\r\n projectSubTitle = projectSubTitle.concat(nextProject);\r\n } else {\r\n projectSubTitle = projectSubTitle.concat(projects[i].name);\r\n }\r\n }\r\n return projectSubTitle;\r\n}\r\n\r\nfunction formatEvidenceData(evidenceData, searchDetails){\r\n let reportRows = [];\r\n \r\n reportRows.push(
    {searchDetails}
    )\r\n \r\n for(let i = 0; i < evidenceData.length; i++){\r\n \r\n let practiceAreaData = evidenceData[i].practiceAreaData;\r\n let projectName = \"\";\r\n if(practiceAreaData.length > 0){\r\n\r\n projectName = evidenceData[i].projectName;\r\n reportRows.push(
    {projectName}
    )\r\n }\r\n\r\n for(let j = 0; j < practiceAreaData.length; j++){\r\n let practiceAreaName = practiceAreaData[j].practiceAreaName;\r\n reportRows.push(
    {practiceAreaName}
    )\r\n\r\n let practiceData = practiceAreaData[j].practiceData;\r\n for(let k = 0; k < practiceData.length; k++){\r\n let practiceName = practiceData[k].practiceName;\r\n reportRows.push(
    {practiceName}
    )\r\n }\r\n reportRows.push(


    );\r\n }\r\n }\r\n \r\n return reportRows;\r\n}\r\n\r\nconst EvidenceSearchView = ({reportType, projects, evidenceData, searchDetails}) => {\r\n const projectSubtitle = getProjectSubTitle(projects);\r\n let reportRows=[];\r\n let emptyProjects = [];\r\n let noDataText = \" - No results found\";\r\n let hasProjectWithNoData = false;\r\n \r\n evidenceData.forEach(d => {\r\n if(d.practiceAreaData.length === 0){\r\n emptyProjects.push(d.projectName);\r\n hasProjectWithNoData = true;\r\n }\r\n });\r\n\r\n const InsertNoDataRow = () =>{\r\n let projectList = emptyProjects.join(',');\r\n let noResults = projectList.concat(noDataText);\r\n\r\n if(hasProjectWithNoData){\r\n return(
    \r\n {\r\n noResults\r\n }\r\n
    )\r\n }\r\n }\r\n\r\n if(evidenceData.length !== 0){ \r\n reportRows = formatEvidenceData(evidenceData, searchDetails); \r\n }\r\n \r\n let dateTime = getCurrentDateTime();\r\n\r\n return (\r\n \r\n \r\n \r\n

    Project(s):

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

    {projectSubtitle}

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

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reportRows} \r\n
    {InsertNoDataRow()}
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\nexport default EvidenceSearchView; ","import React, { useState, useEffect } from 'react';\r\nimport { Button, Spinner, Row, Col, Form, Modal, FormControl } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport { AppraisalRepository } from '../utils/repositories';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport MultiSelectListReportOptions from '../presenters/MultiSelectListReportOptions';\r\nimport EvidenceSearchView from '../presenters/EvidenceSearchView';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { PRACTICES } from '../model/practices';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport NewWindow from 'react-new-window';\r\n\r\nasync function fetchData(setDataLoading, setAppraisalName, projects, practiceAreas) {\r\n setDataLoading(true);\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false, availableForSelection: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n projects.setValue(appraisalData.returnValue.projects.filter(x => x.name !== \"Organizational Roll-up\"));\r\n setAppraisalName(appraisalData.returnValue.name);\r\n const formattedPracticeAreas = modelContentUtils.getPracticeAreasFromAppraisalProjects(appraisalData.returnValue.projects, true, true)\r\n .map(pa => {\r\n return {\r\n ...pa,\r\n selected: false,\r\n availableForSelection: false\r\n }\r\n });\r\n practiceAreas.setValue(formattedPracticeAreas);\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst EvidenceSearchModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [evidenceData, setEvidenceData] = useState({});\r\n const [searchDetails, setSearchDetails] = useState(false);\r\n const [hasProjectSelected, setHasProjectSelected] = useState(\"false\");\r\n const [hasPracticeAreaSelected, setHasPracticeAreaSelected] = useState(\"false\");\r\n const [searchType, setSearchType] = useState(\"fileLocation\");\r\n const [searchPhrase, setSearchPhrase] = useState(\"\");\r\n const projects = useArray([]);\r\n const practiceAreas = useArray([]);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalName, projects, practiceAreas);\r\n getData();\r\n setOptionsVisible(true);\r\n setHasProjectSelected(false);\r\n setHasPracticeAreaSelected(false);\r\n setSearchPhrase(\"\");\r\n setSearchDetails(\"\");\r\n setSearchType(\"workProductName\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const handleProjectSelectionChanged = (event) => {\r\n const allOptions = event.target.options;\r\n let selectedProjectIds = [];\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n let project = projects.getById(currentOption.value);\r\n if (currentOption.selected) {\r\n selectedProjectIds.push(currentOption.value);\r\n }\r\n project.selected = currentOption.selected;\r\n projects.replace(currentOption.value, project);\r\n }\r\n\r\n const selectedProjectPracticeAreaIds = projects.value.filter(p => selectedProjectIds.includes(p.id))\r\n .map(p => p.practiceAreas).flat();\r\n const newPracticeAreas = practiceAreas.value.slice()\r\n .map(pa => {\r\n if (selectedProjectPracticeAreaIds.includes(pa.id)) {\r\n return {\r\n ...pa,\r\n availableForSelection: true\r\n }\r\n } else {\r\n return {\r\n ...pa,\r\n availableForSelection: false,\r\n selected: false\r\n }\r\n }\r\n });\r\n practiceAreas.setValue(newPracticeAreas);\r\n\r\n setHasProjectSelected(projects.value.filter(p => p.selected === true).length > 0 ? true : false);\r\n\r\n let anyPASelected = false;\r\n newPracticeAreas.forEach(d => {\r\n if (d.selected) {\r\n anyPASelected = true;\r\n }\r\n });\r\n setHasPracticeAreaSelected(anyPASelected);\r\n }\r\n\r\n const handlePracticeAreaSelectionChanged = (event) => {\r\n const allOptions = event.target.options;\r\n let selectedPracticeAreaIds = [];\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n if (currentOption.selected) {\r\n selectedPracticeAreaIds.push(currentOption.value);\r\n }\r\n }\r\n const newPracticeAreas = practiceAreas.value.slice()\r\n .map(pa => {\r\n if (selectedPracticeAreaIds.includes(pa.id)) {\r\n return {\r\n ...pa,\r\n selected: true\r\n }\r\n } else {\r\n return {\r\n ...pa,\r\n selected: false\r\n }\r\n }\r\n });\r\n practiceAreas.setValue(newPracticeAreas);\r\n\r\n setHasPracticeAreaSelected(selectedPracticeAreaIds.length > 0 ? true : false);\r\n }\r\n\r\n async function getEvidenceData(currentAppraisalId, selectedProjects, selectedPracticeAreas) {\r\n\r\n let findingsCount = 0;\r\n let allEvidenceData = [];\r\n const apiPath = `${Constants.APPRAISAL_EVIDENCE_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n const currentProject = selectedProjects[i];\r\n\r\n let practiceAreaData = [];\r\n for (let i = 0; i < selectedPracticeAreas.length; i++) {\r\n const practiceAreaName = [selectedPracticeAreas[i].name]\r\n\r\n let practiceData = [];\r\n //get the node ids for each node in the practice area\r\n const practiceNodes = PRACTICE_AREA_RELATIONSHIPS[selectedPracticeAreas[i].id];\r\n for (let i = 0; i < practiceNodes.length; i++) {\r\n\r\n //get the friendly abbreviation for the practice node\r\n const practice = PRACTICES[practiceNodes[i].Id].Abbreviation;\r\n\r\n let match = false;\r\n\r\n data.forEach(d => {\r\n if (d.project_id === currentProject.id && d.node_id === practiceNodes[i].Id) {\r\n \r\n if(searchType === \"fileLocation\"){\r\n if(d.evidence_path.toLowerCase().includes(searchPhrase.toLowerCase())){\r\n match = true;\r\n }\r\n }\r\n else if(searchType === \"workProductName\"){\r\n if(d.evidence_fileName.toLowerCase().includes(searchPhrase.toLowerCase())){\r\n match = true;\r\n }\r\n }\r\n else if(searchType === \"comments\"){\r\n if(d.evidence_notes.toLowerCase().includes(searchPhrase.toLowerCase())){\r\n match = true;\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (match) {\r\n practiceData.push({\r\n practiceName: practice\r\n })\r\n findingsCount++;\r\n }\r\n }\r\n\r\n if (practiceData.length > 0) {\r\n practiceAreaData.push({\r\n practiceAreaName: practiceAreaName,\r\n practiceData\r\n });\r\n }\r\n }\r\n allEvidenceData.push({\r\n projectName: currentProject.name,\r\n practiceAreaData\r\n });\r\n }\r\n\r\n let details = getSearchDetails(findingsCount);\r\n setSearchDetails(details);\r\n\r\n return allEvidenceData;\r\n }\r\n\r\n function getSearchDetails(count){\r\n\r\n let formattedType = \"\";\r\n if(searchType === \"workProductName\"){\r\n formattedType = \"Work Product Name\";\r\n }\r\n else if(searchType === \"fileLocation\"){\r\n formattedType = \"File Location\";\r\n }\r\n else{\r\n formattedType = \"Comments\";\r\n }\r\n\r\n let details = \"Found \" + count + \" \" + formattedType + \" results for \\\"\" + searchPhrase + \"\\\":\";\r\n return details;\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n generateReport();\r\n }\r\n\r\n const handleSubmitWithEnter = async () => {\r\n if(hasProjectSelected && hasPracticeAreaSelected && searchPhrase !== \"\"){\r\n generateReport();\r\n }\r\n }\r\n\r\n const generateReport = async () => {\r\n setReportLoading(true);\r\n\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let selectedProjects = projects.value.filter(p => p.selected === true);\r\n let selectedPracticeAreas = practiceAreas.value.filter(p => p.selected === true);\r\n let evidenceinfo = await getEvidenceData(currentAppraisalId, selectedProjects, selectedPracticeAreas);\r\n setEvidenceData(evidenceinfo);\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n\r\n const handleTypeChanged = (value) => {\r\n setSearchType(value);\r\n }\r\n\r\n const handleSearchPhraseChanged = (value) => {\r\n setSearchPhrase(value);\r\n }\r\n\r\n const handleEnterPress = (e) => {\r\n var code = e.keyCode || e.which;\r\n if(code === 13){\r\n e.preventDefault();\r\n handleSubmitWithEnter();\r\n }\r\n }\r\n\r\n\r\n const projectSelectionDisplayOptions = {\r\n title: \"Projects\",\r\n displayKey: \"name\",\r\n filterAvailable: false\r\n };\r\n\r\n const practiceAreaSelectionDisplayOptions = {\r\n displayKey: \"name\",\r\n filterAvailable: true,\r\n availableKey: \"availableForSelection\",\r\n };\r\n\r\n const viewReportHeader = ``;\r\n const scopeHeader = '';\r\n const appraisalHeader = 'Appraisal:';\r\n const reportName = 'Evidence Search';\r\n\r\n const spacingStyle = {\r\n marginBottom: \"10px\",\r\n marginLeft: \"20%\",\r\n fontSize: \"16px\",\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n };\r\n\r\n const viewReportStyle = {\r\n textAlign: \"right\",\r\n paddingTop: \"0px\",\r\n color: 'black',\r\n marginTop: '16px',\r\n fontSize: '22px'\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"findingsReportModalStyle\">\r\n \r\n \r\n {' '}Evidence Search\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \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 \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n Search By\r\n \r\n \r\n handleTypeChanged(e.target.value)} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n Search Phrase\r\n \r\n \r\n handleSearchPhraseChanged(e.target.value)} \r\n onKeyPress={(e)=>handleEnterPress(e)} >\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n handleGenerateReportClicked(e)}>\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Search Evidence\" : ' Searching...'}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {!optionsVisible &&\r\n \r\n \r\n p.selected === true)}\r\n evidenceData={evidenceData}\r\n searchDetails={searchDetails}\r\n />\r\n \r\n \r\n }\r\n
    \r\n );\r\n}\r\nexport default EvidenceSearchModal;","import React from 'react';\r\nimport {Row, Col, Button} from 'react-bootstrap'\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\n\r\nfunction getProjectSubTitle(projects){\r\n let projectSubTitle = \"\";\r\n for(let i = 0; i < projects.length; i++){\r\n if(i !== projects.length - 1){\r\n const nextProject = `${projects[i].name}, `;\r\n projectSubTitle = projectSubTitle.concat(nextProject);\r\n } else {\r\n projectSubTitle = projectSubTitle.concat(projects[i].name);\r\n }\r\n }\r\n return projectSubTitle;\r\n}\r\n\r\nlet csvData = [];\r\nfunction formatEvidenceData(evidenceData, includeComments, includePath){\r\n let reportRows = [];\r\n if(includeComments && includePath){\r\n csvData.push([\"Project\", \"Practice Area\", \"Practice\", \"Work Product Name\", \"Path\", \"Comments\"]);\r\n }\r\n else if(includeComments){\r\n csvData.push([\"Project\", \"Practice Area\", \"Practice\", \"Work Product Name\", \"Comments\"]);\r\n }\r\n else if(includePath){\r\n csvData.push([\"Project\", \"Practice Area\", \"Practice\", \"Work Product Name\", \"Path\"]);\r\n }\r\n else{\r\n csvData.push([\"Project\", \"Practice Area\", \"Practice\", \"Work Product Name\"]);\r\n }\r\n \r\n for(let i = 0; i < evidenceData.length; i++){\r\n \r\n let practiceAreaData = evidenceData[i].practiceAreaData;\r\n let projectName = \"\";\r\n if(practiceAreaData.length > 0){\r\n\r\n projectName = evidenceData[i].projectName;\r\n reportRows.push(
    {projectName}
    )\r\n }\r\n\r\n for(let j = 0; j < practiceAreaData.length; j++){\r\n let practiceAreaName = practiceAreaData[j].practiceAreaName;\r\n reportRows.push(
    {practiceAreaName}
    )\r\n\r\n let practiceData = practiceAreaData[j].practiceData;\r\n for(let k = 0; k < practiceData.length; k++){\r\n let practiceName = practiceData[k].practiceName;\r\n let statement = practiceData[k].statement;\r\n reportRows.push(
    {practiceName}: {statement}
    )\r\n\r\n let practiceEvidence = practiceData[k].evidence;\r\n reportRows.push(\r\n
    \r\n \r\n Work Product Name\r\n { includePath && \r\n Path\r\n }\r\n { includeComments && \r\n Comments\r\n }\r\n \r\n
    \r\n )\r\n for(let l = 0; l < practiceEvidence.length; l++){\r\n reportRows.push(\r\n
    \r\n \r\n {practiceEvidence[l].fileName}\r\n { includePath && \r\n {practiceEvidence[l].path}\r\n }\r\n { includeComments && \r\n {practiceEvidence[l].notes}\r\n }\r\n \r\n
    \r\n
    \r\n )\r\n\r\n //add data to CSV output\r\n if(includeComments && includePath){\r\n csvData.push([projectName, practiceAreaName, practiceName, practiceEvidence[l].fileName, practiceEvidence[l].path, practiceEvidence[l].notes]);\r\n }\r\n else if(includeComments){\r\n csvData.push([projectName, practiceAreaName, practiceName, practiceEvidence[l].fileName, practiceEvidence[l].notes]);\r\n }\r\n else if(includePath){\r\n csvData.push([projectName, practiceAreaName, practiceName, practiceEvidence[l].fileName, practiceEvidence[l].path]);\r\n }\r\n else{\r\n csvData.push([projectName, practiceAreaName, practiceName, practiceEvidence[l].fileName]);\r\n }\r\n }\r\n reportRows.push(


    );\r\n }\r\n }\r\n }\r\n \r\n return reportRows;\r\n}\r\n\r\nconst EvidenceMappingsReportView = ({reportType, projects, evidenceData, includeComments, includePath}) => {\r\n const projectSubtitle = getProjectSubTitle(projects);\r\n let reportRows=[];\r\n let emptyProjects = [];\r\n let noDataText = \" - No results found\";\r\n let hasProjectWithNoData = false;\r\n \r\n evidenceData.forEach(d => {\r\n if(d.practiceAreaData.length === 0){\r\n emptyProjects.push(d.projectName);\r\n hasProjectWithNoData = true;\r\n }\r\n });\r\n\r\n const InsertNoDataRow = () =>{\r\n let projectList = emptyProjects.join(',');\r\n let noResults = projectList.concat(noDataText);\r\n\r\n if(hasProjectWithNoData){\r\n return(
    \r\n {\r\n noResults\r\n }\r\n
    )\r\n }\r\n }\r\n\r\n if(evidenceData.length !== 0){ \r\n reportRows = formatEvidenceData(evidenceData, includeComments, includePath); \r\n }\r\n \r\n let dateTime = getCurrentDateTime();\r\n\r\n return (\r\n \r\n \r\n \r\n

    Created for Project(s):

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

    {projectSubtitle}

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

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reportRows} \r\n
    {InsertNoDataRow()}
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\nexport default EvidenceMappingsReportView; ","import React, { useState, useEffect } from 'react';\r\nimport { Button, Spinner, Row, Col, Form, Modal } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport { AppraisalRepository } from '../utils/repositories';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport MultiSelectListReportOptions from '../presenters/MultiSelectListReportOptions';\r\nimport EvidenceMappingsReportView from '../presenters/EvidenceMappingsReportView';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { PRACTICES } from '../model/practices';\r\nimport { Constants, getDefaultAPIHeaders, getCurrentDateTime } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport NewWindow from 'react-new-window';\r\nimport { CSVLink } from \"react-csv\";\r\n\r\nasync function fetchData(setDataLoading, setAppraisalName, projects, practiceAreas) {\r\n setDataLoading(true);\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false, availableForSelection: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n projects.setValue(appraisalData.returnValue.projects.filter(x => x.name !== \"Organizational Roll-up\"));\r\n setAppraisalName(appraisalData.returnValue.name);\r\n const formattedPracticeAreas = modelContentUtils.getPracticeAreasFromAppraisalProjects(appraisalData.returnValue.projects, true, true)\r\n .map(pa => {\r\n return {\r\n ...pa,\r\n selected: false,\r\n availableForSelection: false\r\n }\r\n });\r\n practiceAreas.setValue(formattedPracticeAreas);\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst EvidenceMappingsReportModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [csvLoading, setCSVLoading] = useState(false);\r\n const [showCSV, setShowCSV] = useState(false);\r\n const [evidenceData, setEvidenceData] = useState({});\r\n const [csvData, setCSVData] = useState({});\r\n const [csvFilename, setCSVFilename] = useState({});\r\n const [includeOnlyValidEvidence, setIncludeOnlyValidEvidence] = useState(false);\r\n const [includeOnlyProcesses, setIncludeOnlyProcesses] = useState(false);\r\n const [includePath, setIncludePath] = useState(false);\r\n const [includeComments, setIncludeComments] = useState(false);\r\n const [hasProjectSelected, setHasProjectSelected] = useState(\"false\");\r\n const [hasPracticeAreaSelected, setHasPracticeAreaSelected] = useState(\"false\");\r\n const projects = useArray([]);\r\n const practiceAreas = useArray([]);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalName, projects, practiceAreas);\r\n getData();\r\n setShowCSV(false);\r\n setOptionsVisible(true);\r\n setIncludeOnlyValidEvidence(false);\r\n setIncludeOnlyProcesses(false);\r\n setIncludePath(false);\r\n setIncludeComments(false);\r\n setHasProjectSelected(false);\r\n setHasPracticeAreaSelected(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const handleProjectSelectionChanged = (event) => {\r\n const allOptions = event.target.options;\r\n let selectedProjectIds = [];\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n let project = projects.getById(currentOption.value);\r\n if (currentOption.selected) {\r\n selectedProjectIds.push(currentOption.value);\r\n }\r\n project.selected = currentOption.selected;\r\n projects.replace(currentOption.value, project);\r\n }\r\n\r\n const selectedProjectPracticeAreaIds = projects.value.filter(p => selectedProjectIds.includes(p.id))\r\n .map(p => p.practiceAreas).flat();\r\n const newPracticeAreas = practiceAreas.value.slice()\r\n .map(pa => {\r\n if (selectedProjectPracticeAreaIds.includes(pa.id)) {\r\n return {\r\n ...pa,\r\n availableForSelection: true\r\n }\r\n } else {\r\n return {\r\n ...pa,\r\n availableForSelection: false,\r\n selected: false\r\n }\r\n }\r\n });\r\n practiceAreas.setValue(newPracticeAreas);\r\n\r\n setHasProjectSelected(projects.value.filter(p => p.selected === true).length > 0 ? true : false);\r\n\r\n let anyPASelected = false;\r\n newPracticeAreas.forEach(d => {\r\n if (d.selected) {\r\n anyPASelected = true;\r\n }\r\n });\r\n setHasPracticeAreaSelected(anyPASelected);\r\n setShowCSV(false);\r\n }\r\n\r\n const handlePracticeAreaSelectionChanged = (event) => {\r\n const allOptions = event.target.options;\r\n let selectedPracticeAreaIds = [];\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n if (currentOption.selected) {\r\n selectedPracticeAreaIds.push(currentOption.value);\r\n }\r\n }\r\n const newPracticeAreas = practiceAreas.value.slice()\r\n .map(pa => {\r\n if (selectedPracticeAreaIds.includes(pa.id)) {\r\n return {\r\n ...pa,\r\n selected: true\r\n }\r\n } else {\r\n return {\r\n ...pa,\r\n selected: false\r\n }\r\n }\r\n });\r\n practiceAreas.setValue(newPracticeAreas);\r\n\r\n setHasPracticeAreaSelected(selectedPracticeAreaIds.length > 0 ? true : false);\r\n setShowCSV(false);\r\n }\r\n\r\n const onlyValidCheckBoxChanged = () => {\r\n setIncludeOnlyValidEvidence(!includeOnlyValidEvidence);\r\n setShowCSV(false);\r\n }\r\n\r\n const onlyProcessesCheckBoxChanged = () => {\r\n setIncludeOnlyProcesses(!includeOnlyProcesses);\r\n setShowCSV(false);\r\n }\r\n\r\n const pathCheckBoxChanged = () => {\r\n setIncludePath(!includePath);\r\n setShowCSV(false);\r\n }\r\n\r\n const commentsCheckBoxChanged = () => {\r\n setIncludeComments(!includeComments);\r\n setShowCSV(false);\r\n }\r\n\r\n async function getEvidenceData(currentAppraisalId, selectedProjects, selectedPracticeAreas) {\r\n\r\n let allEvidenceData = [];\r\n const apiPath = `${Constants.APPRAISAL_EVIDENCE_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n const currentProject = selectedProjects[i];\r\n\r\n let practiceAreaData = [];\r\n for (let i = 0; i < selectedPracticeAreas.length; i++) {\r\n const practiceAreaName = [selectedPracticeAreas[i].name]\r\n\r\n let practiceData = [];\r\n //get the node ids for each node in the practice area\r\n const practiceNodes = PRACTICE_AREA_RELATIONSHIPS[selectedPracticeAreas[i].id];\r\n for (let i = 0; i < practiceNodes.length; i++) {\r\n\r\n //get the friendly abbreviation for the practice node\r\n const practice = PRACTICES[practiceNodes[i].Id].Abbreviation;\r\n let practiceStatement = PRACTICES[practiceNodes[i].Id].Statement;\r\n\r\n let practiceEvidence = [];\r\n data.forEach(d => {\r\n if (d.project_id === currentProject.id && d.node_id === practiceNodes[i].Id) {\r\n \r\n if(includeOnlyProcesses && (!d.evidence_state[0] || d.evidence_state[2] !== \"P\")){\r\n //skip this entry if include processes is checked and it is not a process.\r\n }\r\n else{\r\n if(includeOnlyValidEvidence){\r\n if(d.evidence_state[0] && d.evidence_state[0] === \"V\"){\r\n practiceEvidence.push({\r\n fileName: d.evidence_fileName,\r\n path: d.evidence_path,\r\n notes: d.evidence_notes\r\n })\r\n }\r\n }\r\n else{\r\n practiceEvidence.push({\r\n fileName: d.evidence_fileName,\r\n path: d.evidence_path,\r\n notes: d.evidence_notes\r\n })\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (practiceEvidence.length > 0) {\r\n practiceData.push({\r\n practiceName: practice,\r\n statement: practiceStatement,\r\n evidence: practiceEvidence\r\n })\r\n }\r\n }\r\n if (practiceData.length > 0) {\r\n practiceAreaData.push({\r\n practiceAreaName: practiceAreaName,\r\n practiceData\r\n });\r\n }\r\n }\r\n allEvidenceData.push({\r\n projectName: currentProject.name,\r\n practiceAreaData\r\n });\r\n }\r\n\r\n return allEvidenceData;\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let selectedProjects = projects.value.filter(p => p.selected === true);\r\n let selectedPracticeAreas = practiceAreas.value.filter(p => p.selected === true);\r\n let evidenceinfo = await getEvidenceData(currentAppraisalId, selectedProjects, selectedPracticeAreas);\r\n setEvidenceData(evidenceinfo);\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n const handleGenerateCSVClicked = async (event) => {\r\n setCSVLoading(true);\r\n\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let selectedProjects = projects.value.filter(p => p.selected === true);\r\n let selectedPracticeAreas = practiceAreas.value.filter(p => p.selected === true);\r\n let evidenceinfo = await getEvidenceData(currentAppraisalId, selectedProjects, selectedPracticeAreas);\r\n\r\n let csvData = formatCSVData(evidenceinfo);\r\n setCSVData(csvData);\r\n\r\n setCSVLoading(false);\r\n setShowCSV(true);\r\n }\r\n\r\n function formatCSVData(evidenceInfo) {\r\n let csvData = [];\r\n if (includeComments && includePath) {\r\n csvData.push([\"Project\", \"Practice Area\", \"Practice\", \"Practice Statement\", \"Work Product Name\", \"Path\", \"Comments\"]);\r\n }\r\n else if (includeComments) {\r\n csvData.push([\"Project\", \"Practice Area\", \"Practice\", \"Practice Statement\", \"Work Product Name\", \"Comments\"]);\r\n }\r\n else if (includePath) {\r\n csvData.push([\"Project\", \"Practice Area\", \"Practice\", \"Practice Statement\", \"Work Product Name\", \"Path\"]);\r\n }\r\n else {\r\n csvData.push([\"Project\", \"Practice Area\", \"Practice\", \"Practice Statement\", \"Work Product Name\"]);\r\n }\r\n\r\n for (let i = 0; i < evidenceInfo.length; i++) {\r\n\r\n let practiceAreaData = evidenceInfo[i].practiceAreaData;\r\n let projectName = \"\";\r\n if (practiceAreaData.length > 0) {\r\n projectName = evidenceInfo[i].projectName;\r\n }\r\n\r\n for (let j = 0; j < practiceAreaData.length; j++) {\r\n let practiceAreaName = practiceAreaData[j].practiceAreaName;\r\n let practiceData = practiceAreaData[j].practiceData;\r\n for (let k = 0; k < practiceData.length; k++) {\r\n let practiceName = practiceData[k].practiceName;\r\n let statement = practiceData[k].statement;\r\n let practiceEvidence = practiceData[k].evidence;\r\n for (let l = 0; l < practiceEvidence.length; l++) {\r\n //add data to CSV output\r\n if (includeComments && includePath) {\r\n csvData.push([projectName, practiceAreaName, practiceName, statement, practiceEvidence[l].fileName, practiceEvidence[l].path, practiceEvidence[l].notes]);\r\n }\r\n else if (includeComments) {\r\n csvData.push([projectName, practiceAreaName, practiceName, statement, practiceEvidence[l].fileName, practiceEvidence[l].notes]);\r\n }\r\n else if (includePath) {\r\n csvData.push([projectName, practiceAreaName, practiceName, statement, practiceEvidence[l].fileName, practiceEvidence[l].path]);\r\n }\r\n else {\r\n csvData.push([projectName, practiceAreaName, practiceName, statement, practiceEvidence[l].fileName]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setCSVFilename(\"evidenceReport_\" + getCurrentDateTime() + \".csv\");\r\n return csvData;\r\n }\r\n\r\n const projectSelectionDisplayOptions = {\r\n title: \"Projects\",\r\n displayKey: \"name\",\r\n filterAvailable: false\r\n };\r\n\r\n const practiceAreaSelectionDisplayOptions = {\r\n title: \"Practice Areas\",\r\n displayKey: \"name\",\r\n filterAvailable: true,\r\n availableKey: \"availableForSelection\",\r\n size: 25\r\n };\r\n\r\n const viewReportHeader = ``;\r\n const scopeHeader = '';\r\n const appraisalHeader = 'Appraisal:';\r\n const reportName = 'Evidence Mappings Report';\r\n\r\n const spacingStyle = {\r\n marginBottom: \"10px\",\r\n marginLeft: \"20%\",\r\n fontSize: \"16px\",\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n };\r\n\r\n const viewReportStyle = {\r\n textAlign: \"right\",\r\n paddingTop: \"0px\",\r\n color: 'black',\r\n marginTop: '16px',\r\n fontSize: '22px'\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"findingsReportModalStyle\">\r\n \r\n \r\n {' '}Evidence Mappings Report\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \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 \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleGenerateReportClicked(e)}>\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Evidence Mappings Report\" : ' Generating Report...'}\r\n \r\n {!showCSV &&\r\n handleGenerateCSVClicked(e)}>\r\n {csvLoading &&\r\n }\r\n {!csvLoading ? \"Generate Evidence Mappings CSV\" : ' Generating CSV...'}\r\n \r\n }\r\n {showCSV &&\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {!optionsVisible &&\r\n \r\n \r\n p.selected === true)}\r\n evidenceData={evidenceData}\r\n includeComments={includeComments}\r\n includePath={includePath}\r\n />\r\n \r\n \r\n }\r\n
    \r\n );\r\n}\r\nexport default EvidenceMappingsReportModal;","import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap'\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\n\r\nfunction generateSessionQuestionReport(reportData, addBlankLines, addEvidence) {\r\n let reportRows = [];\r\n let questionNumber = 1;\r\n for (let i = 0; i < reportData.length; i++) {\r\n reportRows.push(
    {reportData[i].session} - {reportData[i].hours} hour(s) - {reportData[i].questionCount} Question(s)
    );\r\n let paData = reportData[i].practiceAreaData;\r\n\r\n for (let j = 0; j < paData.length; j++) {\r\n reportRows.push(
    {paData[j].practiceAreaName}
    );\r\n let practiceData = paData[j].practiceData;\r\n for (let k = 0; k < practiceData.length; k++) {\r\n reportRows.push(
    {practiceData[k].practiceName}: {practiceData[k].statement}
    );\r\n let questionData = practiceData[k].questionData;\r\n let formattedQuestionData = [];\r\n for (let l = 0; l < questionData.length; l++) {\r\n let existingQuestion = formattedQuestionData.filter(x => x.question.toLowerCase().trim() === questionData[l].question.toLowerCase().trim())[0];\r\n if (existingQuestion) {\r\n existingQuestion.projects.push(questionData[l].projectName)\r\n }\r\n else {\r\n let question = questionData[l].question;\r\n let projects = [];\r\n projects.push(questionData[l].projectName);\r\n formattedQuestionData.push({\r\n question,\r\n projects\r\n })\r\n }\r\n }\r\n for (let l = 0; l < formattedQuestionData.length; l++) {\r\n reportRows.push(
    Q {questionNumber}: {formattedQuestionData[l].question}
    );\r\n reportRows.push(
    Project: {formattedQuestionData[l].projects.sort().join(', ')}
    );\r\n reportRows.push(


    );\r\n if (addBlankLines) {\r\n reportRows.push(












    );\r\n }\r\n questionNumber++;\r\n }\r\n if (addEvidence) {\r\n let evidenceData = practiceData[k].evidenceData;\r\n reportRows.push(


    );\r\n reportRows.push(
    Evidence
    );\r\n if (evidenceData.length > 0) {\r\n reportRows.push(\r\n \r\n Project\r\n Work Product Name\r\n Comments\r\n )\r\n for (let l = 0; l < evidenceData.length; l++) {\r\n reportRows.push(\r\n \r\n {evidenceData[l].projectName}\r\n {evidenceData[l].fileName}\r\n {evidenceData[l].notes}\r\n )\r\n }\r\n }\r\n else {\r\n reportRows.push(
    No evidence found.
    );\r\n }\r\n }\r\n //space between practices\r\n reportRows.push(




    );\r\n }\r\n //space between PAs\r\n reportRows.push(




    );\r\n }\r\n }\r\n return reportRows;\r\n}\r\n\r\nfunction generatePracticeAreaQuestionReport(reportData, addBlankLines, addEvidence) {\r\n let reportRows = [];\r\n let questionNumber = 1;\r\n\r\n for (let i = 0; i < reportData.length; i++) {\r\n reportRows.push(
    {reportData[i].practiceAreaName}
    );\r\n let practiceData = reportData[i].practiceData;\r\n for (let j = 0; j < practiceData.length; j++) {\r\n reportRows.push(
    {practiceData[j].practiceName}: {practiceData[j].statement}
    );\r\n let questionData = practiceData[j].questionData;\r\n let formattedQuestionData = [];\r\n for (let k = 0; k < questionData.length; k++) {\r\n let existingQuestion = formattedQuestionData.filter(x => x.question.toLowerCase().trim() === questionData[k].question.toLowerCase().trim()\r\n && x.sessionNames === questionData[k].sessionNames)[0];\r\n if (existingQuestion) {\r\n existingQuestion.projects.push(questionData[k].projectName)\r\n }\r\n else {\r\n let question = questionData[k].question;\r\n let sessionNames = questionData[k].sessionNames;\r\n let projects = [];\r\n projects.push(questionData[k].projectName);\r\n formattedQuestionData.push({\r\n question,\r\n sessionNames,\r\n projects\r\n })\r\n }\r\n }\r\n for (let k = 0; k < formattedQuestionData.length; k++) {\r\n reportRows.push(
    Q {questionNumber}: {formattedQuestionData[k].question}
    );\r\n reportRows.push(
    Session(s): {formattedQuestionData[k].sessionNames}
    );\r\n reportRows.push(
    Project: {formattedQuestionData[k].projects.sort().join(', ')}
    );\r\n reportRows.push(


    );\r\n if (addBlankLines) {\r\n reportRows.push(












    );\r\n }\r\n questionNumber++;\r\n }\r\n if (addEvidence) {\r\n let evidenceData = practiceData[j].evidenceData;\r\n reportRows.push(


    );\r\n reportRows.push(
    Evidence
    );\r\n if (evidenceData.length > 0) {\r\n reportRows.push(\r\n \r\n Project\r\n Work Product Name\r\n Comments\r\n )\r\n for (let l = 0; l < evidenceData.length; l++) {\r\n reportRows.push(\r\n \r\n {evidenceData[l].projectName}\r\n {evidenceData[l].fileName}\r\n {evidenceData[l].notes}\r\n )\r\n }\r\n }\r\n else {\r\n reportRows.push(
    No evidence found.
    );\r\n }\r\n //space between practices\r\n reportRows.push(




    );\r\n }\r\n //space between PAs\r\n reportRows.push(




    );\r\n }\r\n }\r\n return reportRows;\r\n}\r\n\r\nconst QuestionsReportView = ({ filterType, addBlankLines, addEvidence, reportData }) => {\r\n let reportRows = [];\r\n\r\n if (filterType === \"session\") {\r\n reportRows = generateSessionQuestionReport(reportData, addBlankLines, addEvidence);\r\n }\r\n else {\r\n reportRows = generatePracticeAreaQuestionReport(reportData, addBlankLines, addEvidence);\r\n }\r\n\r\n let dateTime = getCurrentDateTime();\r\n return (\r\n \r\n \r\n \r\n

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reportRows}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\nexport default QuestionsReportView; ","import React, { useState, useEffect } from 'react';\r\nimport { Button, Spinner, Row, Col, Form, FormControl, Modal } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport { AppraisalRepository } from '../utils/repositories';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport MultiSelectListReportOptions from '../presenters/MultiSelectListReportOptions';\r\nimport QuestionsReportView from '../presenters/QuestionsReportView';\r\nimport { PRACTICE_AREAS } from '../model/practiceareas';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { PRACTICES } from '../model/practices';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport NewWindow from 'react-new-window';\r\n\r\nasync function fetchData(setDataLoading, setAppraisalName, setPracticeAreas, setProjects, setInterviewSessionData, setInterviewQuestionData, switchOptions) {\r\n setDataLoading(true);\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false, availableForSelection: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n setAppraisalName(appraisalData.returnValue.name);\r\n setProjects(appraisalData.returnValue.projects.filter(x => x.name !== \"Organizational Roll-up\"));\r\n setPracticeAreas(modelContentUtils.getPracticeAreasFromAppraisalProjects(appraisalData.returnValue.projects, true, true));\r\n\r\n let interviewSessionData = await getInterviewSessionData(currentAppraisalId);\r\n setInterviewSessionData(interviewSessionData);\r\n\r\n let interviewQuestionData = await getInterviewQuestionData(currentAppraisalId);\r\n setInterviewQuestionData(interviewQuestionData);\r\n\r\n switchOptions(interviewSessionData);\r\n\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n setDataLoading(false);\r\n}\r\n\r\nasync function getInterviewQuestionData(currentAppraisalId) {\r\n\r\n let interviews = [];\r\n const interviewsData = await API.get(Constants.API_PATH, `${Constants.INTERVIEW_QUESTIONS_PATH}/${currentAppraisalId}`, await getDefaultAPIHeaders());\r\n interviewsData.forEach(is => {\r\n interviews.push({\r\n id: is.interview_question_id,\r\n nodeId: is.node_id,\r\n projectId: is.project_id,\r\n question: is.question,\r\n sessions: is.sessions\r\n });\r\n });\r\n\r\n return interviews;\r\n}\r\n\r\nasync function getInterviewSessionData(currentAppraisalId) {\r\n\r\n let interviewSessions = [];\r\n const interviewSessionData = await API.get(Constants.API_PATH, `${Constants.INTERVIEW_PATH}/${currentAppraisalId}`, await getDefaultAPIHeaders());\r\n interviewSessionData.forEach(is => {\r\n interviewSessions.push({\r\n id: is.interview_session_id,\r\n hours: is.hours,\r\n interviewee: is.interviewee\r\n });\r\n });\r\n return interviewSessions;\r\n}\r\n\r\nconst InterviewQuestionsReportModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [interviewSessionData, setInterviewSessionData] = useState({});\r\n const [interviewQuestionData, setInterviewQuestionData] = useState({});\r\n const [practiceAreas, setPracticeAreas] = useState({});\r\n const [projects, setProjects] = useState({});\r\n const [filterValue, setFilterValue] = useState(\"session\");\r\n const [reportData, setReportData] = useState({});\r\n const [filterSelectionLabel, setFilterSelectionLabel] = useState(\"Interview Session\");\r\n const [hasOptionSelected, setHasOptionSelected] = useState(\"false\");\r\n const [addBlankLines, setAddBlankLines] = useState(false);\r\n const [addEvidence, setAddEvidence] = useState(false);\r\n const options = useArray([]);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalName, setPracticeAreas, setProjects, setInterviewSessionData, setInterviewQuestionData, switchOptions);\r\n getData();\r\n setAddBlankLines(false);\r\n setAddEvidence(false);\r\n setHasOptionSelected(false);\r\n setOptionsVisible(true);\r\n setFilterSelectionLabel(\"Interview Session\");\r\n setFilterValue(\"session\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n\r\n function switchOptions(data) {\r\n const formattedOptions = data\r\n .map(option => {\r\n return {\r\n ...option,\r\n selected: false,\r\n availableForSelection: true\r\n }\r\n });\r\n options.setValue(formattedOptions);\r\n }\r\n\r\n const handleOptionsChanged = (event) => {\r\n const allOptions = event.target.options;\r\n let selectedOptions = [];\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n if (currentOption.selected) {\r\n selectedOptions.push(currentOption.value);\r\n }\r\n }\r\n const newOptions = options.value.slice()\r\n .map(pa => {\r\n if (selectedOptions.includes(pa.id)) {\r\n return {\r\n ...pa,\r\n selected: true\r\n }\r\n } else {\r\n return {\r\n ...pa,\r\n selected: false\r\n }\r\n }\r\n });\r\n options.setValue(newOptions);\r\n\r\n setHasOptionSelected(selectedOptions.length > 0 ? true : false);\r\n }\r\n\r\n function getInterviewQuestionsBySession(sessionId) {\r\n let questions = [];\r\n for (let i = 0; i < interviewQuestionData.length; i++) {\r\n for (let j = 0; j < interviewQuestionData[i].sessions.length; j++) {\r\n let session = interviewQuestionData[i].sessions[j];\r\n if (session === sessionId) {\r\n questions.push(interviewQuestionData[i]);\r\n }\r\n }\r\n }\r\n return questions;\r\n }\r\n\r\n function getInterviewQuestionsByNode(nodeId) {\r\n let questions = [];\r\n for (let i = 0; i < interviewQuestionData.length; i++) {\r\n if (interviewQuestionData[i].nodeId === nodeId) {\r\n questions.push(interviewQuestionData[i]);\r\n }\r\n }\r\n return questions;\r\n }\r\n\r\n function getSessionNamesFromQuestion(interviewQuestionData) {\r\n let sessionNames = [];\r\n for (let i = 0; i < interviewQuestionData.sessions.length; i++) {\r\n for (let j = 0; j < interviewSessionData.length; j++) {\r\n if (interviewQuestionData.sessions[i] === interviewSessionData[j].id) {\r\n sessionNames.push(interviewSessionData[j].interviewee);\r\n }\r\n }\r\n }\r\n return sessionNames.join(', ');\r\n }\r\n\r\n function getSessionQuestionReportData(interviewSessions, evidence) {\r\n\r\n let reportEntries = [];\r\n\r\n for (let i = 0; i < interviewSessions.length; i++) {\r\n let session = interviewSessions[i].interviewee;\r\n let hours = interviewSessions[i].hours;\r\n let currentQuestions = getInterviewQuestionsBySession(interviewSessions[i].id);\r\n let questionCount = currentQuestions.length;\r\n\r\n let practiceAreaData = [];\r\n for (let j = 0; j < practiceAreas.length; j++) {\r\n const practiceNodes = PRACTICE_AREA_RELATIONSHIPS[practiceAreas[j].id];\r\n let practiceAreaName = practiceAreas[j].name;\r\n\r\n let practiceData = [];\r\n for (let k = 0; k < practiceNodes.length; k++) {\r\n let practiceName = PRACTICES[practiceNodes[k].Id].Abbreviation;\r\n let statement = PRACTICES[practiceNodes[k].Id].Statement;\r\n\r\n let questionData = [];\r\n for (let l = 0; l < currentQuestions.length; l++) {\r\n if (currentQuestions[l].nodeId === practiceNodes[k].Id) {\r\n let projectName = getProjectName(currentQuestions[l].projectId)\r\n let question = currentQuestions[l].question;\r\n questionData.push({\r\n question,\r\n projectName\r\n });\r\n }\r\n }\r\n\r\n let evidenceData = [];\r\n if (addEvidence) {\r\n for (let l = 0; l < evidence.length; l++) {\r\n if (evidence[l].node_id === practiceNodes[k].Id) {\r\n let projectName = getProjectName(evidence[l].project_id);\r\n let fileName = evidence[l].evidence_fileName;\r\n let notes = evidence[l].evidence_notes;\r\n evidenceData.push({\r\n projectName,\r\n fileName,\r\n notes\r\n });\r\n }\r\n }\r\n }\r\n if (questionData.length > 0) {\r\n practiceData.push({\r\n practiceName,\r\n statement,\r\n questionData,\r\n evidenceData\r\n });\r\n }\r\n }\r\n if (practiceData.length > 0) {\r\n practiceAreaData.push({\r\n practiceAreaName,\r\n practiceData\r\n });\r\n }\r\n }\r\n if (practiceAreaData.length > 0) {\r\n reportEntries.push({\r\n session,\r\n hours,\r\n questionCount,\r\n practiceAreaData\r\n });\r\n }\r\n }\r\n return reportEntries;\r\n }\r\n\r\n function getPracticeAreaQuestionReportData(practiceAreas, evidence) {\r\n let reportEntries = [];\r\n\r\n for (let i = 0; i < practiceAreas.length; i++) {\r\n let practiceAreaName = PRACTICE_AREAS[practiceAreas[i].id].Name;\r\n const practiceNodes = PRACTICE_AREA_RELATIONSHIPS[practiceAreas[i].id];\r\n\r\n let practiceData = [];\r\n for (let j = 0; j < practiceNodes.length; j++) {\r\n let practiceName = PRACTICES[practiceNodes[j].Id].Abbreviation;\r\n let statement = PRACTICES[practiceNodes[j].Id].Statement;\r\n\r\n let questionData = [];\r\n let currentQuestions = getInterviewQuestionsByNode(practiceNodes[j].Id);\r\n for (let k = 0; k < currentQuestions.length; k++) {\r\n let projectName = getProjectName(currentQuestions[k].projectId)\r\n let question = currentQuestions[k].question;\r\n let sessionNames = getSessionNamesFromQuestion(currentQuestions[k])\r\n questionData.push({\r\n question,\r\n projectName,\r\n sessionNames\r\n });\r\n }\r\n let evidenceData = [];\r\n if (addEvidence) {\r\n for (let l = 0; l < evidence.length; l++) {\r\n if (evidence[l].node_id === practiceNodes[j].Id) {\r\n let projectName = getProjectName(evidence[l].project_id);\r\n let fileName = evidence[l].evidence_fileName;\r\n let notes = evidence[l].evidence_notes;\r\n evidenceData.push({\r\n projectName,\r\n fileName,\r\n notes\r\n });\r\n }\r\n }\r\n }\r\n if (questionData.length > 0) {\r\n practiceData.push({\r\n practiceName,\r\n statement,\r\n questionData,\r\n evidenceData\r\n });\r\n }\r\n }\r\n if (practiceData.length > 0) {\r\n reportEntries.push({\r\n practiceAreaName,\r\n practiceData\r\n });\r\n }\r\n }\r\n\r\n return reportEntries;\r\n }\r\n\r\n async function getAppraisalEvidence(currentAppraisalId) {\r\n const apiPath = `${Constants.APPRAISAL_EVIDENCE_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n return data;\r\n }\r\n\r\n function getProjectName(id) {\r\n let project = projects.filter(x => x.id === id)[0];\r\n if (project) {\r\n return project.name;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let selectedOptions = options.value.filter(p => p.selected === true);\r\n\r\n let questionReportData = [];\r\n let evidenceData = [];\r\n if (addEvidence) {\r\n evidenceData = await getAppraisalEvidence(currentAppraisalId);\r\n }\r\n\r\n if (filterValue === 'session') {\r\n questionReportData = getSessionQuestionReportData(selectedOptions, evidenceData);\r\n }\r\n else {\r\n questionReportData = getPracticeAreaQuestionReportData(selectedOptions, evidenceData);\r\n }\r\n\r\n setReportData(questionReportData);\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n const handleFilterChanged = (value) => {\r\n setFilterValue(value);\r\n\r\n if (value === 'session') {\r\n setFilterSelectionLabel('Interview Session');\r\n switchOptions(interviewSessionData);\r\n }\r\n else {\r\n setFilterSelectionLabel('Practice Area');\r\n switchOptions(practiceAreas);\r\n }\r\n }\r\n\r\n const blankLinesCheckBoxChanged = () => {\r\n setAddBlankLines(!addBlankLines);\r\n }\r\n\r\n const evidenceCheckBoxChanged = () => {\r\n setAddEvidence(!addEvidence);\r\n }\r\n\r\n function getDisplayKey() {\r\n if (filterValue === 'session') {\r\n return 'interviewee';\r\n }\r\n else {\r\n return 'name';\r\n }\r\n }\r\n\r\n const optionSelectionDisplayOptions = {\r\n title: \"Options\",\r\n displayKey: getDisplayKey(),\r\n filterAvailable: true,\r\n availableKey: \"availableForSelection\",\r\n size: 25\r\n };\r\n\r\n const viewReportHeader = `Filter Type:`;\r\n const appraisalHeader = 'Appraisal:';\r\n const reportName = 'Interview Questions Report';\r\n\r\n const viewReportTitle = () => {\r\n let type = filterValue === 'session' ? 'Interview Session' : 'Practice Area';\r\n return type;\r\n }\r\n\r\n const viewReportStyle = {\r\n textAlign: \"right\",\r\n paddingTop: \"0px\",\r\n color: 'black',\r\n marginTop: '16px',\r\n fontSize: '22px'\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"findingsReportModalStyle\">\r\n \r\n \r\n {' '}Interview Questions Report\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Filter By\r\n \r\n \r\n handleFilterChanged(e.target.value)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {filterSelectionLabel}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleGenerateReportClicked(e)}>\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Interview Questions Report\" : ' Generating Report...'}\r\n {' '}\r\n \r\n
    \r\n
    \r\n
    \r\n {!optionsVisible &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n );\r\n}\r\nexport default InterviewQuestionsReportModal;","import React from 'react';\r\nimport {Row, Col} from 'react-bootstrap'\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\n\r\nfunction formatInterviewData(interviewData, interviewSessionData){\r\n let reportRows = []\r\n\r\n //each potential interview session that exists for the appraisal\r\n for(let i = 0; i < interviewSessionData.length; i++){\r\n\r\n let currentQuestionCount = 0;\r\n\r\n //check each interview entry for a matching session\r\n for(let j = 0; j < interviewData.length; j++){\r\n if(interviewData[j].sessions.filter(x => x === interviewSessionData[i].id).length > 0){\r\n currentQuestionCount++;\r\n }\r\n }\r\n let maxQuestions = interviewSessionData[i].hours*60/2;\r\n\r\n let currentQuestionCountStyle = questionCountStyle;\r\n if(currentQuestionCount > maxQuestions){\r\n currentQuestionCountStyle = questionCountExceededStyle;\r\n }\r\n \r\n if(currentQuestionCount > 0){\r\n reportRows.push(\r\n \r\n {interviewSessionData[i].interviewee}\r\n {interviewSessionData[i].hours}\r\n {maxQuestions}\r\n {currentQuestionCount}\r\n \r\n );\r\n }\r\n }\r\n return reportRows;\r\n}\r\n\r\nconst questionCountStyle = {\r\n textAlign: \"center\",\r\n color: 'black'\r\n}\r\n\r\nconst questionCountExceededStyle = {\r\n textAlign: \"center\",\r\n color: 'red'\r\n}\r\n\r\nconst headerCellStyle = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n backgroundColor:'rgb(0,168,168)',\r\n maxWidth:'100px'\r\n};\r\n\r\nconst InterviewQuestionCountReportView = ({interviewData, interviewSessionData}) => {\r\n let reportRows = [];\r\n \r\n if(interviewData.length !== 0){\r\n reportRows = formatInterviewData(interviewData, interviewSessionData);\r\n }\r\n\r\n const tableHeadings = (\r\n \r\n Role Interviewed\r\n Interview Duration
    (hr)\r\n Number of Questions Allowed (2 Min Avg)\r\n Total Number of Questions\r\n \r\n );\r\n \r\n let dateTime = getCurrentDateTime();\r\n return (\r\n \r\n \r\n \r\n

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n \r\n {tableHeadings}\r\n {reportRows}\r\n
    \r\n
    \r\n );\r\n}\r\nexport default InterviewQuestionCountReportView; ","import React, { useState, useEffect } from 'react';\r\nimport { Button, Spinner, Row, Col, Form, Modal } from 'react-bootstrap';\r\nimport { AppraisalRepository } from '../utils/repositories';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport InterviewQuestionCountReportView from '../presenters/InterviewQuestionCountReportView';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport NewWindow from 'react-new-window';\r\n\r\nasync function fetchData(setDataLoading, setAppraisalName) {\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false, availableForSelection: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n setAppraisalName(appraisalData.returnValue.name);\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst InterviewQuestionsCountReportModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [interviewSessionData, setInterviewSessionData] = useState({});\r\n const [interviewData, setInterviewData] = useState({});\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalName);\r\n getData();\r\n setOptionsVisible(true);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n async function getInterviewSessionData(currentAppraisalId) {\r\n\r\n let interviewSessions = [];\r\n const interviewSessionData = await API.get(Constants.API_PATH, `${Constants.INTERVIEW_PATH}/${currentAppraisalId}`, await getDefaultAPIHeaders());\r\n interviewSessionData.forEach(is => {\r\n interviewSessions.push({\r\n id: is.interview_session_id,\r\n hours: is.hours,\r\n interviewee: is.interviewee\r\n });\r\n });\r\n\r\n return interviewSessions;\r\n }\r\n\r\n async function getInterviewData(currentAppraisalId) {\r\n\r\n let interviews = [];\r\n const interviewsData = await API.get(Constants.API_PATH, `${Constants.INTERVIEW_QUESTIONS_PATH}/${currentAppraisalId}`, await getDefaultAPIHeaders());\r\n interviewsData.forEach(is => {\r\n interviews.push({\r\n id: is.interview_question_id,\r\n sessions: is.sessions\r\n });\r\n });\r\n\r\n return interviews;\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let interviewSessionInfo = [];\r\n let interviewInfo = [];\r\n\r\n interviewSessionInfo = await getInterviewSessionData(currentAppraisalId);\r\n interviewInfo = await getInterviewData(currentAppraisalId);\r\n\r\n setInterviewSessionData(interviewSessionInfo);\r\n setInterviewData(interviewInfo);\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n const viewReportHeader = ``;\r\n const scopeHeader = '';\r\n const appraisalHeader = 'Appraisal:';\r\n const reportName = 'Interview Question Count Report';\r\n\r\n const viewReportStyle = {\r\n textAlign: \"right\",\r\n paddingTop: \"0px\",\r\n color: 'black',\r\n marginTop: '16px',\r\n fontSize: '22px'\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"reportModalStyle\">\r\n \r\n \r\n {' '}Interview Question Count Report\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n handleGenerateReportClicked(e)}>\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Interview Question Count Report\" : ' Generating Report...'}\r\n {' '}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {!optionsVisible &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n );\r\n}\r\nexport default InterviewQuestionsCountReportModal;","import React from 'react';\r\nimport {Row, Col} from 'react-bootstrap'\r\nimport { PRACTICE_AREA_RELATIONSHIPS, PRACTICES } from '../model/modelcontent';\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\n\r\nfunction formatAffirmationData(projects, practiceAreas, maturityLevel, affirmationData, includeLevel1){\r\n let reportEntries = [];\r\n let reportRows = [];\r\n\r\n for(let i = 0; i < practiceAreas.length; i++){\r\n let reportHeader = (\r\n
    {practiceAreas[i].Name}
    \r\n );\r\n \r\n reportRows=[];\r\n\r\n //add a column for each project that has the current practice area\r\n let correspondingProjects = [];\r\n let projectHeaders=[];\r\n for(let j = 0; j < projects.length; j++){\r\n\r\n //do not include a rollup project\r\n if(projects[j].name !== \"Organizational Roll-up\"){\r\n\r\n let correspondingPA = projects[j].practiceAreas.filter(x => x === practiceAreas[i].id);\r\n if(correspondingPA.length > 0){\r\n correspondingProjects.push(projects[j].name);\r\n projectHeaders.push({projects[j].name});\r\n }\r\n }\r\n }\r\n \r\n //populate practice details\r\n let practices = [];\r\n if(includeLevel1){\r\n practices = PRACTICE_AREA_RELATIONSHIPS[practiceAreas[i].id].filter(x => x.Level <= maturityLevel);\r\n }\r\n else{\r\n practices = PRACTICE_AREA_RELATIONSHIPS[practiceAreas[i].id].filter(x => x.Level > 1 && x.Level <= maturityLevel);\r\n }\r\n let practiceRows = [];\r\n for(let j = 0; j < practices.length; j++){\r\n let practiceCells = [];\r\n practiceCells.push({PRACTICES[practices[j].Id].Abbreviation})\r\n for(let k = 0; k < correspondingProjects.length; k++){\r\n let correspondingPracticeData = affirmationData.filter(x => x.practiceArea === practiceAreas[i].id\r\n && x.practice === PRACTICES[practices[j].Id].Abbreviation\r\n && x.project === correspondingProjects[k]);\r\n let hasQuestion = \"\";\r\n let isAffirmed =\"\";\r\n if(correspondingPracticeData[0].hasQuestion){\r\n hasQuestion = \"Q\";\r\n }if(correspondingPracticeData[0].isAffirmed){\r\n isAffirmed = \"A\";\r\n }\r\n practiceCells.push({hasQuestion}{isAffirmed})\r\n }\r\n \r\n practiceRows.push(\r\n {practiceCells}\r\n )\r\n }\r\n\r\n //populate totals\r\n let totalCells = [];\r\n let projectTotals = [];\r\n for(let j = 0; j < correspondingProjects.length; j++){\r\n if(j === 0){\r\n totalCells.push(Total:)\r\n }\r\n let allPracticeAreaData = affirmationData.filter(x => x.practiceArea === practiceAreas[i].id\r\n && x.project === correspondingProjects[j]);\r\n let dataCount = allPracticeAreaData.length;\r\n let affirmationCount = 0;\r\n for(let k = 0; k < allPracticeAreaData.length; k++){\r\n if(allPracticeAreaData[k].hasQuestion){\r\n affirmationCount++;\r\n }\r\n }\r\n //current projectTotal\r\n let percentTotal = affirmationCount / dataCount * 100;\r\n totalCells.push({Math.round(percentTotal)}%);\r\n\r\n //all projects total\r\n projectTotals.push(percentTotal);\r\n }\r\n \r\n let allProjectsTotal = 0;\r\n for(let j = 0; j < projectTotals.length; j++){\r\n allProjectsTotal += projectTotals[j];\r\n }\r\n allProjectsTotal = allProjectsTotal / projectTotals.length;\r\n totalCells.push({Math.round(allProjectsTotal)}%);\r\n\r\n reportRows.push(\r\n \r\n {practiceAreas[i].id}\r\n {projectHeaders}\r\n \r\n );\r\n reportRows.push(practiceRows);\r\n reportRows.push({totalCells})\r\n\r\n reportEntries.push(\r\n
    \r\n {reportHeader}\r\n \r\n {reportRows}\r\n
    \r\n
    );\r\n }\r\n \r\n return reportEntries;\r\n}\r\n\r\nconst cellStyle = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n width:'100px'\r\n};\r\n\r\nconst headerCellStyle = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n backgroundColor:'rgb(0,168,168)',\r\n width:'100px'\r\n};\r\n\r\nconst AffirmationCoverageReportView = ({projects, practiceAreas, maturityLevel, affirmationData, includeLevel1}) => {\r\n let reportRows = [];\r\n \r\n if(affirmationData.length !== 0){\r\n reportRows = formatAffirmationData(projects, practiceAreas, maturityLevel, affirmationData, includeLevel1);\r\n }\r\n\r\n let dateTime = getCurrentDateTime();\r\n return (\r\n \r\n \r\n \r\n

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n \r\n \r\n {reportRows}\r\n \r\n \r\n
    \r\n );\r\n}\r\nexport default AffirmationCoverageReportView; ","import React, { useState, useEffect } from 'react';\r\nimport { Button, Spinner, Row, Col, Form, Modal } from 'react-bootstrap';\r\nimport { AppraisalRepository } from '../utils/repositories';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport AffirmationCoverageReportView from '../presenters/AffirmationCoverageReportView';\r\nimport { AppraisalStateRepository } from '../utils/repositories';\r\nimport { modelContentUtils, Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport { PRACTICE_AREA_RELATIONSHIPS, PRACTICES } from '../model/modelcontent';\r\nimport NewWindow from 'react-new-window'\r\n\r\nasync function fetchData(setDataLoading, setAppraisalName) {\r\n setDataLoading(true);\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository();\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n setAppraisalName(appraisalData.returnValue.name);\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst AffirmationCoverageReportModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [projects, setProjects] = useState({});\r\n const [practiceAreas, setPracticeAreas] = useState({});\r\n const [maturityLevel, setMaturityLevel] = useState(0);\r\n const [affirmationData, setAffirmationData] = useState({});\r\n const [includeLevel1, setIncludeLevel1] = useState(false);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalName);\r\n getData();\r\n setAffirmationData({});\r\n setProjects({});\r\n setOptionsVisible(true);\r\n setIncludeLevel1(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n async function getAffirmationData(currentAppraisalId) {\r\n const interviewsData = await API.get(Constants.API_PATH, `${Constants.INTERVIEW_QUESTIONS_PATH}/${currentAppraisalId}`, await getDefaultAPIHeaders());\r\n const appraisalRepo = new AppraisalRepository();\r\n const stateRepo = new AppraisalStateRepository();\r\n const data = await appraisalRepo.getOne(currentAppraisalId, false);\r\n let maturityLevel = 0;\r\n let projects = [];\r\n let practiceAreas = [];\r\n if (!data.error) {\r\n maturityLevel = modelContentUtils.getMaturityLevelFromView(data.returnValue.view);\r\n setMaturityLevel(maturityLevel);\r\n projects = data.returnValue.projects;\r\n setProjects(projects);\r\n practiceAreas = modelContentUtils.getPracticeAreasFromAppraisalProjects(data.returnValue.projects, true, true)\r\n setPracticeAreas(practiceAreas);\r\n }\r\n\r\n //build an array to send over to the view containing:\r\n // projectName, practiceAreaName, practiceName, hasQuestion, isAffirmed\r\n let affirmationData = [];\r\n\r\n for (let i = 0; i < projects.length; i++) {\r\n\r\n //do not include a rollup project\r\n if (projects[i].name !== \"Organizational Roll-up\") {\r\n\r\n //get all state entries for the current project\r\n let stateEntries = \"\";\r\n const response = await stateRepo.getAll(currentAppraisalId, projects[i].id);\r\n if (!response.error) {\r\n stateEntries = response.returnValue;\r\n }\r\n\r\n for (let j = 0; j < projects[i].practiceAreas.length; j++) {\r\n\r\n //get all practices available to the current practice area and maturity level\r\n let currentPracticeArea = projects[i].practiceAreas[j];\r\n let practices = [];\r\n if(includeLevel1){\r\n practices = PRACTICE_AREA_RELATIONSHIPS[currentPracticeArea].filter(x => x.Level <= maturityLevel);\r\n }\r\n else{\r\n practices = PRACTICE_AREA_RELATIONSHIPS[currentPracticeArea].filter(x => x.Level > 1 && x.Level <= maturityLevel);\r\n }\r\n\r\n for (let k = 0; k < practices.length; k++) {\r\n let practiceAffirmed = false;\r\n let hasQuestion = false;\r\n\r\n //see if there is a state entry for the practice\r\n let correspondingStateEntry = stateEntries.filter(x => x.nodeId === practices[k].Id)\r\n if (correspondingStateEntry.length > 0) {\r\n if (correspondingStateEntry[0].affirmed) {\r\n practiceAffirmed = true;\r\n }\r\n }\r\n //see if there is a interview question entry for the practice\r\n let correspondingInterviewEntry = interviewsData.filter(x => x.node_id === practices[k].Id && x.project_id === projects[i].id)\r\n if (correspondingInterviewEntry.length > 0) {\r\n hasQuestion = true;\r\n }\r\n\r\n //store the information\r\n let affirmationEntry = {\r\n project: projects[i].name,\r\n practiceArea: currentPracticeArea,\r\n practice: PRACTICES[practices[k].Id].Abbreviation,\r\n hasQuestion: hasQuestion,\r\n isAffirmed: practiceAffirmed\r\n }\r\n affirmationData.push(affirmationEntry)\r\n }\r\n }\r\n }\r\n }\r\n return affirmationData;\r\n }\r\n\r\n const levelOneCheckBoxChanged = () => {\r\n setIncludeLevel1(!includeLevel1);\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n let affirmationInfo = [];\r\n\r\n affirmationInfo = await getAffirmationData(currentAppraisalId);\r\n\r\n setAffirmationData(affirmationInfo);\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n const viewReportHeader = ``;\r\n const scopeHeader = '';\r\n const appraisalHeader = 'Appraisal:';\r\n const reportName = 'Affirmation Coverage Report';\r\n\r\n const viewReportStyle = {\r\n textAlign: \"right\",\r\n paddingTop: \"0px\",\r\n color: 'black',\r\n marginTop: '16px',\r\n fontSize: '22px'\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"reportModalStyle\">\r\n \r\n \r\n {' '}Affirmation Coverage Report\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleGenerateReportClicked(e)}>\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Affirmation Coverage Report\" : ' Generating Report...'}\r\n {' '}\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {!optionsVisible &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n );\r\n}\r\nexport default AffirmationCoverageReportModal;","import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap'\r\nimport { PRACTICE_EVAL_ICON_MAP } from '../utils/IconMap';\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\nimport { CharacterizationsLegend } from '../utils/IconLegends';\r\n\r\nconst totalPracticesByMaturity = {\r\n 1: 3,\r\n 2: 11,\r\n 3: 18,\r\n 4: 23,\r\n 5: 26,\r\n}\r\n\r\nfunction getFirstCellContent(indexOffset) {\r\n if (indexOffset <= totalPracticesByMaturity[1]) {\r\n return `1.${indexOffset}`;\r\n } else if (indexOffset <= totalPracticesByMaturity[2]) {\r\n return `2.${indexOffset - totalPracticesByMaturity[1]}`;\r\n } else if (indexOffset <= totalPracticesByMaturity[3]) {\r\n return `3.${indexOffset - totalPracticesByMaturity[2]}`;\r\n } else if (indexOffset <= totalPracticesByMaturity[4]) {\r\n return `4.${indexOffset - totalPracticesByMaturity[3]}`;\r\n } else {\r\n return `5.${indexOffset - totalPracticesByMaturity[4]}`;\r\n }\r\n}\r\n\r\nfunction getCellIcon(cellValue) {\r\n return PRACTICE_EVAL_ICON_MAP[cellValue];\r\n}\r\n\r\nfunction generateDataRows(reportData, cellStyle, practiceRanks, includeLevel1) {\r\n const keys = Object.keys(reportData);\r\n const yMax = reportData[keys[0]].length;\r\n let tableRows = [];\r\n for (let i = 0; i < yMax; i++) {\r\n let tableCells = [];\r\n for (let j = 0; j < keys.length; j++) {\r\n const cellValue = reportData[keys[j]][i];\r\n const cellColorStyle = {\r\n ...cellStyle\r\n };\r\n if (cellValue !== \"No Data\") {\r\n let newCell = (\r\n \r\n {getCellIcon(cellValue)}\r\n \r\n );\r\n tableCells.push(newCell);\r\n }\r\n else {\r\n let newCell = (\r\n \r\n \r\n );\r\n tableCells.push(newCell);\r\n }\r\n }\r\n let firstCellContent = getFirstCellContent(i + 1);\r\n let firstCell = (\r\n {firstCellContent}\r\n );\r\n tableCells.unshift(firstCell);\r\n const newRow = (\r\n \r\n {tableCells}\r\n \r\n );\r\n const levelStyle = {\r\n height: \".1em\",\r\n textAlign: \"right\",\r\n fontWeight: \"bold\",\r\n paddingRight: \"5px\"\r\n };\r\n\r\n if (i === 0\r\n || i === totalPracticesByMaturity[1]\r\n || i === totalPracticesByMaturity[2]\r\n || i === totalPracticesByMaturity[3]\r\n || i === totalPracticesByMaturity[4]) {\r\n const levelRow = ();\r\n tableRows.push(levelRow);\r\n }\r\n\r\n tableRows.push(newRow);\r\n }\r\n\r\n if (!includeLevel1) {\r\n tableRows.splice(0, 4);\r\n }\r\n\r\n return tableRows;\r\n}\r\n\r\nfunction getProjectSubTitle(projects) {\r\n let projectSubTitle = \"\";\r\n for (let i = 0; i < projects.length; i++) {\r\n if (i !== projects.length - 1) {\r\n const nextProject = `${projects[i].name}, `;\r\n projectSubTitle = projectSubTitle.concat(nextProject);\r\n } else {\r\n projectSubTitle = projectSubTitle.concat(projects[i].name);\r\n }\r\n }\r\n return projectSubTitle;\r\n}\r\n\r\nconst PracticeComplianceReportView = ({ projects, reportData, practiceRanks, includeLevel1 }) => {\r\n const rowWidths = 100 / (Object.keys(reportData).length + 1);\r\n const cellStyle = {\r\n width: `${rowWidths}%`,\r\n border: \"1px solid black\",\r\n textAlign: \"center\"\r\n };\r\n\r\n const colHeaderStyle = {\r\n width: `${rowWidths}%`,\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n background: 'rgb(0,168,168)'\r\n };\r\n\r\n const tableHeadings = Object.keys(reportData)\r\n .map(k => {\r\n return (\r\n {k}\r\n );\r\n });\r\n\r\n const projectSubTitle = getProjectSubTitle(projects);\r\n const tableRows = generateDataRows(reportData, cellStyle, practiceRanks, includeLevel1);\r\n let dateTime = getCurrentDateTime();\r\n return (\r\n \r\n \r\n \r\n

    Created for Project(s):

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

    {projectSubTitle}

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

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n \r\n {tableRows}\r\n
    \r\n {tableHeadings}\r\n
    \r\n
    \r\n \r\n {CharacterizationsLegend}\r\n \r\n
    \r\n );\r\n}\r\nexport default PracticeComplianceReportView;","import React, { useState, useEffect } from 'react';\r\nimport { Form, Row, Col, Button, Spinner, Modal, Tabs, Tab, FormControl } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport { AppraisalRepository, AppraisalStateRepository } from '../utils/repositories';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport MultiSelectListReportOptions from '../presenters/MultiSelectListReportOptions';\r\nimport PracticeComplianceReportView from '../presenters/PracticeComplianceReportView';\r\nimport { PRACTICES, PRACTICES_AREAS_BY_MATURITY_LEVEL, PRACTICE_AREA_RELATIONSHIPS } from '../model/modelcontent';\r\nimport NewWindow from 'react-new-window';\r\n\r\nconst totalPracticesByMaturity = {\r\n 1: 3,\r\n 2: 11,\r\n 3: 18,\r\n 4: 23,\r\n 5: 26,\r\n}\r\n\r\nconst PRACTICE_STATE_RANKS = {\r\n \"Not Yet Implemented\": { value: 8, state: \"Not Yet Implemented\" },\r\n \"Not Examined\": { value: 9, state: \"Not Examined\" },\r\n //evaluation ranks\r\n \"Major Issues\": { value: 5, state: \"Major Issues\" },\r\n \"Minor Issues\": { value: 6, state: \"Minor Issues\" },\r\n \"No Issues\": { value: 7, state: \"No Issues\" },\r\n //benchmark/sustainment ranks\r\n \"Does Not Meet\": { value: 1, state: \"Does Not Meet\" },\r\n \"Partially Meets\": { value: 2, state: \"Partially Meets\" },\r\n \"Largely Meets\": { value: 3, state: \"Largely Meets\" },\r\n \"Fully Meets\": { value: 4, state: \"Fully Meets\" }\r\n}\r\n\r\nasync function fetchData(setDataLoading, setAppraisalData, projects, practiceAreas) {\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n projects.setValue(appraisalData.returnValue.projects);\r\n setAppraisalData({\r\n id: appraisalData.returnValue.id,\r\n name: appraisalData.returnValue.name,\r\n view: appraisalData.returnValue.view\r\n });\r\n let PAs = modelContentUtils.getPracticeAreasFromAppraisalProjects(appraisalData.returnValue.projects);\r\n practiceAreas.setValue(PAs);\r\n\r\n\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nfunction getPracticeOffset(abbrString) {\r\n return abbrString.substring(abbrString.length - 1) - 1;\r\n}\r\n\r\nfunction getPracticeAreaLevelCount(practiceArea, level){\r\n return PRACTICE_AREA_RELATIONSHIPS[practiceArea].filter(x => x.Level === level).length;\r\n}\r\n\r\n//since the data in the database does not reflect items net yet marked (not examined),\r\n// we must rely on model data to build our visual structure to place the data\r\nfunction buildEmptyComplianceChartData(practiceAreas, maturityLevel) {\r\n let complianceData = {};\r\n let yMax = totalPracticesByMaturity[maturityLevel];\r\n for (let i = 0; i < practiceAreas.length; i++) {\r\n\r\n var currentLevel1PracticeCount = getPracticeAreaLevelCount(practiceAreas[i], 1);\r\n var currentLevel2PracticeCount = getPracticeAreaLevelCount(practiceAreas[i], 2);\r\n var currentLevel3PracticeCount = getPracticeAreaLevelCount(practiceAreas[i], 3);\r\n var currentLevel4PracticeCount = getPracticeAreaLevelCount(practiceAreas[i], 4);\r\n var currentLevel5PracticeCount = getPracticeAreaLevelCount(practiceAreas[i], 5);\r\n\r\n complianceData[practiceAreas[i]] = new Array(yMax);\r\n for (let j = 0; j < yMax; j++) {\r\n //if this index also has a corresponding practice based on maturity level, mark it as blank\r\n if ((j < totalPracticesByMaturity[1] && j < currentLevel1PracticeCount)\r\n || (j >= totalPracticesByMaturity[1] && j < totalPracticesByMaturity[1] + currentLevel2PracticeCount)\r\n || (j >= totalPracticesByMaturity[2] && j < totalPracticesByMaturity[2] + currentLevel3PracticeCount)\r\n || (j >= totalPracticesByMaturity[3] && j < totalPracticesByMaturity[3] + currentLevel4PracticeCount)\r\n || (j >= totalPracticesByMaturity[4] && j < totalPracticesByMaturity[4] + currentLevel5PracticeCount)){\r\n complianceData[practiceAreas[i]][j] = \"Not Examined\";\r\n }\r\n //if there is no practice for this index, mark it no data so we can gray it out\r\n else {\r\n complianceData[practiceAreas[i]][j] = \"No Data\";\r\n }\r\n }\r\n }\r\n return complianceData;\r\n}\r\n\r\nfunction getMinState(prevState, currentState) {\r\n if (prevState === \"No Data\") {\r\n return currentState;\r\n }\r\n return PRACTICE_STATE_RANKS[prevState].value <= PRACTICE_STATE_RANKS[currentState].value\r\n ? prevState : currentState;\r\n}\r\n\r\nfunction buildComplianceChartData(previousComplianceData, stateData, firstPass) {\r\n for (let i = 0; i < stateData.length; i++) {\r\n const currentState = stateData[i].state;\r\n const assocPractice = PRACTICES[stateData[i].nodeId];\r\n const currentStateRank = PRACTICE_STATE_RANKS[currentState];\r\n //If we don't get an associated practice back then the state is associated\r\n // with either an appraisal or a level.\r\n if (assocPractice && currentStateRank !== undefined) {\r\n const practiceAreaIndex = assocPractice.PracticeAreaID;\r\n let practiceIndex = 0;\r\n if(assocPractice.Level === 1){\r\n practiceIndex = getPracticeOffset(assocPractice.Abbreviation);\r\n }\r\n else{\r\n practiceIndex = totalPracticesByMaturity[assocPractice.Level - 1] + getPracticeOffset(assocPractice.Abbreviation);\r\n }\r\n const previousState = previousComplianceData[practiceAreaIndex][practiceIndex];\r\n if (!firstPass) {\r\n previousComplianceData[practiceAreaIndex][practiceIndex] = getMinState(previousState, currentState);\r\n } else {\r\n previousComplianceData[practiceAreaIndex][practiceIndex] = currentState;\r\n }\r\n }\r\n }\r\n return previousComplianceData;\r\n}\r\n\r\nconst PracticeComplianceReportModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalData, setAppraisalData] = useState({});\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [includeLevel1, setIncludeLevel1] = useState(false);\r\n\r\n const [hasProjectSelected, setHasProjectSelected] = useState(\"false\");\r\n const [displayValue, setDisplayValue] = useState(\"tabbed\");\r\n\r\n const allReportData = useArray([]);\r\n const projects = useArray([]);\r\n const practiceAreas = useArray([]);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalData, projects, practiceAreas);\r\n getData();\r\n\r\n setHasProjectSelected(false);\r\n setOptionsVisible(true);\r\n setIncludeLevel1(false);\r\n setDisplayValue(\"tabbed\");\r\n allReportData.clear();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const handleProjectSelectionChanged = (event) => {\r\n const allOptions = event.target.options;\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n let project = projects.getById(currentOption.value);\r\n project.selected = currentOption.selected;\r\n projects.replace(currentOption.value, project);\r\n }\r\n setHasProjectSelected(projects.value.filter(p => p.selected === true).length > 0 ? true : false);\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n const maturityLevel = modelContentUtils.getMaturityLevelFromView(appraisalData.view);\r\n const selectedProjects = projects.value.filter(p => p.selected === true);\r\n let reportIndex = 1;\r\n\r\n //INDIVIDUAL PROJECTS\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n let complianceReportData = buildEmptyComplianceChartData(selectedProjects[i].practiceAreas, maturityLevel);\r\n const stateRepo = new AppraisalStateRepository();\r\n let firstPass = true;\r\n const currentProject = selectedProjects[i];\r\n const response = await stateRepo.getAll(appraisalData.id, currentProject.id);\r\n if (!response.error) {\r\n complianceReportData = buildComplianceChartData(complianceReportData,\r\n response.returnValue, firstPass);\r\n firstPass = false;\r\n }\r\n\r\n let p = projects.value.filter(p => p.id === currentProject.id);\r\n allReportData.add({\r\n title: currentProject.name,\r\n index: reportIndex,\r\n projects: p,\r\n data: complianceReportData\r\n });\r\n reportIndex++;\r\n }\r\n\r\n\r\n //CUMULATIVE (if multiple projects selected)\r\n\r\n //do not include rollup project\r\n let eligibleProjects = selectedProjects.filter(x => x.name !== \"Organizational Roll-up\");\r\n let excludingRollUp = eligibleProjects.length !== selectedProjects.length;\r\n\r\n if (eligibleProjects.length > 1) {\r\n\r\n let relevantPAs = [];\r\n for (let i = 0; i < eligibleProjects.length; i++) {\r\n for (let j = 0; j < eligibleProjects[i].practiceAreas.length; j++) {\r\n let currentPA = eligibleProjects[i].practiceAreas[j];\r\n if (!relevantPAs.includes(currentPA)) {\r\n relevantPAs.push(currentPA);\r\n }\r\n }\r\n }\r\n practiceAreas.setValue(relevantPAs);\r\n\r\n let complianceReportData = buildEmptyComplianceChartData(relevantPAs, maturityLevel);\r\n const stateRepo = new AppraisalStateRepository();\r\n let firstPass = true;\r\n for (let i = 0; i < eligibleProjects.length; i++) {\r\n const currentProject = eligibleProjects[i];\r\n const response = await stateRepo.getAll(appraisalData.id, currentProject.id);\r\n if (!response.error) {\r\n complianceReportData = buildComplianceChartData(complianceReportData,\r\n response.returnValue, firstPass);\r\n firstPass = false;\r\n }\r\n }\r\n\r\n let title = excludingRollUp ? \"Cumulative (Roll-up excluded)\" : \"Cumulative\";\r\n allReportData.add({\r\n title: title,\r\n index: reportIndex,\r\n projects: eligibleProjects,\r\n data: complianceReportData\r\n });\r\n }\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n const tabFormattedReportData = allReportData.value.map(o => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n });\r\n\r\n const singlePageFormattedReportData = allReportData.value.map(o => {\r\n return (\r\n
    \r\n \r\n\r\n


    \r\n
    \r\n )\r\n });\r\n\r\n const handleDisplayChanged = (value) => {\r\n setDisplayValue(value);\r\n }\r\n\r\n const levelOneCheckBoxChanged = () => {\r\n setIncludeLevel1(!includeLevel1);\r\n }\r\n\r\n const projectSelectionDisplayOptions = {\r\n title: \"Projects\",\r\n displayKey: \"name\",\r\n filterAvailable: false\r\n };\r\n\r\n const reportName = `Practice Compliance Report`;\r\n const scopeHeader = 'Level:';\r\n const appraisalHeader = 'Appraisal';\r\n\r\n const spacingStyle = {\r\n marginBottom: \"10px\",\r\n maxHeight: '5rem'\r\n };\r\n\r\n const viewReportStyle = {\r\n textAlign: \"center\",\r\n paddingTop: \"0px\",\r\n color: 'black'\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"reportModalStyle\">\r\n \r\n \r\n {' '}Practice Compliance Report\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Display\r\n \r\n \r\n handleDisplayChanged(e.target.value)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleGenerateReportClicked(e)}\r\n >\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Practice Compliance Report\" : ' Generating Report'}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {!optionsVisible &&\r\n \r\n \r\n {displayValue === \"tabbed\" ?\r\n
    \r\n

    \r\n \r\n {tabFormattedReportData}\r\n \r\n
    \r\n :\r\n
    \r\n

    \r\n {singlePageFormattedReportData}\r\n
    \r\n }\r\n \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default PracticeComplianceReportModal;","import React from 'react';\r\nimport { PRACTICE_AREAS } from '../model/modelcontent';\r\nimport {Row, Col} from 'react-bootstrap';\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\n\r\nconst cellStyle = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n};\r\n\r\nconst practiceAreaCellStyle = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n backgroundColor:'rgb(0,168,168)'\r\n};\r\n\r\nconst cellStyleLow = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n backgroundColor: \"lightgreen\"\r\n};\r\n\r\nconst cellStyleMed = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n backgroundColor: \"lightyellow\"\r\n};\r\n\r\nconst cellStyleHigh = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n backgroundColor: \"tomato\"\r\n};\r\n\r\nconst cellStyleNotImp = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n backgroundColor: \"pink\"\r\n};\r\n\r\nconst cellStyleNotEx = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n backgroundColor: \"lightgray\"\r\n};\r\n\r\nfunction getTotal(percentData){\r\n return percentData.lowRisk + percentData.mediumRisk + percentData.highRisk +\r\n percentData.notImplemented + percentData.notExamined;\r\n}\r\n\r\nfunction getPercent(actual, total){\r\n return (actual / total * 100).toFixed(2);\r\n}\r\n\r\nfunction generateDataRows(reportData){\r\n const keys = Object.keys(reportData);\r\n let tableRows = [];\r\n let totals = {\r\n lowRisk:0,\r\n mediumRisk:0,\r\n highRisk:0,\r\n notImplemented:0,\r\n notExamined:0\r\n };\r\n for(let i = 0; i < keys.length; i++){\r\n //create a row for each practice and its data\r\n let rowCells = [];\r\n let practiceFullName = PRACTICE_AREAS[keys[i]].Name;\r\n let practiceName = practiceFullName.substring(0, practiceFullName.indexOf(\" (\"));\r\n let total = getTotal(reportData[keys[i]]);\r\n rowCells.push({keys[i]});\r\n rowCells.push({practiceName});\r\n rowCells.push({total});\r\n rowCells.push({reportData[keys[i]].lowRisk} ({getPercent(reportData[keys[i]].lowRisk, total)}%));\r\n rowCells.push({reportData[keys[i]].mediumRisk} ({getPercent(reportData[keys[i]].mediumRisk, total)}%));\r\n rowCells.push({reportData[keys[i]].highRisk} ({getPercent(reportData[keys[i]].highRisk, total)}%));\r\n rowCells.push({reportData[keys[i]].notImplemented} ({getPercent(reportData[keys[i]].notImplemented, total)}%));\r\n rowCells.push({reportData[keys[i]].notExamined} ({getPercent(reportData[keys[i]].notExamined, total)}%));\r\n tableRows.push({rowCells});\r\n\r\n //add the practice data to the totals\r\n totals.lowRisk = totals.lowRisk + reportData[keys[i]].lowRisk;\r\n totals.mediumRisk = totals.mediumRisk + reportData[keys[i]].mediumRisk;\r\n totals.highRisk = totals.highRisk + reportData[keys[i]].highRisk;\r\n totals.notImplemented = totals.notImplemented + reportData[keys[i]].notImplemented;\r\n totals.notExamined = totals.notExamined + reportData[keys[i]].notExamined;\r\n }\r\n\r\n //create a row for the data totals\r\n let totalsCells = [];\r\n let total = getTotal(totals);\r\n totalsCells.push()\r\n totalsCells.push(Totals:)\r\n totalsCells.push({total})\r\n totalsCells.push({totals.lowRisk} ({getPercent(totals.lowRisk, total)}%))\r\n totalsCells.push({totals.mediumRisk} ({getPercent(totals.mediumRisk, total)}%))\r\n totalsCells.push({totals.highRisk} ({getPercent(totals.highRisk, total)}%))\r\n totalsCells.push({totals.notImplemented} ({getPercent(totals.notImplemented, total)}%))\r\n totalsCells.push({totals.notExamined} ({getPercent(totals.notExamined, total)}%))\r\n tableRows.push(totalsCells);\r\n\r\n return tableRows;\r\n}\r\n\r\nfunction getProjectSubTitle(projects){\r\n let projectSubTitle = \"\";\r\n for(let i = 0; i < projects.length; i++){\r\n if(i !== projects.length - 1){\r\n const nextProject = `${projects[i].name}, `;\r\n projectSubTitle = projectSubTitle.concat(nextProject);\r\n } else {\r\n projectSubTitle = projectSubTitle.concat(projects[i].name);\r\n }\r\n }\r\n return projectSubTitle;\r\n}\r\n\r\nconst CompliancePercentReportView = ({projects, reportData, practiceRanks}) => {\r\n const tableHeadings = (\r\n \r\n \r\n \r\n Total\r\n Low Risk\r\n Medium Risk\r\n High Risk\r\n Not Implemented\r\n Not Examined\r\n \r\n );\r\n \r\n const projectSubTitle = getProjectSubTitle(projects);\r\n const tableRows = generateDataRows(reportData, practiceRanks);\r\n let dateTime = getCurrentDateTime();\r\n return (\r\n \r\n \r\n \r\n \r\n

    Created for Project(s):

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

    {projectSubTitle}

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

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n
    \r\n \r\n {tableHeadings}\r\n {tableRows}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default CompliancePercentReportView;","import React, { useState, useEffect } from 'react';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport { AppraisalRepository, AppraisalStateRepository } from '../utils/repositories';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport MultiSelectListReportOptions from '../presenters/MultiSelectListReportOptions';\r\nimport CompliancePercentReportView from '../presenters/CompliancePercentReportView';\r\nimport { PRACTICES, PRACTICES_AREAS_BY_MATURITY_LEVEL, PRACTICE_AREA_RELATIONSHIPS } from '../model/modelcontent';\r\nimport { Form, Col, Row, Button, Spinner, Modal, Tabs, Tab, FormControl } from 'react-bootstrap';\r\nimport NewWindow from 'react-new-window';\r\n\r\nconst PRACTICE_STATE_RANKS = {\r\n \"Not Yet Implemented\": { value: 4, state: \"Not Yet Implemented\" },\r\n \"Not Examined\": { value: 5, state: \"Not Examined\" },\r\n //evaluation ranks\r\n \"Major Issues\": { value: 3, state: \"Major Issues\" },\r\n \"Minor Issues\": { value: 2, state: \"Minor Issues\" },\r\n \"No Issues\": { value: 1, state: \"No Issues\" },\r\n //benchmark/sustainment ranks\r\n \"Does Not Meet\": { value: 3, state: \"Does Not Meet\" },\r\n \"Partially Meets\": { value: 2, state: \"Partially Meets\" },\r\n \"Largely Meets\": { value: 2, state: \"Largely Meets\" },\r\n \"Fully Meets\": { value: 1, state: \"Fully Meets\" }\r\n}\r\n\r\nasync function fetchData(setDataLoading, setAppraisalData, projects, practiceAreas) {\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n projects.setValue(appraisalData.returnValue.projects.filter(x => x.name !== \"Organizational Roll-up\"));\r\n setAppraisalData({\r\n id: appraisalData.returnValue.id,\r\n name: appraisalData.returnValue.name,\r\n view: appraisalData.returnValue.view\r\n });\r\n const maturityLevel = modelContentUtils.getMaturityLevelFromView(appraisalData.returnValue.view);\r\n if (appraisalData.returnValue.view.includes(\"Development\")) {\r\n practiceAreas.setValue(PRACTICES_AREAS_BY_MATURITY_LEVEL.DEV[maturityLevel]);\r\n } else {\r\n practiceAreas.setValue(PRACTICES_AREAS_BY_MATURITY_LEVEL.SVC[maturityLevel]);\r\n }\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\n//since the data in the database cannot reflect not examined, we must rely on model data to set defaults\r\nfunction buildEmptyComplianceChartData(selectedProjects, maturityLevel,includeLevel1) {\r\n let complianceData = {};\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n let practiceAreas = selectedProjects[i].practiceAreas;\r\n for (let i = 0; i < practiceAreas.length; i++) {\r\n\r\n //the total possible evaluations for this practice area by selected maturity levelj\r\n let totalPracticesForMaturity = 0;\r\n if(includeLevel1){\r\n totalPracticesForMaturity = PRACTICE_AREA_RELATIONSHIPS[practiceAreas[i]].filter(x => x.Level <= maturityLevel).length;\r\n }\r\n else{\r\n totalPracticesForMaturity = PRACTICE_AREA_RELATIONSHIPS[practiceAreas[i]].filter(x => x.Level > 1 && x.Level <= maturityLevel).length;\r\n }\r\n\r\n //if the practice area does not already exist in the collection,\r\n //make a placeholder object for it\r\n if (complianceData[practiceAreas[i]] === undefined) {\r\n complianceData[practiceAreas[i]] = {\r\n lowRisk: 0,\r\n mediumRisk: 0,\r\n highRisk: 0,\r\n notImplemented: 0,\r\n notExamined: totalPracticesForMaturity\r\n };\r\n }\r\n //if the practice area has already been added from a previous project,\r\n //add the total not examined practices to the placeholder\r\n else {\r\n complianceData[practiceAreas[i]].notExamined = complianceData[practiceAreas[i]].notExamined + totalPracticesForMaturity;\r\n }\r\n }\r\n }\r\n return complianceData;\r\n}\r\n\r\nfunction buildComplianceChartData(complianceData, stateData, includeLevel1) {\r\n for (let i = 0; i < stateData.length; i++) {\r\n const currentState = stateData[i].state;\r\n const assocPractice = PRACTICES[stateData[i].nodeId];\r\n const currentStateRank = PRACTICE_STATE_RANKS[currentState];\r\n\r\n //If we don't get an associated practice back then the state is associated\r\n // with either an appraisal or a level.\r\n if (assocPractice && currentStateRank !== undefined) {\r\n\r\n //do not include level 1 practices unless specified\r\n if(!includeLevel1 && assocPractice.Level === 1){\r\n continue;\r\n }\r\n\r\n const practiceAreaIndex = assocPractice.PracticeAreaID;\r\n\r\n //we have data for this item, remove it from not examined before setting actual value\r\n complianceData[practiceAreaIndex].notExamined = complianceData[practiceAreaIndex].notExamined - 1;\r\n\r\n //update the placeholder objects with data from the database\r\n switch (currentStateRank.value) {\r\n case 1:\r\n complianceData[practiceAreaIndex].lowRisk = complianceData[practiceAreaIndex].lowRisk + 1;\r\n break;\r\n case 2:\r\n complianceData[practiceAreaIndex].mediumRisk = complianceData[practiceAreaIndex].mediumRisk + 1;\r\n break;\r\n case 3:\r\n complianceData[practiceAreaIndex].highRisk = complianceData[practiceAreaIndex].highRisk + 1;\r\n break;\r\n case 4:\r\n complianceData[practiceAreaIndex].notImplemented = complianceData[practiceAreaIndex].notImplemented + 1;\r\n break;\r\n case 5:\r\n complianceData[practiceAreaIndex].notExamined = complianceData[practiceAreaIndex].notExamined + 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n return complianceData;\r\n}\r\n\r\nconst CompliancePercentReportModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalData, setAppraisalData] = useState({});\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [hasProjectSelected, setHasProjectSelected] = useState(\"false\");\r\n const [includeLevel1, setIncludeLevel1] = useState(false);\r\n\r\n const [displayValue, setDisplayValue] = useState(\"tabbed\");\r\n const allReportData = useArray([]);\r\n\r\n const projects = useArray([]);\r\n const practiceAreas = useArray([]);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalData, projects, practiceAreas);\r\n getData();\r\n\r\n setIncludeLevel1(false);\r\n setHasProjectSelected(false);\r\n setOptionsVisible(true);\r\n setDisplayValue(\"tabbed\");\r\n allReportData.clear();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const handleProjectSelectionChanged = (event) => {\r\n const allOptions = event.target.options;\r\n for (let i = 0; i < allOptions.length; i++) {\r\n const currentOption = allOptions[i];\r\n let project = projects.getById(currentOption.value);\r\n project.selected = currentOption.selected;\r\n projects.replace(currentOption.value, project);\r\n }\r\n setHasProjectSelected(projects.value.filter(p => p.selected === true).length > 0 ? true : false);\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n const maturityLevel = modelContentUtils.getMaturityLevelFromView(appraisalData.view);\r\n const selectedProjects = projects.value.filter(p => p.selected === true);\r\n let reportIndex = 1;\r\n\r\n //individual projects\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n let complianceReportData = buildEmptyComplianceChartData([selectedProjects[i]], maturityLevel, includeLevel1);\r\n const stateRepo = new AppraisalStateRepository();\r\n const currentProject = selectedProjects[i];\r\n const response = await stateRepo.getAll(appraisalData.id, currentProject.id);\r\n if (!response.error) {\r\n complianceReportData = buildComplianceChartData(complianceReportData, response.returnValue, includeLevel1);\r\n }\r\n\r\n let p = projects.value.filter(p => p.id === currentProject.id);\r\n allReportData.add({\r\n title: currentProject.name,\r\n index: reportIndex,\r\n projects: p,\r\n data: complianceReportData\r\n });\r\n reportIndex++;\r\n }\r\n\r\n let eligibleProjects = selectedProjects.filter(x => x.name !== \"Organizational Roll-up\");\r\n let excludingRollUp = eligibleProjects.length !== selectedProjects.length;\r\n\r\n if (eligibleProjects.length > 1) {\r\n let complianceReportData = buildEmptyComplianceChartData(selectedProjects, maturityLevel, includeLevel1);\r\n const stateRepo = new AppraisalStateRepository();\r\n for (let i = 0; i < selectedProjects.length; i++) {\r\n const currentProject = selectedProjects[i];\r\n const response = await stateRepo.getAll(appraisalData.id, currentProject.id);\r\n if (!response.error) {\r\n complianceReportData = buildComplianceChartData(complianceReportData, response.returnValue, includeLevel1);\r\n }\r\n }\r\n\r\n let title = excludingRollUp ? \"Cumulative (Roll-up excluded)\" : \"Cumulative\";\r\n allReportData.add({\r\n title: title,\r\n index: reportIndex,\r\n projects: eligibleProjects,\r\n data: complianceReportData\r\n });\r\n }\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n const handleDisplayChanged = (value) => {\r\n setDisplayValue(value);\r\n }\r\n\r\n const levelOneCheckBoxChanged = () => {\r\n setIncludeLevel1(!includeLevel1);\r\n }\r\n\r\n const tabFormattedReportData = allReportData.value.map(o => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n });\r\n\r\n const singlePageFormattedReportData = allReportData.value.map(o => {\r\n return (\r\n
    \r\n \r\n\r\n


    \r\n
    \r\n )\r\n });\r\n\r\n const projectSelectionDisplayOptions = {\r\n title: \"Projects\",\r\n displayKey: \"name\",\r\n filterAvailable: false\r\n };\r\n\r\n const viewReportTitle = `Compliance Percent Report`\r\n const scopeHeader = \"Level:\"\r\n const appraisalHeader = 'Appraisal:'\r\n\r\n const spacingStyle = {\r\n marginBottom: \"10px\",\r\n maxHeight: '6rem'\r\n };\r\n\r\n const viewReportStyle = {\r\n textAlign: \"center\",\r\n paddingTop: \"0px\",\r\n color: 'black',\r\n fontSize: '22px'\r\n }\r\n\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"reportModalStyle\">\r\n \r\n \r\n {' '}Compliance Percent Report\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Projects\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Display\r\n \r\n \r\n handleDisplayChanged(e.target.value)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {' '}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {!optionsVisible &&\r\n \r\n \r\n {displayValue === \"tabbed\" ?\r\n
    \r\n

    \r\n \r\n {tabFormattedReportData}\r\n \r\n
    \r\n :\r\n
    \r\n

    \r\n {singlePageFormattedReportData}\r\n
    \r\n }\r\n \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default CompliancePercentReportModal;","import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap'\r\nimport { RATINGS_ICON_MAP } from '../utils/IconMap';\r\nimport { getCurrentDateTime } from '../utils/helpers';\r\nimport { RatingsLegend } from '../utils/IconLegends';\r\n\r\nfunction getCharacterizationIcon(value) {\r\n if (value === \"\") {\r\n return RATINGS_ICON_MAP[\"Not Examined\"];\r\n }\r\n else {\r\n return RATINGS_ICON_MAP[value]\r\n }\r\n}\r\n\r\nfunction formatRatingsReportData(ratingsData, cellStyle) {\r\n let reportRows = []\r\n for (let i = 1; i <= 5; i++) {\r\n let currentLevelData = ratingsData.LevelData.filter(x => x.Level === i.toString());\r\n\r\n const cellColorStyle = {\r\n ...cellStyle\r\n };\r\n\r\n if (currentLevelData.length > 0) {\r\n let tableCells = [];\r\n let firstCellContent = \"Practice Group Level \" + i;\r\n let firstCell = (\r\n {firstCellContent}\r\n );\r\n tableCells.push(firstCell);\r\n\r\n for (let j = 0; j < ratingsData.PAData.length; j++) {\r\n\r\n let correspondingLevelData = currentLevelData.filter(x => x.PAName === ratingsData.PAData[j].Name)[0];\r\n if (!correspondingLevelData) {\r\n let newCell = (\r\n \r\n \r\n );\r\n tableCells.push(newCell);\r\n }\r\n else {\r\n let cellValue = correspondingLevelData.State;\r\n if (cellValue !== \"Not Examined\") {\r\n let newCell = (\r\n \r\n {getCharacterizationIcon(cellValue)}\r\n \r\n );\r\n tableCells.push(newCell);\r\n }\r\n else {\r\n let newCell = (\r\n \r\n \r\n );\r\n tableCells.push(newCell);\r\n }\r\n }\r\n\r\n }\r\n\r\n const levelStyle = {\r\n height: \".1em\",\r\n textAlign: \"right\",\r\n fontWeight: \"bold\",\r\n paddingRight: \"5px\"\r\n };\r\n\r\n const levelRow = ();\r\n reportRows.push(levelRow);\r\n \r\n reportRows.push({tableCells});\r\n }\r\n }\r\n return reportRows;\r\n}\r\n\r\nconst RatingsReportView = ({ ratingsData }) => {\r\n\r\n const cellStyle = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\"\r\n };\r\n\r\n const colHeaderStyle = {\r\n border: \"1px solid black\",\r\n textAlign: \"center\",\r\n background: 'rgb(0,168,168)'\r\n };\r\n\r\n const tableHeadings = ratingsData.PAData\r\n .map(k => {\r\n return (\r\n {k.Name}\r\n );\r\n });\r\n\r\n const paStates = ratingsData.PAData\r\n .map(k => {\r\n return (\r\n {getCharacterizationIcon(k.State)}\r\n );\r\n });\r\n\r\n let reportRows = [];\r\n\r\n let dateTime = getCurrentDateTime();\r\n\r\n reportRows = formatRatingsReportData(ratingsData, cellStyle);\r\n\r\n return (\r\n \r\n \r\n \r\n

    Date/Time Generated:

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

    {dateTime}

    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {reportRows}\r\n
    \r\n {tableHeadings}\r\n
    \r\n {paStates}\r\n
    \r\n
    \r\n \r\n {RatingsLegend}\r\n \r\n
    \r\n );\r\n}\r\nexport default RatingsReportView;","import React, { useState, useEffect } from 'react';\r\nimport { Form, Row, Col, Button, Spinner, Modal} from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport { AppraisalRepository, AppraisalStateRepository } from '../utils/repositories';\r\nimport useArray from '../hooks/useArray';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport RatingsReportView from '../presenters/RatingsReportView';\r\nimport { PRACTICE_AREAS, PRACTICES_AREAS_BY_MATURITY_LEVEL } from '../model/modelcontent';\r\nimport NewWindow from 'react-new-window';\r\n\r\nasync function fetchData(setDataLoading, setAppraisalData, projects, practiceAreas) {\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n projects.setValue(appraisalData.returnValue.projects);\r\n setAppraisalData({\r\n id: appraisalData.returnValue.id,\r\n name: appraisalData.returnValue.name,\r\n view: appraisalData.returnValue.view\r\n });\r\n let PAs = modelContentUtils.getPracticeAreasFromAppraisalProjects(appraisalData.returnValue.projects);\r\n practiceAreas.setValue(PAs);\r\n\r\n\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst RatingsReportModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalData, setAppraisalData] = useState({});\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [modalMessage, setModalMessage] = useState(\"\");\r\n const [showMessageModal, setShowMessageModal] = useState(false);\r\n const [ratingsData, setRatingsData] = useState(null);\r\n const projects = useArray([]);\r\n const practiceAreas = useArray([]);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalData, projects, practiceAreas);\r\n getData();\r\n setOptionsVisible(true);\r\n setRatingsData(null);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const generateReport = async (rollupId) => {\r\n\r\n setReportLoading(true);\r\n const maturityLevel = modelContentUtils.getMaturityLevelFromView(appraisalData.view);\r\n\r\n let rollUpProject;\r\n for(let i = 0; i < projects.value.length; i++){\r\n if(projects.value[i].id === rollupId){\r\n rollUpProject = projects.value[i];\r\n break;\r\n } \r\n }\r\n\r\n const stateRepo = new AppraisalStateRepository();\r\n\r\n const response = await stateRepo.getAll(appraisalData.id, rollUpProject.id);\r\n if (!response.error) {\r\n let stateData = response.returnValue;\r\n\r\n let PAData = [];\r\n let levelData = [];\r\n for(let i = 0; i < rollUpProject.practiceAreas.length; i++){\r\n let currentPA = rollUpProject.practiceAreas[i];\r\n\r\n let paStateData;\r\n let paState = stateData.filter(x => x.nodeId === currentPA)[0];\r\n if(paState){\r\n paStateData = paState.state;\r\n }\r\n else{\r\n paStateData = \"Not Examined\"\r\n }\r\n\r\n let levelIds = PRACTICE_AREAS[currentPA].LevelIds;\r\n let availableLevels = Object.keys(levelIds);\r\n for(let j = 0; j < availableLevels.length; j++){\r\n if(availableLevels[j] <= maturityLevel){\r\n let currentLevelId = levelIds[availableLevels[j]];\r\n\r\n let levelStateData = \"\";\r\n let levelState = stateData.filter(x => x.nodeId === currentLevelId)[0];\r\n if(levelState){\r\n levelStateData = levelState.state;\r\n }\r\n else{\r\n levelStateData = \"Not Examined\";\r\n }\r\n \r\n levelData.push({\r\n PAName: currentPA,\r\n Level: availableLevels[j],\r\n State: levelStateData\r\n });\r\n }\r\n }\r\n\r\n PAData.push({\r\n Name: currentPA,\r\n State: paStateData\r\n })\r\n }\r\n let ratingsData = {\r\n PAData: PAData,\r\n LevelData: levelData\r\n }\r\n\r\n setRatingsData(ratingsData);\r\n }\r\n\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n\r\n let allProjects = projects.value;\r\n\r\n //do not generate if we don't have a rollup\r\n let hasRollup = false;\r\n let rollupId = 0;\r\n for (let i = 0; i < allProjects.length; i++) {\r\n if (allProjects[i].name === \"Organizational Roll-up\") {\r\n hasRollup = true;\r\n rollupId = allProjects[i].id;\r\n }\r\n }\r\n\r\n if (!hasRollup) {\r\n setModalMessage(\"No organizational roll-up found.\")\r\n setShowMessageModal(true);\r\n }\r\n else {\r\n await generateReport(rollupId);\r\n }\r\n\r\n setReportLoading(false);\r\n }\r\n\r\n const reportName = `Ratings Report`;\r\n const scopeHeader = 'Level:';\r\n const appraisalHeader = 'Appraisal';\r\n\r\n const viewReportStyle = {\r\n textAlign: \"center\",\r\n paddingTop: \"0px\",\r\n color: 'black'\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"reportModalStyle\">\r\n \r\n \r\n {' '}Ratings Report\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleGenerateReportClicked(e)}\r\n >\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Ratings Report\" : ' Generating Ratings Report'}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n setShowMessageModal(false)}\r\n animation\r\n style={{ backgroundColor: 'rgba(0,0,0,0.2)' }}\r\n size='sm'>\r\n \r\n {modalMessage}\r\n \r\n \r\n setShowMessageModal(false)}\r\n >Ok\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {!optionsVisible &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default RatingsReportModal;","import React, { useState, useEffect } from 'react';\r\nimport { Button, Spinner, Row, Col, Form, Modal } from 'react-bootstrap';\r\nimport { AppraisalRepository, AppraisalStateRepository } from '../utils/repositories';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport { PRACTICE_AREAS } from '../model/practiceareas';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { PRACTICES } from '../model/practices';\r\nimport { Constants, getDefaultAPIHeaders } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport { ICON_MAP, CHECK_ICON, X_ICON } from '../utils/IconMap';\r\nimport { CharacterizationsLegend } from '../utils/IconLegends';\r\nimport NewWindow from 'react-new-window';\r\n\r\nasync function fetchData(setDataLoading, setAppraisalName, setPracticeAreas, setProjects, setMaturityLevel, setEvidence, setFindings) {\r\n setDataLoading(true);\r\n\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false, availableForSelection: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n\r\n setAppraisalName(appraisalData.returnValue.name);\r\n setProjects(appraisalData.returnValue.projects.filter(x => x.name !== \"Organizational Roll-up\"));\r\n\r\n setMaturityLevel(modelContentUtils.getMaturityLevelFromView(appraisalData.returnValue.view));\r\n setPracticeAreas(modelContentUtils.getPracticeAreasFromAppraisalProjects(appraisalData.returnValue.projects, true, true));\r\n\r\n let evidenceData = await getAppraisalEvidence(currentAppraisalId);\r\n setEvidence(evidenceData);\r\n\r\n let findingsData = await getAppraisalFindings(currentAppraisalId);\r\n setFindings(findingsData);\r\n\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nasync function getAppraisalFindings(currentAppraisalId) {\r\n const apiPath = `${Constants.APPRAISAL_ITEM_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n return data;\r\n}\r\n\r\nasync function getAppraisalEvidence(currentAppraisalId) {\r\n const apiPath = `${Constants.APPRAISAL_EVIDENCE_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n return data;\r\n}\r\n\r\nasync function getAppraisalStatesByProject(currentAppraisalId, projectId) {\r\n let stateEntries = \"\";\r\n const stateRepo = new AppraisalStateRepository();\r\n const response = await stateRepo.getAll(currentAppraisalId, projectId);\r\n if (!response.error) {\r\n stateEntries = response.returnValue;\r\n }\r\n return stateEntries;\r\n}\r\n\r\nconst SummaryView = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [optionsVisible, setOptionsVisible] = useState(true);\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [practiceAreas, setPracticeAreas] = useState({});\r\n const [projects, setProjects] = useState({});\r\n const [evidence, setEvidence] = useState({});\r\n const [findings, setFindings] = useState({});\r\n const [maturityLevel, setMaturityLevel] = useState('');\r\n const [summaryColumns, setSummaryColumns] = useState({});\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalName, setPracticeAreas, setProjects, setMaturityLevel, setEvidence, setFindings);\r\n getData();\r\n setOptionsVisible(true);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n\r\n async function getSummaryData(currentAppraisalId) {\r\n let summaryEntries = [];\r\n\r\n for (let projectIndex = 0; projectIndex < projects.length; projectIndex++) {\r\n let projectName = projects[projectIndex].name;\r\n let projectSpecificPracticeAreas = projects[projectIndex].practiceAreas;\r\n let practiceAreaData = [];\r\n\r\n //get all state entries for the current project\r\n let stateData = await getAppraisalStatesByProject(currentAppraisalId, projects[projectIndex].id);\r\n\r\n for (let i = 0; i < practiceAreas.length; i++) {\r\n\r\n let practiceAreaName = PRACTICE_AREAS[practiceAreas[i].id].Name;\r\n let practiceNodes = PRACTICE_AREA_RELATIONSHIPS[practiceAreas[i].id].filter(x => x.Level <= maturityLevel);\r\n let practiceData = [];\r\n\r\n for (let j = 0; j < practiceNodes.length; j++) {\r\n let practiceName = PRACTICES[practiceNodes[j].Id].Abbreviation;\r\n\r\n let characterization = \"\";\r\n let affirmed = false;\r\n let hasEvidence = false;\r\n let hasStrengths = false;\r\n let hasWeaknesses = false;\r\n let hasIOs = false;\r\n\r\n //see if the project contains the current practice area\r\n if (projectSpecificPracticeAreas.includes(practiceAreas[i].id)) {\r\n //get characterization and affirmed\r\n for (let l = 0; l < stateData.length; l++) {\r\n if (stateData[l].nodeId === practiceNodes[j].Id) {\r\n characterization = stateData[l].state;\r\n affirmed = stateData[l].affirmed;\r\n }\r\n }\r\n\r\n //see if we have evidence\r\n for (let l = 0; l < evidence.length; l++) {\r\n if (evidence[l].node_id === practiceNodes[j].Id && evidence[l].project_id === projects[projectIndex].id) {\r\n hasEvidence = true;\r\n }\r\n }\r\n\r\n //see if we have strengths, weakenesses, and IOs\r\n for (let l = 0; l < findings.length; l++) {\r\n if (findings[l].node_id === practiceNodes[j].Id && findings[l].project_id === projects[projectIndex].id) {\r\n if (findings[l].item_type === \"strengths\") {\r\n hasStrengths = true;\r\n }\r\n if (findings[l].item_type === \"weaknesses\") {\r\n hasWeaknesses = true;\r\n }\r\n if (findings[l].item_type === \"improvement_opportunities\") {\r\n hasIOs = true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n characterization = 0;\r\n affirmed = 0;\r\n hasEvidence = 0;\r\n hasStrengths = 0;\r\n hasWeaknesses = 0;\r\n hasIOs = 0;\r\n }\r\n\r\n practiceData.push({\r\n practiceName,\r\n characterization,\r\n affirmed,\r\n hasEvidence,\r\n hasStrengths,\r\n hasWeaknesses,\r\n hasIOs\r\n });\r\n }\r\n practiceAreaData.push({\r\n practiceAreaName,\r\n practiceData\r\n });\r\n }\r\n\r\n summaryEntries.push({\r\n projectName,\r\n practiceAreaData\r\n });\r\n }\r\n\r\n return summaryEntries;\r\n }\r\n\r\n function getCharacterizationIcon(value) {\r\n if (value === 0) {\r\n return \"-\";\r\n }\r\n else {\r\n return ICON_MAP[value]\r\n }\r\n }\r\n\r\n function getIcon(value) {\r\n if (value === 0) {\r\n return \"-\";\r\n }\r\n else {\r\n return value ? CHECK_ICON : X_ICON;\r\n }\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n\r\n let summaryData = await getSummaryData(currentAppraisalId);\r\n let summaryColumns = [];\r\n\r\n for (let i = 0; i < summaryData.length; i++) {\r\n let summaryRows = [];\r\n summaryRows.push(

    {summaryData[i].projectName}

    );\r\n\r\n let practiceAreaData = summaryData[i].practiceAreaData;\r\n for (let j = 0; j < practiceAreaData.length; j++) {\r\n summaryRows.push(
    {practiceAreaData[j].practiceAreaName}
    );\r\n\r\n summaryRows.push(\r\n \r\n Practice\r\n C\r\n Ar\r\n Af\r\n S\r\n W\r\n I\r\n \r\n );\r\n let practiceData = practiceAreaData[j].practiceData;\r\n for (let k = 0; k < practiceData.length; k++) {\r\n summaryRows.push(\r\n \r\n {practiceData[k].practiceName}\r\n {getCharacterizationIcon(practiceData[k].characterization)}\r\n {getIcon(practiceData[k].hasEvidence)}\r\n {getIcon(practiceData[k].affirmed)}\r\n {getIcon(practiceData[k].hasStrengths)}\r\n {getIcon(practiceData[k].hasWeaknesses)}\r\n {getIcon(practiceData[k].hasIOs)}\r\n \r\n );\r\n }\r\n summaryRows.push(


    );\r\n }\r\n summaryColumns.push({summaryRows});\r\n }\r\n\r\n setSummaryColumns(summaryColumns);\r\n setReportLoading(false);\r\n setOptionsVisible(false);\r\n props.setShowModal(false);\r\n }\r\n\r\n return (\r\n \r\n props.setShowModal(false)} dialogClassName=\"reportModalStyle\">\r\n \r\n \r\n {' '}Summary View\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleGenerateReportClicked(e)}\r\n >\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Summary View\" : ' Generating Summary View'}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {!optionsVisible &&\r\n \r\n \r\n
    {summaryColumns}
    \r\n \r\n {CharacterizationsLegend}\r\n \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\nexport default SummaryView;","import React, { useState, useEffect } from 'react';\r\nimport { Button, Spinner, Row, Col, Form, FormControl, Modal } from 'react-bootstrap';\r\nimport { modelContentUtils } from '../utils/helpers';\r\nimport { OrgRepository, AppraisalRepository } from '../utils/repositories';\r\nimport LoadingComponent from '../presenters/LoadingComponent';\r\nimport ReportFragment from '../presenters/ReportFragment';\r\nimport { PRACTICE_AREAS } from '../model/practiceareas';\r\nimport { PRACTICE_AREA_RELATIONSHIPS } from '../model/practicearearelationships';\r\nimport { Constants, getDefaultAPIHeaders, getCurrentDateTime } from '../utils/helpers';\r\nimport { API } from 'aws-amplify';\r\nimport useArray from '../hooks/useArray';\r\nimport pptxgen from \"pptxgenjs\";\r\nimport pptBottom from '../assets/pptBottom.png';\r\n\r\nasync function fetchData(setDataLoading, setAppraisalName, setOrgName, projects, practiceAreas) {\r\n setDataLoading(true);\r\n const currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n if (currentAppraisalId) {\r\n const apiRepo = new AppraisalRepository(null, null, { selected: false, availableForSelection: false });\r\n const appraisalData = await apiRepo.getOne(currentAppraisalId, false);\r\n if (!appraisalData.error) {\r\n projects.setValue(appraisalData.returnValue.projects);\r\n setAppraisalName(appraisalData.returnValue.name);\r\n practiceAreas.setValue(modelContentUtils.getPracticeAreasFromAppraisalProjects(appraisalData.returnValue.projects, true, true));\r\n\r\n const orgRepo = new OrgRepository();\r\n const orgData = await orgRepo.getAll();\r\n const org = orgData.returnValue.find(org => org.id === appraisalData.returnValue.organization);\r\n if (org) {\r\n setOrgName(org.name);\r\n }\r\n } else {\r\n console.log(\"error getting appraisal data: \", appraisalData.returnValue);\r\n }\r\n }\r\n\r\n setDataLoading(false);\r\n}\r\n\r\nconst FindingsPresentationModal = (props) => {\r\n const [dataLoading, setDataLoading] = useState(true);\r\n const [appraisalName, setAppraisalName] = useState('');\r\n const [orgName, setOrgName] = useState('');\r\n const [reportLoading, setReportLoading] = useState(false);\r\n const [modalMessage, setModalMessage] = useState(\"\");\r\n const [showMessageModal, setShowMessageModal] = useState(false);\r\n const [presentationType, setPresentationType] = useState(\"draft\");\r\n const projects = useArray([]);\r\n const practiceAreas = useArray([]);\r\n\r\n useEffect(() => {\r\n if (props.showModal) {\r\n const getData = () => fetchData(setDataLoading, setAppraisalName, setOrgName, projects, practiceAreas);\r\n getData();\r\n setPresentationType(\"draft\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.showModal]);\r\n\r\n const shadowStyle = { type: 'outer', angle: 270, blur: 1, offset: 1 };\r\n const headerOpts = {\r\n x: 0.0,\r\n y: 0.0,\r\n w: '100%',\r\n h: .75,\r\n align: 'center',\r\n fontSize: 18,\r\n color: 'FFFFFF',\r\n fill: '#59a09a',\r\n };\r\n let allSlides = [];\r\n let currentSlide = null;\r\n let currentY = 0;\r\n\r\n async function generateReport(currentAppraisalId, rollupId) {\r\n\r\n const apiPath = `${Constants.APPRAISAL_ITEM_PATH}/${currentAppraisalId}`\r\n const data = await API.get(Constants.API_PATH, apiPath, await getDefaultAPIHeaders());\r\n const rollUpData = data.filter(x => x.project_id === rollupId);\r\n const allPAs = practiceAreas.value;\r\n allSlides = [];\r\n currentY = 0;\r\n\r\n let pptGenerator = new pptxgen();\r\n\r\n addTitleSlide(pptGenerator);\r\n\r\n for (let i = 0; i < allPAs.length; i++) {\r\n const practiceName = allPAs[i].name;\r\n\r\n //get the node ids for each node in the practice area\r\n const practiceNodes = PRACTICE_AREA_RELATIONSHIPS[allPAs[i].id];\r\n\r\n //compile findings data\r\n let strengths = [];\r\n let weaknesses = [];\r\n let improvementOps = [];\r\n for (let j = 0; j < practiceNodes.length; j++) {\r\n for (let k = 0; k < rollUpData.length; k++) {\r\n if (rollUpData[k].node_id === practiceNodes[j].Id) {\r\n if (rollUpData[k].item_type === \"strengths\") {\r\n strengths.push([rollUpData[k].item_data]);\r\n }\r\n else if (rollUpData[k].item_type === \"weaknesses\") {\r\n weaknesses.push([rollUpData[k].item_data]);\r\n }\r\n else if (rollUpData[k].item_type === \"improvement_opportunities\") {\r\n improvementOps.push([rollUpData[k].item_data]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n addPracticeAreaSlide(pptGenerator, practiceName, allPAs[i].id);\r\n currentY = 2.3;\r\n\r\n if (presentationType !== \"draft\") {\r\n //write strengths entries\r\n currentSlide.addText(\"Strengths\", { x: 0.5, y: 2.0, w: '75%', h: '10%', fontSize: 12, bold: true, color: '#59a09a' });\r\n addFindings(pptGenerator, practiceName, \"Strengths\", strengths);\r\n }\r\n\r\n //write weakness entries\r\n addHeader(pptGenerator, practiceName, \"Weaknesses\");\r\n addFindings(pptGenerator, practiceName, \"Weaknesses\", weaknesses);\r\n\r\n if (presentationType !== \"draft\") {\r\n //write improvement opportunity entries\r\n addHeader(pptGenerator, practiceName, \"Improvement Opportunities\");\r\n addFindings(pptGenerator, practiceName, \"Improvement Opportunities\", improvementOps);\r\n }\r\n }\r\n\r\n addFooters(pptGenerator, allSlides);\r\n\r\n pptGenerator.writeFile(\"findingsPresentation.pptx\");\r\n props.setShowModal(false);\r\n }\r\n\r\n function addTitleSlide(pptGenerator) {\r\n currentSlide = pptGenerator.addSlide();\r\n allSlides.push(currentSlide);\r\n currentSlide.addText(\"\", headerOpts);\r\n currentSlide.addText(orgName, { y: .8, w: '100%', h: '30%', fontSize: 32, align: 'center', color: '000000' });\r\n currentSlide.addText(appraisalName, { y: 1.5, w: '100%', h: '30%', fontSize: 28, bold: true, shadow: shadowStyle, align: 'center', color: '#59a09a' });\r\n let presentationTypeText = presentationType === \"draft\" ? \"Preliminary Findings Presentation\" : \"Final Findings Presentation\";\r\n currentSlide.addText(presentationTypeText, { y: 2, w: '100%', h: '30%', fontSize: 24, align: 'center', color: '000000' });\r\n currentSlide.addText(\"Generated: \" + getCurrentDateTime(), { y: 2.5, w: '100%', h: '30%', fontSize: 10, align: 'center', color: '000000' });\r\n }\r\n\r\n function addPracticeAreaSlide(pptGenerator, practiceName, practiceAreaId) {\r\n currentSlide = pptGenerator.addSlide();\r\n allSlides.push(currentSlide);\r\n\r\n currentSlide.addText(practiceName, headerOpts);\r\n currentSlide.addText(\"Intent: \", { x: 0.4, y: 1, w: '75%', h: '10%', fontSize: 12, bold: true, color: '#59a09a', valign:\"top\" });\r\n currentSlide.addText(PRACTICE_AREAS[practiceAreaId].Intent, { x: 1.0, y: 1, w: '75%', h: '10%', fontSize: 10, valign:\"top\", margin:5});\r\n currentSlide.addText(\"Value: \", { x: 0.4, y: 1.5, w: '75%', h: '10%', fontSize: 12, bold: true, color: '#59a09a', valign:\"top\" });\r\n currentSlide.addText(PRACTICE_AREAS[practiceAreaId].Value, { x: 1.0, y: 1.5, w: '75%', h: '10%', fontSize: 10, valign:\"top\", margin:5 });\r\n }\r\n\r\n function addHeader(pptGenerator, practiceName, findingsName) {\r\n //if we are past the vertical limit after improvement opportunities, continue on next page, else stay on same page\r\n if (currentY > 4.5) {\r\n currentSlide = pptGenerator.addSlide();\r\n allSlides.push(currentSlide);\r\n currentSlide.addText(practiceName + \" (continued)\", headerOpts);\r\n currentSlide.addText(findingsName, { x: 0.5, y: 1.0, w: '75%', h: '10%', fontSize: 12, bold: true, color: '#59a09a' });\r\n currentY = 1.3;\r\n }\r\n else {\r\n currentSlide.addText(findingsName, { x: 0.5, y: currentY, w: '75%', h: '10%', fontSize: 12, bold: true, color: '#59a09a' });\r\n currentY += .3\r\n }\r\n }\r\n\r\n function addFindings(pptGenerator, practiceName, findingsName, findingsCollection) {\r\n if (findingsCollection.length === 0) {\r\n currentY += .15;\r\n currentSlide.addText(`■`, { x: 1, y: currentY, w: '5%', h: '5%', fontSize: 10, color: '#59a09a', valign:\"top\" });\r\n currentSlide.addText('None Identified', { x: 1.2, y: currentY, w: '70%', h: '5%', fontSize: 10, valign:\"top\" });\r\n currentY += .15;\r\n }\r\n else {\r\n for (let j = 0; j < findingsCollection.length; j++) {\r\n\r\n let text = findingsCollection[j].toString();\r\n\r\n //modify Y position based on sets of 150 chars\r\n let yModifier = text.length / 150;\r\n if (yModifier < 1) {\r\n yModifier = 1;\r\n }\r\n currentY += .15;\r\n\r\n //account for new lines\r\n let yNewLineModifier = text.split(/\\r\\n|\\r|\\n/).length * .15\r\n\r\n //if we are past the vertical limit, continue on next page\r\n if (currentY > 4.5) {\r\n currentSlide = pptGenerator.addSlide();\r\n allSlides.push(currentSlide);\r\n currentSlide.addText(practiceName + \" (continued)\", headerOpts);\r\n currentSlide.addText(findingsName + \" (continued)\", { x: 0.5, y: 1.0, w: '75%', h: '10%', fontSize: 12, bold: true, color: '#59a09a' });\r\n currentY = 1.3;\r\n currentY += (.15 * yModifier);\r\n }\r\n currentSlide.addText(`■`, { x: 1, y: currentY, w: '5%', h: '5%', fontSize: 10, color: '#59a09a', valign:\"top\" });\r\n currentSlide.addText(findingsCollection[j].toString(), { x: 1.2, y: currentY, w: '70%', h: '5%', fontSize: 10, valign:\"top\" });\r\n currentY += (.3 * yModifier) + yNewLineModifier;\r\n }\r\n }\r\n }\r\n\r\n function addFooters(pptGenerator, slides) {\r\n for (let i = 0; i < slides.length; i++) {\r\n slides[i].addImage({ path: pptBottom, x: 0, y: 4.95, w: '100%', h: '13%' });\r\n let pageNumberText = (i + 1);\r\n //overlay a shape to display page number on top of image\r\n //do not add to first page\r\n if (i > 0) {\r\n slides[i].addText(pageNumberText, { shape: pptGenerator.ShapeType.rect, x: 9.5, y: 5.23, w: '5%', h: '5%', fill: { color: \"#59a09a\" }, align: \"center\", fontSize: 12, color: 'FFFFFF' });\r\n }\r\n }\r\n }\r\n\r\n const handleGenerateReportClicked = async (event) => {\r\n setReportLoading(true);\r\n\r\n let allProjects = projects.value;\r\n\r\n //do not generate if we don't have a rollup\r\n let hasRollup = false;\r\n let rollupId = 0;\r\n for (let i = 0; i < allProjects.length; i++) {\r\n if (allProjects[i].name === \"Organizational Roll-up\") {\r\n hasRollup = true;\r\n rollupId = allProjects[i].id;\r\n }\r\n }\r\n\r\n if (!hasRollup) {\r\n setModalMessage(\"No organizational roll-up found.\")\r\n setShowMessageModal(true);\r\n }\r\n else {\r\n let currentAppraisalId = localStorage.getItem(\"selectedAppraisal\");\r\n await generateReport(currentAppraisalId, rollupId);\r\n }\r\n\r\n setReportLoading(false);\r\n }\r\n\r\n const handleTypeChanged = (value) => {\r\n setPresentationType(value);\r\n }\r\n\r\n return (\r\n props.setShowModal(false)} dialogClassName=\"reportModalStyle\">\r\n \r\n \r\n {' '}Findings Presentation\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Appraisal\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Presentation Type\r\n \r\n \r\n handleTypeChanged(e.target.value)} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleGenerateReportClicked(e)}>\r\n {reportLoading &&\r\n }\r\n {!reportLoading ? \"Generate Findings Presentation\" : ' Generating Presentation...'}\r\n {' '}\r\n \r\n setShowMessageModal(false)}\r\n animation\r\n style={{ backgroundColor: 'rgba(0,0,0,0.2)' }}\r\n size='sm'>\r\n \r\n {modalMessage}\r\n \r\n \r\n setShowMessageModal(false)}\r\n >Ok\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\nexport default FindingsPresentationModal;","import React, { useState } from 'react';\r\nimport { Nav, Navbar, NavDropdown } from 'react-bootstrap';\r\nimport brand from '../assets/icon.png';\r\nimport FindReplaceEvidenceModal from '../containers/FindReplaceEvidenceModal';\r\nimport GenerateRollupModal from '../containers/GenerateRollupModal';\r\nimport styled from 'styled-components';\r\nimport CopyAppraisalDataModal from '../containers/CopyAppraisalDataModal.js';\r\nimport ClearProjectInfoModal from '../containers/ClearProjectInfoModal.js';\r\nimport FindingsReportModal from '../containers/FindingsReportModal.js';\r\nimport EvidenceSearchModal from '../containers/EvidenceSearchModal.js';\r\nimport EvidenceMappingsReportModal from '../containers/EvidenceMappingsReportModal.js';\r\nimport InterviewQuestionsReportModal from '../containers/InterviewQuestionsReportModal.js';\r\nimport InterviewQuestionsCountReportModal from '../containers/InterviewQuestionsCountReportModal.js';\r\nimport AffirmationCoverageReportModal from '../containers/AffirmationCoverageReportModal.js';\r\nimport PracticeComplianceReportModal from '../containers/PracticeComplianceReportModal.js';\r\nimport CompliancePercentReportModal from '../containers/CompliancePercentReportModal.js';\r\nimport RatingsReportModal from '../containers/RatingsReportModal.js';\r\nimport SummaryView from '../containers/SummaryView.js';\r\nimport FindingsPresentationModal from '../containers/FindingsPresentationModal.js';\r\n\r\nconst Styles = styled.div`\r\n.navbar {\r\n background:rgb(0, 168, 168); \r\n margin-bottom: 1.5rem; \r\n } \r\n`;\r\n\r\nexport const DefaultNavigationBar = (props) => {\r\n const handleFindReplaceClicked = (e) => {\r\n e.preventDefault();\r\n setShowFindReplaceModal(true);\r\n }\r\n\r\n const handleEvidenceSearchClicked = (e) => {\r\n e.preventDefault();\r\n setShowEvidenceSearchModal(true);\r\n }\r\n\r\n const handleGenerateOrganizationalRollupClicked = (e) => {\r\n e.preventDefault();\r\n setShowGenerateRollupModal(true);\r\n }\r\n\r\n const handleCopyAppraisalDataClicked = (e) => {\r\n e.preventDefault();\r\n setShowCopyAppraisalDataModal(true);\r\n }\r\n\r\n const handleClearProjectInformationClicked = (e) => {\r\n e.preventDefault();\r\n setshowClearProjectInfoModal(true);\r\n }\r\n\r\n const openFindingsReport = (e) => {\r\n e.preventDefault();\r\n setShowFindingsModal(true);\r\n }\r\n\r\n const openEvidenceMappingsReport = (e) => {\r\n e.preventDefault();\r\n setShowEvidenceMappingsModal(true);\r\n }\r\n\r\n const openInterviewQuestionsReport = (e) => {\r\n e.preventDefault();\r\n setShowInterviewQuestionsModal(true);\r\n }\r\n\r\n const openInterviewQuestionsCountReport = (e) => {\r\n e.preventDefault();\r\n setShowInterviewQuestionsCountModal(true);\r\n }\r\n\r\n const openAffirmationCoverageReport = (e) => {\r\n e.preventDefault();\r\n setShowAffirmationCoverageModal(true);\r\n }\r\n\r\n const openPracticeComplianceReport = (e) => {\r\n e.preventDefault();\r\n setShowPracticeComplianceModal(true);\r\n }\r\n\r\n const openCompliancePercentReport = (e) => {\r\n e.preventDefault();\r\n setShowCompliancePercentModal(true);\r\n }\r\n\r\n const openRatingsReport = (e) => {\r\n e.preventDefault();\r\n setShowRatingsModal(true);\r\n }\r\n\r\n const openSummaryView = (e) => {\r\n e.preventDefault();\r\n setShowSummaryView(true);\r\n }\r\n\r\n const openFindingsPresentation = (e) => {\r\n e.preventDefault();\r\n setShowFindingsPresentationModal(true);\r\n }\r\n\r\n const [showFindReplaceModal, setShowFindReplaceModal] = useState(false);\r\n const [showEvidenceSearchModal, setShowEvidenceSearchModal] = useState(false);\r\n const [showGenerateRollupModal, setShowGenerateRollupModal] = useState(false);\r\n const [showCopyAppraisalDataModal, setShowCopyAppraisalDataModal] = useState(false);\r\n const [showClearProjectInfoModal, setshowClearProjectInfoModal] = useState(false);\r\n const [showFindingsModal, setShowFindingsModal] = useState(false);\r\n const [showEvidenceMappingsModal, setShowEvidenceMappingsModal] = useState(false);\r\n const [showInterviewQuestionsModal, setShowInterviewQuestionsModal] = useState(false);\r\n const [showInterviewQuestionsCountModal, setShowInterviewQuestionsCountModal] = useState(false);\r\n const [showAffirmationCoverageModal, setShowAffirmationCoverageModal] = useState(false);\r\n const [showPracticeComplianceModal, setShowPracticeComplianceModal] = useState(false);\r\n const [showCompliancePercentModal, setShowCompliancePercentModal] = useState(false);\r\n const [showRatingsModal, setShowRatingsModal] = useState(false);\r\n const [showSummaryView, setShowSummaryView] = useState(false);\r\n const [showFindingsPresentationModal, setShowFindingsPresentationModal] = useState(false);\r\n\r\n return (\r\n \r\n \r\n \r\n {' '}\r\n CAP\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 { Container } from 'react-bootstrap';\r\n\r\nexport const Layout = (props) => (\r\n \r\n {props.children} \r\n \r\n)","import React, { useState } from 'react';\r\nimport { Form, FormGroup, FormControl, FormText, Row, Col, Container, Button, Spinner, Modal } from 'react-bootstrap';\r\nimport { Image } from '../components/Image';\r\nimport { Auth } from 'aws-amplify';\r\n\r\nconst allowedSpecialCharacters = \"^ $ * . [ ] { } ( ) ? \\\" ! @ # % & / \\\\ , > < ' : ; | _ ~ ` - + =\";\r\nconst PASSWORD_HELP_TEXT = () => (\r\n
    \r\n

    Password Rules:

    \r\n
      \r\n
    • Must be at least eight characters in length.
    • \r\n
    • Cannot contain spaces.
    • \r\n
    • Must contain one uppercase character.
    • \r\n
    • Must contain one lowercase character.
    • \r\n
    • Must contain one number.
    • \r\n
    • Must contain one special character.
    • \r\n
    • Allowed special characters: {allowedSpecialCharacters}
    • \r\n
    \r\n
    \r\n);\r\n\r\n//8 characters, 1 Uppercase, 1 Lowercase, 1 number, 1 special character\r\nconst PASSWORD_PATTERN = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[\\^$*.[\\]\\\\{}()?\"!@#%&/,><':;|_\\+\\-\\=~`])\\S{8,99}$/;\r\nconst PASSWORDS_SAME_HELP_TEXT = \"The new password must be different from the current password\";\r\n\r\n//Form for updating password\r\nfunction ChangePasswordForm(props) {\r\n const [existingPassword, setExistingPassword] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [confirmPassword, setConfirmPassword] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isPasswordValid, setIsPasswordValid] = useState(false);\r\n const [isExistingPasswordValid, setIsExistingPasswordValid] = useState(false);\r\n const [isConfirmedPasswordValid, setIsConfirmedPasswordValid] = useState(false);\r\n const [helpBlockText, setHelpBlockText] = useState(PASSWORD_HELP_TEXT);\r\n const [infoBlockText, setInfoBlockText] = useState(\"\");\r\n const [submitError, setSubmitError] = useState(false);\r\n const [showSuccessModal, setShowSuccessModal] = useState(false);\r\n\r\n const validateField = (fieldText) => {\r\n return fieldText.match(PASSWORD_PATTERN) ? true : false;\r\n }\r\n\r\n const handleChangeExistingPassword = (event) => {\r\n setExistingPassword(event.target.value);\r\n setIsExistingPasswordValid(validateField(event.target.value));\r\n }\r\n\r\n const handleChangePassword = (event) => {\r\n setPassword(event.target.value);\r\n setIsPasswordValid(validateField(event.target.value));\r\n }\r\n\r\n const handleChangeConfirmedPassword = (event) => {\r\n setConfirmPassword(event.target.value);\r\n setIsConfirmedPasswordValid(validateField(event.target.value));\r\n }\r\n\r\n const handleUpdatePassword = async newPassword => {\r\n try {\r\n let user = await Auth.currentAuthenticatedUser();\r\n await Auth.changePassword(user, existingPassword, newPassword);\r\n setShowSuccessModal(true);\r\n }\r\n catch (e) {\r\n setSubmitError(true);\r\n setHelpBlockText(e.message);\r\n }\r\n }\r\n\r\n //form submit event handler\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n if (password !== existingPassword) {\r\n setSubmitError(false);\r\n setHelpBlockText(PASSWORD_HELP_TEXT);\r\n setIsLoading(true);\r\n handleUpdatePassword(password);\r\n setIsLoading(false);\r\n } else {\r\n setInfoBlockText(PASSWORDS_SAME_HELP_TEXT)\r\n }\r\n }\r\n\r\n const handleSubmitWithEnter = async e => {\r\n if (!isConfirmedPasswordValid || !isPasswordValid || password !== confirmPassword) {\r\n return;\r\n }\r\n if (password !== existingPassword) {\r\n setSubmitError(false);\r\n setHelpBlockText(PASSWORD_HELP_TEXT);\r\n setIsLoading(true);\r\n handleUpdatePassword(password);\r\n setIsLoading(false);\r\n } else {\r\n setInfoBlockText(PASSWORDS_SAME_HELP_TEXT)\r\n }\r\n }\r\n\r\n const handleEnterPress = (e) => {\r\n var code = e.keyCode || e.which;\r\n if (code === 13) {\r\n handleSubmitWithEnter();\r\n }\r\n }\r\n\r\n const onAcknowledge = () => {\r\n setShowSuccessModal(false);\r\n props.history.push(\"/profile\");\r\n }\r\n\r\n const textAreaErrorStyle = {\r\n border: \"1px solid red\",\r\n width: \"100%\",\r\n paddingLeft: '5px'\r\n };\r\n\r\n const textAreaStyle = {\r\n width: \"100%\",\r\n paddingLeft: '5px'\r\n };\r\n\r\n const helpTextStyle = {\r\n fontSize: 12\r\n }\r\n const helpTextErrorStyle = {\r\n color: \"red\",\r\n fontSize: 14\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
    handleSubmit(event)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleEnterPress(e)}\r\n style={isConfirmedPasswordValid ? textAreaStyle : textAreaErrorStyle}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {infoBlockText}\r\n {helpBlockText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading &&\r\n }\r\n {!isLoading ? \"Submit\" : ' Submitting....'}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n setShowSuccessModal(false)}\r\n animation\r\n style={{ backgroundColor: 'rgba(0,0,0,0.2)' }}\r\n size='sm'>\r\n \r\n Password changed successfully.\r\n \r\n \r\n onAcknowledge()}\r\n >Ok\r\n \r\n \r\n
    \r\n\r\n );\r\n}\r\n\r\nexport default ChangePasswordForm;","import React from 'react';\r\nimport { Nav, Navbar } from 'react-bootstrap';\r\nimport brand from '../assets/icon.png';\r\nimport styled from 'styled-components';\r\n\r\nconst Styles = styled.div`\r\n.navbar {\r\n background:rgb(0, 168, 168); \r\n margin-bottom: 1.5rem; \r\n } \r\n`;\r\n\r\nexport const SecondaryNavigationBar = (props) => {\r\n return (\r\n \r\n \r\n \r\n {' '}\r\n CAP\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n};","import React from 'react';\r\nimport {BrowserRouter as Router, Route, Switch} from 'react-router-dom';\r\nimport Home from '../containers/Home.js';\r\nimport Login from '../containers/Login.js';\r\nimport Users from '../containers/Users';\r\nimport Organizations from '../containers/Organizations';\r\nimport AdminView from '../containers/AdminView';\r\nimport Appraisals from '../containers/Appraisals';\r\nimport NotFound from './NotFound.js';\r\nimport { About } from '../About';\r\nimport AdminRoute from './AdminRoute';\r\nimport UserProfile from '../UserProfile';\r\nimport { EditableProfile } from '../EditableProfile';\r\nimport AuthenticatedRoute from './AuthenticatedRoute';\r\nimport UnauthenticatedRoute from './UnauthenticatedRoute.js';\r\nimport UnconfirmedUser from './UnconfirmedUser';\r\nimport { LoginNavigationBar } from '../components/LoginNavigationBar';\r\nimport { DefaultNavigationBar } from '../components/DefaultNavigationBar';\r\nimport { Layout } from '../components/Layout';\r\nimport UpdatePasswordForm from '../containers/UpdatePasswordForm';\r\nimport ChangePasswordForm from '../containers/ChangePasswordForm';\r\nimport { SecondaryNavigationBar } from '../components/SecondaryNavigationBar.js';\r\n\r\nconst Routes = ({ childProps }) => {\r\n \r\n const currentPath = window.location.pathname;\r\n const getNavigationBar = () => {\r\n if(currentPath.includes(\"/login\") || \r\n currentPath ==='change'|| \r\n currentPath ==='change-password'){\r\n return \r\n }\r\n else if ((window.location.toString().endsWith(\"redirect=/\")) ||\r\n currentPath === '/' || \r\n currentPath === '/organizations' || \r\n currentPath === '/users' || \r\n currentPath === '/appraisals'){\r\n if(childProps.session){\r\n return \r\n }\r\n else{\r\n return \r\n }\r\n }\r\n else{\r\n return \r\n }\r\n };\r\n\r\n return (\r\n \r\n {getNavigationBar()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 { Routes };\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Auth, API } from 'aws-amplify';\r\nimport \"./App.css\";\r\nimport { Routes } from './presenters/Routes.js';\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nfunction App (props){\r\n const [isAuthenticating, setIsAuthenticating] = useState(true);\r\n const [session, setSession] = useState(null);\r\n const [isAdmin, setIsAdmin] = useState(false);\r\n const [orgId, setOrgId] = useState(null);\r\n\r\n const userHasAuthenticated = (session) => {\r\n setSession(session);\r\n const groups = session.idToken.payload['cognito:groups']; \r\n const adminGroup = groups.find(g=>g === 'admins');\r\n \r\n if(adminGroup){\r\n setIsAdmin(true);\r\n } else {\r\n setIsAdmin(false);\r\n }\r\n if(session.idToken.payload.hasOwnProperty('custom:organization_id')){\r\n setOrgId(session.idToken.payload['custom:organization_id']);\r\n } else {\r\n setOrgId(null);\r\n }\r\n //uncomment this to get the AWS session token for development use\r\n //console.log(session.idToken);\r\n }\r\n\r\n const fetchAuthenticationState = async () => {\r\n try{\r\n const session = await Auth.currentSession();\r\n userHasAuthenticated(session);\r\n }catch(e){\r\n }\r\n setIsAuthenticating(false);\r\n }\r\n useEffect(()=>{\r\n fetchAuthenticationState(); \r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const handleLogout = async event => {\r\n await Auth.signOut();\r\n sessionStorage.clear();\r\n setSession(null);\r\n setIsAdmin(false);\r\n props.history.push(\"/login\");\r\n }\r\n\r\n const onLogoutClicked = () =>{\r\n handleLogout();\r\n }\r\n\r\n const childProps = {\r\n userHasAuthenticated: userHasAuthenticated,\r\n onLogoutClicked: onLogoutClicked,\r\n session: session,\r\n orgId: orgId,\r\n isAdmin: isAdmin\r\n };\r\n\r\n\r\n return(\r\n !isAuthenticating &&\r\n
    \r\n \r\n
    \r\n ); \r\n }\r\n\r\nexport default withRouter(App);\r\n\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://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, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport Amplify from 'aws-amplify';\r\nimport config from './utils/config.js';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App.js';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport {BrowserRouter as Router} from 'react-router-dom';\r\nimport {Constants} from './utils/helpers';\r\nconst OPEN = \"public\";\r\n\r\nAmplify.configure({\r\n Auth: {\r\n mandatorySignIn: true,\r\n region: config.cognito.REGION,\r\n userPoolId: config.cognito.USER_POOL_ID,\r\n identityPoolId: config.cognito.IDENTITY_POOL_ID,\r\n userPoolWebClientId: config.cognito.APP_CLIENT_ID\r\n },\r\n API: {\r\n endpoints: [\r\n {\r\n name: OPEN,\r\n endpoint: config.apiGateway.URL,\r\n region: config.apiGateway.REGION\r\n },\r\n {\r\n name: Constants.API_PATH,\r\n endpoint: config.apiGateway.URL + `/${Constants.API_PATH}`,\r\n region: config.apiGateway.REGION\r\n }\r\n ]\r\n }\r\n });\r\n\r\nReactDOM.render(\r\n\r\n \r\n\r\n, 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: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}